Computer Science

The Department of Computer Science collaborates with the Department of Mathematics and Statistics to send each incoming student a letter, "Tentative Placement in Mathematics and Computer Science". Students will typically start in CSC 151 because the material will be new to most students, even those with prior background in computer science or experience in computer programming.  Students are encouraged to consult computer science faculty to discuss placements and courses.

Computer science is a formal study of problem solving. Computer scientists analyze problems, formalize the problems, design processes to solve the problems, and analyze those processes. Computer scientists build things that change the world.

The Department of Computer Science collaborates with the Department of Mathematics and Statistics to send each incoming student a letter, "Tentative Placement in Mathematics and Computer Science," suggesting the course level at which the student should start in each department.

In computer science, we recommend that most students start in CSC 151, "Functional Problem Solving," whether or not they have any prior background in computer science or experience in computer programming. The content of the course, as well as the particular programming language we use, will be new to most students in either case.

CSC 151 begins a three-course sequence that introduces three contrasting views of problem solving. It develops the functional model of computation, using the Scheme programming language. The second course, CSC 161, presents the imperative paradigm with C. In the third course, CSC 207, students develop skills in algorithm and data structure design and analysis while learning object-oriented programming in Java.

Students who are mainly interested in a broad overview of computing may prefer to start with CSC 105, "The Digital Age," which introduces the core topics and great ideas of computer science, focusing on underlying algorithmic principles and social implications.

Students are encouraged to consult computer science faculty to discuss placements and courses. Because Grinnell's introductory sequence is somewhat unique, the department often negotiates special arrangements for students with prior background. Such students are particularly encouraged to meet with faculty as soon as possible.

The two sample four-year plans that follow illustrate some possibilities available to students considering a major in computer science.

First Alternative, including MAT 218 (Combinatorics)

FIRST YEAR FALL   FIRST YEAR SPRING
MAT 131   CSC 161
CSC 151   MAT 133
SECOND YEAR FALL   SECOND YEAR SPRING
CSC 211 OR CSC 213   CSC 207
MAT 215   MAT 218
THIRD YEAR FALL   THIRD YEAR SPRING
Off-Campus Study   CSC 341
FOURTH YEAR FALL   FOURTH YEAR SPRING
CSC 301   CSC Elective
CSC 321 (2 cr)   CSC 322 (2 cr)
 

Although students are advised to start early when possible, there are many ways to complete a major in computer science. The following four-year plan illustrates that students can start computer science in the second semester, participate in off-campus study, and still complete the major. We have also had students complete the major while taking the first course in their third semester and, in the rare case, in the fourth semester.

Second Alternative, including CSC/MAT 208 (Discrete Structures)

FIRST YEAR FALL   FIRST YEAR SPRING
MAT 131   CSC 151
    MAT 209
SECOND YEAR FALL   SECOND YEAR SPRING
CSC 161   CSC 207
     MAT/CSC 208
THIRD YEAR FALL   THIRD YEAR SPRING
CSC 321/2   Off Campus
CSC 211 or 213    
FOURTH YEAR FALL   FOURTH YEAR SPRING
CSC 301   CSC 341
CSC Elective    

Overall, students are advised to start early when possible, but there are many ways to complete a major in computer science. The Second Alternative Four-year Plan illustrates that students can start computer science in the second semester, participate in off-campus study, and still complete the major. We have also had students complete the major while taking the first course in their third semester and, in rare cases, in the fourth semester.

Beyond Grinnell's foundational computer science major, students are advised that the international professional computing societies, the Association for Computing Machinery (ACM) and the Computer Society of the Institute of Electrical and Electronics Engineers (IEEE-CS) publish recommendations for undergraduate computer science programs. To meet the most recent recommendations (published in 2013), students interested in careers in computing should consult the computer science faculty concerning specific electives and supplementary courses that might be included in a four-year plan.