A key component of this course will be an individual project. Each student will independently choose and implement a project that is:
- Relevant to the topics discussed in class,
- Requires a significant programming effort.
Project Ideas
Projects typically fall under one of these categories:
- Novel problem / task/ application.
- Formulation: formulate a new model or algorithm for a new/old problem.
- Application/survey: compare a bunch of algorithms on an application domain of interest. These make most sense if you are expecting some interesting trend or finding in the analysis.
- Analysis: analyze an existing algorithm.
Topics
You are encouraged to come up with your own topic. We will also share a document on Ed with a list of possible topics. Ideally, the topic will be related to your interests.
There can be value in combining your project with other work in one of two ways. First, if you have active research in a related area (e.g, an RA), you can do a deeper project by combining your current (supported) research with your course project. Second, it is also possible to do a single multi-disciplinary project to satisfy multiple courses. However, this must be coordinated with the other instructor(s) and you will be expected to do two (or more) projects worth of work.
Project Milestones
The project is divided into three stages to ensure steady progress:
- One-page Project Proposal: Each student will submit a proposal outlining their project idea.
- Two-page Project Progress Report: A revised version of the proposal describing accomplishments so far. Concentrate on describing sub-tasks completed, rather than the tasks started.
- Three-page Final Report: Each student will submit a technical report along with the relevant source code and documentation.
A subset of students will be selected based on their progress reports to give five minute in-class presentations at the end of the semester.
Each student must use a single Github repository for all development.
Project Proposal
Each student must prepare a one-page project proposal containing:
- What is the problem being addressed by the project?
- Why is this problem important?
- How will the student solve this problem?
- How will you validate your implementation?
- How will you evaluate its performance?
- What resources will you need? (e.g., software, hardware, data sets, or workloads)
Your proposal should provide three types of goals: 75% goals, 100% goals, and 125% goals. Think of these as the equivalent of a B grade, a A grade, and an "A+" grade. The goals can be dependent or independent of the prior goals.
Students are encouraged to meet the instructor and/or the teaching assistannts during office hours for discussion about the project. Their experience can aid you in not re-discovering many past mistakes. The report must be submitted via Gradescope.
Progress Report
Midway through the project, each student must submit a two page progress report that includes the current status of their implementation. You should update the proposal based upon any changes you have made as a result of your research so far. A re-iteration of your proposed goals, with explicit discussion about what progress you have made to date on those goals and what your time-line is for accomplishing the rest of them by the end of the semester. A well-filled-out background and related work section citing the appropriate work from the literature. A sketch of your evaluation section outlining your evaluation plan and listing (as simple as an itemized list if you wish) the major components you plan for your evaluation.
Concentrate on describing sub-tasks completed, rather than the tasks started. For example, say completed component X
rather than saying started component modifications
.
Final Report + In-Class Presentations
Each student will need to turn in a three page final report. This report should contain the following information:
- A re-iteration of your proposed goals, with explicit discussion about what progress you have made to date on those goals.
- A discussion of how you tested the correctness of your implementation.
- A discussion of the experimental results that the group collected to evaluate their implementation.
- An outline of concrete tasks for future work to expand or improve your implementation.
Around ten students will be selected to give 5-minute presentations on the final status of their project in class. These students will earn extra-credits for the project (5% of overall course grade). The talk should give highlights of the final report, including the problem, motivation, results, conclusions, and possible future work. Time limits will be enforced to let everyone present. Please, practice your talk to make it better and see how long it is. Have a plan for what slides to skip if you get behind.
Formatting Guidelines
All reports should be written using the following format guidelines:
- Overleaf Template
- Double-column
- Single-spaced
- 10pt font
- Reasonable margins
We suggest that you write all of your documents using LaTeX. It is the de-facto tool in which most CS research papers are written. Although it has a bit of start up cost, it is much easier to collaboratively write complex research papers using LaTeX than with Microsoft Word.