Course Policies
Attendance
Attending lectures and keeping up with the readings is crucial for success in CSE 291Y. You must not register for another class whose lecture times overlap those of CSE 291Y, even in part.
Office Hours
Your instructor and TAs will each hold regular office hours, listed on the course home page. Office hours are the best way to get extended help with the course material. Please come to office hours!
Readings and Textbooks
There is no textbook for this class. Instead, we will read and discuss research papers. These papers are listed on the Calendar and Readings page. Additional (optional) resources are listed on the Resources page.
Reading Assignments
Instead of a textbook, we will read research papers—old and new, industrial and academic, chosen (to the extent possible) to give an accessible introduction to material discussed in class. We expect that you complete all assigned reading ahead of each class meeting and come prepared to discuss the reading.
We will use the Perusall platform to annotate the readings ahead of each class. The deadline for completing the assigned readings on Perusall will be midnight before each class.
Perusall scoring is opaque; we will try to tweak the weights to give full credit if you spend time reading the paper and make a comment or two.
It is tempting to game the scoring to get full credit without engaging with the reading. Don’t! We have carefully chosen the assigned readings as the best available to help you in the class, and Perusall is your chance to clarify points of confusion before class discussion. We may dock you points if you engage in unconstructive ways. For example, highlighting a term and quoting from a Wikipedia definition for it is often unhelpful—especially if you end up quoting the wrong one of several possible definitions.
Programming Projects
The best way to learn computer security is through hands-on projects. We will have seven substantial projects in CSE 291Y. You will work on these projects individually.
Programming Project Logistics
To complete the projects you will need access to a computer or virtual machine running Linux and capable of compiling and running substantial software systems, most importantly Qemu.
It may be possible to use the WSL environment in Windows or the native Unix command-line tools in macOS, but course staff may not be in a position to help you if you run into trouble. If you have a Windows or macOS machine, consider running Linux inside a full-fledged virtual machine or dual-booting Linux from a separate partition. Alternatively, you should be able to use the department’s public Unix workstations.
Exams
Grading
The programming projects will count for 65% of your class score. (Projects 1 and 5 will each count for 5%; project 4 will count for 15%; the remainder for 10% each.)
Your reading (and comments) on the Perusall platform will count for 5% of your class score.
The final exam will count for the remaining 30% of your score.
We expect to apply the following cutoffs in translating scores to letter grades: A/B cutoff at 85%; B/C cutoff at 76%; C/D cutoff at 67%; and D/F cutoff at 58%. We may adjust these cutoffs (downward) if we determine that some assignments were more difficult than intended. Plus and minus cutoffs will be determined based on score distribution. Participation—in lecture, at office hours, and on Piazza—may affect your final grade at the margin.
Assignment Preparation and Submission
All programming projects must be submitted using Gradescope. Submissions by other means—on paper, by e-mail, etc.—will not be accepted.
Late policy
Unless otherwise stated, programming projects will be due by 11:59 PM on the due date.
Each student will have a total of seven (7) twenty-four hour extensions (“late days”) for the quarter. Late days can be used, in twenty-four hour quantums, on any programming project due date.
No additional extensions will be given for any reason. Once all late days have been used up, late assignments will not be accepted. We encourage you to hold on to your late days so you can use them in an emergency.
Each late assignment submission must indicate how many late days it uses. Once used, late days are permanently deducted from your balance. Late days cannot be reassigned after the fact.
Policy on Academic Accommodations
Collaboration Policy
You should complete the programming projects on your own. You must not discuss the programming projects with anyone else in the class except in general terms, nor with anyone who is not enrolled in CSE 291Y. This includes both people at UCSD and people not at UCSD.
If you are unsure about what constitutes allowed collaboration, ask the course staff!
Book and Internet Use Policy
You must not seek out solutions to specific assigned problems on the Internet, from computer security courses offered at other universities, or from computer security courses offered in previous quarters at UCSD. If you consult any external resources while working on an assignment, you must note those resources in your assignment submission.
If you are unsure about what constitutes allowed use of outside resources, ask the course staff!
Are Artificial Intelligence Tools Allowed?
We will treat use of artificial intelligence tools in CSE 291Y in as a violation of our academic integrity policy (see below).
Posting of Solutions
You must not post online or otherwise distribute to others your solutions to the exercises or programming projects in this course. This prohibition applies both during and after the quarter. This prohibition specifically covers posting any programming assignments to GitHub or similar sites except in a private repository.
Students violating this policy will be subjected to the academic integrity disciplinary process.
Academic Integrity
To detect instances of academic integrity violations in programming assignments we may use 3rd party software.
The penalty assessed for any violation of the academic integrity policy is a failing course grade. No exceptions.