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

The following instruction apply to all assignments. Individual assignments can be found on the course schedule

Make note:

  1. Code that does not compile will receive a zero.
  2. You do not need to submit anything on BlackBoard for any homework assignment.
  3. Be sure to push your work to GitHub. If you do not push to your GitHub repository, we cannot grade your code and you will not receive credit.

Homework Submission

All assignments will be submitted using GitHub.

You must accept each assignment on GitHub classroom by clicking the link provided in the assignment description. Clicking the link will automatically clone a homework repository template for you. You will submit your changes by pushing to this repository.

Please connect your GitHub account to your username using this web application. The web application will ask for permission to view the email addresses associated with your GitHub account—this is how we associate your GitHub account with your Drexel username. If you don’t do this, we can’t give you credit for your homework because we won’t know which GitHub account is yours!

Testing Your Code

Your code must run either on tux or on the course VM using the versions of Racket/GHC/etc. that we provide. Make sure you read the instructions for getting the course software on tux.

You can check that your code compiles by typing make. If make does not complete successfully, it means your code does not compile.

We have included several test for your convenience. Passing all provided tests does not guarantee full credit, but failing tests does guarantee less than full credit. You can run the tests by typing make test.

Testing with TravisCI

For continuous integration, we will use travis-ci.com, not travis-ci.org.

Unfortunately, TravisCI has a few issues:

Fortunately, you can run all tests yourself, which we suggest you do regardless of whether or not you also check TravisCI.

To use TravisCI, you will need to give TravisCI permission to access your GitHub account by logging in to travis-ci.com. Once you have done this, you can view continuous integration results for your CS 360 assignments at https://travis-ci.com/profile/DrexelCS360. We will automatically enable TravisCI for your repositories, but it may take some time. Note that TravisCI must be enabled for your repository before you push a commit to GitHub if you want TravisCI to test that commit.

Reporting Homework Statistics

For all assignments after Homework 0, we ask you to report how long each problem took you to complete. These times should be reported in the README.md file in your homework repository—each problem will have a separate place for you to provide a time estimate. These entries are parsed automatically so the TA no longer has to spend 4 hours with a spreadsheet recording times; you may enter time estimates in any format listed here. Please enter times using the requested format, as that will make it easy for us to automatically collect. We are happy to read additional comments you have, but please put them after your recorded time. Here is the reporting format you should use:

Problem 1: 5m

Here's why this problem was easy.