Computer Science 161 — Computer Security (4 Units)
This course is about security in a variety of domains, including the web, networking, operating systems, and cryptography. It goes over security techniques, programming involved to repel attacks, encryption, computer safety, networking basics, and other topics. It also frequently uses real-world stories and applications as case studies.
- CS 61C
- Math 55 or CS 70
- Memory Safety
- Principles of Secure Software
- OS Security
- Cryptography, Authentication Codes and Digital Signatures
- Key Exchange and Management
- Background on Networking
- Network Attacks and Control
- Securing Internet Communication
- Web Security
- 2 Midterms
- 3-4 Homeworks
- 3 Projects
- Final Exam
- 12+ hour projects
- 2-4 hour homeworks
Choosing the Course
When should you take this?
Experience with CS168 helps when understanding the network operation and primitives, but this is not extremely important as CS161 goes over a networking crash course. It may be beneficial to take concurrently with CS162/CS168 as they overlap in some concepts.
- CS 168/EE 122: Deeper look into networking and the internet.
Usefulness for Research or Internships
- This class teaches great perspectives on security to improve coding for applications
- Security is becoming an increasingly important aspect of software engineering, and as such this class becomes more critical to a holistic understanding of computer science
- Helpful for jobs where high security and low vulnerability is required
Overall workload in the class is relatively low, except for the cryptography/file storage project, which is notoriously difficult with many edge cases.
This class is really cool because it teaches you how security is important in the entire stack, i.e. from software to hardware, and that the attacking side is just as competent in intrusion as the defending side in protection. You would be stunned by the unbelievable ways in which your privacy can be violated.
Last edited: Summer 2020