Computer Science 161 — Computer Security (4 Units)

Course Overview

Summary

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.

Prerequisites

  • CS 61C
  • Math 55 or CS 70

Topics Covered

  • 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

Workload

Course Work

  • 2 Midterms
  • 3-4 Homeworks
  • 3 Projects
  • Final Exam

Time Commitment

  • 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.

What's next?

  • 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

Additional Comments/Tips

  • Discussion section is very useful, because problems presented in lecture can be on a high level, and working in smaller groups helps you understand it much better

  • 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 essentially 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: Fall 2016