Link Search Menu Expand Document

Lectures

Lectures will be given live in Young CS 76 each Monday and Wednesday from 4-5:50 PM. Lectures will not be recorded or live streamed.

Lecture presentation slides will be posted before lecture and will only be available to users logging in from their @g.ucla.edu accounts.


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, Dependency Injection
  6. Tips for Testing
  7. Static Analysis
  8. Logging, Midterm review
  9. API Design
  10. Threading and Concurrency (remote, in place of postponed midterm)
  11. API Design & Voting
  12. Web Server & Distributed System Architecture Anti-patterns
  13. The Art of Readable Code

Course overview / Development environments / Source control

Lecture
1
Date
Monday, April 1
Links
Slides , Check-in

Testing

Lecture
2
Date
Wedneday, April 3
Links
Slides , Check-in

Code Reviews and Web Servers

Lecture
3
Date
Monday, April 8
Links
Slides , Check-in

Build Systems and Deployment

Lecture
4
Date
Wednesday, April 10
Links
Slides , Check-in
Reading
Why Google Stores Billions of Lines of Code in a Single Repository

Testing, Refactoring, Dependency Injection

Lecture
5
Date
Monday, April 15
Links
Slides , Check-in

Tips for Testing

Lecture
6
Date
Wednesday, April 17
Links
Slides , Check-in

Static Analysis

Lecture
7
Date
Monday, April 22
Links
Slides , Check-in
Reading
A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World

Logging, Midterm review

Lecture
8
Date
Wednesday, April 24
Links
Slides , Check-in
Reading
Kqueue: A generic and scalable event notification facility

API Design

Lecture
9
Date
Monday, April 29
Links
Slides , Check-in

Threading and Concurrency (remote, in place of postponed midterm)

Lecture
10
Date
Wednesday, May 1
Links
Slides , Check-in
Reading
Real-world Concurrency

API Design & Voting

Lecture
11
Date
Monday, May 6
Links
Slides , Check-in

Web Server & Distributed System Architecture Anti-patterns

Lecture
12
Date
Wednesday, May 8
Links
Slides , Check-in
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

The Art of Readable Code

Lecture
13
Date
Monday, May 13
Links
Slides , Check-in

Back to top

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

Page last modified: May 14, 2024.