Computer Science Overview

Laura Toma, Department Chair

Suzanne M. Theberge, Senior Department Coordinator

Professor: Eric L. Chown†

Associate Professors: Stephen M. Majercik, Laura I. Toma

Visiting Faculty: Sean Barker, Mohammad T. Irfan, Richard Wilkins

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 at the intermediate or advanced level (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 2101 {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.  

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}.

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