Two insights on teaching computer programming
kfisler at cs.wpi.edu
Tue Jan 3 08:50:00 EST 2006
Kirby Urner wrote:
> In sum, I don't think the intro CS stuff should be planned only as a
> part of some longer CS sequence for majors. It should also serve as
> a standalone component of a liberal arts education, giving its
> takers a welcome boost in whatever chosen field.
I couldn't agree more. As a liberal arts graduate, I have always been
bothered with the notion that majors and non-majors should take the
same intro courses in humanities and social sciences, while special
courses are developed for non-majors in the sciences. I firmly
believe that the intro course in any discipline should be valuable and
accessible to all students.
I am highly active in Matthias' project, and recently (2 years ago)
moved our intro course for students from all majors to HtDP. My main
argument was its potential benefit for non-majors (our prior intro
courses had been in C++ or Java). This claim is based on what I can
teach the students through HtDP, not on the surface issues like
"simpler syntax" relative to Java/C++.
A prerequisite for linking together tools to process data (from a
students' area of interest) is understanding that data. Most
non-majors (and incoming majors, for that matter) have never been
asked to think about data or information, that it has structure and
form that governs how to process it. HtDP's focus on identifying and
articulating the structure of data and using that to drive process and
testing makes it valuable for majors and non-majors alike.
The challenge lies in developing assignments and labs that help
students see how these ideas about data structure and processing arise
in their home disciplines. Non-majors get pretty bored with
information-processing examples all the time, and rightfully so. We
are handling this through choices of labs and assignments that use
examples from various domains. Currently, each week students choose
between lab exercises that model problems in biology and more
conventional CS exercises. We are working to extend the options to
include other disciplines, including non-sciences. In the longer
term, I hope to develop some more "tools-style" assignments that give
more of the feel of linking together tools to solve problems, but I
will keep everything grounded in Scheme and HtDP. HtDP lets me teach
an intellectual core that is useful to all students and will survive
even as the tools du-jour change.
I heartily applaud calls for us to think about how to create
principaled intro courses that appeal to majors and non-majors alike.
If our notion of "intro" means only "intro for those who would program
anyway", we're missing the liberal arts perspective on our discipline.
Kathi Fisler, Assistant Professor Department of Computer Science
http://www.cs.wpi.edu/~kfisler/ Worcester Polytechnic Institute
Phone: 508-831-5118 100 Institute Road
Fax: 508-831-5776 Worcester, MA 01609-2280
More information about the Math-thinking-l