Teaching @SUNY Binghamton
• CS 457/557: Introduction to Distributed Systems - Fall 2023, Spring 2024, Fall 2024, Spring 2025
• CS 595: Termination Project - Spring 2024
• CS 597: Independent Study - Fall 2023, Spring 2025

Teaching @Argonne National Laboratory
• Tutorial on Programming New AI Accelerators for Scientific Computing - Fall 2022
• Argonne Training Program on Extreme-Scale Computing - Summer 2022

Course Syllabus for Current Semester

Chapter of the Lecture Notes

Week 1

Class 1

Introduction 1: About distributed systems and distributed tasks

1/22/2025

Week 2

Class 2

Introduction 2: Evaluation of distributed systems

1/27/2025

Class 3

Hands-on: Nginx and Node.js

1/29/2025

Week 3

Class 4

Programming background: Java basic and network programming

2/3/2025

Class 5

Distributed communication 1: Naming, clock synchronization, and logical clocks

2/5/2025

Week 4

Class 6

Distributed communication 2: TCP/IP network model and broadcast protocols

2/10/2025

Class 7

Distributed Communication 3: IP multicast and Remote Procedure Call (RPC) &

Hands-on: XML-RPC in Java

2/12/2025

Week 5

Class 8

Distributed communication 4: Message-oriented middleware (MOM), and group communication

2/17/2025

Class 9

Distributed Computing 1: MapReduce parallel computational model

2/19/2025

Week 6

Class 10

Distributed Computing 2: Hadoop MapReduce framework &

Hands-on: Hadoop example for PageRank

2/24/2025

Class 11

Distributed Computing 3: Spark framework and resilient distributed dataset (RDD) &

Hands-on: Spark example for PageRank

2/26/2025

Week 8

Class 12

Distributed Computing 4: Storm real-time framework and graph computing system &

Mid-Semester Overview

3/3/2025

Class 13

Midterm Exam (in-class)

3/5/2025

Week 10

Class 14

Distributed Storage 1: Distributed Hash Table

3/17/2025

Class 15

Distributed Storage 2: Distributed File Systems &

Hands-on: Hadoop Distributed File System (HDFS)

3/19/2025

Week 11

Class 16

Distributed Storage 3: Distributed Mutual Exclusion

3/24/2025

Class 17

Distributed Storage 4: Distributed Leader Election

3/26/2025

Week 12

Class 18

Distributed Storage 5: Consensus

3/31/2025

Class 19

Distributed Storage 6: Concurrency Control

4/2/2025

Week 13

Class 20

Fault Tolerance

4/7/2025

Class 21

Distributed Security

4/9/2025

Week 14

Class 22

Group Project 1: The Google File System

4/16/2025

Week 15

Class 23

Group Project 2: MapReduce: Simplified Data Processing on Large Clusters

4/22/2025

Class 24

Group Project 3: Bigtable: A Distributed Storage System for Structured Data

4/23/2025

Week 16

Class 25

Group Project 4: Kafka: a Distributed Messaging System for Log Processing

4/28/2025

Class 26

Group Project 5: Zero: Memory optimizations toward training trillion parameter models

4/30/2025

Week 17

Class 27

Group Project 6: Spanner: Google's Globally-Distributed Database

5/5/2025

Class 28

Wrap-up and Final-Semester Overview

5/7/2025