CMSC 433, Spring 2015
Programming Language Technologies and Paradigms
Lectures and Readings
I will generally try to post my slides within a few days of having given the lecture.
Intro
Date
Topic
Readings
Slides
Supp. Material
1/26/15
Introduction
JCIP Chap. 1
Intro
Single-Threaded Logging Server code
2/3/15
Concurrency
JCIP Chap. 2
Concurrency
Alarms Example code
and
Multi-Threaded Logging Server code
2/5/14
Thread Safety
JCIP Chap. 2
Thread Safety
ThreadSafeMultiThreadedServer code
2/6/14
Synchronization
JCIP Chap. 2, Chap. 3
Synchronization
Deadlocking code example
Happens Before Definitions
2/19/15
Sharing Objects
JCIP Chap. 3
Sharing Objects
ThreadPerConnectionServer code
3/3/15
Composing Objects
JCIP Chap. 4
Composing Objects
3/10/15
Thread Creation Patterns
JCIP Chap. 4
Thread Creation Patterns
3/24/15
Concurrent Collections
JCIP Chap. 5
Concurrent Collections
Concurrent Collections, Synchronizers and Locks
3/31/15
Executors
JCIP Chap. 6
Task Execution
4/2/15
Thread Pools
JCIP Chap. 8
Thread Pools
4/7/15
Future Design Recipe
Futures Design Recipe
4/7/15
Fork-Join Paralellsim
JCIP Chap. 8
Fork-Join Parallelism
Fork-Join code examples
04/09/15
Nonblocking Algorithms
JCIP Chap. 15, Michael and Scott paper on
non-blocking queues
Nonblocking Algorithms
Atomic Variables and Nonblocking Stack
04/14/15
RMI - Part I
Java RMI
Chat Server Code
04/16/15
RMI - Part II
Java RMI II
Compute Server Code
04/23/15
MapReduce
MapReduce
04/28/15
Hadoop
Hadoop
Hadoop Examples
05/05/14
Comparing Event-Based and Thread-Based Servers
Scalable Servers