We will use the Racket environment extensively. DrRacket, the major
component of Racket, will be used to develop code, debug, and submit
homework. CCS computers have an updated version installed (available on
both Unix and Windows). To use it on your own machine, get it from the
Racket website. Binary installers exist for all major
operating systems, and the course work will be platform independent.
Racket has a system for distributing software bundles that will be used
to get a course-specific plugin. This packages both specific
functionality for each homework, and an integrated tool for homework
submissions. Once you have Racket installed, start DrRacket, use the
“Install .plt File” in the File menu and enter
http://pl.barzilay.org/pl.plt — and restart DrRacket after
it is installed. You can also use the “Setup PLT” application to
install it if you want to do an off-line installation.
Note: The handin server uses a dedicated port for communication.
You need to work from a network that does not restrict this port — for
example, if you use Northeastern’s ‘NUwave-guest’ network, then you will
not be able to connect to the server. ‘NUwave’ (which requires you to
authenticate through myNEU) does not have this restriction.
To set-up your account:
Restart DrRacket if you haven’t (you should see a NEU icon on
startup, and a “PL Handin” in DrRacket’s toolbar).
Menu: File > Manage PL Handin Account... (Your computer
will establish a secure connection to the handin server at this
Make sure the “New User” tab is selected, and fill in the form:
‘Username’ should be a lowercase alphanumeric string
‘Full Name’ should be your full name (as you want to be known
in class, not necessarily your ‘formal’ name: “Bob Smith” is
better than “Robert William Junior of the New England Smiths”).
‘Email’ should be your active email — this address will
be used to contact you, so make sure you enter the email address
you use most frequently (for example, enter your Gmail address if
you use Gmail every day, even if you have a @ccs.neu.edu
‘ID#’ is the last 4 digits of your NEU ID.
Enter a password, twice. (Make sure you remember your
Click the “Add User” button — if everything went fine, you
should see a “Success” message at the top of the dialog.
If you had a mistake in the information for your account, open
up the “Manage...” dialog, and choose the “Change Info” tab;
enter your password in the “Old Password” field and re-fill any
fields you want to change and/or a new password. (Once you fill
your current password you can click the “Get Current Info” button
to retrieve the current values.) If you forgot your password, mail
us a phone number and we will re-set it.
To submit a file, open it in DrRacket, and hit the “PL
Handin” button, choose the homework you’re submitting to, enter
your password and hit the big Handin button.
To verify the file you sent, you can click the “PL Handin”
button, choose the homework, check the “Retrieve” checkbox, enter
your password and click the big button. You can even use this
method if you want to work on different machines: retrieve your
file, edit, and submit to save.
Each time DrRacket starts, the plugin will check for updates,
and will ask you if it found that a newer version is available.
The plugin will be updated frequently, follow the web page and the
piazza group (see below) for announcements.
Additional software may be used later in the course.
There is a piazza group for this course at Piazza.com. The piazza group
is the main medium for discussions, questions, announcements etc. You
should use it if you have any questions, so others can benefit from the
discussion as well. If you want to ask a question that involves showing
your solution code, make sure that you choose the “private” option.
Do not to post any homework code on the piazza group without using the
“private” option. Direct emails to the course staff should be your
last resort. Consult the Email and Piazza Group Policies handout for further details about
piazza group posts and emails.
Note that you do not need to request to be subscribed to
the mailing list — you will get added after you register with the
On-line books and other materials
There are lots of Racket and Scheme books on-line, a few good ones are:
Racket Documentation: The Racket manuals have guides that introduce
the language and demonstrate real-world uses. Specifically, see the
More guide for a quick tutorial that gets you to implement a
web server from scratch.