461 Assignments

Collaboration Policy

Programming, like composition, is an individual creative process. Individuals must reach their own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write the code that solves the problem, such discussions are no longer appropriate; the program must be your own work.

Do not, under any circumstances, copy or adapt a program, code comments, or other source that is not your own individual, unassisted programming work. This includes character-by-character transliteration of another work (whether inspected visually or copied digitally), but it also includes derivative works (i.e., by renaming variable names or subtlely shifting around statements in order to try to hide that copying has occurrred). You may not make use of ChatGPT or other AI composition software. You are also not allowed to use code, comments, or results that are not your own, even when "citing" them. Writing code for use by another or using another's code in any form is academic misconduct and will be referred to the University in accordance with the University's academic regulations. You are responsible for ensuring that the code you write for the assignments is not accessible by others.

Late Submission

You should submit your work on an assignment (electronically) before its due time. If you submit your work late, we will give you credit for it on this scale:

  • 90% for work submitted up to 24 hours late
  • 80% for work submitted up to 2 days late
  • 50% for work submitted more than 5 days late

Late Days. We realize that students may need additional days to complete an assignment due to travel, religious holidays, routine medical issues, etc., and so you are allowed a total of five unpenalized “late” days during the semester. You do not need to tell us that you are applying your late day(s) -- we'll remove the late penalty at the end of the semester from the assignment(s) that benefit you the most. As and when these unforeseen circumstances arise during the semester, you should use your late day budget.

Extenuating Circumstances. If and when your late day budget is exhausted: we will grant extensions only in the case of an acommodation registered with the Office of Disability Services, a medically-documented illness, or extraordinary circumstances, in consultation with your Residential Dean, who must provide a recommendation to the course staff. Please plan your work on the assignments so that travel, interviews, athletics, religious holidays, etc. do not cause you to submit it late: a heavy workload is not an extraordinary circumstance. You should only request that your Residential Dean recommend an extension at a time when your late day budget is exhausted: otherwise you should use the late day(s).

We are not permitted to accept work after Dean’s Date, so no submissions of assignments (including Late Days) will be accepted after that deate.

Submission Grading Policy. For each assignment, you are permitted multiple submissions. By default, we will grade the submission with the latest timestamp. If you would like us to grade an eariler submission because you think it will earn a higher score or to use fewer late days, you must notify the course staff by email within 96 hours of the submission deadline.

Coding Style

All of the code you turn in for this course should have good style. Make sure that your code has proper indentation, descriptive comments, and a comment header at the beginning of each file, which includes your name, userid, and a description of the file.

Version Control

Because accidents can happen and it is good practice, we require you to use a version control system to maintain your code for this course. We ask that you setup an account with github, gitlab, or bitbucket, web-based hosting service for projects that use the git revision control system.

You must configure these services to use a private code repository. Do NOT under any circumstances make your code public, including after the course is over.

How do I git?

This page has some useful tutorials on git: Git Tutorials
In particular, tutorials 1 and 5 will be most useful for this course.

The basic git workflow in the shell (assuming you already have a repo set up):

  • git pull
  • do some work
  • git status (shows what has changed)
  • git add all files you want to commit
  • git commit -m "brief message on your update"
  • git push