In this course, each student is responsible for proposing and then carrying out an independent project of their own design. Projects can be solo projects (a single student working independently), or if they choose, students may form pairs or teams to carry out a joint project.
Projects may be in any area of computer science, subject to a few guidelines:
(1) The projects should usually have a significant coding component.
(2) The projects should have a specific, well-defined deliverable as their end goal
Students will be expected to: (1) Maintain all of their code in a GitHub repository in the course organization (2) Track their progress using a Kanban board (3) Make weekly brief reports of their progress both in written and oral form (4) Avoid "zero weeks"; i.e. there should be definite forward progress at least once every week (5) Use good coding and documentation practices (6) About every two weeks, make a longer form presentation or demo about their project.
At the end of the quarter, each student will be expected to produce a 10 minutes video presentation about their project.
It is acceptable to propose a project that cannot possibly be finished within the scope of one quarter, provided that the student can identify a specific milestone that is realistic to finish within a single quarter.
Students should bring a laptop with them to class, along with whatever connectors are needed to present over an HDMI connection.