Introduction

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 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 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 Professor Tim Wahls 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

The schedule given below is for a student who enters Dickinson thinking that she or he wishes to major in Computer Science:

First Year:
Fall: COMP 131, MATH 170 or MATH 151
Spring: COMP 132, MATH 170 (if MATH 151 taken in fall)

Sophomore Year:
Fall: COMP 251, MATH 211
Spring: COMP 232

Junior Year:
Fall: Possible study abroad, COMP 332, COMP 356
Spring: Possible study abroad, COMP 352/354, COMP elective

Senior Year:
Fall: COMP 314, COMP 491
Spring: COMP elective, COMP 492

Many other paths through the major are possible.  For example, with careful planning it is possible for students to study abroad for a semester or for the entirety of their junior year.  Also, students starting later and taking COMP 131 in their second semester or even their sophomore year can still complete the major by the end of their senior year. For more information regarding the Computer Science major (including advice on other paths through the major), please feel free to contact any Computer Science faculty member.

Honors

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.