# UCB CS161: Computer Security

## Descriptions

- Offered by: UC Berkeley
- Prerequisites: CS61A, CS61B, CS61C
- Programming Languages: C, Go
- Difficulty: 🌟🌟🌟🌟🌟
- Class Hour: 150 Hours

Computer Security course from UC Berkeley, devided into 5 parts:

- Security principles: how to design a secure system
- Memory safety: buffer overflow attack
- Cryptography: symmetric encryption, asymmetric encryption, MAC, digital signature .........
- Web: SQL-injection, XSS, XSRF .......
- Networking: attacks for each layer

The most impressive part to me is Project2, which requires you to design and implement a secure file sharing system in Go. It took me three full days to complete this extremely difficult project, with over 3 thousand lines of code. Such an intensive development experience can greatly enhance your ability to design and implement a secure system.

In 2020 summer semester, the lecture recordings are posted publicly, which can be found in the links below.

## Course Resources

- Course Website: <https://su20.cs161.org/>
- Recordings: refer to the course website
- Textbooks: <https://textbook.cs161.org/>
- Assignments: 7 online HWs + 3 Labs + 3 Projects

## Personal Resources

All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/UCB-CS161 - GitHub](https://github.com/PKUFlyingPig/UCB-CS161).
