Two insights on teaching computer programming

Peter Van Roy pvr at
Wed Jan 4 09:15:48 EST 2006

Kirby Urner wrote:

>Kathi Fisler:
>>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.
>Yes. What excites me most about Matthias' project is he's pushing it down to
>K12, not just focusing on colleges.  My base position is I think most of my
>goals for CS0 (overview of the territory, good grasp of generic concepts)
>should be accomplished in K12.  I'd be willing to sacrifice a lot of what
>passes for "math education" to make this happen.  Basic numeracy training
>needs to include programming in this day and age (how else'll they learn to
>write nifty apps for their Nokia cell phones? [1]).
I agree with you that eventually the basics have to be pushed down to 
K12.  But that will take
some time, so in the meanwhile we still need to do course corrections 
and fill in the gaps in the
students' education.

>According to this model, a freshman electing a biomed sequence might place
>directly into Advanced SQL, as elementary SQL would've been covered back
>when we do the Venn Diagrams, starting around Algebra 1.  Pulling from sets
>using Boolean filters is a lot of what SQL is about, plus unions and
>intersections.  So why no SQL in high school, except in an exclusive few?
>Why no XML?  Beats me.  At least in Portland, we're gonna fix that, or risk
>losing our reputation as an open source capital.[2]
I think we have to be careful with SQL and XML.  There are a fair number 
of warts in
both of them and they don't have a simple semantics.  I can see the 
importance of SQL,
with its relationship to logic and the relational model.  But 
personally, I don't see why XML
has to be taught in a first-year programming course.  It is a text-based 
data interchange
format that is used for communication between programs.  If the students 
see basic data
structures, including records, then I don't see why they need to focus 
on XML at all in the
early years.  XML might be part of a student project in a course, where 
the students learn
it 'on the fly' as part of doing the project.  Why would they need more 
XML than that?

>Upshot:  no matter how good HtDP is, I'm
>confidant my own OCN/4D work will pay off as well, even though it's very
>different (some call it "extremely alien" -- and I'm not offended).
I think that it's a good idea for different groups to try different 
approaches.  There's no
reason to put all of our eggs in one basket.  For best results, the 
groups should meet
periodically to present their work and exchange ideas.  Maybe we could 
organize a
workshop around this theme (in a future SIGCSE or ITICSE for example)?


More information about the Math-thinking-l mailing list