|
CMSC 433 Spring 2017 Programming
Language Technologies and Paradigms 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.
DATE |
TOPIC |
Projects
Due |
READINGS |
Th 01/26 |
Course intro |
|
JCIP Ch. 1 |
Tu 01/31 |
Basic concurrency: processes, threads, scheduling |
|
JCIP Ch. 1 |
Th 02/02 |
Testing concurrent programs |
|
JCIP Ch. 11 |
Tu 02/07 |
Thread safety: interference, data races, locks, atomicity |
JCIP Ch. 2 |
|
Th 02/09 |
Synchronization: locking protocols, deadlock |
P0 due 02/10 |
JCIP Ch. 2, 10.1 |
Tu 02/14 |
Synchronization: atomicity, visibility |
|
JCIP Ch. 3 |
Th 02/16 |
Sharing objects: publication, thread and stack confinement |
|
JCIP Ch. 3 |
Tu 02/21 |
Sharing objects: thread locality, mutability vs. immutability |
JCIP Ch. 3 |
|
Th 02/23 |
Object composition: thread safety, Java Monitor Pattern |
P1 due 02/24 |
JCIP Ch. 4 |
Tu 02/28 |
Object composition: state dependency, suspension,
notification |
|
JCIP Ch. 14.1-14.3 |
Th 03/02 |
Concurrent collections: hash maps, array lists, queues |
|
JCIP Ch. 5 |
Tu 03/07 |
Synchronizers |
JCIP Ch. 5 |
|
Th 03/09 |
Tasks and task execution |
P2 due 03/10 |
JCIP Ch. 6 |
Tu 03/14 |
Review |
|
|
Th 03/16 |
MIDTERM |
|
|
Tu 03/21 |
SPRING BREAK |
|
|
Th 03/23 |
SPRING BREAK |
|
|
Tu 03/28 |
Thread pools |
|
JCIP Ch. 8 |
Th 03/30 |
Parallelization of
loops, recursion (1) |
|
JCIP Ch. 8, 11 |
Tu 04/04 |
Parallelization of loops, recursion (2) |
|
JCIP Ch. 8, 11 |
Th 04/06 |
Fork-join parallelism |
|
Lecture notes |
Tu 04/11 |
The actor framework for distributed computing |
Lecture notes |
|
Th 04/13 |
Actors and akka in Java |
P3 due 04/14 |
Lecture notes |
Tu 04/18 |
Programming with actors in akka |
Lecture notes |
|
Th 04/20 |
Map-Reduce |
|
Lecture notes |
Tu 04/25 |
Hadoop |
Lecture notes |
|
Th 04/27 |
The Java Memory Model (1) |
P4 due 04/28 |
JCIP Ch. 16 |
Tu 05/02 |
The Java Memory Model (2) |
|
JCIP Ch. 16 |
Th 05/04 |
Non-blocking algorithms: compare-and-swap, atomic classes |
|
JCIP Ch. 15 |
Tu 05/09 |
Non-blocking algorithms: stacks and queues |
|
Lecture notes |
Th 05/11 |
Review |
P5 due 05/12 |
|
M 05/15 |
FINAL (8 am -- 10 am) |
|
|