Projects
Posted so far
Nothing yet. Each project's instructions appear here as a page of its own when the project is released, on the dates in the table below.
About projects
Three projects make up most of your non-exam work (alongside pre-lecture tasks). Each project is graded on correctness and performance (via automated tests) and on a code review conducted by the teaching staff during discussion section.
All three projects are individual work. Each one also gives you practice with git and GitHub beyond just committing your own code: we will push updates to the base repository that you have to merge into work you have already changed, and you will open pull requests and have them reviewed.
There is no separate homework. The short warm-up exercises that would otherwise be homework are early checkpoints of each project.
| # | Topic | Released | Checkpoints | Due | Code review |
|---|---|---|---|---|---|
| 1 | Number guessing game | Fri Sep 11 | Sep 18, Sep 25 | Fri Oct 2 | Week of Oct 5 |
| 2 | Build your own Vec | Fri Oct 9 | Oct 16, Oct 23 | Fri Oct 30 | Week of Nov 2 |
| 3 | Tic Tac Toe, and a class tournament | Fri Nov 6 | Nov 13, Nov 20 | Fri Dec 4 | Week of Dec 7 |
Project 1 is a search problem. You will write several strategies for guessing a hidden number, then measure which one is fastest and explain why.
Project 2 is where we start working closely with memory and data structures. You will build your own version of Vec, first the easy (slow) way and then the way the real one works, with memory you allocate and manage yourself.
Project 3 will be a tournament. You will write an agent that plays Tic Tac Toe, then a harder version on a 5x5 board with walls and a time limit, and at the end of the term all of your agents play each other.
Checkpoints
Checkpoints are earlier deadlines where we run your code against a subset of the final tests. They exist to encourage a few weeks of steady work, rather than cramming, and so we can find out who needs help well before the final deadline. Checkpoints also align with the most recent lecture material and help ensure you don't fall behind.
Each project has two checkpoints, each worth 1% of your course grade.
Half of the final visible test points come from re-running the checkpoint tests at the final deadline, so a missed checkpoint costs you that checkpoint's point for being late, but the code itself still earns credit when you submit it.
Code reviews
Code reviews happen during your discussion section in the week following the deadline. A member of the course staff will go through your code and your commit history with you, ask you to explain specific choices, and give you feedback.
The code review is worth 5% of your course grade per project, which is half of each project's total and as much as all of its automated tests combined.