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
point.)
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
address).
‘ID#’ is the last 4 digits of your NEU ID.
Enter a password, twice. (Make sure you remember your
password.)
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
piazza (see below) for announcements.
Additional software may be used later in the course.
Piazza
There is a piazza page for this course at Piazza.com. Piazza
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 piazza without using the
“private” option. Direct emails to the course staff should be your
last resort. Consult the Email and Piazza Policies handout for further details about
piazza posts and emails.
Feel free to post questions privately if you have any concerns about
them, and if your question is useful for the rest of the class and we
think that it is fine to do so, we will make it public.
Note that you do not need to request to be subscribed to
the mailing list — you will get added after you register with the
submission server.
On-line books and other materials
There are lots of Racket and Scheme books on-line, a few good ones are:
How to Design Programs (2nd Edition): A good introductory book that uses Racket. We use
this book in the introductory part of the course. (You should be
familiar with it, perhaps in its first edition form.)
Structure and Interpretation of Computer Programs: A book written for a course at MIT, which has made the
language popular early on. Widely known as the “Wizard Book”. It’s
fun to go over it though it shows its age in several places.
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.
Teach Yourself Racket is a quick crash course that will introduce you to Racket
programming.
You can also find some good on-line courses:
Introduction to Programming Languages is a course at Brown, taught by Shriram Krishnamurthi
who is the author of PLAI, with on-line videos of the lectures.
In addition, there are lots of additional Scheme-related references at
Schemers.org.