UCLA CS 130: Software Engineering (Fall 2026)
Table of contents
- Course description
- Important links
- Instructors
- Lectures
- Discussions / TAs
- Prerequisites
- Textbook and Readings
- Class project
- Exams
- Grading
- Academic Honesty
- Use of AI tools
- Class Schedule
Course description
Principles relevant to creating large-scale software projects as opposed to small one-person efforts. The class emphasizes scalable software engineering practices, teamwork, processes, and tools. The core of this class is a team project to implement and deploy a web server in C++.
Important links
- Code Review (Git/Gerrit)
- https://code.cs130.org
- Piazza discussions
- https://piazza.com/ucla/fall2026/cs130
- E-mail instructors
- ucla-cs130-admin@googlegroups.com
Instructors
- Michael Burns
- mbx@g.ucla.edu
- Alex Monroe
- alexrmonroe@gmail.com
- Philo Juang
- pjuang@google.com
Lectures
- Class
- Mondays and Wednesdays
4pm - 5:50pm
Franz Hall 1178 - Office hours
- Book online or e-mail instructors to schedule.
Discussions / TAs
- TA
- Maanaskumar Gantla gantlam@cs.ucla.edu
- TA
- Joshua Zhu joshuazhu@cs.ucla.edu
Prerequisites
- CS111: Operating Systems
- CS131: Programming Languages
- (Suggested) CS118: Networking
Textbook and Readings
- (Suggested) Kernighan and Pike, The Practice of Programming
- Additional readings on the web
Class project
During this course you will join a team of other students and complete a project in which you will jointly develop a configurable, scalable server and deploy it for public access on Google Cloud with appropriate logging and monitoring. The goal of this is to learn and practice sound development practices including thoughtful API design, maintainable coding style, automated testing, and peer code review.
Assignments will be posted on this website each Tuesday before midnight for specific milestones of the project, and will be due the following Tuesday at 11:59PM, submitted via online form. Students will be graded on their individual contributions for each assignment, as well as the health of the project and the functionality of the server.
Assignment topics include:
- Repository setup, Unit tests, Code reviews (individual assignment)
- Simple echo server, Deployment
- Continuous build, Test coverage, Web server testing
- Serving static files
- API proposal and presentation (no late work accepted)
- Refactoring
- Reverse proxy, Threading
- Self and peer evaluations (individual assignment)
Exams
Exam questions will be drawn from lectures, readings, and assignments.
Grading
Course grade breakdown:
- Assignments
- 50%
- Instructor Assessment
- 20%
- Midterm
- 15%
- Final
- 15%
Work and exams will be graded on an absolute scale.
A curve may be applied, but only to students’ benefit (your grade will never decrease as a result of a curve)
Academic Honesty
For exams, presentations, and written work (other than code), normal standards of academic honesty apply, as outlined in the UCLA Student Conduct Code.
For computer code, reading and adapting publically available code is encouraged, and in some cases may be necessary. You must cite your source in a comment, in the form of a URL.
Use of AI tools
Knowing how to work effectively with AI coding tools is a valuable skill, and you’re welcome to use them in this class. But much of what this course teaches comes from doing the work yourself: reading unfamiliar code, designing an API, tracking down a bug, and figuring out why a build is broken. Those problem-solving skills are what make you effective as an engineer, with or without AI, and they only develop through practice. Please use AI in a way that supports your learning rather than replacing it.
Encouraged:
- Using AI to help write portions of your code, as long as you understand and can explain what it wrote.
- Asking AI to explain an error message, a library, or an unfamiliar concept.
- Asking AI debugging questions when you’re stuck.
Please avoid:
- Having AI “one-shot” an entire assignment or milestone.
- Handing a task your teammates asked you to do to an AI agent to complete on its own. Your team is counting on you to understand and own your part of the project.
You are responsible for every change you upload for review. Expect your teammates, graders, and instructors to ask you about your code, and be prepared to explain it.
Communicating with us
When you e-mail us, post on Piazza, or submit a regrade request, please write in your own words. It’s fine to use AI to check your grammar or tighten your wording, but please don’t send unedited AI-generated text. We want to hear from you, and a short message in your own voice is easier for us to understand and respond to than a long generated one.
Class Schedule
| Date | Lecture | Title |
|---|---|---|
| Monday, September 28, 2026 | 1 | Course Overview & The Dev Workflow |
| Wednesday, September 30, 2026 | 2 | Practical Testing & Testability |
| Monday, October 5, 2026 | 3 | HTTP Basics & Code Reviews |
| Wednesday, October 7, 2026 | 4 | Build Systems & Containerization (Docker) |
| Monday, October 12, 2026 | 5 | Cloud Deployment & CI/CD |
| Wednesday, October 14, 2026 | 6 | Server Architecture & AI as a Co-pilot |
| Monday, October 19, 2026 | 7 | Static Analysis & The Art of Readable Code |
| Wednesday, October 21, 2026 | 8 | Refactoring & Debugging Strategies |
| Monday, October 26, 2026 | 9 | API Design & Web Security |
| Wednesday, October 28, 2026 | Midterm | |
| Monday, November 2, 2026 | 10 | API Design & Voting |
| Wednesday, November 4, 2026 | 11 | Project management, Security & Privacy |
| Monday, November 9, 2026 | 12 | Scaling a Web Service |
| Wednesday, November 11, 2026 | None | Veterans Day (no class) |
| Monday, November 16, 2026 | 13 | Monitoring & Dashboards |
| Wednesday, November 18, 2026 | 14 | Documentation & Postmortems |
| Monday, November 23, 2026 | 15 | Deployments, Experiments & Launches |
| Wednesday, November 25, 2026 | None | Thanksgiving Break (no class) |
| Monday, November 30, 2026 | 16 | Team Structure & Your Career |
| Wednesday, December 2, 2026 | 17 | Team presentations |
| Thursday, December 10, 2026 | Final |