Lectures
Lectures will be given live in Physics and Astronomy 1425 each Tuesday and Thursday from 4-5:50 PM. Lectures will not be recorded but videos of past fully-online lectures from Spring 2020 are available by request to students with legitimate need. (Content and voiceover will be slightly different and may reference the early days of Covid-19 in awkward or depressing ways.)
Lecture presentation slides will be posted before lecture and will only be available to users logging in from their @g.ucla.edu accounts.
Slides will also be available for lab sessions.
Table of contents
- Course overview / Development environments / Source control
- Testing
- Code Reviews and Web Servers
- Build Systems and Deployment
- Testing, Refactoring, Debugging
- Tips for Testing
- Static Analysis
- Logging, Midterm review
- API Design
- API Design & Voting
- The Art of Readable Code
- Threading and Concurrency
- Web Server & Distributed System Architecture Anti-patterns
- Performance
- Monitoring & Invariant Testing
- Documentation, Postmortems, Team Structure
- Guest Lecture: Production Software Engineering
Course overview / Development environments / Source control
- Lecture
- 1
- Date
- Tuesday, March 29
- Links
- Slides
Testing
- Lecture
- 2
- Date
- Thursday, March 31
- Links
- Slides
Code Reviews and Web Servers
- Lecture
- 3
- Date
- Tuesday, April 05
- Links
- Slides , Rubber Duck Responds
Build Systems and Deployment
- Lecture
- 4
- Date
- Thursday, April 07
- Links
- Slides
- Reading
- Why Google Stores Billions of Lines of Code in a Single Repository
Testing, Refactoring, Debugging
- Lecture
- 5
- Date
- Tuesday, April 12
- Links
- Slides
Tips for Testing
- Lecture
- 6
- Date
- Thursday, April 14
- Links
- Slides , Rubber Duck Responds
Static Analysis
- Lecture
- 7
- Date
- Tuesday, April 19
- Links
- Slides , GDB & Valgrind Demo
- Reading
- A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World
Logging, Midterm review
- Lecture
- 8
- Date
- Thursday, April 21
- Links
- Slides
- Reading
- Kqueue: A generic and scalable event notification facility
API Design
- Lecture
- 9
- Date
- Tuesday, April 26
- Links
- Slides
API Design & Voting
- Lecture
- 10
- Date
- Tuesday, May 3
- Links
- Slides
The Art of Readable Code
- Lecture
- 11
- Date
- Thursday, May 5
- Links
- Slides
Threading and Concurrency
- Lecture
- 12
- Date
- Tuesday, May 10
- Links
- Slides
- Reading
- Real-world Concurrency
Web Server & Distributed System Architecture Anti-patterns
- Lecture
- 13
- Date
- Thursday, May 12
- Links
- Slides
- Reading
- 2003 The Google File System , 2004 MapReduce: Simplified Data Processing on Large Clusters , 2006 Bigtable: A Distributed Storage System for Structured Data , 2010 Dapper, a Large-Scale Distributed Systems Tracing Infrastructure , 2012 Spanner: Google’s Globally-Distributed Database
Performance
- Lecture
- 14
- Date
- Tuesday, May 17
- Links
- Slides
Monitoring & Invariant Testing
- Lecture
- 15
- Date
- Thursday, May 19
- Links
- Slides
Documentation, Postmortems, Team Structure
- Lecture
- 16
- Date
- Tuesday, May 24
- Links
- Slides
Guest Lecture: Production Software Engineering
- Lecture
- 17
- Date
- Tuesday, May 26
- Links
- Slides