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

DateTopic 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