CS 360
Winter 2017
Programming Language Concepts
CS 360-001 Tuesday/Thursday 15:30-16:50 (Rush 9)
CS 360-002 Tuesday/Thursday 14:00-15:20 (Rush 9)
CS 360-003 Tuesday 18:30-21:20 (Science Center 326, 3401 Market)

Instructor:
Geoffrey Mainland
mainland+cs360@drexel.edu
Office: University Crossings 106
Office hours: Mondays 4pm–7pm; Thursdays 5pm–6pm.
Teaching Assistant:
Xiao Han
CLC office hours: Monday 2pm–4pm; Friday 3pm–5pm
Warning! This material is for an old version of the course.

All assignments will be submitted using GitHub. The following schedule is tentative.

Due Date Assignment
1/13 (Friday) 11:59PM Eastern Homework 0: GitHub
1/16 (Monday) 11:59PM Eastern Homework 1: Scheme
1/23 (Monday) 11:59PM Eastern Homework 2: More Scheme
1/30 (Monday) 11:59PM Eastern Homework 3: Working with the Metacircular Interpreter, Parts I and II
2/6 (Monday) 11:59PM Eastern Homework 3: Working with the Metacircular Interpreter, Part III
2/20 (Monday) 11:59PM Eastern Homework 4: Logic Programming in Prolog
2/27 (Monday) 11:59PM Eastern Homework 5: Haskell
3/13 (Monday) 11:59PM Eastern Homework 6: Implementing Semantics
3/20 (Monday) 11:59PM Eastern Homework 7: Finite Automata and Regular Expressions

Submitting using GitHub

This year, all homework will be submitted using GitHub. You will push your submissions to the repository git@github.com:DrexelCS360/USERNAME.git, where USERNAME is your Drexel username. This is the username you use to log in to Blackboard Learn. Usually your Drexel username is the same as your tux login name.

We will create this repository for you, but in order to do so, you must first set up a GitHub account as follows:

  1. If you do not already have a GitHub account get one here. You may choose whatever name you like for your GitHub login—it does not have to match your Drexel username.

  2. Make sure your primary GitHub email address is set to your short-form Drexel email address, consisting of 2-3 letters followed by several numbers.

  3. Make your GitHub email address public.

We must run a script to create your repository, which we will do several times a day through the first week of class. Once we have created your homework repository, you may change your primary GitHub email address to whatever you want or make it private, but please only do so after your repository has been created. When your repository is created, you will receive an email from GitHub inviting you to a team in the DrexelCS360 organization. Invitations can be accepted at the Drexel CS360 GitHub page.

Your homework repository should be organized so that homework N is in the directory hwN, i.e., we will look for homework 1 in the directory hw1. Case matters. All your homework submissions will be contained in a single repository that only you and the course staff can access.

Homework templates are provided in the DrexelCS360/homeworks repository on GitHub.

Making sure your GitHub email address is public

There are two steps you must take to make your email address public on GitHub.

  1. First, add your email address as the primary address and make it public in the “Emails” portion of your GitHub account settings, as shown here: GitHub account email settings

  2. Then, make sure that in the “Profile” portion of your GitHub account settings, you have chosen your public email address, as shown here: GitHub account profile settings