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

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 Intensive
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 knowing that she or he wishes to major in Computer Science, and includes recommendations for students who study abroad during the spring of their junior year. Many other paths through the major are possible. In particular, a student who takes COMP 131 in their sophomore year can complete the major by the end of their senior year, although this makes study abroad infeasible and limits flexibility in the junior and senior years.

First Year
COMP 131
COMP 132
MATH 170 (or MATH 151 and 170)

Sophomore Year
COMP 251
COMP 232
MATH 211

Junior Year
COMP 332
COMP 356
COMP 352/354 (if not studying abroad)
COMP elective

Senior Year
COMP 314
COMP 352/354 (if not already taken)
COMP 491
COMP 492
COMP elective

For information regarding the Computer Science major (including possible paths through the major), please feel free to contact a 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.