Final project

You will be responsible for a final project. You must work in a group of three or four people. The nature and the topic of the project is your choice, although it needs the approval of the teaching staff. See the Term Projects page on the course website for a list of potential topics, sample proposals, and additional project- related resources. Be sure to check out the corresponding project pages on previous years’ course websites, too (the final project reports are posted)! We will generally approve interesting topics about cryptography, network security, and/or computer security.

It is advisable to get started early; we will gladly accept proposals before the deadline. Early submission gives us a chance to review and approve your project proposal, and to suggest references that you may have overlooked.

The due dates for the components of the project are listed on the course calendar

The steps of the project are:

  1. Meet with TA. Students should meet with a instructor or TA to discuss potential project ideas. This may be done individually or in groups. This meeting is intended to help you brainstorm topics for your project. No written submission is required, just be prepared with ideas for your project.
  2. Post project ideas on Piazza. Every student must individually post one (or more) project ideas on Piazza. Each post should have a heading with the topic area. This is a way for students to learn about what other students are interested in and find teammates. If you have more than one idea or interest, feel free to post all of your ideas, but please use different posts with different headers.
  3. Form a team and turn in membership list. Feel free to choose your teammates as you wish. We expect groups to be three or four people
  4. Submit a multi-page project proposal and bibliography. If doing reverse engineering, security attack, or security analysis of an institute, app, or company, your group should have requested and received permission by this date. Please ask the class staff if you’re unsure whether your group needs to request permission.
  5. Meet with a member of the teaching staff to review their progress mid-semester. You may send a draft for written feedback or provide a list of main questions in advance, but are not required to do so.
  6. Give a short presentation to the class. We reserve the last few lectures for these presentations.
  7. Turn in your written report. The due date is typically on the last day of class.

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.

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.