CS 15-212: Principles of Programming
(Spring 2008)

About this course

 [  Description  |  Prerequisites  |  Software  |  Readings  |  Grading  ]

Description

This course has the purpose of introducing students who have had experience with basic data structures and algorithms to more advanced skills, concepts and techniques in programming and Computer Science in general. This will be accomplished along three dimensions.

Prerequisites

You must have completed CS 15-211 (Fundamental Data Structures and Algorithms)

Software

The course relies extensively on the programming language Standard ML (SML) and related utilities, mainly ML-Lex, ML-Yacc and Concurrent ML. The particular implementation we will be working with is Standard ML of New Jersey (SML/NJ), version 110.65.

SML at CMU-Q

A reference build has been made available on the Unix clusters. To run it, you need to login into your Unix account. In Windows, you do this by firing PuTTy and specifying unix.qatar.cmu.edu as the machine name. When the PuTTy window comes up, type sml, do your work, and then hit CTRL-D when you are done.

You can edit your files directly under Unix (the easiest way is to run the X-Win32 utility from Windows and then run the Emacs editor from the PuTTy window by typing emacs - see also this tutorial).

If you want to do all this from your own laptop, you first need to install X-Win32 from here. PuTTy is pre-installed in Windows.

SML on Your Own Laptop

If you want, you can install a personal copy of SML/NJ on your laptop. To do this, download this file and follow these instructions Personal copies are for your convenience: all software will be evaluated on the reference environment on unix.qatar.cmu.edu. You need to make sure that your homework assignments work there before submitting them. To do so, you need to transfer your files onto unix.qatar.cmu.edu and test them there. You can do so by using the PSFTP utility which comes with PuTTy (or any of the many more user-friendly FTP front-ends).

Documentation

Useful documentation can be found on the SML/NJ web site. The following files will be particularly useful:

Readings

The 15-212 Wiki

The material for all lectures can be found on the 15-212 wiki. This is wiki, not a textbook. The main differences are:

The Textbook

You have been given a copy of the textbook:

Use it mainly as a reference: the lectures will not follow it.

Further References

Grading


Iliano Cervesato