The Tech - Online EditionMIT's oldest and largest
newspaper & the first
newspaper published
on the web
Boston Weather: 74.0°F | Partly Cloudy

EECS Revamps Course Structure

By Waseem S. Daher

Will freshman scheming be the same if their schemes are more about robots and less about Scheme?

This coming term marks the launch of C1, a new course designed to teach freshmen introductory electrical engineering and computer science in an integrated fashion using mobile robots as a case study.

If successful, C1 (6.099) could be a stepping stone in a revamped curriculum for Course VI, the Electrical Engineering and Computer Science department. Such curriculum modifications are scheduled for implementation by late 2007.

While the 2007 date may be “wildly ambitious,” substantial progress has been made in creating a new structure for Course VI, said Professor Tomas Lozano-Perez, chair of the committee charged with reevaluating the curriculum.

The new curriculum is designed with three goals in mind: greater flexibility in requirements, better integration of electrical engineering and computer science, and more depth to better prepare students for graduate school or real-world design challenges, he said.

But C1 is a trial, and the proposed larger Course VI redesign is still in its early stages. “Nothing is going to happen irreversibly in the next few years,” Lozano-Perez said.

The proposal is currently being shown to the faculty, will then be opened up for student comment, and then must jump through all the hoops of various MIT committees to be approved, meaning the changes are still fairly tentative.

“If it doesn’t work, we’ll back away from it. It’s an experiment,” said W. Eric L. Grimson PhD ’80, the Course VI department head.

As for C1, students who enroll in it and a 3-unit Scheme class will get credit for 6.001.

Widely respected in the field, 6.001 is an introduction to some of the principal ideas in computer science and concepts of computer programming, using the Scheme programming language.

C1, on the other hand, has both electrical engineering and computer science, taught using the Python programming language.

Some worry that the trademark rigor of 6.001 may be lost in this transition, but many members of the faculty involved with the new curriculum insist that this will not be the case.

“In the long run, [C1] by itself will not replace 6.001,” said Professor Harold Abelson PhD ’73, a member of the C1 staff, and one of the original creators of 6.001. Concepts that make up 6.001 will be presented both in C1 and again later in the proposed curriculum, he said.

New Course VI structure proposed

In late 2004, in the wake of declining Course VI enrollment, L. Rafael Reif, the department head at the time and now the provost, created a committee for the purpose of re-evaluating the effectiveness of Course VI’s curriculum.

The goal was “to have the recommended modifications to the Course VI curriculum substantially in place by September 1, 2007,” according to a Course VI announcement on Aug. 25, 2004.

While nothing has been set in stone, a sketch of a curriculum has been drafted, and is being circulated for comment.

The new structure comprises four levels: Students would be introduced to the department with two required “core” classes: C1 and C2.

These classes will focus on electrical engineering and computer science as one integrated topic, using a mobile robot and a cell phone as case studies, respectively. C2 should be offered next fall, and is largely the work of Professors Charles Sodini, Daniel Jackson, and others.

Next, students would have to take at least three “foundation” classes, of which there are expected to be roughly seven.

Four of these will be modified versions of the existing Course VI core, 6.001–6.004, which are computer programs, circuits and electronics, signals and systems, and computation structures, respectively.

However, some new classes on algorithms, data structures or quantum physics will probably be added at the “foundation” level, Lozano-Perez said.

After that, students would take at least two “header” classes and some laboratory/project classes, as they do now. These classes are typically introductions into more specific areas of Course VI, such as artificial intelligence, theory, or signal processing.

Finally, students would take at least two “senior-level/capstone” classes. These classes are intended to provide focus for a specific branch of electrical engineering or computer science, in topics such as algorithms or computer architecture.

Many of these classes will be core graduate classes that will be modified so that they are suitable for senior-level undergraduates, said Srini Devadas, the associate head of Course VI.

The idea with these capstone classes is that students would be able to explore an individual subject area, so that they will be better prepared for graduate school or research, for example, Lozano-Perez said.

Another advantage to this proposed reorganization is that students would have more flexibility in choosing subjects of interest. Students would pick two “streams” through the various levels described above.

The idea here is to “break the stovepipes” that segregate EE and CS, and allow students to mix and match subjects more easily, Grimson said.

This is potentially the first major reorganization of the Course VI undergraduate curriculum since the 1970s. “EECS is much broader than it has ever been,” Devadas said, noting that it now encompasses parts of quantum physics and the life sciences.

C1 and C2: Integrated EECS

Taught by Professors Abelson, Leslie Kaelbling, and Jacob White ’80, C1 is designed to give students a hands-on feel for electrical engineering and computer science, using a mobile robot as a case study. Assignments are “more open-ended and let students try stuff,” Kaelbling said.

The format of C1 is also fairly non-traditional, with one 1.5 hour lecture and 4 hours in lab every week. Students will work in groups of 3, with a robot. The student-to-staff ratio is also exceptionally low, at about 2:1.

Philosophically, the material tries to follow a “practice-theory-practice” model: First, a task is presented and students work on it. Then, students learn the theory that underlies the problem presented, and finally the students tackle the problem again, given these better techniques, Kaelbling said.

Content-wise, the class is a mix as well. The first four weeks of C1 will be a lot like the first four weeks of 6.001, Abelson said. The difference is that programming will be done in Python and not Scheme.

Tasks will vary from building a robot head to writing navigation code for a robot in a maze, White said.

Fundamentally, though, the course is about learning “how to build up abstractions, and how abstractions help solve engineering problems,” White said.

“We also want to focus on the big concepts,” and teach students that “math is a useful thing,” in solving engineering problems, Kaelbling said.

C2, scheduled to be ready next fall, is similar in its goals, but instead focuses on big-picture concepts like radio, Fourier transforms, networks, and large systems. Feedback from C1 will also likely shape the format of C2, Sodini said.

Faculty from both courses stress that neither will just be a survey course. They will “be in the Course VI tradition of ‘barely-doable,’” Lozano-Perez said.

C1 will also be offered in the fall, along with C2. But “it is an experiment, and experiments can fail,” Lozano-Perez said.

The faculty, however, is hopeful and excited. “The department is putting incredible resources in this startup,” Abelson said, “People who take this class are going to have a blast.”