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

Instructor:  Carlos Varela
Office:  109 Amos Eaton
Office Hours:  Mo, Th 4pm-5pm; or by appointment
Meeting Place:  JEC, Room 5119
Meeting Hours:  Mo, Th 2-3:20pm
TA: Wei-Jen Wang
TA Email Address:
TA Office: Science Center Room 1W01(TA office), or AE117(WWC Lab)
TA Office Hours: Tuesday 12:00-2:00 in 1w01 or by email.
Home page
WebCT Page:

Important Announcement

Course Objectives

This course studies theoretical foundations---namely Petri nets, process calculi, actors, join calculus, and mobile ambients---and practical issues in the design of concurrent and distributed programming languages. We compare communication and synchronization aspects in actor-, process-, and object-oriented concurrent programming models.  We review current research on coordination, mobility, naming, security, fault-tolerance, and scalability in the context of distributed computing over the Internet.


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.

Course Contents

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

Tentative Course Syllabus

Date Topic Grade
01/22* Introduction to Distributed Computing over the Internet Part I -- Models/Theory.  Petri-Nets.  (exercise 1)
01/26* Pi-Calculus - Introduction, Operational Semantics (exercise 2)
01/29* Pi-Calculus - Operational Semantics, Bisimilarity and Congruence (exercise 3)
02/02* Actors - Introduction, Operational Semantics (exercise 4)
02/05 Actors - Operational Semantics, Expression Equivalence (exercise 5)
02/09 Mobile Ambients (exercise 6)(Extra Handout)
02/12 Join Calculus (exercise 7)
02/17 Partial Exam (solution) 20%
02/19 Introduction to Distributed Computing over the Internet Part II -- Programming Languages and Frameworks (2 hour class)
02/23 Java RMI, Sockets, Reflection, Serialization (2 hour class) (project 1) Due 03/02
02/26 Java Concurrency -- (Canceled. No class today.) 7.5%
03/01 CSP in Java / PICT
03/04 PICT / Nomadic PICT -- (Project 2) (Using Pict) (Using Nomadic Pict) (Nomadic Pict: Getting started) Due 03/16 7.5%
03/15 Objective CAML (the instructions of using Ocaml)
03/18 JOCAML -- (the instructions of using JOCAML) (JOCAML: Getting started)(Programming Project 3) Due 03/26 7.5%
03/22 Actor Foundry
03/25 SALSA -- (Programming Project 4) (SALSA: Getting Started) Due 04/05 7.5%
03/29 Introduction to Distributed Computing over the Internet Part III -- Research Topics  --  Selected Paper Critiques and Presentations by Students (Two presentations each class) (Due today: Final Project Proposal) 20%
04/01 Pi-calculus extension (Markus) (Mayuresh) (The Paper Critiques and Presentations Guideline. And also the schedule.)
04/08 Programming Environment I (Wei-Jen) (Terrell)
04/12 Programming Environment II (Bryan Kate) (Randy Yung)
04/15 Spam (Charles Mathis) (Brandeis Hill)
04/19 Peer to Peer (Owen F. Kellett) (Jonathan Koop)
04/22 Other issue (Christopher Werner) (Dan Tracy)
04/26 Final Project Presentation and demo (5 minutes each group) 20%
Class Participation 10%

There will be no classes during the first week (Jan. 12th and Jan 15th).  The two lectures will be replaced by making the subsequent four lectures two hours long, i.e., from 2-4pm (rather than 1 hour and 20 minutes long).

Reading Material  -- Part I

Software Links, Papers, and Tutorials -- Part II

Research Papers -- Part III

The Paper Critiques and Presentations Guideline. And also the schedule.

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 will receive a failing grade for this course.

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

Last Updated -- April 13, 2004.