January 14, 2020

  • Lecture: Introduction

January 16, 2020

  • Lecture: Java Basics

January 21, 2020

  • Lecture: The Nature of Concurrency
  • Quizz 0 due
  • Assignment 0 due
  • Assignment 1 released

January 23, 2020

  • Lecture: Hardware and Software Basic Support for Concurrency

January 28, 2020

  • Lecture: Mutual Exclusion

January 30, 2020

  • Lecture: Monitors, Read-Write Locks, Reentrancy, Semaphores

February 4, 2020

  • Lecture: Coarse vs Fine Grained Locking

February 6, 2020

  • Lecture: Blocking Data Structures

February 11, 2020

  • Lecture: Shared Memory Registers

February 15, 2020

  • Assignment 1 due

February 13, 2020

  • Lecture: Multi-threaded Consensus

February 18, 2020

  • Lecture: Multi-threaded Consensus
  • Assignment 2 released

February 20, 2020

  • Lecture: Spin Locks and Contention

February 25, 2020

  • Lecture: Spin Locks and Contention

February 27, 2020

  • Lecture: Review for the Midterm

March 3, 2020

  • Midterm

March 5, 2020

  • Lecture: Midterm Solution

March 10, 2020

  • Lecture: Linearizability

March 12, 2020

  • Lecture: Linearizability

March 14, 2020

  • Assignment 2 due

March 17, 2020

  • Lecture: Blocking Synchronization

March 19, 2020

  • Lecture: Blocking Synchronization
  • Assignment 3 released

March 24, 2020

  • No Lecture, Spring Break

March 26, 2020

  • No Lecture, Spring Break

March 31, 2020

  • Lecture: Happens-Before Relationship

April 4, 2020

  • Lecture: Happens-Before Relationship

April 7, 2020

  • Lecture: Non-Blocking Progress

April 9, 2020

  • Lecture: Non-Blocking Progress

April 11, 2020

  • Assignment 3 due

April 14, 2020

  • Lecture: Non-Blocking Data Structures

April 16, 2020

  • Lecture: Non-Blocking Data Structures
  • Assignment 4 released

April 21, 2020

  • Lecture: Non-Blocking Data Structures

April 23, 2020

  • Lecture: Non-Blocking Data Structures

April 28, 2020

  • Lecture: Research Topics

April 30, 2020

  • Lecture: Review for the Final

May 2, 2020

  • Assignment 4 due