Project Management

Attention

The course projects are challenging and time consuming. They may require significant effort to understand the implementation details and concepts: Start Early!

GitHub Classroom

Most of the projects in this course will come with extensive (partially complete) skeleton code, test cases, infrastructure, etc. We will distribute that code using Github Classroom. You are encouraged to use git’s version control and code merge features to work with your partner collaboratively.

Accessing the project code

Each project has a corresponding github classroom repository. When you click on the link associated with the repo, you will be asked to associate your GitHub username with the identifier used by the Github Classroom roster.

Attention

Your Github Classroom roster ID is your PennKey (i.e. the prefix of your email address before the @). For instance, my PennKey is stevez and my Github ID is Zdancewic so I would link those two accounts when I visit the link.

Cloning the repository

Once you have connected to the Github classroom assignment, you should clone the repository. On the repository page, look for the green “Code” button, copy the repository URL and then, from a terminal do:

git clone <<URL>>

For team projects, you can coordinate your code changes using git. The most important git commands you will need for this course are: git pull, git add, git commit, and git push. See the git documentation for more information about how to use them.

Submit your files Gradescope

Course projects will be submitted via Gradescope.

Each project will be accompanied by a Makefile that will build a (time stamped) zip file suitable for submission to gradescope. For example, in HW1, you would do:

> make zip
zip 'hw1-submit(2022-01-06-21:45:36).zip' hellocaml.ml studenttests.ml
adding: hellocaml.ml (deflated 67%)
adding: studenttests.ml (deflated 52%)

The result is a file called hw1-submit(<TIMESTAMP>).zip, which you should upload to Gradescope.

Project Guidelines

  1. Groups:

Teams for group projects will consist of two students.

  1. Late Projects:

    • All projects are due at 11:59pm on the due date.

    • Projects submitted late, but within 24 hours of the deadline are subject to a 10 point penalty.

    • Projects submitted late, but between 24 and 48 hours of the deadline are subject to a 20 point penalty.

    • If you have an extremely unusual circumstance, such as a serious and extended illness, contact the course instructor for special consideration.

  2. Regrade Policy:

    Regrade requests should be sent to the course staff. Only reasonable requests will be considered. The entire project or exam will be regraded. Note that this means that the score on a regraded project might decrease.

  3. Submission Policy

    • Projects that do not compile will get no credit.

    • Projects that compile will receive partial credit according to the grading guidelines provided in the project description.