Final project
The final project is a major component of this course. It is a great opportunity to learn more about a topic that interests you and to exercise your creativity at the same time. Many course projects have the potential to turn into full-blown research papers. Some student projects also have serious real-world impact. On top of all that, the project counts for 40% of your final grade.You will complete the final projects in groups of three or four students. We will explain how that works in a moment.
There are three components to the final project:
- "checkpoint" assignments that your team will submit throughout the semester,
- a final-project presentation that you will deliver in class, and
- a written report that you will submit at the end of the semester. (We will post the written reports online at the end of the semester.)
Timeline and assignment details
The due dates for the components of the project are listed on the course calendar Important:We will not allow extensions on components of the final project. This is to make sure that your team stays on schedule to complete the project by the end of the semester. For undergraduates: If something exceptional comes up that prevents you from submitting a project assignment, please follow the steps listed on the course policies pageStep 1: Brainstorm project ideas.
Your first task is to come up with a potential project idea. Your idea does not need to be fully baked, but you should have done enough reading to make sure that it is plausible. The project topic you submit here will most likely not be the topic that you work on during the semester. The idea is just to get you thinking and help you find a project team.If you are not sure where to start, do not be intimidated! Some resources to aid your brainstorming are:
- Projects from past version of this course. There are many years of projects posted on the old course websites You must choose a new topic, but past reports might help you generate ideas.
- Ron Rivest's comprehensive list of crypto resources.
- The course staff! Please feel free to ask the course staff on Piazza for ideas, either on a specific topic or in general.
Deliverable:
You must write 4-5 sentences on your project idea.
If you are looking for a team or more teammates:
You should post your project idea on Piazza in
the "Search for Teammates!" thread.
If you have a team already:
You should make a single post in a new thread
with the names of your team members
and one candidate project idea per team member.
(That is, 4-5 sentences per team member.)
Step 2: Form a project team.
You must form a final project team by the date listed on the course calendar. Your team need not be the same as your homework groups, although it can be if you like. Your team must consist of three or four students. Students who need help finding a project group should contact the staff.The composition of your team may change over the course of the semester, as students drop the class, etc. If a serious problem arises within your team that you cannot resolve on your own, please contact the course staff via a private question on Piazza. It is possible to dissolve and reform teams mid-semester with permission of the course staff.
Once you have formed a team, your team members must meet at least once per week throughout the semester. To ensure this, we ask you to agree on a fixed weekly meeting time. All team members must commit to attending a project meeting at that time.
Deliverable: You must submit via Gradescope a document containing
- a list of your team members,
- one or more tentative project ideas that you all are excited about (just one sentence is fine), and
- a weekly meeting time that all of your team members can make.
Step 3: Submit project check-in reports.
At many points in the semester, we will ask you to submit a project "check-in" document via Gradescope.Deliverable: This document just lists:
- the status of your project (two sentences),
- [if this is a check-in that follows a TA meeting] how your project plans will change in response to the TA feedback (two sentences),
- what each team member did since submitting the last check-in (one sentence), and
- what each team member plans to do before the next check-in (one sentence).
Step 4: Meet with a TA for feedback on project topic.
Early on, your team will meet with a TA to discuss your project topic and planned approach. The TA will give you feedback and suggestions. Please include a brief response to this feedback in the following check-in report. This TA will almost certainly be the TA who grades your written project report at the end of the semester. Your TA approve your project idea.If your project will attack a real system in any way, you must get permission from the person/organization behind the system you plan to attack or analyze. (See the "Computing Ethics" section of the course policies.) You must list the people/organizations you will ask for permission in this week's check-in report.
Deliverable: A 15-minute meeting with a TA, plus a response to the TA feedback in your weekly check-in report. The TAs will announce their plan for scheduling these meetings mid-way through the semester. All members of your team must be present for full credit.
Step 5: Submit project proposal.
Once you have finalized your project topic, you must submit a brief project proposal that describes the topic you plan to study, why it is important, what is known about it already (i.e., key references), what you plan to do, and what results you expect.If you are doing reverse engineering, an attack, or a security analysis of an institute, app, or company, your group should have requested and received permission from the relevant people/organizations by this date. Please ask the class staff if you are unsure whether your group needs to request permission.
Deliverable: A one-page document, typeset in Latex, that summarizes your project topic. Ideally, this document can become the introduction to your final written report. It must be roughly 500 words and typeset in 12-point font.
Step 6: Meet with a TA for feedback on your approach and progress.
Midway through the project, your team will meet with a TA to discuss your progress and any challenges you are dealing with. The TA will give you feedback and suggestions. Please include a brief response to this feedback in the following check-in report.Deliverable: A 15-minute meeting with a TA, plus a response to the TA feedback in your weekly check-in report. The TAs will announce their plan for scheduling these meetings mid-way through the semester. All members of your team must be present for full credit.
Step 7: Present results in class.
We will dedicate the last few lecture slots of the semester to final-project presentations.Deliverable: Your team will give an eight-minute presentation on your work and then will answer questions for roughly two minutes. For full credit, you must:
- have each team member present a part of the work,
- observe the time limit, and
- attend all of the project-presentation sessions (not just your own!) in person.
Step 8: Submit final written report.
The last step in the project is the final report. The final report is due on the last day of the semester.We will post your project reports on the class website at the end of the term. We may make exceptions if your report discloses vulnerabilities that a vendor is still patching; in that case we will post the report at the end of the summer, or at another agreed-upon time.
Deliverable: Your final report should be roughly 3,500--4,000 words long (not including references), typeset in Latex in 12-point font. Your report must somewhere explain which team members contributed which pieces of the final product.
Logistics
Grading
The grading breakdown will be:
- Post of project idea on Piazza: 2%
- List of team members: 3%
- Check-in reports: 15%
- Proposal: 10%
- Presentation: 35%
- Written report: 35%
Legal advice and ethics
Please make sure to review the "Computing Ethics" section of the course policies page. No matter the topic of your project, we expect you to make responsible use of MIT's computing resources and to do not harm to the computer systems of others.
If, in the course of completing your final project, legal issues arise, you can take advantage of the (free!) BU/MIT Technology Law Clinic.
If at any point you are unsure about a legal or ethical question relating to your project, please contact the course staff early on and we can try to work through it with you and/or put you in touch with people who can give you expert advice.
Course website design courtesy of PDOS and Katrina LaCurts.