Programming Projects

There will be four projects during the semester that will count for 40% of your course grade. Unless otherwise indicated, you SHOULD work in a team of two. You may consult general reference material, but you may not collaborate outside your team. The material you turn in MUST be entirely your team’s work, and you are bound by the Student Code. Please start early. All times listed are for the US Central timezone.

  1. AppSec Project, Checkpoint 1 – due Wednesday, February 2 at 6pm Handout [AppSec.tar.gz]
  2. AppSec Project, Checkpoint 2 – due Friday, February 11 at 6pm Handout [AppSec.tar.gz]
  3. WebSec Project, Checkpoint 1 – due Wednesday, February 23 at 6pm Handout [WebSec.tar.gz]
  4. WebSec Project, Checkpoint 2 – due Friday, March 4 at 6pm Handout [WebSec.tar.gz]
  5. Crypto Project, Checkpoint 1 – due Wednesday, March 30 at 6pm Handout [moduli.hex]
  6. Crypto Project, Checkpoint 2 – due Friday, April 8 at 6pm Handout [moduli.hex]
  7. NetSec Project, Checkpoint 1 – due Wednesday, April 20 at 6pm Handout
  8. NetSec Project, Checkpoint 2 – due Friday, April 29 at 6pm Handout

Lateness: Assigned work is due at the dates and times listed above. We strongly recommend that you get started early. Late work will not be accepted after the due date. Every team will be given ONE late extension to turn in one assignment up to 24 hours after the due date. If you wish to use an extension, you MUST email the course staff at prior to the deadline. The instructors may grant individual extensions, but only under extraordinary circumstances. (Difficulty using git is not an extraordinary circumstance.)
GitHub Signup: You will submit all your assignments via Github. To create a Github repository for this course, please visit this link:

You can add (or remove) a partner from having access to your repository with this form. Note that this is a manual process, so please give us at least 48 hours to process your request. If you switch partners at any point, you MUST remove your previous partner from your repository via this form.

Collaboration: We are here to provide a nurturing environment for everyone enrolled in the course. However, violations of Illinois' Standards of Academic Integrity, such as cheating or unacceptable collaboration, will result in appropriate disciplinary action such as a failing grade on the assignment, failure in the course, probation, suspension, or dismissal from the University. Cheating is when you copy, with or without modification, someone else’s work that is not meant to be publicly accessible. Unacceptable collaboration is the knowing exposure of your own exam answers, project solutions, or homework solutions, or the use of someone else’s answers or solutions.

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 partners where applicable).

If you have any questions as to what constitutes unacceptable collaboration or exploitation of prior work, please talk to an instructor right away. You are expected to exercise reasonable precautions in protecting your own work.


Exams will be administered in person.

  1. Midterm Exam: 7:00PM - 9:00PM, March 9th, 2022 in 1002 ECEB.
  2. Final Exam: 1:30PM - 4:30PM, May 6th, 2022 in 1404 Siebel Center for Computer Science.