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