Computing has become pervasive in society. People use computers and software to prepare documents, send e-mail and text messages, make phone calls, visit web sites, play games, listen to music and watch videos. Computing devices with appropriate software recognize handwriting, faces and voices; they monitor, control, park and even drive automobiles; they conduct business in financial markets and assist with medical diagnoses and procedures. Scientists use computers to collect, analyze and visualize data. Computer simulations are used to test biological, chemical, environmental and social theories. Results and predictions from these simulations frequently inform decisions and influence policy.

Given this pervasiveness, students from all fields of study are likely to benefit from a greater understanding of computing devices and software. Taking one or a few courses in computer science will provide practical software development skills and greater perspective on computing systems. Completing a minor or major in computer science will prepare students to become the designers, creators, advocates for and critics of future computing systems.

The Computer Science major at Dickinson is built around enduring principles, theories and practices that underlie computing devices and the software that they run.  Early courses introduce tools and techniques for software development, providing concrete programming skills as well as general insights into how computers are commanded to do what they do.  Intermediate level courses explore the inner workings of computer hardware and efficient ways to store, search and process large amounts of information. Later courses use the knowledge and skills gained from earlier courses to investigate topics including: operating systems, computer networks, artificial intelligence, database systems, programming languages and the theoretical limits of what computers can and cannot do. Students finish their major with a yearlong senior capstone course in which they address contemporary social, legal and ethical issues raised by computing while undertaking a software development project for a client or engaging in computer science research with a faculty member.

Courses appropriate for prospective majors

COMP 131, Introduction to Computer Science I

If a student has taken the AP computer science A exam, placement into COMP 132, 232, or 251 is possible based upon the score received.  Please see the Registrar’s web page for specific information on placement based upon an AP score. If a student has taken the AP computer science principles exam or has extensive programming experience through a high school course or on his or her own then placement into COMP 132 is possible through consultation with the computer science faculty. Please contact the department chair for additional information.

For course descriptions and requirements for the major, refer to the Academic Bulletin: Computer Science.

Courses that fulfill distribution requirements

Lab Sciences (Division III):
COMP 131, Computer Science I
COMP 132, Computer Science II
COMP 232, Data Structures and Problem Solving

Quantitative Reasoning:
COMP 131, Computer Science I
COMP 132, Computer Science II
COMP 232, Data Structures and Problem Solving

Writing in the Discipline:
Completing both COMP 251 and COMP 332 satisfies the college writing requirement.

Suggested curricular flow through the major

Careful consideration has been given to ensuring that students can begin the major in COMP 130 or COMP 132 either immediately, or as late as their third semester, still complete the major in four years and have at least one option for study abroad. The scenarios below illustrate the different courses of study based upon when the major is begun and with which course.  

Scenario A B C D E
1st Fall 130 X X M170, 132 M170, 232
1st Spring M170, 132 130 X M211, 256 M211, 256
2nd Fall M211, 232, 190 M170, 132, 190 130 232, 190 2/3xx, 190
2nd Spring 256, 314, 290 M211, 290, 256 M170, M211,132 290, 314, 2/3xx 290, 315, 3xx
3rd Fall Study Abroad 232 [1],[2], 232[2], 290 Study Abroad Study Abroad
3rd Spring Study Abroad Study Abroad 256, 290 Study Abroad Study Abroad
4th Fall 332, 2/3xx, 491 332, 3xx, 2/3xx, 491 332, 2/3xx, 491 332, 491 332, 491
4th Spring 3xxA, 3xx, 492 314, 3xxA, 492 314, 3xxA, 3xx, 492 3xxA, 3xx, 492 3xxA, 492

[1] Fall only or full year study abroad are possible here with careful planning. There is a course at The University of Queensland in Australia that we can accept in place of COMP 232 (COMP 3506 – Algorithms and Data Structures). Students willing to study abroad for a year at the same location can complete COMP 232 abroad at The University of East Anglia in Norwich (CMP 5014Y Data Structures and Algorithms).

[2] Fall only study abroad is possible here with careful planning. There is a course at The University of Queensland in Australia that we can accept in place of COMP 232 (COMP 3506 – Algorithms and Data Structures). A remote tutorial could be arranged for COMP 190 for students in scenario C.

- 2/3xx indicates a 200- or 300-level elective
- 3xxA indicates a 300-level Abstraction Implementation elective
- Study abroad options have been shown with minimal or no COMP taken to allow for the maximum range of possible study abroad opportunities. If students take COMP courses while abroad, which we anticipate most will, scheduling flexibility increases and the course load can be distributed more evenly across the remaining semesters.

Students interested in majoring or minoring in COMP should register for either COMP 130 or COMP 132 in their first semester.  Students with limited or no prior programming experience should request COMP 130 in their first semester.  Students with prior programming experience (e.g. a high-school course, or substantial self-taught experience) should review the descriptions for COMP 130 and COMP 132 and the Advising Guide to determine the appropriate course to request.  Students with AP credits for computer science should refer to the Registrar’s page to determine what credit will be given and the appropriate course to request.  Students with questions can contact any of the department faculty for assistance in selecting the proper first course or for advice on paths through the major.

Students matriculating prior to fall 2019 will be able to choose to complete the old or new major requirements.  Information about the old curriculum may be found in the Bulletin at the following link.

Students who decalred a major or minor in computer science prior to fall 2019 are ensured to be able to complete the program.  More information is provided at the following link.


Students majoring in computer science who have an interest in humanitarian service through innovation and entrepreneurship are encouraged to consider also completing the Social Innovation and Entrepreneurship (SINE) Certificate. Several computer science courses that focus on developing computer science knowledge, skills and practices through participation in humanitarian open source software projects can be used to satisfy requirements for the SINE certificate. In particular, the fall computer science senior seminar (COMP491) serves as a SINE elective and the spring computer science senior seminar (COMP492) may serve as the SINE experiential learning component.  If you are interested in pursuing a SINE certificate as a computer science major please discuss it with your major advisor.


A student wishing to declare a major should bring the appropriate major declaration form, available from the Registrar’s page, to the department chair.  Based on the student’s preferences, interests and current faculty advising loads the chair will assign one of the department faculty as the major advisor. Students are encouraged to meet with their major advisor at least once per term prior to course selection to discuss directions of study and how they align with future goals and plans.



Departmental honors is the highest distinction that the Department can award to a Major. Majors who receive departmental honors will be those who demonstrate a broad mastery of the discipline as well as an ability to complete and present high quality research. A broad mastery of the discipline is demonstrated by a GPA of 3.40 or higher in all courses related to the major. The ability to complete high quality research is demonstrated by the completion of a yearlong research project. This project will be characterized by an independent and in-depth study of an advanced topic including a literature search, reading of original sources and a novel formulation of results. Finally, the ability to present such research is demonstrated by the preparation of an honors thesis, a public presentation and a successful defense of the work to the department faculty. More detailed information is available on the department's web site.

Opportunities for off-campus study

The table in the Suggested curricular flow through the major section illustrates the study abroad options for students beginning the major in COMP 130 in any of their first three semesters or in COMP 132 or COMP 232 in their first semester.  In scenarios, A, D and E Students are able to complete the major while studying abroad for a year on any program, including one where it is not possible to take any computer science courses. 

Students in scenario B can study abroad for a semester on any program or for a full year on a program where it is possible to complete the equivalent to COMP 232 (see footnote 1 below table).

Students in scenario C may be able to study abroad for a single semester in a program where it is possible to complete the equivalent of COMP 232 (see footnote 2 below table). These students would also need to make arrangements with the department faculty to complete a remote tutorial for COMP 190 to serve as a prerequisite for COMP 290.

The primary study abroad programs for COMP majors are:  Dickinson in England Math & Sciences at the University of East Anglia; Dickinson in Australia at the University of Queensland; DIS Study Abroad in Copenhagen; and the University of Otago, New Zealand.