4010-441 Principles of Concurrent System Design
Winter 2012-13 (Term 20122)

This page is always accessible at www.se.rit.edu/~se441

Course Overview

Until last year, the concurrent systems course addressed both mathematical modeling of concurrency and the pragmatics of designing and implementing concurrent systems. Course feedback in the past has focused on the balance between these two parts, with many students commenting that the pragmatic engineering concerns were given short shrift. In response, we have moved the mathematical modeling is now in formal methods (on its way to a new course under semesters); thus we have time in this course to delve more deeply into principles, patterns, and concurrency mechanisms.

There is no way we can cover other than a small sample of topics in concurrent systems; new languages and libraries are coming into use frequently, each reflecting emerging ideas on organizing concurrent systems.  Thus this course will use a variety of technologies, most built on the Java Virtual Machine (JVM) to explore the promises, pitfalls, principles, and patterns of concurrency. The primary focus is on time-tested approaches to concurrency, and the way contemporary hardware and software platforms can be applied to create correct, reliable, robust and efficient concurrent systems.

Text(s)

There are two required texts for the course:

TagTitle, Author, Publisher, Date, ISBN
JCIPJava Concurrency in Practice, Brian Goetz, et. al., Addison-Wesley, 2006.  ISBN 0-321-34960-1.
PCJVMProgramming Concurrency on the JVM, Venkat Subramaniam, Pragmatic Programmers, 2011.  ISBN 978-1-93435-676-0.

I do not care where you purchase these. In particular, the Pragmatic Programmers (pragpub.com) offer several e-reader versions of PCJVM for $22.00.

If you take the e-reader route, PLEASE DO NOT DISTRIBUTE YOUR BOOK TO ANYONE ELSE! The cost is low, and this publisher much prefers distributing books without DRM locks. Do your part to support this by purchasing your own copy.

Calendar (Subject to change )

Note:

Wk Session 1 Session 2 Reading
1
(11/26)
Course overview
Activity #0(here) - due at end of class
POJC - Plain Old Java Concurrency
Lecture Questions template
Activity #1(here) - due at start of W2S2
  • Read Ch 1-2 in JCIP and Ch 1-2 in PCJVM by W1S2.
  • Read Ch. 3-4 in JCIP and Ch 3 in PCJVM by W2S1
2
(12/3)
Deadlock
Constructing and sharing objects
.
Thread-safe object sharing
Composing objects
Thread-safe class design
Activity #2 (here) - due at start of W3S2
  • Read Ch 5-6, 8 in JCIP by W3S1
3
(12/10)
Concurrent data structure approaches
Latches and Barriers

Project #1 Out (here)
Scheduling, pools, and tasks

Activity #3 (here)- due by 11:59PM of W4S2

  • Read Ch 13 in JCIP by W4S1
4
(12/17)
Locks & conditions
Wrapup of shared, mutable state
Team Project/Activity time
<<Exam #1 (one hour)>>
Team Project time after exam
Activity #3 due by 11:59PM

  • Read Ch 8 (8.1 thru 8.8, 8.13) in PCJVM by W6S1
    (Note:  Scala sections are optional)
5
(1/7)
Project #1 time
Activity #4(here) - due end of dayW6S1
(Use Project #1 teams for Activity #4)
Actors (Overview, Design, Basic operation)
Project #1 / Activity #4 time
6
(1/14)
Actors (Typed Actors)
Project #1 / Activity #4 time
Activity #4 due by 11:59PM
Actor Design
Actor Design Exercise

Project #1 due by 11:59PM
Project #2 Out (here)

  • Read Ch 6 in PCJVM by W7S1
7
(1/21)
Introduction to Transactions

Activity #5 (here)- due at 11:59PM on W8S1
Actor Design Activity review
Project #2/Activity #5 time

Software Transaction Management (STM)

Project #2 Design due at start of class
Discuss project design


 
8
(1/28)

Review for Exam #2
Project #2/Activity #5 time
Activity #5 due by 11:59PM

<<Exam #2 (one hour)>>
Project #2 time
  • Read Ch 7 in JCIP by W9S1
9
(2/4)
Fault Tolerance and Robustness in Concurrent Systems
Activity #6 (here)
Due by 11:59PM, Wed, Feb 13
Fault Tolerance in akka
Project #2 due by 11:59PM on Friday, Feb 8
  • Read Case Study by W10S1
10
(2/11)
Case Study Other approaches to concurrency
Final Review
11
(2/18)
Final Exam (same room as class)
Monday 2/18, 10:15-12:15


Resources

Grading (Subject to change)

Item Weight
In-class exam #1 15
In-class exam #2 15
Final exam (comprehensive) 20
Project #1 15
Project #2 15
Activities 15
Preparation & Participation5


Each Activity each be graded on a 10 point basis; the lowest grade will be discarded when computing the activity component of your final grade.