Course VI Eliminates Popular 6.170, Lab in Software Engineering

The Laboratory in Software Engineering class, 6.170, was offered for the last time this term and will not be offered in any subsequent terms.

With the introduction of the new Course VI (Electrical Engineering and Computer Science) curriculum this year, 6.005 (Principles of Software Development) will be the “foundation software subject,” taking the place of 6.170, and “will be followed by other software-intensive subjects,” said W. Eric L. Grimson ’80, EECS department head, in an e-mail to Course VI students.

“The final decision was recent, but we’ve been agonizing over it for a good chunk of the term,” Professor George C. Verghese, EECS education officer, said. “We wanted to get an official word out before pre-registraton opened.”

In the new curriculum, the extent of overlap between 6.005 and 6.170 was substantial enough that it “didn’t make sense to be offering both subjects side-by-side” next term, Verghese said.

The original plan was for students to take 6.005 with a 3-unit add-on subject, which would replace the 15-unit 6.170, but it “didn’t make sense” logistically, Grimson said in an e-mail. For students on the earlier curriculum who have not taken 6.170, the 12-unit 6.005 without the 3 unit add-on “will suffice towards meeting degree requirements.”

Verghese said it was better to invest resources into the new curriculum and 6.005. “We feel that students will still be well-served.”

The decision involved 6.170 and 6.005 faculty, the department administrators, and those involved in designing the new curriculum, Verghese said.

While 6.005 does not include the large five-week team project 6.170 had as its final project, it covers much of what was taught in 6.170 and more, Verghese said.

“We’re currently working on creating a successor to 6.170 and other subjects to sit on top of 6.005,” he added. A series of new software laboratory classes, numbered 6.17*, will satisfy the department laboratory requirement, Grimson said in his e-mail.

“We will also have senior-level subjects that have large project components,” Verghese said.

Taught for the first time this fall by Professors Daniel Jackson and Robert C. Miller ’95, 6.005 consists of two 80-minute lectures each week and six two-week long lab projects that each student completes with a partner, Jackson said.

In the old curriculum, the software development class sequence consisted of 6.001 and 6.170, both offered for the last time this term. In the new curriculum, however, the sequence consists of 6.01 and 6.005, followed by upper-level laboratory courses, Jackson said. He explained that 6.01 will “introduce fundamental big ideas,” 6.005 will cover “most of the conceptual material,” and the project courses will have extensive labs.

“It will certainly be more spread out,” Miller said. “What used to be in one course is now in two 12-unit courses.” But by the end of the sequence, students will have learned more material than through the sequence of the old curriculum, Jackson said.

Jackson said the format for 6.005 “worked very well” this term. “We think students will have a great experience,” he said.

William H. Magnuson ’09, who is taking 6.005 and has taken 6.170, said he thinks 6.005 “is really good” and he “learned a lot.” “6.005 was about design and 6.170 was about development and implementation,” which was made clear through the open-ended 6.005 problem sets, Magnuson said in an e-mail.

So far, “we are not sure if we would reuse the number” 6.170 for a new course since it might cause confusion, Verghese said.

“We are also working to inform companies, peer universities, and alumni of the various changes taking place, to help them adjust and know what to expect,” Grimson said in his e-mail.

As the transition to the new EECS curriculum continues, 6.046 (Design & Analysis of Algorithms) “will evolve to take advantage” of material covered in the new 6.006 (Introduction to Algorithms) course, Verghese said.