Introduction to Computer Security Fall 2017

This course introduces the principles and practice of computer security. It aims to teach you how to model threats to computer systems and how to think like an attacker and a defender. It presents standard cryptographic functions and protocols and gives an overview of threats and defenses for software, host systems, networks, and the Web. It also touches on some of the legal, policy, and ethical issues surrounding computer security in areas such as privacy, surveillance, and the disclosure of security vulnerabilities. The goal of this course is to provide a foundation for further study in computer security and to help you better understand how to design, build, and use computer systems more securely. See the schedule for details.

Course Staff


Ariel J. Feldman

Office hours:
Mon., Wed. 2–3:30pm
or by appointment
Ry. 161A


Galen Harrison

Office hours:
Tue., Thu. 2:30–4pm
Eckhart 131

Minhaj Khan

Office hours:
Thu. 1–2:30pm,
Fri. 3:30–5pm
Eckhart 131

Mihai Andreescu

Office hours:
Mon. 12:30–2pm,
Fri. 1–2:30pm
Eckhart 131

Course Information

Prerequisites CMSC 15400
Lectures Mon., Wed., Fri. 10:30–11:20am, Ry 251
Communication We'll use Piazza for general discussion and questions about course material.
Assignments will be distributed here and be collected via chisubmit (instructions here).
Reference Books No textbook is required, but if you would like additional references, we recommend:
Cryptography Engineering by Ferguson, Schneier, and Kohno
Security Engineering by Ross Anderson
Introduction to Modern Cryptography by Katz and Lindell


The coursework consists of five homeworks, five projects, and a final exam. In addition, students enrolled in CMSC 33250 must submit a weekly paper response based on the readings, which are optional for undergraduates. All assignments must be done individually with the exception of Projects 4 and 5, which will be done in groups. Your course grade will be based on the following components:
Undergraduate (CMSC 23200) Graduate (CMSC 33250)
Homeworks 30% 20%
Projects 45% 45%
Paper Responses N/A 10%
Class Participation 5% 5%
Final Exam 20% 20%


This course owes a great deal to introductory computer security courses developed by others: