Thursday Extra: "Grinnell's competitive advantages in computer science"

On Thursday, April 11, Professor Henry Walker will describe the distinctive features of Grinnell's program in computer science:

Prospective students often ask why they should come to Grinnell to study computer science. Seniors and graduates ask what they can or should say to employers or graduate schools regarding how Grinnell's CS program is distinctive. This talk is designed to answer such questions by reviewing several characteristics of Grinnell's CS program:

  • The advantages of B.A. degrees in computer science over more technical degrees
  • Our introductory CS courses as “exemplars” in national curricular recommendations
  • Comparing Grinnell's core CS courses with national recommendations
  • The success rates in Grinnell's CS courses (by measures defined by national standards)
  • The contribution of the activities of Grinnell's CS faculty to Grinnell's success
  • How student-faculty interactions in CS lead to regional and national visibility
  • Grinnell's track record in CS for graduate school, internships, careers in business/industry, etc.

Overall, this talk will highlight numerous ways in which Grinnell's CS program enjoys substantial success by many objective measures.

Refreshments will be served at 4:15 p.m. in the Computer Science Commons (Noyce 3817). The talk, “Grinnell's competitive advantages in computer science,” will follow at 4:30 p.m. in Noyce 3821. Everyone is welcome to attend!

Introductory courses

Multi-paradigm Approach for Introductory Courses

Computing has become widespread in today's society, largely because it helps people solve problems. However, different types of problems require fundamentally different approaches for problem solving. Computer science recognizes at least four problem-solving approaches as being fundamental to work in the discipline. Each approach involves a distinct way of thinking, and each is supported by a range of computer languages.

Grinnell's computer science curriculum explores several of these paradigms in the beginning courses, each of which has been named a "course exemplar" by the international professional computing societies.

  • CSC 151, Functional Problem Solving
    • emphasizes functional problem solving
    • supported by the Scheme programming language (a dialect of LISP, a language widely used for artificial intelligence, graphical manipulations, and other applications)
    • current application areas: data science, digital humanities
    • past application area: image processing / media scripting
151 image, Kent, Re-Scherer 151 image, Tsui, Miller 161 image, Mai Ha Vu 151 image, Philipp, Reischmann, Cantley
CSC 151 image by James Kent and Chris Re-Scherer, Fall 2012 CSC 151 image by Amy Tsui and Solomon Miller, Spring 2010 CSC 161 image by Mai Ha Vu, Fall 2012 CSC 151 image by Grace Philipp, Elizabeth Reischmann, and Lauren Cantley, Fall 2009
  • CSC 161, Imperative Problem Solving and Data Structures
    • studies concepts tied to the architecture of computers, compilers, and operating systems within the context of the imperative problem-solving paradigm
    • supported by the C (a programming language widely used in scientific applications and engineering)
    • application area: control of robots
Scribbler 2 robot
(front view)
Scribbler 2 Front Scribbler 2 Back Scribbler 2 robot
(rear view)
  • CSC 207, Algorithms and Object-Oriented Design
    • explores object-oriented problem solving
    • supported by the Java programming language (a language widely use for large-scale applications and systems)
    • application area: software development for the common good

Student-faculty interaction during lab exercises

Students with considerable background should consult the computer science faculty regarding placement.

  • Students with strong scores on the AP CS A examination or the IB CS examination receive credit for their prior work, but placement requires discussion of their specific background.
  • Most incoming students find functional problem solving to be quite new and different, so they begin with CSC 151 (where no computing background is assumed).
  • Students with substantial experience in imperative problem solving or object-oriented problem solving (e.g., students with AP CS A or IB CS background) may be able to skip CSC 161 or CSC 207, depending upon the extent of their background.

Later courses build on this foundation to provide depth in each of these problem-solving paradigms and programming languages.

Syndicate content