Description: Description: Description: Description: Description: Description: UMD_logo

CMSC 433

Programming Language Technologies and Paradigms

Spring 2016

Course Schedule

Below is a list of lecture topics by date, as well as midterm, exam and project-due dates. The schedule is provisional and subject to change. In the readings list, "JCIP" refers to the recommended text, Java Concurrency in Practice. Materials for each lecture, including slides and source code, are also available.




Projects Due


Tu 1/26

Course intro


JCIP Ch. 1

Th 1/28

Basic concurrency: processes, threads, scheduling


JCIP Ch. 1

Tu 2/02

Testing concurrent programs


JCIP Ch. 11

Th 2/04

Thread safety: interference, data races, locks, atomicity

P0 due 2/05

JCIP Ch. 2

Tu 2/09

Synchronization: locking protocols, deadlock


JCIP Ch. 2, 10.1

Th 2/11

Synchronization: atomicity, visibility


JCIP Ch. 3

Tu 2/16

Sharing objects: publication, thread and stack confinement


JCIP Ch. 3

Th 2/18

Sharing objects: thread locality, mutability vs. immutability

P1 due 2/19

JCIP Ch. 3

Tu 2/23

Object composition: thread safety, Java Monitor Pattern


JCIP Ch. 4

Th 2/25

Object composition: state dependency, suspension, notification


JCIP Ch. 14.1-14.3

Tu 3/01

Concurrent collections: hash maps, array lists, queues


JCIP Ch. 5

Th 3/03


P2 due 3/04

JCIP Ch. 5

Tu 3/08




Th 3/10




Tu 3/15




Th 3/17




Tu 3/22

Tasks and task execution


JCIP Ch. 6

Th 3/24

Thread pools


JCIP Ch. 8

Tu 3/29

Parallelization of loops, recursion (1)


JCIP Ch. 8, 11

Th 3/31

Parallelization of loops, recursion (2)


JCIP Ch. 8, 11

Tu 4/05

Fork-join parallelism


Lecture notes

Th 4/07

The actor framework for distributed computing

P3 due 4/08

Lecture notes

Tu 4/12

Actors and akka in Java


Lecture notes

Th 4/14

Programming with actors in akka


Lecture notes

Tu 4/19



Lecture notes

Th 4/21


P4 due 4/22

Lecture notes

Tu 4/26

The Java Memory Model (1)


JCIP Ch. 16

Th 4/28

The Java Memory Model (2)


JCIP Ch. 16

Tu 5/03

Non-blocking algorithms: compare-and-swap, atomic classes


JCIP Ch. 15

Th 5/05

Non-blocking algorithms: stacks and queues

P5 due 5/06

Lecture notes

Tu 5/10



M 5/16

FINAL (10:30 am -- 12:30 pm)




Web Accessibility