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