On this page:
People
Office Hours
Organization
Final
Grades
Policies
Project
Pair Programming
6.0.0.1

General

People

Instructors: Sam Tobin-Hochstadt.

AIs: Pavan Venkatramanachar.

Office Hours

Sam Tobin-Hochstadt

samth

Lindley 215E

By appt

Pavan Venkatramanachar

pkvenkat

Lindley 112

Thu

11AM---1PM

Communication

Use Indiana University email (@indiana.edu) to reach any of the course staff; usernames are given above.

We have set up a course mailing list, which you must subscribe to.

We also maintain a course blog which we will update regularly. You must check the blog daily.

Lectures

Monday and Wednesday 7:15-8:30pm in Ballantine 305.

Organization

The course is a "studio" course, a concept that originated in art schools. In a studio course, the instructor presents basic techniques, discusses domain knowledge for specific projects, and then teaches with the help of student presentations.

The purpose of student presentations is for everyone to learn to reason about problem analysis, interface and component designs, and code. The presenter will learn to present products to a team, to defend the product’s design, and to take note of weak spots. Conversely, the listener will learn to analyze and to critique a product, helping the presenter uncover flaws.

Final

In lieu of a final, we will conduct final code walks. If the course progresses on schedule, the final code walks will be held during the finals examination period.

Grades

The final grades are based on three factors: your project points (50%), your active presentations (20%), your panel participation (20%), your lab book (9%), and the whim of the instructor (1%).

Policies

Project

The course will mainly consist of the development of a single software system. There will be weekly or bi-weekly assignments as you develop this system.

Pair Programming

You must work on your project in pairs. You will be assigned a partner, although you can help choose. Halfway through the course, you will switch partners.

Pair programming means that you and your partner work on the problem sets jointly. You read them together and you work on the solutions together. Pairs are provably more effective than individuals in programming. The rough idea is this: One of you plays pilot, the other co-pilot. The pilot works on the keyboard and explains aloud what is going on; it is the co-pilot’s responsibility to question everything. After a problem is solved to the satisfaction of both, you must switch roles.