|
|
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.
|
DATE |
TOPIC |
Projects Due |
READINGS |
|
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 |
Synchronizers |
P2 due 3/04 |
JCIP Ch. 5 |
|
Tu 3/08 |
Review |
|
|
|
Th 3/10 |
MIDTERM |
|
|
|
Tu 3/15 |
SPRING BREAK |
|
|
|
Th 3/17 |
SPRING BREAK |
|
|
|
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 |
Map-Reduce |
|
Lecture notes |
|
Th 4/21 |
Hadoop |
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 |
Review |
|
|
|
M 5/16 |
FINAL (10:30 am -- 12:30 pm) |
|
|