The minors in computer science, digital arts, computational methods and operations research will allow students to choose courses from a list of required courses for each respective minor, according to the new course guidelines. Majors and minors typically require specific courses, as the old requirements, a student majoring in computer science would need to take three prerequisites and nine additional courses, four of which are specified. The new structure, however, will offer more student flexibility and choice, according to Cormen.
"We were externally reviewed last spring, and the review committee noted that the structure of our major was rather rigid," Cormen said. "We got a pretty clear message from the review committee that we really needed to look at our introductory sequence and our major structure."
Applied computer science is a new addition to the major requirements, a change that reflects the evolving presence of computer science in various fields and industries, according to computer science professor Devin Balkcom. Courses in applied computer science have never been required by the department before, Balkcom said.
"The motivation is to reach out to more people a little bit," he said. "It's no surprise that we as computer science professors think that computer science is important, but we think that people are starting to agree that it's also becoming more important in things like science, biology, physics and art."
The wide range of applied courses that will be offered by the department will include classes in robotics, computational biology, artificial intelligence, computer graphics and other examinations that cross into different fields of study. The variety will allow students to put theory into practice within their interests, Cormen said.
Responding to the external review as well as course reviews from students, the department will also overhaul its current introductory sequence and change the curricula of Computer Science 5 and 8, the current prerequisites to the major. The new courses are designed to be less fast-paced by reducing the current course material by roughly two-thirds while exposing students to some new material, according to Balkcom, who helped develop the curriculum for Computer Science 1, which will replace Computer Science 5.
"The goal is to add some applications that are a little bit broader and expose students to things like computational science that have some more graphics or some more new, exciting things like the web and how to deal with data you may see on the web," Balkcom said.
The department will also change the programming languages taught in the two introductory courses. In Computer Science 1, student will learn the language Python and continue to learn Java and object-oriented programming in Computer Science 10. These topics are currently taught in Computer Science 5, according to computer science professor and curriculum committee chair Scott Drysdale, who helped develop the curriculum for Computer Science 10.
"Students will be learning a lot of the material that they were learning in the last part of [Computer Science 5] now," Drysdale said. "We'll be moving from there, but we'll also be concentrating more on applications from various areas, like they do in [Computer Science 8] now, and teaching people how to organize and structure data."
One assignment in Computer Science 10 will require students to digitize a map of the Dartmouth campus and find the shortest route between various locations, Drysdale said. Other similar assignments will incorporate real-world applications pertinent to students, he said.
The restructuring of the introductory sequence will also allow students who scored four or five on the Advanced Placement exam in Computer Science A to skip Computer Science 5. This exemption was previously not allowed and will make sure students in both introductory classes are on the same programming skill level, Cormen said. Engineering Sciences 20 can also replace the course under the new requirements, according to Cormen.
Balkcom said many students have reacted positively to the new requirements. Betty Huang '14 said she had been considering a major in computer science for a while but is now more likely to pursue it because of the new structure.
"I like the flexibility of the new requirements and the fact that Python is taught in [Computer Science 1]," Huang said. "It's a very rudimentary language and other schools generally teach it as the first programming language."
Jake Leichtling '14, who took both Computer Science 5 and 8, said he enjoyed his experience in the two courses but acknowledged that the courses were very fast-paced.
"I felt that [Computer Science 5] and [Computer Science 8] were wonderful challenges," Leichtling said. "It was definitely rushed because we were cramming two subjects into two terms."
The department will continue to work over the summer to solidify the new requirements and have various students helping develop the introductory curriculum and assignments.
"We're putting a lot of time and resources into these changes," Balkcom said. "We think it's important, so we'll spend the summer making sure that these things are as solid as we can make them for the fall."