Projects

This is a project-based course, with a collaborative term project taking the place of a final exam. Students will work together in groups on a project that examines algorithms and real world applications. The project is open-ended and students will decide on the particular algorithm(s) and real world application(s) to study, as well as how to pursue that study.

Types of Projects

Most projects take one of two forms:

Research Investigation / Survey Paper. Focuses on reading research to understand how algorithms are used in a certain real-world context or for a certain application. Should demonstrate broad knowledge, synthesize many credible sources, and have highly polished writing. Final report takes the form of a survey article, possibly arguing a thesis. Topics might include studying racial bias in deployed algorithmic systems or studying the impact of recommender systems on online music streaming platforms. As a concrete example, here is a professional survey article on the algorithmic generation of “deepfakes” (accessible through Duke library or on arXiv).

Applied Implentation / Coding. Focuses on implementing algorithms and developing / testing code to solve a problem of real-world interest. Less comprehensive research/reading than a research investigation / survey but substantiated by a working codebase and experiments and/or demos. Should focus on the implementation of core algorithms rather than the interface or software framework(s). Final report takes the form of a discussion of algorithms, implementation, and results. Topics might include building a mobile routing application, a web-based recommender system, or a program that plays games like chess or Atari.

Project Collaboration

Fall 2021 project teams.

Despite the stereotypes, computer scientists almost never work alone. The reality is that significant real-world projects in computer science are almost always pursued by teams. This will allow you to set more ambitious goals and accomplish much more in your projects than if you were to work alone.

Students will be matched to project groups of four or five students based on topic interests expressed in a project survey. Students can also request to be placed in a group together; we will try to accommodate such requests during matching.

Deliverables are submitted by the group, not individuals. In general, each student will get the same grade on those deliverables. However, each individual student in a group is responsible for contributing toward the project, both the research/coding and the writing. For each deliverable, individuals will need to state their particular contributions. In addition, we will conduct peer evaluation to assess the overall team dynamics and contribution of individuals toward the team. This will be taken into account during grading, especially the individual contribution component of the grade.

Timeline and Deliverables

Major project deliverables are briefly summarized here. More detailed directions will be available for each individual deliverable in the course box folder.

  • Mini-Project (due 9/21). A 3-4 page written document providing a research investigation / survey paper on a real world application domain of algorithms. Students will be placed into random groups early in the course to complete the mini-project.
  • Project-Formation Survey (due 9/28). A survey about what kind of project you would like to do, topics of interest, your skills and strengths, and (optional) who you would like to work with.
  • Proposal (due 10/19). A 2-3 page written document detailing a specific research project, including introduction and research questions, motivation, related work, proposed methods, and timeline. Also includes a brief (3-4 minute) presentation to the class.
  • Prototype (due 11/16). A 4-5 written document that presents preliminary results along with any challenges or changes to the proposal.
  • Final Report (due 12/9). A 6-8 page written document combining the elements of the proposal and prototype, along with more detailed results, analysis, and discussion. Should address feedback provided for the proposal and prototype. Also includes a longer (6-8 minute) presentation to the class.