I’m not a great programmer, I’m just a good programmer with great habits. — Kent Beck
Submitting Work
All assignments are expected to be completed by pushing your code to the course Gitlab server by the end of the day given as the due date (i.e., 11:59:59pm).
- You will not "submit" projects as in other CompSci classes, instead you will be graded only on what is pushed on the
main branch of your project's repository
- You are responsible for ensuring that all files are correctly pushed to the repository on time so we recommend you push code to your repository very regularly (at least daily) to avoid excuses such as "my computer crashed"
- The final version of the code must not contain any merge conflicts (even if commented out) and must:
- All files must include your name
Projects
Programming projects are to be done individually, unless otherwise noted.
- Maze Search Algorithms (individual)
- Interpreter (teams of 2-3)
- AI Code Assistant (teams of 3-4)
- Final Project (teams of 4-5)
Files to Submit
You should submit only
- code files
- data files (json, xml, or csv)
- text files (md or txt)
- image files (gif, jpg, or png)
- sound files (mp3, au, or wav)
Make sure to give credit where credit is due: all asset files (images, sounds, etc.) must
README
A README is a plain text or Markdown file, included at the project's top level (not in a sub-folder), that introduces your project to another developer to help them get started using or working with your code.
Beyond the expected basic information, your project will not be considered complete unless the README contains the following details:
- your name and Net ID
- date you started, date you finished, and an estimate of the number of hours worked on the project
- list of the students with whom you discussed the assignment
In accordance with the Collaboration Policy, you are expected to keep track of anyone with whom you have had a significant conversation about your work
- any books, papers, online, or AI resources you consulted
- any assets (code, images, or sounds) used including links to the original work
- how to run the program
- any data or resource files required by the project (including format of non-standard files)
- any information about using the program (e.g., required resource files, key inputs, interesting example data files, or Easter eggs)
- any known bugs, crashes, or problems with the project's functionality
- any noteworthy features (so we do not miss them in the grading)
- any decisions, assumptions, or responses to user feedback that impact the project's value
Here is a template to get you started.
We would appreciate it if you also included your impressions of the assignment to help improve it in the future.