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 lambdacalculus would be helpful but is not mandatory.
Date  Topic  Grade  

01/18  Course Overview. Introduction to Distributed Computing over the Internet Part I  Models/Theory.  
01/22  PiCalculus  Introduction  
01/25  PiCalculus  Operational Semantics  
01/29  PiCalculus  Bisimilarity and Congruence  
02/01  No lecture  
02/05  No lecture  
02/08  Actors  Introduction  
02/12  Actors  Operational Semantics  
02/15  Actors  Expression Equivalence  
02/20  Mobile Ambients  
02/22  Join Calculus  
02/26  Partial Exam  20%  
03/01  Introduction to Distributed Computing over the Internet Part II  Programming Languages and Frameworks  
03/12  Oz Concurrency, 1.oz Programming Assignment 1 Due 03/23  15%  
03/15  Distributed Oz, 2.oz  
03/19  Oz Concurrent and Distributed Programming Techniques  
03/22  SALSA Concurrency, examples.zip  Programming Assignment 2 Due 04/03  15%  
03/26  SALSA Distribution and Mobility, distexamples.zip  
03/29  SALSA Concurrent and Distributed Programming Techniques  
04/02  No lecture  
04/05  No lecture  
04/09  No lecture  
04/12  Objective CAML  
04/16  JOCAML  
04/19  Introduction to Distributed Computing over the Internet Part III  Research Topics  20%  
04/19 


04/23 


04/26 


04/30  Final Project/Paper Presentations Proposals Due 03/30  30%  
Class Participation Extra Credit  5% 
Paper critique and presentation guidelines.
Please contact the instructor if there is any question about academic
(dis)honesty.