Course categories:


2007 CS141a: Distributed Systems Laboratory
Instructor: K. Mani Chandy
Teaching Assistant: Concetta Pilotto
Teaching Assistant: Agostino Capponi
Instructor: sayan mitra
This course requires an enrolment key
CS141 abc is a 3-term lab course. Students pick projects during
October and work on projects through June. Some students continue with
their projects over the summer. Each student is
responsible for selecting a topic that excites that student. Students usually work on projects in groups of 2 to 4 people.


Most projects are likely to fall within the following categories:

1. Application integration: Develop applications for
some community, such as the Caltech community, by
integrating Web applications such as Facebook, Google, Amazon, eBay and
others. Example applications include buildling infrastructures for new
types of social networks and helping (Caltech)
students collaborate on activities such as ride-shares, course selection, music, reading, and extra-curricular activities.

2. Mobile agents: Develop simulations and work with mobile robots to
coordinate activities of multiple agents. Example applications include:
(a) using mobile agents to search for items such as sources of radiation and
pollutants. (b) Getting mobile agents to move in formation. (c)
Intercepting intruders into a space (d) sensing complex patterns in the
environment.



3. Theory: Develop theory
integrating --- for example --- axiomatic semantics, game theory,
learning theory, optimization or control theory to
solve problems in multiple-agent systems. Only PhD students working on
research on distributed computing theory pick theory projects because
the course is intended to be a lab course.
    Students are encouraged to pick projects that integrates material from other courses including
    machine learning, optimization and control theory.


    Many of the programming examples discussed in class use Java and SQL;
    however, students may use any programming language and system they wish.


    The course intersperses discussions of projects with theory. Material
    discussed includes axiomatic semantics of sequential, shared-memory
    multiprocessor, and distributed memory systems; tools such as model
    checkers and theorem provers; and applications of game theory and
    optimization to distributed systems design.



    Undergraduate Research: SURF
    Instructor: K. Mani Chandy
    Instructor: Michel Charpentier
    This course requires an enrolment key
    SURF projects on distributed computing and robotics.

    CS 81: Event Driven Applications
    Instructor: K. Mani Chandy
    Instructor: Sid Patel
    This is a projects course that explores event-driven applications. One class of applications alerts a user when critical situations relevant to the user arise. In crisis situations such as hurricanes and earthquakes, a security officer or a friend will want to be alerted if you're stuck under a building. On a more day-to-day situation, you may want to be informed when there is a new SURF opportunity or course or internship that is relevant specifically to you.

    A specific focus of the course is to use distributed systems technology to help Caltech students be more effective in their careers or hobbies or social life.

    The coure explores ideas in Web services, databases, XML and XQuery, and other distributed technologies.

    The class meets on Fridays from 4:15 to 5:15 PM.
    2006 CS 141b: Distributed Systems Laboratory
    Professor: K. Mani Chandy
    Teaching Assistant: Andrey Khorlin
    Teaching Assistant: Lu Tian
    Teaching Assistant: Jerome White
    Resource: Daniel M. Zimmerman
    CS 141 is a course on distributed systems. It covers basic principles of concurrent systems (including systematic reasoning about their behavior), communication mechanisms for concurrent systems, patterns of interaction in concurrent and distributed systems, and software engineering of distributed systems. Current technologies such as XML, SOAP (and Web Services in general), and others are also discussed. Coursework includes theory, design, and Java programming.
    2005 CS 141a: Distributed Systems Laboratory
    Professor: K. Mani Chandy
    Resource: Daniel M. Zimmerman
    Professor: Guest Lectures: Richard Murray
    Teaching Assistant: Andrey Khorlin
    Teaching Assistant: Karl Papadantonakis
    Resource: Lu Tian
    This course requires an enrolment key
    CS 141 is a course on distributed systems. It covers basic principles of concurrent systems (including systematic reasoning about their behavior), communication mechanisms for concurrent systems, patterns of interaction in concurrent and distributed systems, and software engineering of distributed systems. Current technologies such as XML, SOAP (and Web Services in general), and others are also discussed. Coursework includes theory, design, and Java programming.
    2006 CS 141c: Distributed Systems Laboratory
    Instructor: K. Mani Chandy
    Teaching Assistant: Andrey Khorlin
    Teaching Assistant: Lu Tian
    Teaching Assistant: Jerome White
    Resource: Daniel M. Zimmerman
    The final term of the 2005-06 CS 141 distributed computing laboratory.
    Caltech Computer Science copy 1
    Instructor: Daniel M. Zimmerman
    Instructor: K. Mani Chandy
    This site is an experimental moodle for courses in the Caltech Computer Science Department.