Caltech Computer Science
You are not logged in. (Login)
 

 

Available Courses

2006 CS 241: Introduction to SISL
Professor: K. Mani Chandy
Professor: Richard Murray
Professor: Peter Bossaerts
Professor: john ledyard
Introduction to SISL.
2006 CS 2: Introduction to Programming Methods
Instructor: Al Barr
Head TA: Joey Gonzalez
TA: Brent Goldman
TA: Robert Morell
TA: David DiCato
TA: Warner Leedy
TA: William Clark
TA: Arcady Goldmints-Orlov
TA: Qian (Janice) Wang
TA: Keegan McAllister
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.
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.
2006 CS 3: Introduction to Software Engineering
Instructor: Nevin Kapur
Teaching Assistant: Warner Leedy
Teaching Assistant: Jonathan Lee
CS 3 is an introduction to software engineering.
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
This course requires an enrolment key
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 2: Introduction to Programming Methods
Instructor: Al Barr
Head TA: Keegan McAllister
TA: Katherine Breeden
TA: David DiCato
TA: Nickolas Fortino
TA: Arcady Goldmints-Orlov
TA: Seth Hendrickson
TA: Warner Leedy
TA: Lisa Lyons
TA: Russell McClellan
TA: Glenn Wagner
TA: Qian (Janice) Wang
Head TA last year: Joey Gonzalez
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 38 Introduction to Algorithms
Instructor: K. Mani Chandy
Teaching Assistant: Jing Chen
Teaching Assistant: Concetta Pilotto
Teaching Assistant: Agostino Capponi
This course requires an enrolment key
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).
CS2 2008 Introduction to Programming Methods
Instructor: Katherine Breeden
Instructor: Luke Durant
Instructor: Nickolas Fortino
Instructor: Lisa Lyons
Instructor: Russell McClellan
Instructor: Tamas Szalay
Instructor: Daniel Obenshain
Instructor: Keegan McAllister
Instructor: Seth Hendrickson
Instructor: Glenn Wagner
Instructor: Qian (Janice) Wang
CS 2 is a course in programming languages and computer science,
emphasizing modes of algorithmic expression. The course includes
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 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.

    Skip block 2
    This site is an experimental moodle for courses in the Caltech Computer Science Department.
    Show or hide block

    Calendar

    Skip block 3
    Previous month | May 2008 | Next month
    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