Member of the Division of Science
John David Stone
People use computers because they can provide services and help in the solving of problems. Thus, many courses and much research throughout the College utilize various aspects of computing.
The discipline of computer science includes all aspects of the effective design and use of computer systems. Core areas within the undergraduate curriculum include multiple views of problem-solving, hardware design, operating systems, data organization (structure) and processing (algorithms), software design, programming languages, and the theory of computation. Some topics, such as networks and security, explore elements of computer systems in more detail, while other areas, such as artificial intelligence, computational linguistics, human-computer interactions, and computer vision, integrate computer science with interdisciplinary studies.
Formal coursework is concentrated within the Department of Computer Science. Introductory courses emphasize multiple views of problem-solving, each with a different supporting computer programming language. The curriculum emphasizes basic concepts and fundamental techniques and makes extensive use of MathLAN, the local-area network we share with the Department of Mathematics and Statistics, which includes about 170 workstations and eight servers. Our outstanding facilities include several computer-equipped classrooms, an open lab, and convenient study and tutoring areas.
The computer science major prepares students for careers in computer science, in the use of computing in other disciplines, in teaching, or in other professions. The curriculum is strongly influenced by recommendations of such national/international professional bodies as the Association for Computer Machinery (ACM), the Computer Society of the Institute of Electrical and Electronics Engineers (IEEE-CS), and the Liberal Arts Computer Science Consortium. Indeed, the 2013 curricular guidelines from ACM/IEEE-CS identify each course in Grinnell’s introductory sequence (CSC 151, CSC 161, and CSC 207) as a Course Exemplar and the overall computer science curriculum as a Curricular Exemplar. In addition, students regularly supplement this formal coursework with independent projects, internships, and student-faculty research. Students often work with faculty throughout the College on a variety of special projects that involve computing.
Major Requirements: A minimum of 32 credits
Multi-paradigm, Introductory Sequence: 12 credits
Systems: 4 credits required, 8 credits recommended
Upper-Level Theory: 8 credits
Software Development: 4 credits
Electives: 4 credits
- 4 credits in Computer Science at the 200-level or higher
- CSC 281 , CSC 282 , guided reading, independent study, and MAPs may not be used to fulfill Elective requirement.
- If repeated, up to 2 credits of CSC 322 may contribute toward satisfying the Elective requirement.
- Computer Science courses numbered below 151 do not satisfy major requirements.
- No more than 4 credits taken outside of Grinnell may be counted towards the 16 required credits for systems, upper-level theory, and software development.
- Each major is encouraged to take statistics (MAT 209 , MAT 335 , or MAT 336 ) and a course in technology and society (such as a foundation course in Technology Studies).
- Students considering a career in computing are encouraged to participate in an independent project, internship, or research experience.
- Students planning to work in industry should explore one or more other disciplines that use computing in a significant way.
- Each major should consult with the computer science faculty to select course options and electives that fit the student’s particular interests.
To be considered for honors in computer science, graduating seniors, in addition to meeting the College’s general requirements for honors, must also demonstrate exceptional commitment to the discipline and its values, as evidenced by significant engagement in the department and excellence in computing-related work, both in the classroom and beyond.
Computer Science Major to meet international curricular guidelines:
Periodically, the Association for Computer Machinery (ACM), 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 are advised that the following courses should be taken either as Electives for the Computer Science Major or as additional courses:
Computer Science Course Descriptions