Curriculum and Requirements

Students pursuing a major or minor in computer science take Introduction to Computer Science, providing a basic introduction to problem solving and programming. Majors and minors also take Data Structures, a continuation of the
introductory course, as well as Algorithms, concentrating on analyzing programs and learning how to make them more efficient. The curriculum then divides intermediate and advanced courses into three major topic areas: Systems and Software, Theory, and Computer Science Artificial Intelligence. The department strives to offer courses in each of the major areas every semester. Many students also pursue independent studies on various topics as determined by faculty interest.

Computer Science Major and Minor

Any student may elect a major in computer science, a minor in computer science, or an interdisciplinary major in computer science and mathematics. Introduction to Computer Science and Data Structures (the two courses in the introductory sequence) are required in all cases and are normally taken first. However, Algorithms, which is required for both majors, can also serve as an entry point and should be taken as early as possible. Students who have taken an Advanced Placement course in secondary school may be able to skip the requirement to take the introductory class.

The computer science major consists of ten courses: Introduction to Computer Science, Data Structures, Algorithms, and seven additional courses that meet the following requirements: at least one course in each of the major areas, at least one course designated as a “Projects” course, and at least four courses at the advanced level. Independent studies at the intermediate and advanced levels may be used to fulfill one of these elective requirements. Independent Study, Honors, and Student/Faculty Research Students are encouraged to collaborate with faculty on research projects through independent studies, honors projects (graduation with honors in computer science requires a one-year project that includes a thesis), and fellowship-funded summer research. Participation in faculty research provides experience that is invaluable both for graduate study and in industry. Such collaborations can lead to co-authorship of a paper and the opportunity to attend a national or international conference.

Students from all departments have brought their unique perspectives to the Computer Science classrooms and labs at Bowdoin. Should you be interested in taking a course, but are not sure how it might fit in with your studies, please feel free to contact any of our faculty with your questions.

The Major in Computer Science

Catalogue Number

Course Title

Algorithm and Theory Track 2210  Theory of Computation
3225 GIS Algorithms and Data Structures
(Projects Course)
3250 Computational Geometry
Artificial Intelligence Track 2400 Artificial Intelligence
3400 Cognitive Architecture
3415 Robotics (Projects Course)
3425 Optimization and Uncertainty
3440 Nature-Inspired Computation
(Projects Course)
Systems Track 2300 Computer Organization
2310 Operation Systems
2325 Principles of Programming Languages
(Projects Course)
2505 Mobile Computing
(Projects Course)
3325 Distributed Systems
(Projects Course)

The Minor in Computer Science

The minor consists of five courses: Computer Science 1101, 2101, and any three additional computer science courses at the intermediate level (numbered 2000–2969) or above.

Interdisciplinary Major

The department participates in an interdisciplinary major program in computer science and mathematics.  

Independent Study, Honors, and Student/Faculty Research

Independent Study, Honors, and Student/Faculty Research Students are encouraged to collaborate with faculty on research projects through independent studies, honors projects (graduation with honors in computer science requires a one-year project that includes a thesis), and fellowship-funded summer research. Participation in faculty research provides experience that is invaluable both for graduate study and in industry. Such collaborations can lead to co-authorship of a paper and the opportunity to attend a national or international conference.