Topics Schedule
Below is a list of lecture topics in the expected order of coverage,
as well as significant milestones throughout the semester.
The list is provisional and subject to change.
| TOPIC (reading) |
Course intro
Basic concurrency: processes, threads, scheduling
Thread safety: interference, data races, locks, atomicity
Synchronization: atomicity, event ordering, Java synchronized
Synchronization: volatility, deadlock
Synchronization: more details on event ordering
Sharing objects: publication, mutability vs. immutability
Sharing objects: thread and stack confinement, thread locality
|
| 03/04: MIDTERM #1 |
Object composition: confinement and issues with deadlock
Synchronization: suspension / notification tools (eg: wait/notify)
Producer/Consumer Model
Synchronization tools: semaphores, latches, Futures, etc.
Concurrent collections: hash maps, array lists, queues
Synchronizers
Simple non-blocking algorithms using Compare and Set
Parallelization of loops, recursion
Tasks, executors, thread pools
Thread pools and recusion
|
| 04/15: MIDTERM #2 |
Data parallelism
Non-blocking algorithms
Distributed computing
Fork-join parallelism
|
| FINAL EXAM - Wednesday, May 15 1:30-3:30pm |
|
Menu Options
Announcements
Syllabus
Schedule
Projects
Materials
Eclipse/CVS Info
Grades Server
Submit Server
Office Hours
|