CS 255 Course Overview

(Spring 2002)



The course covers principles of computer systems security. We will discuss various attack techniques and how to defend against them. Topics include Network attacks and defenses, Operating system holes, application security (web, e-mail, databases), viruses, social engineering attacks, privacy, and digital rights management. Course projects will focus on building reliable code. The course is intended for senior undergraduates and first year graduate students.


The course requires an understanding of operating systems, networking protocols, and a basic understanding of programming languages. Programming projects will be done in C.

Pre-requisites: CS140 (operating systems).

Textbook Information

and research papers handed out in class.


  • There will be a weekly section on Wednesday, 6-7pm in Gates B12.
  • Attendance at the sections is optional.

Homework Assignments

  • There will be two written homework assignments, three programming projects, and two bug finding 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.
  • You must hand in all assigned work.
  • Homework assignments will be graded on a scale of 0 to 10.
  • Extensions:  each student has a total of 48 extension hours throughout the quarter. This automatic extension can be spent in units of 12 hours on any of the assignments and projects. Please mark the submission time for any late assignment.
  • Homework and projects will be due on Thursdays in class.


There will be an in class final exam. No midterm exam.


Final placement in the class will be determined by the following formula:

0.3 H + 0.5 P + 0.2 F

  • H is your average score on the two written homework assignments.
  • P is the weighted average grade on the three programming projects and two bug finding projects.
  • F is your final exam score.

Last update: January 03, 2002 by Dan Boneh