CSCI.4430 and CSCI.4220, or equivalent, or permission of instructor. The student should be familiar with at least one high-level 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.
Theories of concurrent, distributed and mobile computing. Programming languages for concurrent distributed and mobile systems. Research topics in distributed computing over the Internet.
When the students have successfully completed this course, they will be able to:
|09/01||Course Overview. Introduction to Distributed Computing over the Internet Part I -- Models/Theory.|
|09/04||Pi-Calculus - Introduction|
|09/08||Pi-Calculus - Operational Semantics|
|09/11||Pi-Calculus - Bisimilarity and Congruence|
|09/15||Pi-Calculus - Review|
|09/18||Actors - Introduction|
|09/29||Actors - Operational Semantics|
|10/02||Actors - Expression Equivalence|
|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 Caml--Programming Assignment 3 Due 11/23||10%|
|11/17||JoCaml: Distribution and Mobility|
Paper critique and presentation guidelines.
|12/08||Final Project/Paper Presentations-- Proposals Due 11/10||30%|
|Class Participation Extra Credit||5%|
Please contact the instructor if there is any question about academic