| 2006 CS 2: Introduction to Programming Methods copy 1
| CS 2 is a course in programming languages and computer science, emphasizing modes of algorithmic expression. The course will include such topics as performance analysis of algorithms; proofs of program correctness; recursive and higher-order procedures; data structures, including lists, trees, graphs, and arrays; objects and abstract data types. The course includes weekly laboratory exercises. |
|
2007 CS 286.2 Seminar in Computer Sciences: Distributed Control
Instructor: K. Mani Chandy Instructor: Concetta Pilotto Instructor: Agostino Capponi Instructor: Richard Murray Guest Lecturer: Tamas Keviczky Guest Lecturer: Michel Charpentier Guest Lecturer: Michael Epstein Guest Lecturer: Jason Marden
 | Note: The department offers multiple CS 286 seminar courses. This course is CS 286.2.
This course studies recent results in theories of multi-agent systems in areas such as robotics, economics and the Internet. The course uses material from control theory, probability and distributed computing.
The course begins with a detailed description of a few problems to which multidisciplinary skills can be applied. Example of problems include the design of an intrusion-detection and evacuation system in a Manhattan grid representing an area in a city with sensors along streets and at traffic lights. Another example is that of designing agents with limited state (e.g., ants) building a structure (e.g., an ant hill) from resources (e.g., sand and mud) found in a specified space.
The class studies theory and experimental results from different disciplines and evaluates the applicability of the results to these problems.
Participants will give talks on papers and discuss projects. The course has no exams and no problem sets. Grading for the course is on a pass/fail basis. The units for the course are 2-0-7. The course meets from 10 AM to Noon on Wednesdays in Jorgenson 287. |
|
2007 CS 38 Introduction to Algorithms
Instructor: K. Mani Chandy Teaching Assistant: Jing Chen Teaching Assistant: Concetta Pilotto Teaching Assistant: Agostino Capponi
 | This course is an introduction to algorithms. Classes are held in Jorgensen 72 on Tuesdays and Thursdays from 10:30 AM to 11:45 AM.
Classes are highly interactive. Generally, a class consists of the specification of a problem by an instructor followed by an active discussion among students about methods of solving the problem. Active class participation is strongly encouraged.
The class is organized around methods of algorithm development. Examples of such methods include dynamic programming, greedy algorithms, and divide and conquer.
A focus of the course is proofs of algorithms. For most algorithms we will develop algorithms around an invariant, and we will prove progress and computational complexity using variant functions.
The text for the course is Algorithms by Dasgupta, Papadimitriou and Vazirani. Copies will be available at the bookstore and on reserve at the library.
The course has weekly 10-minute mini-quizzes, 5 or 6 homework assignments, a midterm and a final exam. The midterm or final may be given as quizzes. None of the assignments require implementing programs. The assignments generally require the development of an algorithm to solve a specified problem and its proof of correctness.
Prerequisites are CS 2 and CS 21 (or equivalent). |
|
2007 CS141a: Distributed Systems Laboratory
Instructor: K. Mani Chandy Teaching Assistant: Concetta Pilotto Teaching Assistant: Agostino Capponi Instructor: sayan mitra
 | 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.
|
|
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
 | 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. |
|
| Skip block 2
| Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
|---|
| |
|
|
|
1 |
2 |
3 |
| 4 |
5 |
6 |
7 |
8 |
9 |
10 |
| 11 |
12 |
Today Tuesday, 13 May 13 |
14 |
15 |
16 |
17 |
| 18 |
19 |
20 |
21 |
22 |
23 |
24 |
| 25 |
26 |
27 |
28 |
29 |
30 |
31 |
|