Prerequisites
CSCI.4430 and CSCI.4220, or equivalent, or permission of instructor. The student should be familiar with at least one highlevel programming language and basic network programming concepts. In particular, this course will assume familiarity with Java and programming with TCP/IP sockets. Knowledge of programming language semantics and lambda calculus would be helpful but is not mandatory.
Course Themes
Theories of concurrent, distributed and mobile computing. Programming languages for concurrent distributed and mobile systems. Research topics in distributed computing over the Internet.
Learning Outcomes
When the students have successfully completed this course, they will be able to:
Date  Topic  Grade  

09/01  Course Overview. Introduction to Distributed Computing over the Internet Part I  Models/Theory.  
09/04  PiCalculus  Introduction  
09/08  PiCalculus  Operational Semantics  
09/11  PiCalculus  Bisimilarity and Congruence  
09/15  PiCalculus  Review  
09/18  Actors  Introduction  
09/22  No lecture  
09/25  No lecture  
09/29  Actors  Operational Semantics  
10/02  Actors  Expression Equivalence  
10/06  Join Calculus  
10/09  Mobile Ambients  
10/16  Partial Exam  30%  
10/20  Introduction to Distributed Computing over the Internet Part II  Programming Languages and Frameworks  
10/23  Pict: Concurrency Programming Assignment 1 Due 11/02 Using Pict  10%  
10/27  Nomadic Pict: Distribution and Mobility  
10/30  SALSA: Concurrency  Programming Assignment 2 Due 11/11  10%  
11/03  SALSA: Distribution and Mobility  
11/06  SALSA: Concurrent and Distributed Programming Techniques  
11/10  Objective CamlProgramming Assignment 3 Due 11/23  10%  
11/13  JoCaml: Concurrency  
11/17  JoCaml: Distribution and Mobility  
11/20 
Paper critique and presentation guidelines.

10%  
11/24  No lecture  
12/01 


12/04 


12/08  Final Project/Paper Presentations Proposals Due 11/10  30%  
12/11  
Class Participation Extra Credit  5% 
Please contact the instructor if there is any question about academic
(dis)honesty.