Computer Science is about more than computers: it is the systematic study of processes for solving problems. The computer science program at Carleton focuses on understanding how to think about these processes, how to program computers to carry out important tasks efficiently, and how to apply computer science ideas to important applications.
The computer science major has a core of eight courses -- Introduction to Computer Science, Data Structures, Mathematics of Computer Science, Software Design, Computer Organization and Architecture, Programming Language Design & Implementation, Algorithms, and Complexity & Computability. Majors take these eight courses plus two electives from advanced computer science offerings. The major concludes with a capstone experience, known as "comps," consisting of an in-depth project undertaken by a team of students.
Since computer science plays such a key role in the physical, biological, and social sciences, Introduction to Computer Science and Data Structures are useful and recommended to all Carleton students who plan careers in these areas, not just those majoring in computer science. Finally, A & I seminars are offered on a regular basis. Recent topics have included Cryptography, Digital Storytelling, and Arts, Interactivity, and Robotics. A & I seminars are independent of the introductory computer science sequence.
Supplementing the regularly offered courses is a colloquium series at which students, staff and visitors discuss topics of current interest. Over the past years the speakers have included a variety of distinguished visitors, including Turing award winners Fred Brooks and Ron Rivest.
The department is especially proud of the quality and diversity of its computer equipment available for student use. It maintains a number of modern computer facilities including an introductory computer science lab, a research lab, and a student lounge. The department also owns a number of multi-processor servers for student work. Computers in our public labs boot both Mac and Windows, and offer a wide variety of tools including support for dozens of programming languages, 3D graphics, video capture, parallel processing, data mining, networks, database programming, and Web development. All of the computing equipment allows access to the Internet via Carleton’s extremely fast Internet2 connection.
There are many opportunities for the study of computer science in addition to the regular course offerings. The department supports a strong and active undergraduate research program. Students typically work in groups alongside a faculty mentor during the summer, and occasionally during the school year as well. Carleton has participated for over 20 years in the ACM intercollegiate programming competition, three times sending teams to the international finals. Employment with the department is encouraged: the department employs students as tutors, lab assistants, and paper graders; in computer system administration and software development; and as research assistants.
Students may plan a major in computer science in preparation for work or further study in any of a variety of fields. In addition to graduate programs in computer science, Carleton students pursue studies in interdisciplinary areas such as bioinformatics, linguistics, and cognitive science. Students pursuing employment have gone to large companies such as IBM, Microsoft, Google and Apple, as well as smaller companies such as Epic Systems and Secure Computing.
Majors in the department develop close relationships with departmental faculty, which is one of the important benefits that Carleton’s size offers. In addition to personalized attention in academic work, students and faculty attend social events such as picnics and bowling expeditions.