CS 360
Winter 2018
Programming Language Concepts
CS 360-001 Tuesday/Thursday 15:30-16:50 (Rush 209)
CS 360-002 Tuesday/Thursday 14:00-15:20 (Rush 209)
CS 360-003 Tuesday 18:30-21:20 (UCross 151)

Geoffrey Mainland
Office: University Crossings 106
Office hours: Mondays 4pm–7pm; Thursdays 5pm–6pm.
Teaching Assistant:
Xiao Han
CLC office hours: Tuesday 12pm–2pm; Thursday 6pm–8pm
Allen Yang
CLC office hours: Wednesday 6pm–8pm


CS 360 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: Mondays 4pm–7pm; Thursdays 5pm–6pm.

Teaching Assistant

Xiao Han (xh78@drexel.edu)
CLC office hours: Tuesday 12pm–2pm; Thursday 6pm–8pm
Sean Grimes
CLC office hours: Friday 2pm–4pm

There are other TAs, who are qualified to help you with CS360. See the Cyber Learning Center web site for their office hours.

Course Text

There is no required text for CS 360.

Course Discussion

All course communication, including communication with course staff, will take place on Piazza. You can join the CS 360 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 360.

Piazza is also for communicating with other students!

Course Software

Course Software on tux

All required course software is provided on tux. If you do not have an account on tux, you can get one here.

We will use several software packages in cs360, in particular Racket and GHC, for which only older versions are available on tux. We provide more recent versions of these packages, which we will use to grade your homework. If you are using tux to do the homeworks, please append the following line to your .bash_profile file (in your home directory) on tux:

source ~mainland/cs360/cs360.sh

We recommend you read cs360.sh and understand what it is doing! You will need to log out and then log back in for these changes to take effect.

You can make sure you have the correct versions of racket and ghc in your PATH by using the which -a command at the command line. It should output something like this:

[mainland@tux64-11 ~]$ which -a racket
[mainland@tux64-11 ~]$ which -a ghc
[mainland@tux64-11 ~]$

Course Virtual Machine

We also provide a virtual machine image containing all the software you need for CS 360. 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. The VM already contains up-to-date versions of Racket and GHC, so if you use the VM, you do not need to take any extra steps to get the correct versions of these programs.

Drexel provides free copies of VMWare Workstation (for Windows or Linux) and VMWare Fusion (for Mac) via DreamSpark. You should have received an email on the first day of the term, from “The College of Computing and Informatics- DreamSpark Premium noreply@kivuto.com”, with information about your DreamSpark account. If you have problems accessing DreamSpark, please first go to http://www.cci.drexel.edu/msdnaareset and enter your Drexel short form email address (abc123@drexel.edu) to have the account information and instructions for connecting sent to you again. If the above link tells you that you do not have an account, or if you are still unable to access DreamSpark, please send email to ihelp@drexel.edu.

To get the virtual machine running:

  1. Download and install either VMWare Workstation or VMWare Fusion.
  2. Download the course virtual machine here.
  3. Unzip the archive.
  4. Open the virtual machine in VMWare.

The VM username and password are both cs360.

Note that in order to run the virtual machine, you may need to enable VT-x in your computer’s BIOS.

Other Resources

Using Racket

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

Using GHC

A similar guide to getting started with GHC.

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 360. Many of the texts are available online or electronically from the Drexel library.