The course covers principles of computer systems and network security. We will discuss various attack techniques and how to defend against them. Topics include network attacks and defenses, operating system holes, web security, e-mail, botnet, malware, social engineering attacks, privacy, and digital rights management. Course projects will focus on building reliable code and understanding attacks. The course is intended for senior undergraduates and first year graduate students.
Pre-requisites: CS140 (operating systems).
There is no textbook for the class.
Instead, we will use research papers posted on the course syllabus page page for every lecture.
In addition, there is an optional online book that might be handy: Secure Programming for Linux and Unix HOWTO, by David Wheeler.
- There will occasionally be a section Friday 4:15-5:05pm in Gates B03.
- Attendance at the sections is optional.
- There will be two written homework assignments and three programming projects.
- You may collaborate when solving the written assignments, however when writing up the solutions you must do so on your own.
- All programming projects can be done in pairs.
- Each programming project will be split into two separate deliverables. The second part is usually due a week after the first.
- You must submit all assigned work electronically. Submission instructions will be provided.
- Extensions: Each student has a total of 72 extension hours throughout the quarter. This automatic extension can be spent in units of 24 hours on any of the assignments and projects. Please mark the submission time for any late assignment.
- Homework and projects will be due at 11:59pm on the specified deadline (usually Thursday).
- It is an honor code violation to consult solutions from previous CS155s.
There will be a final exam in the regularly scheduled time slot during final exam week. No midterm exam.
Final placement in the class will be determined by the following formula:
0.25 H + 0.5 P + 0.25 F
- H is your average score on the two written homework assignments.
- P is the weighted average grade on the three programming projects.
- F is your final exam score.