Class Notes
Other code from the semester:
An exam from a previous semester: old-exam2.pdf.
Handouts
- Tips: Some useful tips for CSU211 work, DrScheme tips and more.
Software
We will use the PLT Scheme environment
extensively. DrScheme, the major component of PLT Scheme, will be used to
develop code, debug, and submit homeworks. CCS computers have an updated
version installed (available on both Unix and Windows). To use it on your
own machine, get it from the PLT
download server. Binary
installers exist for all major operating systems, and the course work will
be platform independent.
PLT Scheme 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 PLT Scheme installed, download the
plugin package, and use the “Setup PLT” application
to install it. You can also use “Install .plt File” in the File
menu, and enter the URL for the plugin.
Note: The handin server uses two ports for communication, one for the
submission protocol, and one for the embedded (secure) web server. You
need to work from a network that does not restrict these ports — 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 DrScheme (you should see a NEU icon on startup, and a
“CSU211 Handin” in DrScheme's toolbar).
- Menu: File > Manage CSU211 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 string of the form
FirstnameLastname (e.g. BobSmith)
- ‘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 and we will
re-set it.
- To submit a file, open it in DrScheme, and hit the
“CSU211 Handin” button, choose the assignment you're submitting to,
enter your password and hit the big Handin button.
- To verify the file you sent, you can click the “CSU211 Handin”
button, choose the assignment, 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 DrScheme starts, the plugin will check for updates, and
will ask you if it found that a newer version is available.
Additional software may be used later in the course.
Books and Other Readings
Required Reading:Recommended Reading:- Friedman, Felleisen The Little Schemer : Fourth Edition MIT Press, 1996
An alternative introduction to recursive programming
- Friedman, Felleisen The Seasoned Schemer : Fourth Edition MIT Press, 1996
More on functional and imperative programming
- Friedman, Felleisen A Little Java, A Few Patterns MIT
Press, 1998
How all of this scales to Java
- Strunk and White The Elements of Style
An excellent guide to writing, useful for writing clear programs as well as prose
Scheme Readings:If you wish to learn how to use Scheme as a tool, which is
not the goal of this course, then look at the following