Link Search Menu Expand Document

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

  1. Course overview / Development environments / Source control
  2. Testing
  3. Code Reviews and Web Servers
  4. Build Systems and Deployment
  5. Testing, Refactoring, Debugging
  6. Tips for Testing
  7. Static Analysis
  8. Logging, Midterm review
  9. API Design
  10. API Design & Voting
  11. The Art of Readable Code
  12. Threading and Concurrency
  13. Web Server & Distributed System Architecture Anti-patterns
  14. Performance
  15. Monitoring & Invariant Testing
  16. Documentation, Postmortems, Team Structure
  17. 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

Back to top

“You may think using Google’s great, but I still think it’s terrible.” —Larry Page

Page last modified: May 30, 2022.