Division of Science, Mathematics, and Computing
Computing is an integral part of contemporary life. Computer science encompasses the study of computing technology, theory, and applications in all contexts, including mobile computing, desktop computing, robotics and autonomous vehicles, and the Internet. The Computer Science Program offers courses tailored to the interests of students from across the College. The program focuses on the fundamental ideas of computer science and introduces students to multiple programming languages and paradigms. It offers broad coverage of theoretical, applied, and systems-oriented topics. Most courses include hands-on projects so students learn by building and can participate in research projects in laboratories devoted to cognition, robotics, and symbolic computation.
The curriculum is designed to offer many opportunities for students whose interest in computing arises from their own disciplinary context. Computer science has links with cognitive science, experimental humanities, mathematics, film and electronic arts, and many other fields, and students from these fields often use their computing skills and knowledge in carrying out Senior Projects.
Before Moderation, a student in the Computer Science Program should complete or be enrolled in Computer Science 143, 145, and 201, as well as Mathematics 141 (or the equivalents). Students are expected to follow standard divisional procedures for Moderation and to fulfill the collegewide distribution and First-Year Seminar requirements. To graduate, a student in the program must take Computer Science 301, 305, and 312; one systems course such as 326, 327, or 360; at least two other computer science courses, one numbered above 201 and the other numbered 300 or above; and complete a Senior Project.
Recent Senior Projects in Computer Science
- “Augmented Reality Using the Kinect Camera”
- “Decomposition of Polyphonic Music into Separate Voices,” a computational implementation of blind signal separation
- “Implementation of the Solution to the Conjugacy Problem in Thompson’s Groups”
- “Using Graph Traversal to Find Similarity between Sentences”
Program facilities at The Gabrielle H. Reem and Herbert J. Kayden Center for Science and Computation include computer and hardware teaching labs, a cognitive systems lab, robotics lab, dedicated computer server room, and study space with wireless networking.
The following core courses are offered every year or every other year: Computer Science 143, Object-Oriented Programming with Robots
; Computer Science 145, Discrete Mathematics
; Computer Science 201, Data Structures
; Computer Science 251, Introduction to Artificial Intelligence
; Computer Science 301, Algorithms
; Computer Science 305, Design of Programming Languages
; Computer Science 312, Theory of Computation
; and Computer Science 326, Operating Systems
. Elective courses are offered at least once every three years or by tutorial; recent examples include Databases
, Mobile Applications and Interfaces
, The Computational Image
, and Embedded Operating Systems