CSE 484 / CSE M 584: Computer Security (Winter 2024)
Course Location and Time
- Lecture: MWF 10:30-11:20am, in CSE2 G20
- Sections:
- Section AA: Th 12:30-1:20pm, in MEB 242
- Section AB: Th 1:30-2:20pm, in MOR 225
- Section AC: Th 2:30-3:20pm, in MOR 225
- Section AD: Th 3:30-4:20pm, in AND 008
Course Staff
Instructor: Prof. Tadayoshi (Yoshi) Kohno (yoshi@cs)
Teaching Assistants:
- Grace Brigham, TA - nbrigham@cs
- Kaiming Cheng, TA - kaiming@cs
- Sara Deutscher, TA - saradeu@cs
- Evan Lam, TA - evanlam@cs
- Lin Qiu, TA - lq9@cs
- Basia Radka, TA - basia@cs
- Anna Wang, TA - wanganna@cs
- Shaoqi Wang, TA - shaoqi@cs
Email everyone, including instructor (preferred method to reach staff): cse484-tas@cs.washington.edu
Discussion Board
Ed Discussion Board
Office Hours
- Yoshi: Wednesday 11:30am-12:15pm, CSE2 (Gates) 307 (starting January 10, 2024) (none on February 21, 2024 and March 6, 2024)
- TA Office Hours:
- Monday 2-2:50pm: Sara, Shaoqi: Allen Center 203
- Tuesday 2-2:50pm: Basia, Evan, Grace: Allen Center 303
- Wednesday 11:30am-12:20pm: Lin, Shaoqi: Allen Center 503
- Wednesday 3-3:50pm : Anna, Kaiming: Allen Center 503
- Friday 3-3:50pm: Anna, Kaiming, Sara: Allen Center 503
No Textbook
We do not have a required textbook in this course. We will share links to recommended readings on the course schedule page. If you would like information about additional readings to supplement the course material, please ask the course staff!
Topics
In this course, we will cover topics including: the "security mindset", threat modeling, software security, cryptography, malware, web security, web privacy, smartphone security, authentication, usable security, anonymity, physical security, and security for emerging technologies.
Prerequisites
CSE 332 and CSE 351
You should have maturity in both the mathematics of computer science and in the engineering of computer systems. This means that you should:
- have a good understanding of data structures and algorithms;
- be comfortable writing programs from scratch in C and Java, debugging those programs, and testing those programs;
- be comfortable writing and debugging assembly code;
- be comfortable in a command-line Unix development environment (gdb, gcc, etc);
- have a good understanding of computer architecture and operating systems;
- have a solid foundation in computer science such that you can acquire new knowledge on your own (e.g., if a part of your program is not working as you intend, you know how to use Google and other resources to help you figure out why).
And, you should be eager to challenge yourself and learn more!