Course Project

The goal of your course project is to identify a research problem, solve it, and evaluate the effectiveness of it. At the end of the semester, you are expected to show a demo of your research prototype to class and submit a project report. The topic of your project should be one of the topics we discuss in class.

Though the course schedule has structured components to help you make progress on your project in a timely fashion, you are highly encouraged to talk to the instructor about your project's direction and progress. This is especially true if you do not have much experience in carrying out a research project.

The following is the timeline for your project.

Milestone 1: Team Formation

The first thing to do is to find your teammates. Your team can be up to 3 people.

Due

Friday of Week 2

Submission

Your "submission" is to accept the repo invite for the course project with your teammates from our GitHub Classroom. Please make sure that you do this by the end of Week 2 (Friday).

Grading

There is no grading for this milestone. However, there is a 1% penalty for missing the deadline, deducted from the final grade of your course project.

Milestone 2: Topic Selection

With your teammates, you can go through the course schedule and find a topic that is appealing to your team. Once you find a topic, you can skim through the papers listed under the topic to gain a better understanding of it.

When selecting a topic, one good starting point is to think about what you want to gain deeper understanding of. Doing research on one topic is ultimately about gaining expertise on that topic. One way to make the most out of this course is to choose a research topic that you want to gain expertise on.

Due

Friday of Week 3

Submission

Your submission is to push a file named TOPIC.md to your GitHub Classroom repo. The file should contain your team's topic written in plain text or Markdown. Please make sure you do this by the end of Week 3 (Friday).

Grading

There is no grading for this milestone. However, there is a 1% penalty for missing the deadline, deducted from the final grade of your course project.

Milestone 3: Problem Selection & Proposal

After you decide on a topic, you are expected to identify a problem to work on. The goal is to generate as many ideas as possible, settle on one problem, and write a proposal for it. Just as selecting a topic, one good starting point is to think about what you want to gain deeper understanding of.

The exact kind of problem you want to work on can depend on your topic. For example, if your topic is fuzzing, you can find a problem of fuzzing and solve the problem by implementing your solution for a fuzzing tool. If your topic is automated verification, you can write a program and verify it by using a tool like Dafny. If you are stuck, you can always talk to the instructor.

It is ideal if your platform is based on Rust. However, this is not a requirement. If your topic or problem may have nothing to do with Rust, which is fine.

Due

Friday of Week 5

Submission

Your submission is to push a plain text or Markdown file named PROPOSAL.md to your GitHub Classroom repo. The file should clearly answer the following questions.

  • What is your problem statement?
  • What is a rough idea for your solution?
  • What is your team going to build for the solution? Clearly specify the tools that you will either leverage or modify.
  • What are you going to accomplish by the intermediate demo deadline?

You might find this article useful when writing your proposal.

Grading

Your proposal is 5% toward your overall semester final grade. The grading is not based on length but quality. If you answer adequately, your proposal does not have to be long. However, keep in mind that short answers often do not contain enough information to understand clearly.

Milestone 4: Intermediate Demo

We have an intermediate checkpoint to make sure that your team is making good progress on the project. For this, we set aside some time in class for every team to show an intermediate demo. The goal is to show a demo that you have promised in your proposal. Obviously, there can be unanticipated challenges that you have not foreseen and you may not be able to show a demo as planned. This is fine as long as you make honest effort. If this is the case, you need to talk to the instructor well before the deadline (e.g., 1-2 weeks earlier) in order to come up with a new demo plan. This is entirely your responsibility. The instructor does not verify with individual teams on their plan change.

Due

Week 10 class

Submission

Your "submission" is to show a demo in class.

Grading

Your intermediate demo is 10% toward your overall semester final grade.

Milestone 5: Final Demo & Report

At the end of the semester, you are expected to show a demo of your final prototype in class. You are also expected to submit a project report. The final demos take place in the last class of the semester. The report should be in PDF and 5 pages long (excluding references) with a 10-pt Times New Roman font. The report should contain sections that roughly correspond to the following.

  • Introduction
    • Include a clear problem statement here.
  • Overview of the solution
    • Diagrams typically help for an overview.
  • Detailed description of the solution
    • Discuss your algorithms, methodologies, etc. as well as what worked and what didn't work. Include diagrams, tables, etc. as appropriate.
  • Results
    • First design and run experiments. Then plot the results and include them in your report.
  • Conclusion
    • Draw a conclusion regarding what your solution and results tell you.
  • Responsibilities
    • Describe who did what in your team.

You might find this talk useful.

Due

The final demos are during the class in Week 13. The final report is due on Dec 6.

Submission

Your submission for the final report is to push a file named final_report.pdf to your GitHub Classroom repo. This should be a PDF file, not plain text or Markdown. Please make sure that you push it to the remote repo by the deadline.

Grading

Your final demo is 10% toward your overall semester final grade, and your final report is 15% toward your overall semester final grade.