16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

An Overview of the Mulit-paradigm Three-course CS Introduction at<br />

Grinnell College<br />

Consistent with both CS 2008 and CS 2013, the CS program at Grinnell College follows a multi-paradigm<br />

approach in its introductory curriculum. Since each course emphasizes problem solving following a specified<br />

paradigm, students gain practice by tackling a range of problems. Toward that end, the first two courses utilize<br />

application themes to generate interesting problems and generate interest in interdisciplinary connections of<br />

computer science. The following list outlines some main elements of this approach:<br />

CSC 151: Functional Problem Solving (CS1)<br />

• Primary Paradigm: Functional problem solving<br />

• Supporting language: Scheme<br />

• Application area: image processing, media scripting<br />

CSC 161: Imperative Problem Solving and Data Structures (CS2)<br />

• Primary Paradigm: Imperative problem solving<br />

• Supporting language: C (no objects as in C++)<br />

• Application area: robotics<br />

CSC 207: Algorithms and Object-Oriented Design (CS3)<br />

• Primary Paradigm: Object-oriented problem solving<br />

• Supporting language: Java<br />

• Application areas: several large-scale problems<br />

Audience: As with many liberal arts colleges, incoming students at Grinnell have not declared a major. Rather<br />

students devote their first and/or second year to exploring their possible interests, taking a range of introductory<br />

courses, and developing a general background in multiple disciplines. Often students in introductory computer<br />

science are taking courses because of some interest in the subject or because they think some contact with<br />

computing might be important for their future activities within a technological society. An important role of the<br />

introductory courses, therefore, is to generate interest in the discipline. Although some students enter Grinnell<br />

having already decided to major in computer science, over half of the CS graduates each year had not initially<br />

considered CS as a likely major. Rather, they became interested by the introductory courses and want to explore<br />

the discipline further with more courses.<br />

Pedagogy: Each class session of each course meets in a lab, and each course utilizes many collaborative lab<br />

exercises throughout a semester. Generally, CSC 151 schedules a lab almost every day, with some introductory<br />

comments at the start of class. CSC 161 is composed of about eight 1.5-2 week modules, in which each module<br />

starts with a lecture/demonstration, followed by 3-5 labs, and concluded by a project. CSC 207 contains about the<br />

same number of class days devoted to lecture as to lab work. Throughout, students work in pairs on labs, and the<br />

pairs typically are changed each week. Students work individually on tests and on some additional homework<br />

(usually programming assignments).<br />

Spiral Approach for Topic Coverage: The multi-paradigm approach allows coverage of central topics to be<br />

addressed incrementally from multiple perspectives. One course may provide some introductory background on a<br />

subject, and a later course in the sequence may push the discussion further from the perspective of a different<br />

problem-solving paradigm. For example, encapsulation of data and operations arises naturally as higher-order<br />

procedures within functional problem solving and later as classes and objects within object-oriented problem<br />

solving.<br />

- 454 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!