Computer Science Major
Major Description
The Major in Computer Science (COMP) gives students an understanding of the foundational concepts and technical tools used for solving computational problems and building computational systems. Students learn to program in high-level programming languages, analyze the efficiency and correctness of programs, and create original computational structures. Each students course of study is planned in consultation with their faculty advisor and the department's advisory committee.
Computer science spans a spectrum between mathematics and engineering, and students choose to study computer science for a variety of reasons. For example, a COMP major might be interested in the mathematical foundations of computation and programming, or in creating software and hardware systems, or in the applications to other fields of study. To that end, the Computer Science program helps students both to develop a rigorous foundation of logical and mathematical thinking and to apply those foundations in a principled way to topics including robotics, privacy, networks, computational science, and the foundations themselves.
After graduation, Computer Science majors pursue a range of advanced study and professional roles. Some students go on to advanced study in masters and PhD programs in computer science, software engineering, computer engineering, computational science, and related fields. Some students go on to professional roles in fields such as software engineering, data science, cybersecurity, information systems, and information technology. These roles span various industries, including technology, finance, healthcare, and entertainment. Some students complete a second major in addition to computer science and apply computational skills in a job or further degree program related to their second major.
Admission to the Major
To declare the computer science major, a student must have
- earned a C- or higher in COMP211;
- either earned a C- or higher in COMP212 or be enrolled in COMP212 and be earning a grade of C or higher based on completed work; and
- either earned a C- or higher in MATH228 or MATH261 or be enrolled in MATH228 or MATH261 and be earning a grade of C or higher based on completed work.
-
Courses taken in Spring 2020, Fall 2020, or Spring 2021 may be taken Cr/U to satisfy the major declaration requirements, in which case a student must have earned Cr.
Major Requirements
To complete the computer science major, a student must complete the following courses:
Code | Title | Hours |
---|---|---|
Gateway Courses | ||
COMP211 & COMP212 | Computer Science I and Computer Science II | 2 |
Core Courses* | 4 | |
Electives | ||
Any COMP courses 300-level or higher except COMP409 and COMP410 | 2 | |
Mathematical Foundations | ||
MATH228 | Discrete Mathematics | 1 |
or MATH261 | Introduction to Abstract Algebra | |
Any other MATH course 200-level or higher | 1 | |
Total Hours | 10 |
- *
- Must take one course from each of the following four areas:
- Models of computation: any COMP course numbered 300-305.
- Algorithms: any COMP course numbered 310-315.
- Programming languages: any COMP course numbered 320-325.
- Systems: any COMP course numbered 330-335.
Notes:
- No course may be used to satisfy more than one requirement.
- At most one individual or group tutorial may be used to satisfy major requirements unless prior approval is given.
- An individual or group tutorial may be used to satisfy a core area requirement only if prior approval is given.
- Only 1.0-credit courses taken A–F may be used to satisfy major requirements.
-
Courses taken in Spring 2020, Fall 2020, or Spring 2021 may be taken Cr/U to satisfy major requirements, in which case a student must have earned Cr.
-
In some circumstances, a 1.0 credit graded research experience may be split over 2 consecutive semesters. Such an experience must include work that is equivalent to a 1.0 credit graded 300-level course. The faculty member directing the research must request approval from CADCOM prior to the end of the first semester; the student may not make this request independently.
Student Learning Goals
- Understanding abstraction: At its heart, computer science is the study of abstractions for the purpose of understanding computation, and as such, students must learn appropriate levels of abstraction for solving computational problems. All courses in the curriculum contribute to this goal.
- Programming: Students must learn how to program in a high-level language, as such programming is the primary tool in computer science. This is typically how students are first exposed to the field, and our majors achieve this goal in their first or sophomore years by taking the gateway sequence COMP211–212.
- Analysis: Students must learn how to reason about computation; this includes analyzing algorithms and proving properties such as correctness and complexity, and requires an understanding of appropriate mathematical tools. The courses that focus primarily on this goal are COMP312 (Design and Analysis of Algorithms) and COMP321 (Design of Programming Languages).
- Creation: Students must learn how to create original computational structures; this requires an understanding of fundamental techniques in algorithm and data structure design and an ability to combine established techniques in novel ways. All courses in the curriculum contribute to this goal.
- Limits: Students must understand not only how to analyze and create computational structures, but also the limits of computation itself; this requires an understanding of the mathematical foundations and formalisms of computer science. This goal is primarily addressed in COMP301 (Automata Theory and Formal Languages).
Transfer Credit
The transfer credit policy for the COMP major is:
- You can transfer at most 2 courses per semester (or summer, or winter session) away towards the COMP major.
- You can transfer at most 4 courses in total towards the COMP major.
- You must take at least 2 of COMP211, COMP212, and MATH228 at Wesleyan.
- You must take at least three 300-level COMP courses used to satisfy the major requirements at Wesleyan.
Related Programs or Certificates
Informatics and Modeling Certificate. The department is an active participant in the Informatics and Modeling Certificate (wesleyan.edu/imcp). The certificate provides a framework to guide students in developing analytical skills based on the following two pathways:
- Computational Science and Quantitative World Modeling (CSM): wesleyan.edu/imcp/csm.html
- Integrative Genomic Sciences (IGS): wesleyan.edu/imcp/igs.html
The CSM pathway introduces students to modeling techniques and provides students with a foundation in the quantitative simulation, evaluation, and prediction of natural and social phenomena. The IGS pathway introduces students to the interdisciplinary field of bioinformatics and its relationships to molecular genomics, evolution, structural biology, and bioethics. The department offers courses that support both pathways, such as COMP211 and COMP212, and also offers special interdisciplinary courses for the IGS pathway, such as COMP327 and COMP350. The certificate requirements are described in the links for the two pathways.
BA/MA Program
This program provides an attractive option for mathematics and computer science majors to enrich their course and research background. Students are advised to begin research by their junior year if they intend to pursue the BA/MA. Admission is competitive and based on GPA, faculty recommendations, and research experience. For more information, visit wesleyan.edu/grad/degree-programs/ba-ma.html. Advanced undergraduates may enroll in graduate (500-level) courses.
Additional Information
Colloquia and seminars
Lectures. The departmental colloquium series presents lectures on recent research by invited speakers from other institutions. Advanced undergraduates are welcome and encouraged to attend these colloquia and to participate in the computer science seminar.
Honors
An undergraduate may achieve the BA with honors in computer science via the following route:
- The honors thesis, written under the supervision of a faculty member under conditions monitored by the University Committee on Honors.
Capstone Experience
We encourage all students to participate in faculty research via individual tutorials and/or a Senior thesis. There is no mandatory capstone experience.