CS 251: Programming Languages

Fall 2017

hw0: Logistics

Due: Wednesday, 09/13 at 22:00

1. Read the syllabus

Please read over the syllabus. If you have questions, please ask on the Moodle Discussion Forum (see below).

Read the Recurse Center social rules. Please be respectful of each other on the Moodle forums, in class, and outside of class.

What to turn in: You will sign something in the next item to indicate you read the syllabus.

2. Initial survey forms

Find Survey 1 on Moodle and fill it out on paper.

Fill out the partner survey.

What to turn in: Turn in Survey 1 in class; fill out partner survey online.

3. Anonymous feedback form

Find the anonymous feedback form on the course Moodle page (in the very top section). Answer the following question: What reputation, if any, does CS 251 have?

What to turn in: I obviously cannot track who did this one, but please do it!

4. Moodle Discussion Forum

If you've got a question about an assignment or content in the class, send it to the Discussion Forum on Moodle. You should feel free to answer questions as you can to help other people; it's lots of fun. I will also try to answer lingering questions if no one else can help.

All questions about course content, assignments, and so on should go to the Forum. If you email me directly, I'll gently ask you to post to the Forum instead. Of course, you can always talk to me in person during office hours, and any communication of a personal nature (missing class, etc.) is welcome by email as well.

What to turn in: I started a discussion topic called "Introductions." Go reply to it.

5. Logging into a department computer

This term, for working in the labs, we'll be connecting to a remote Linux server. Make sure that you can connect appropriately. To do so, stop in one of the CS department labs, and log in while booted to Mac OS. You've got two options.

Graphical: x2go

In the folder /Applications/CarletonApps, start up the application x2goclient. Then follow this link with instructions (start from step 2).

Note that we're skipping step 1 in the above instructions, which only applies if you're using your own computer. When the application pops up, click on the button labeled "Start." If all works as it should, a Linux desktop should start up. When done, make sure that you log out. See the directions linked above.

The above Linux desktop will be essential for the C programming that we will do later this term. It will be optional for the Scheme programming portion that we'll do earlier.

If you have any problems, see our department system administrator Mike Tie in CMC 305 who will be happy to get you going.

Text-based

Alternatively, if you enjoy text-based environments, you may ssh into mirage.mathcs.carleton.edu and edit code using a terminal text editior such as vim (my favourite) or emacs.

What to turn in: In the submission box in Moodle for this assignment, tell me that you've successfully made x2go work by saying something like "I have successfully logged into a department lab computer, and used x2go to successfully login to a Linux session" or tell me you prefer working in the terminal.

6. Setting up your own computer

We have two different strategies for making the Linux desktop work on your own computer. The first approach is to install x2go on your own computer, and do exactly the steps that you've done above. x2go runs a Linux desktop on a remote server that the department runs, but it appears to run on your computer. The second approach is to install an actual Linux virtual machine on your desktop with VirtualBox. To get this approach working, follow these instructions to install the virtual machine, which should work regardless of which operating system (Windows, Mac, Linux) your own computer is running. If you have trouble with any of this, check in with a lab assistant or Mike Tie in CMC 305.

If you are using the VirtualBox approach, it is critical that you store your programs in HOME or COURSES and not inside the virtual machine. That will help you access them from elsewhere on campus, and more importantly, make sure they are backed up. Follow these instructions for mounting your HOME or COURSES directory.

What to turn in: In the submission box in Moodle for this assignment, tell me either "I have successfully gotten the virtual machine running on my own computer," "I have successfully made x2go work on my own computer," "I do not intend to use a personally owned computer for any CS 251 work this term," or "I run Linux and am confident I can install all the required software (DrRacket, Clang, and Valgrind) on my own machine."

7. DrRacket

For the first portion of the course, we'll be using a programming environment called DrRacket. You do not need to run DrRacket under Linux if you don't want to, though you may want to anyway to have everything for the term in one place. (The C programming will have to be done in Linux.) If you are using the x2go or the virtual machine approach above, DrRacket is already installed for you. If you are using any of our department labs as native Macs, DrRacket is installed in /Applications/CarletonApps within a folder called Racket vX.X (where X.X is the current version number). If you wish to install DrRacket natively on your own Mac or Windows computer, you can download it from here. Install it on your own computer if you wish.

What to turn in: In the submission box in Moodle for this assignment, tell me "I have successfully started up DrRacket."

8. Department email list

Most department happenings are announced to the comp_sci_interest email list. This includes Carleton Sentinel, our departmental email newsletter. It contains news about job opportunities in computer science, courses you may want to take, departmental events, and whatever else we think may be relevant. You should subscribe to comp_sci_interest by visiting the email list web interface.

What to turn in: Nothing; this one is optional.