Two insights on teaching computer programming
kirby.urner at computer.org
Wed Jan 4 10:50:49 EST 2006
> = Peter Van Roy
= Kirby Urner
>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'
Very true. Plus just because there's an onramp for kids =< 18 doesn't mean
you don't also need onramps to the same or similar material for people > 18
-- just like on ski slopes, where some 8 year olds far outperform me at 47.
>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.
In the revamped K12 I'm envisioning, we start with a general purpose
language probably no later than 8th grade and gradually build on that over
the next 5 years, using the tools in more than one subject area.
It's not that we lift CS0 as a unit and plop it down as a single course in
senior year. More a diffusion of content across a five year period.
So, for example, SQL appears in math class in tandem with Venn Diagrams,
sort of as an application for Boolean logic and the concepts of union and
intersection. They query against pre-filled databases, likely involving
popular music and films, other content of intrinsic interest.
They might come to SQL again later, in a biology class, and so some sample
queries against a genome or species DB.
Xml-rpc might be where XML first comes in, or with Google Earth, where
user-defined places may be saved and shared with friends in kml format (an
XML). We've so far looked at both these XML contexts in my 8th grade class
We'll have plenty of segues and allusions to XML as we study the brief
history of the World Wide Web (perhaps in history class). HTML gets out of
hand, XHTML helps restore some sanity.
lot of config files are in XML, e.g. Apache's (I do want high schoolers to
write some server-side scripts).
It's more a kind of literacy or fluency that I'm after, a confidence and
comfort level, not necessarily hands-on "can do it in my sleep" programming
With XML, as with SQL, I don't suggest they need to digest a vast amount of
info, just have enough knowledge to start reading tech mags and articles
with enough comprehension to not disconnect.
Kids wanting to move further will have access to on-line quiz and drill
options (my friend and fellow Wanderer Allen Taylor might help me develop
some of this -- he wrote 'SQL for Dummies' and offers courseware to
community colleges through ed2go).
>>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)?
Yes exactly. And short of face-to-face meetings, we have cyberspace tools
like this list, maybe even online conferences or at least stored
asynchronous video, like at video.google.com -- where I've already place one
of my teaching segments (not specifically CS though, and to an audience of
oldsters, not youngsters).
More information about the Math-thinking-l