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.

CSC 151: Functional problem solving, Grinnell College<br />

Grinnell, Iowa USA<br />

Henry M. Walker<br />

walker@cs.grinnell.edu<br />

http://www.cs.grinnell.edu/~davisjan/csc/151/2012S/<br />

Knowledge Areas that contain topics and learning outcomes covered in the course<br />

Knowledge Area<br />

Total Hours of Coverage<br />

Software Development Fundamentals (SDF) 20<br />

Programming Languages (PL) 13<br />

Algorithms and Complexity (AL) 6<br />

Human-Computer Interaction (HCI) 4<br />

Software Engineering (SE) 3<br />

Graphics and Visualization (GV) 2<br />

Brief description of the course’s format and place in the undergraduate curriculum<br />

This course is the first in Grinnell's three-course, multi-paradigm introduction to computer science. As the first<br />

regular course, it has no prerequisites. Many students are in their first or second year, exploring what the<br />

discipline might involve. Other students (ranging from first-years to graduating seniors) take the course as part of<br />

gaining a broad, liberal arts education; these students may be curious about computing, but they think their major<br />

interests are elsewhere. (Note, however, that the course recruits a number of these students as majors or<br />

concentrators.) Each class session meets in the lab. A class might begin with some remarks or class discussion,<br />

but most classes involve students working collaboratively in pairs on problems and laboratory exercises.<br />

Course description and goals<br />

This course introduces the discipline of computer science by focusing on functional problem solving with media<br />

computation as an integrating theme. In particular, the course explores<br />

mechanisms for representing, making, and manipulating images. The course considers a variety of models of<br />

images based on pixels, basic shapes, and objects that draw.<br />

The major objectives for this course include:<br />

• Understanding some fundamentals of computer science: algorithms, data structures, and abstraction.<br />

• Experience with the practice of computer programming (design, documentation, development, testing,<br />

and debugging) in a high-level language, Scheme.<br />

• Learning problem solving from a functional programming perspective, including the use of recursion and<br />

higher-order procedures.<br />

• Sharpening general problem solving, teamwork, and study skills.<br />

Course topics<br />

1. Fundamentals of functional problem-solving using a high-level functional language<br />

1. abstraction<br />

2. modularity<br />

3. recursion, including helper procedures<br />

4. higher-order procedures<br />

5. analyzing of algorithms<br />

2. Language elements<br />

1. symbols<br />

2. data types<br />

3. conditionals<br />

4. procedures and parameters<br />

5. local procedures<br />

6. scope and binding<br />

- 456 -

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

Saved successfully!

Ooh no, something went wrong!