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, concepts of programming languages, and the theory of computation. Some topics, such as networks and compilers, explore elements of computer systems in more detail, while other areas, such as artificial intelligence, computational linguistics, bioinformatics, 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 courses make 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 who plan careers in computer science, in the use of computing in other disciplines, in teaching, or in other professions. The curriculum is strongly influenced by national recommendations of such professional bodies as the Association for Computer Machinery, the Computer Society of the Institute of Electrical and Electronics Engineers, and the Liberal Arts Computer Science Consortium. Students regularly supplement this formal coursework with independent projects, internships, and student-faculty research. In addition, students often work with faculty throughout the College on a variety of special projects that involve computing.
Major Requirements: A minimum of 32 credits
Introductory Sequence Courses:
To prepare for the following courses, most majors will take the standard introductory sequence (CSC 151 , CSC 161 ,and CSC 207 ). Students with significant background in computer science, such as Advance Placement coursework, can often arrange with the department for special accommodations.
A minimum of 32 credits in Computer Science, including:
In addition, computer science majors are required to take three courses in Mathematics, including:
- MAT 124 4 credits or MAT 131 4 credits
- MAT 208 4 credits (Cross-listed as CSC 208) or MAT 218 4 credits
- One other course in Mathematics numbered above 131 that is creditable toward the Mathematics major.
- All majors are encouraged to take statistics (MAT 209 or MAT 335 -MAT 336 ), PHY 220 , and a course in technology and society (such as a foundation course in Technology Studies). Students considering graduate school in computer science should take both CSC 211 and CSC 213 . Students planning to work in industry should take CSC 323 or CSC 325 together with coursework in another discipline that uses computing in a significant way. Students considering a career in computing are encouraged to participate in an independent project, internship, or research experience.
- Computer Science courses numbered below 151 do not satisfy major requirements.
To receive honors in computer science, graduating seniors, in addition to meeting the College’s general requirements for honors, must demonstrate excellence in the major. The department normally considers the following:
- Core courses of study.
- Completion of CSC 211 - Computer Organization and Architecture or PHY 220 - Electronics , and
- Completion of CSC 213 - Operating Systems and Parallel Algorithms
- Additional relevant coursework that is not used to fulfill another requirement, such as:
- Completion of a 200- or 300-level course in computer science, or
- Completion of a 200- or 300-level course in statistics ( , MAT 309 - Design and Analysis of Experiments , , MAT 335 - Probability and Statistics I , or MAT 336 - Probability and Statistics II ), or
- Completion of MAT 220 - Differential Equations , , MAT 306 - Mathematical Modeling , MAT 314 - Topics in Applied Mathematics , or MAT 321 - Foundations of Abstract Algebra , or
- Completion of PHY 220 - Electronics , or
- Completion of PSY 222 - Industrial Psychology or PSY 260 - Cognitive Psychology .
- Participation, judged to be excellent by department faculty, in local activities related to computer science, such as:
- Giving talks in the department's seminar series, or
- Doing independent projects (totaling four credits or more) in computer science, or
- Carrying out research under the direction of a member of the department, or
- Contributing to a local software development project, or
- Advancing the department's educational mission as a member of the Computer Science Student Educational Policy Committee (CS SEPC) or as a mentor or tutor, or
- Leading departmental outreach efforts.
- Participation, judged to be excellent by department faculty, in the study or use of computer science outside of Grinnell College, such as:
- Receiving an award in the Mathematical Competition in Modeling, or
- Achieving a strong performance in the ACM Programming Competition, or
- Having a paper accepted by a refereed computer science journal or conference, or
- Developing a successful software package with positive assessment by outside referees or evaluators, or
- Contributing to an open source software package or resource, or
- Carrying out a supervised internship or research experience elsewhere.
Computer Science Course Descriptions