Location: Bowdoin / The College Catalogue / Courses / Computer Science

The College Catalogue

Computer Science – Overview

  • Eric L. Chown, Department Chair
  • Suzanne M. Theberge, Senior Department Coordinator

  • Professors: Eric L. Chown, Allen B. Tucker
  • Associate Professors: Stephen M. Majercik, Laura I. Toma
  • Assistant Professor: Daniela A. S. de Oliveira†
  • Visiting Faculty: Mohammad T. Irfan

The major in computer science is designed to introduce students to the two fundamental questions of the discipline: What computational tasks is a computer capable of doing? How can we design, analyze, and implement efficient algorithms to solve large, complex problems? Thus, the discipline requires thinking in both abstract and concrete terms, and the major provides an opportunity for students to develop the analytical skills necessary for efficient algorithm design as well as the practical skills necessary for the implementation of those algorithms. The range of problems that can be attacked using the techniques of computer science spans many disciplines, and computer scientists often become proficient in other areas. Examples of areas that students can study in the department include network security, cyber-attack recovery, geographic information systems, computing with massive data sets, cognitive science, robotics, swarm intelligence, and artificial intelligence and the arts. The computer science major can serve as preparation for graduate study in computer science as well as careers in teaching, research, and industry (such as financial services and Internet-related businesses).

Requirements for the Major in Computer Science

The major consists of ten computer science courses: Introduction to Computer Science (Computer Science 1101 {101}); Data Structures (Computer Science 2101 {210}), Algorithms (Computer Science 2200 {231}), and seven elective courses at the intermediate level (numbered 2000–2969 {200–289}) or above that satisfy the following requirements: at least one course in each of the areas Algorithms and Theory, Artificial Intelligence, and Systems; at least one course designated a Projects course; and at least four advanced-level courses (numbered 3000–3999 {300–399}). Independent studies (except those enrolled in as part of an honors project) may be used to satisfy one of these elective requirements. Prospective majors should take Computer Science 2010 {210} as soon as possible after Computer Science 1101 {101}, since this course is a prerequisite for many other computer science courses. Students, particularly those who intend to do graduate work in computer science or a related field, are encouraged to collaborate with faculty on research projects through independent studies, honors projects, and fellowship-funded summer research. These students are also encouraged to take courses in the mathematics department; courses of particular interest are Mathematics 2000 {201}, 2020 {200}, 2108 {204} (same as Biology 1174 {174}), 2109 {229}, 2206 {225}, 2208 {224}, 2209 {244}, 2302 {232}, 2502 {252}, 2601 {258}, and 2606 {265}.

Computer science shares interests with a number of other disciplines, e.g., probability and statistics in mathematics, logic in philosophy, and cognition in psychology. In addition, computers are increasingly being used as a tool in other disciplines, including the social sciences and the humanities as well as the natural sciences. The department encourages students to explore these relationships; courses that may be of particular interest include the mathematics courses listed above; Music 2551 {218}; Philosophy 2410 {210}, 2223 {223}, and 2233 {233}; and Psychology 2040 and 2740 {216 and 270}.

Requirements for the Minor in Computer Science

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

Interdisciplinary Major

The department participates in an interdisciplinary major program in computer science and mathematics. See the section on Interdisciplinary Majors.

Fulfilling Requirements

Courses that satisfy the Algorithms and Theory requirement: Computer Science 2210 {289}, 3225 {350}, 3235 {345}.

Courses that satisfy the Artificial Intelligence requirement: Computer Science 2400 {270}, 3400 {355}, 3415 {320}, 3425 {375}.

Courses that satisfy the Systems requirement: Computer Science 2310 {240}, 2325 {250}, 3005 {280}, 3300 {370}, 3310 {360}.

Courses that satisfy the Projects requirement: Computer Science 2505 {281}, 3005 {280}, 3235 {345}, 3415 {320}, 3425 {375}.

To fulfill the major or minor requirements, or to serve as a prerequisite for another computer science course, a grade of C- or better must be earned in a course. Courses taken to fulfill major or minor requirements must be taken for regular letter grades (not Credit/D/Fail).

Online Catalogue content is current as of August 1, 2013. For most current course information, use the online course finder. Also see Addenda.