Assignments Spring 2022


There will be five projects, which will count for a total of 60% of your course grade. You must work individually for Project 1, may work with a partner for Projects 2–4, and must work with a partner for Project 5. You may switch partners between projects, but not within a project.

You may consult general reference material, but you may not draw on anyone else’s solution. The material you (and your partner, if applicable) turn in must be entirely your own work, and you are bound by the Honor Code. Please start early and attend lab for important instructions and extra help.

  1. Crypto Project – Part 1 due Monday, May 9 at 6 p.m.; Part 2 due Monday, May 16 at 6 p.m.
  2. Web Project – due Monday, May 23 at 6 p.m.
  3. Networking Project – due Wednesday, June 1 at 6 p.m.
  4. AppSec Project – due Friday, June 10 at 6 p.m.
  5. Forensics Project – due Tuesday, June 21 at 6 p.m.

Lab Assignments

There will be periodic lab assignments which provide an interactive introduction to programming languages and tools in the course. They will count for a total of 5% of your course grade.


For projects 1–3 and 5, EECS 388 distributes environments with all tools needed to complete each project through VS Code Development Containers using Docker. Learn more about Docker and get set up for the course with our Docker guide.


Assigned work is due at the dates and times listed above. We strongly recommend that you get started early. Late submissions will be penalized by 10% of the maximum attainable score, plus an additional 10% every 4 hours until received. Late work will not be accepted after the start of the next lab (of any section) following the day of the deadline, since we will begin reviewing solutions at that time. The professors may grant individual extensions, but only under extraordinary circumstances.

No Cheating!

We are here to provide a nurturing environment for everyone enrolled in the course. However, acts of cheating and unacceptable collaboration will be reported to the Engineering or LS&A Honor Councils, as appropriate. Cheating is when you copy (with or without modification, in whole or in part) someone else’s solution to a problem or a part of a problem. Unacceptable collaboration is the knowing exposure of your own solutions or the use of someone else’s solutions. You are expected to exercise reasonable precautions to keep your solutions confidential, including not making your project code public.

At the same time, we encourage students to help each other learn the course material. As in most courses, there is a boundary separating these two situations. You may give or receive help on any of the concepts covered in lecture. You are allowed to consult with other students about the conceptualization of a project, or the general approach for solving problems. However, all work, whether in scrap or final form, must be done by you (or your project partner where applicable).

If you have any questions as to what constitutes unacceptable collaboration or cheating, please talk to an instructor right away.