CS 152: Programming Languages

Submission instructions.

This document provides instructions for submitting assignments. If you have any trouble following the instructions, or submitting your assignments, please contact the course staff.

This is the same code submission system as is used this semester by CS 51 and CS 161, and also by CS 61 last semester. You may have peers that can help you with these instructions. The basic idea is that you will set up a Git repository for your CS 152 work this semester, and then configure it so that the CS 152 course staff can see your repository. Thus, to submit your assignment, you simply make sure that you add your assignment to your Git repository, and push it to the server.

0. Prerequisites

You will need to have git installed on your computer, and an account on code.seas.harvard.edu. You may already have these. If not, see these instructions.

1. Creating your CS 152 repository

You will create your own CS 152 repository by forking a repository that we provide. The explicit steps are as follows.

  1. Create a fork of the repository https://code.seas.harvard.edu/cs152-psets by clicking the "Clone Repository" button.
  2. Navigate to the code.seas website for your cloned repository. Click the Manage Read Access link. Add the group cs152-2015-staff as a reader. This is necessary for the grading system to work.
  3. Clone your fork to some local directory.
  4. We need to tell git about the course staff's repository so you can keep up to date with new psets. Execute this in the local directory that contains your repository:
    git remote add class git@code.seas.harvard.edu:cs152-psets/cs152-psets.git

2. Setting Up Your Submission Server Account

Create an account at the CS 152 submission server, at https://harvardcs.hotcrp.com/cs152/2015.

After creating your account, copy the "Clone & push urls" URL from your repository's code.seas.harvard.edu page into the submission server page's "repository" field. Your URL is probably of the form https://code.seas.harvard.edu/USERNAMEs-cs152-psets, where USERNAME is your code.seas username.

3. Starting your assignment

You will need to keep your fork of our CS 152 repository up to date as we release additional material for new assignments. So before you start on a problem set you should always execute

git pull class master

Depending on your git configuration you might merge or rebase. The default, I believe, is to merge. The merge commit message doesn't matter.

4. Submitting Your Solutions

Name your solutions file solutions.pdf and place it into the appropriate pset directory (i.e. for assignment 3 place it in the directory named pset3).

To commit your solutions execute these commands:

cd /path/to/your/repository/psetN
git add solutions.pdf
git commit -m "Finished assignment N! I am so good!"
git push origin master:master

Warning!

This is our first time using this system. There will probably be bugs. Generally, don't trust the submission server, trust whatever the course staff states. There are fields for grades on the submission server. We may or may not use these fields. We'll keep you abreast of the plan.