To accommodate a growing range of students taking computer science courses, the Computer Science Division will offer a new course, Computer Science 125: “Algorithms and Complexity,” as a more advanced alternative to existing theory courses, starting this fall.
Two existing courses that fulfill the theory requirement for computer science concentrators—Computer Science 121: “Introduction to the Theory of Computation” and Computer Science 124: “Data Structures and Algorithms”—have increased in size in recent years and attracted non-concentrators from fields such as mathematics and physics, Computer Science professor Michael D. Mitzenmacher ’91 said in June, who will co-teach Computer Science 125.
“We’ve had this idea for a while that it would be nice to have an intense introductory theory course that included material from both 121 and 124,” said Mitzenmacher, who will be teaching alongside Computer Science professor Salil P. Vadhan ’95. He added that he hopes the course will be a “challenging course for both the mathematically inclined concentrators and computer science students.”
Computer Science Director of Undergraduate Studies Harry R. Lewis ’68 said in June that the creation of the new course was, in part, a response to the increasing number of students who entered the concentration with better preparation in mathematics than other concentrators.
“Computer Science is now the fifth largest concentration in the College,” Lewis said. “[The concentration has] grown a lot over the last decade and the range of students has expanded.”
As of December 2013, Computer Science had 253 concentrators, following a roughly 25 percent increase from the previous year, according to the Harvard College Handbook for Students.
Lewis said that he and the course's instructors have considered implementing an offering like Computer Science 125 for the past few years. A recent increase in faculty hires to the Computer Science Division made the course creation and launch possible, he said.
According to the course website, the class will serve as an “accelerated introduction to theoretical computer science,” with prerequisites that include “comfort with reading and writing mathematical proofs, at the level of Math 25 or 55.”
Though concentrators who take Computer Science 125 do not have to take Computer Science 121 or 124, they will be expected to complete another course for the theory requirement, Mitzenmacher said. To meet the requirement, he said that the students who take the course will probably complete a graduate-level theory course.
Mitzenmacher compared his hopes for Computer Science 125 to the year-long introductory course Mathematics 55a/b: “Honors Abstract Algebra” and “Honors Real and Complex Analysis” in the Mathematics Department.
“One way to think of it is, Math 55 is the challenge course for mathematicians,” Mitzenmacher said. “We wanted a similar challenging introductory theoretical Computer Science course.”
Though the course does not have a cap, Mitzenmacher said his ideal course size would be around 20 to 40 students.
—Staff writer Meg P. Bernhard can be reached at email@example.com. Follow her on Twitter @Meg_Bernhard.