CSCI.6962 Distributed Computing over the Internet-- Spring 2003

Instructor:  Carlos Varela
Office:  109 Amos Eaton
Office Hours:  Tu, Fr 11am-noon; or by appointment
Meeting Place:  Sage, Room 4203
Meeting Hours:  Tu-Fr, 2-3:20pm
TA: Robin Toll
TA Office: 206 Amos Eaton
TA Office Hours: Monday 2-4, or by appointment.
TA Instant Messenger Contact Name: RobinTheTA
Home page
WebCT Page:

Course Objectives

This course will study theoretical foundations of concurrent and distributed programming languages -- namely process calculi, actors, join calculus, and mobile ambients. In the practical part, we will examine issues in the design of programming languages and architectures for worldwide and mobile computing. In particular, we will compare communication and synchronization aspects in specific actor, process and object oriented concurrent programming languages. Furthermore, we will critically present selected papers on coordination, mobility, naming, security and scalability in the context of distributed computing over the Internet.


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.

Course Contents

  1. Models of Concurrent and Distributed Computing
  2. Programming Languages and Frameworks
  3. Research Topics

Tentative Course Syllabus

Date Topic Grade
01/14 Introduction to Distributed Computing over the Internet Part I -- Models/Theory.
01/17 Pi-Calculus - Introduction
01/21 Pi-Calculus - Operational Semantics
01/24 Pi-Calculus - Bisimilarity and Congruence
01/28 Actors - Introduction
01/31 Actors - Operational Semantics
02/04 Actors - Expression Equivalence
02/07 Mobile Ambients
02/11 Join Calculus
02/14 Partial Exam 20%
02/21 Introduction to Distributed Computing over the Internet Part II -- Programming Languages and Frameworks
02/25 Java RMI, Sockets, Reflection, Serialization
02/28 Java Concurrency -- Programming Project 1 Due 03/03 7.5%
03/04 CSP in Java / PICT
03/07 PICT / Nomadic PICT -- Programming Project 2 Due 03/17 7.5%
03/18 Objective CAML
03/21 JOCAML -- Programming Project 3 Due 03/24 7.5%
03/25 Actor Foundry
03/28 SALSA -- Programming Project 4 Due 03/31 7.5%
04/01 Introduction to Distributed Computing over the Internet Part III -- Research Topics  --  Selected Paper Critiques and Presentations by Students 20%
04/04 Coordination
04/11 Naming
04/15 Mobility
04/18 Scalability
04/22 Heterogeneity
04/25 Security
04/29 Final Exam 20%
Class Participation 10%

Reading Material  -- Part I

Software Links, Papers, and Tutorials -- Part II

Research Papers -- Part III

Paper critique guidelines are available here.
Current draft of the presentation schedule is available here.

Students will critique and present selected papers from recent journal and conference publications, including but not limited to:

Here are some of the links: You may also search papers in CiteSeer

Academic Integrity

The Rensselaer Handbook of Student Rights and Responsibilities defines several types of academic dishonesty, all of which are applicable to this class.  Students found in violation of academic dishonesty policies may receive a failing grade for this course.

Please contact the instructor if there is any question about academic (dis)honesty.

Last Updated -- March 18th, 2003.