I use Moodle for my courses, which makes it challenging to make my course content public. The website you see below is an automatically generated approximation of my Moodle page, based on a script that I've run.

General materials

Syllabus
Course schedule
Installing Java on your own computer
Code written in class

Week 1

Readings and references

Beginner's Introduction to Java's ForkJoin Framework
Java tutorial: Concurrency
Documentation for java.util.concurrent

Assignments

Introduction assignment
Due Wed Sep 12 13:50:00 CDT 2018
Multithreaded Java exercises
Due Fri Sep 14 13:50:00 CDT 2018

Week 2

Readings and references

Gene Amdahl's statement, which led to Amdahl's Law
Gustafson's Law (web version of paper)

Assignments

ForkJoin Java exercises
Due Wed Sep 19 13:50:00 CDT 2018
Speedup analysis
Due Fri Sep 21 14:20:00 CDT 2018

Week 3

Census assignment
Census version 1
Due Wed Sep 26 13:50:00 CDT 2018
Census version 2
Due Fri Sep 28 14:20:00 CDT 2018
Reading to skim: Java memory model

Week 4

Exam 1: Mon, Oct 1

Exam 1 topics
Census version 3
Due Wed Oct 03 13:50:00 CDT 2018
Census version 4
Due Fri Oct 05 14:20:00 CDT 2018
Census version 5
Due Mon Oct 08 13:50:00 CDT 2018

Week 5

Reading: Software Transactional Memory
STM assignment
STM 1
Due Wed Oct 10 13:50:00 CDT 2018
STM 2
Due Fri Oct 12 14:20:00 CDT 2018
Reading: Chapter 2 of "The Art of Multiprocessor Programming"

Week 6

STM 3
Due Wed Oct 17 13:50:00 CDT 2018
STM 4
Due Fri Oct 19 14:20:00 CDT 2018

Readings and references

Reading: Chapter 9 of "The Art of Multiprocessor Programming"
Linked Lists slides
Reading: Java Streams / Aggegate Operations

Week 7

STM 5
Due Mon Oct 22 13:50:00 CDT 2018

Exam 2: Wed, Oct 24

Exam 2 topics
MPI lab

Readings and references

Reading: MPI (Wikipedia)
MPI Tutorial (C++ not Java, so beware, but well written nonetheless)
Java OpenMPI API

Week 8

MPI: Exercises 1 and 2
Due Wed Oct 31 13:50:00 CDT 2018
MPI: k-means clustering
Due Fri Nov 02 14:20:00 CDT 2018

Readings and references

Reading: An Intro to Distributed Systems
Intro to Distributed System slides
The Dangers of Replication and a Solution (paper by Jim Gray et al)
2 phase commit: section 5.8.3.3 of these lecture notes by Jim Gray, linked from his website
Apache Spark: The Definitive Guide
Apache Spark in-class lab, with turn ins
Due Mon Nov 05 13:50:00 CST 2018

Week 9

Spark Part 1 (preliminary): Word-to-file index
Due Wed Nov 07 13:50:00 CST 2018
Spark Part 1 (for real): Word-to-file index
Due Fri Nov 09 14:20:00 CST 2018

Readings and references

Distributed Systems textbook, by van Steen and Tanenbaum

Week 10

Spark Part 2a: clickstream data
Due Mon Nov 12 13:50:00 CST 2018
Spark Part 2b: clickstream data
Due Wed Nov 14 13:50:00 CST 2018
Reading: Byzantine Generals
Exam 3 topics
The last exam will be self-scheduled, in associati...

Week 11