CS 550
Spring 2015
Programming Languages
Thursdays 18:30-21:20
Korman Center 104C

Geoffrey Mainland
University Crossings 106
Teaching Assistant:
Mark Boady
Warning! This material is for an old version of the course.


CS 550 covers basic concepts of the design and implementation of programming languages, including data representation and types, functions, sequence control, environments, block structure, subroutines and coroutines, storage management.

Course Staff


Geoffrey Mainland
Office: University Crossings 106
Office hours for this semester: Mondays 4pm-5pm; Wednesdays 3pm-5pm.

Teaching Assistant

Mark Boady
Cyber Learning Center office hours: Thursdays 12pm-2pm and Fridays 4pm-6pm.

Course Communication

All course communication, including communication with course staff, will take place on Piazza. You can join the CS 550 Piazza class by following this link.

Piazza allows students to post anonymous questions and to communicate privately with course staff. Please use Piazza for all communication regarding CS 550.

Piazza is also for communicating with other students!

Course Virtual Machine

As an experiment this year, we are providing a virtual machine image containing all the software you need for CS 550. You do not need to use the course VM—all required software is also available on tux—but we expect many students will prefer working with the VM.

If you are running Windows or Linux, we recommend the free VMWare Player, available here. Unfortunately, there is not a free VMWare option for Macs. As an alternative, you may install VirtualBox.

You can download the course virtual machines at the following links:

To get the virtual machine running:

  1. Download and install either VMWare Player or VirtualBox. If you are using Windows or Linux, use VMWare Player.
  2. Download the version of the virtual machine for the software you just installed and unzip the archive.
  3. Open the virtual machine in either VMWare Player or VirtualBox.

The VM username and password are both cs550.

Note that you may need to enable VT-x in your computer’s BIOS.


Using Racket

A small document to get you started with Racket either on `tux` or with the course VM..

Using GHC

Unfortunately the default GHC installation on tux is broken—this guide will tell you how to get a working version.

Online programming language resources

A number of links containing additional information about some of the languages we will be using and/or studying.

Programming languages bibliography

A short bibliography related to CS 550. Many of the texts are available online or electronically from the Drexel library.