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, Argument & Inquiry seminars are offered on a regular basis. Recent topics have included Cryptography, Digital Storytelling, and Arts, Interactivity, and Robotics.
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 advanced student/research lab. The iMacs in our public labs dual boot OS X and Windows and offer a variety of tools including support for dozens of programming languages, 3-D graphics, video capture, parallel processing, data mining, networks, database programming, and Web development. The department also owns several high-end servers for class and research work, as well as special-purpose equipment such as robots, a 1970 PDP-8 computer, and Linux-based servers for research projects. All of this 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.
Our students pursue many different paths when they graduate from Carleton. Some of our majors go to graduate school in computer science. Others pursue graduate studies in disciplines such as economics, bioinformatics, cognitive science, and linguistics. Some have gone to law school. Many find careers in software development and design, finance, energy management, security, and education. Our graduates have gone to work at large companies such as IBM, Microsoft, Apple, Google, and Goldman Sachs, as well as many smaller companies and nonprofit organizations.
Computer science majors develop close relationships with the professors in the department through class, research, work, and social events. We have a lot of fun together both in and out of the classroom.