CS 239: Secure and Privacy-Preserving Systems

Spring 2026


Instructor: Sam Kumar

Lecture: TuTh 2:00-4:00 PM, 2232 Public Affairs Building

Office Hours: Th 4:00-5:00 PM and by appointment, 496B Engineering VI

Course announcements will posted on Piazza.


Course Description

This course explores the design of software systems with strong security and privacy guarantees. It covers core principles of secure and privacy-preserving systems, such as threat modelling and side-channel resistance; common system paradigms, such as transparency, distributed trust, and computing on encrypted data; and techniques for achieving these guarantees, such as encryption, trusted execution environments, oblivious RAM, and differential privacy. Students study privacy-preserving systems with rich functionality such as anonymous messaging, oblivious search, and collaborative computation.


Course Format

This is a lecture-based graduate course. Lectures focus on explaining the course material. Projects focus on applying the course material to build systems. Readings and presentations focus on analyzing and critiquing research papers that are relevant to the course material.


Assignments and Grading

At the end of the term, each student is assigned a grade based on the following breakdown:

As the quarter progresses, the instructor may decide to eliminate a project; if this happens, then the weight of the remaining components will each be increased proportionally (e.g., if Project #3 is eliminated, then the weights of the other four components will each be increased to 25%).


Prerequisites

There are no formal prerequisites for this course, but students are expected to have completed undergraduate coursework in either systems or security, or to have equivalent background knowledge. At the undergraduate level, relevant systems courses at UCLA include CS 111 (Operating Systems Principles), CS 118 (Computer Network Fundamentals), and CS 134 (Distributed Systems), and relevant security courses at UCLA include CS 136 (Introduction to Computer Security), CS M138/ECE M117 (Computer System Security), and CS 183 (Introduction to Cryptography).

Online Discussion Forum

We will use Piazza as an online discussion forum for this class. You must join the Piazza forum for this course. Important announcements will be made on Piazza.


Resources


Enrollment

If you are unable to directly enroll in the course, then please follow the enrollment guidelines for computer science classes. If you would like to request a PTE to enroll in this course, then please talk to me about it after the first lecture of the course.


Academic Honesty and Collaboration

You are expected to follow the UCLA Student Conduct Code.

On programming assignments, the code that you submit must be your own work (for group assignments, work completed by you and your teammates). This means that you may not include code that you find online that is specific to the assignment, or use code that is produced by AI tools (e.g., ChatGPT), in your submissions for class assignments. That said, we do encourage you to speak with your classmates about concepts covered in class as they relate to assignments, approaches and designs for completing the assignments, and strategies for debugging code for the assignments. However, sharing your code with classmates or looking at your classmates' code (for group assignments, classmates outside of your group) is not allowed.

The following are examples of acceptable collaboration on programming assignments:

The following are examples of unacceptable collaboration on programming assignments: