I've just started reading this paper

I've just started reading this paper (wish it covered Python): Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers ACM Computing Surveys (CSUR) Volume 37 , Issue 2 (June 2005) Caitlin Kelleher, Randy Pausch http://portal.acm.org/tipsvc.cfm?id=1089734&sess=%27%2BL%2F%2DP%5CK%2B30O%24%0A If anyone else wants to grab a copy and chat about it after reading, let me know. --Scott David Daniels Scott.Daniels@Acm.Org

Subject: Re: [Edu-sig] I've just started reading this paper
If anyone else wants to grab a copy and chat about it after reading, let me know.
--Scott David Daniels Scott.Daniels@Acm.Org
Downloading now... I anticipate having some comments.
Kirby
So I've been through it once. I derived some value and pleasure from this paper, I should say that up front, since I'm in a mood to just make a lot of criticisms below. Chalk it up to my generally dark disposition. Seems to me in this age of hypermedia and streaming video that a print article like this is somewhat of an anachronism. Show me clips of the described systems, not just still pix and little write-ups; have the taxonomies yield memberships more dynamically, in some GUI. Provide written summaries as gloss. Add talking heads. Make it a whole web site. Why should the expectation be that all this wealth of non-linear info should distill to some linear printed journal article instead of hypermedia? Not what I'd want my NSF tax dollars to underwrite (DARPA, NASA...) -- just speaking as a private citizen. Anyway, a fun trip down memory lane, remembering all those dead languages. PL/1, Algol, heh. Other ways to categorize were implied but not explicit: the targeted age group for example. Some were explicitly for 4-7 year olds, or for 5th graders. Others seemed more college oriented. This axis wasn't supplied which just goes to show how there're always more axes when it comes to multi-dimensional sorting schemes. Another axis: how were each of these funded, e.g. which were expected to earn a return in the market place? Rocky's Boots was a for-sale product as I recall (and worth buying). A central purpose of all these systems was never addressed: they give computer scientists interesting work, dreaming up playful gizmos for guinea pigs. To pretend all these toyz are *just* about making programming accessible to beginners is inauthentic -- it's also about doing something challenging and fun (and fundable) with one's CS education. Let's be up front about that shall we? Nothing to be ashamed of. There seems to be a premise that providing a relevant context (answering the question: why program?) needs to be motivated from within the interface or product itself. I'd say that's more a job for the wider culture: to show role model peers using programming skills on TV, in movies. Maybe there's nothing lab coated technicians might do, in isolation, to make CS seem less geeky. Nor is it a given that "attracting people to programming" is the same thing as "attracting people to CS". There's overlap, sure. An interesting sub-theme here is that some of these experiments in pedagogy percolate back into the professional environment. SmallTalk was for kids (in this telling anyway), but was vastly influential on general purpose production languages. Same with Pascal. Something intended to make X easier to learn ends up eclipsing X. The text didn't make any reference to whether type declarations are needed or not. Java is often mentioned as a target (what we're trying to learn), but I didn't see how notions of types, of casting, got introduced. Even when the language is dynamically typed, you still have types. It's not all about loops and conditionals. Nor did I see anything about the importance of an interactive interpreter. My idea of beginning programming is you enter expressions for immediate evaluation, get a session going, populate a workspace with names, before saving anything in a text editor. I've done two hours of Python and we've yet to save any .py files (that'll happen this week). An interactive interpreter doesn't prevent syntax errors, but it gives immediate feedback. You learn the syntax for a dictionary by trying to build a dictionary. You don't have to get a lot of other, unrelated syntax right (void public main blah blah) before you debug the dictionary, i.e. you just need expressions, not saved/compiled programs. Very important. Scheme/DrScheme not mentioned. Definitely aimed at learners, with levels, i.e. more features of the language get activated as one increases in mastery. Also interactive. I think a useful learning environment might include a large library of programs like this, so that students could play with a lot of them, get a feel for the taxonomies, just as these author(s) did. Don't start with 6 weeks of X, start with a couple hours devoted to X, Y, Z, maybe with a demo to kick it off each time. Exposure to this kind of variety helps answer the question: what might programmers do? Script theater! There's a reason it's called a Programme at Stratford-upon-Avon. So anyway, why not something more like: learning_environments = [ToonTalk, SmallTalk, RockysBoots...] for session in learning_environments: session.demo() session.play() myproject = favorite(learning_environments) for rest_of_term: myproject.workon() myproject.addtoportfolio() mygrade = professor.grades(myproject) Or just give us that NSF-funded web site, where all these toyz are sampled, demoed, made available for download (if they even still run on the newer hardware). What I'd like to give Tara for Xmas: a furry cat pet that's programmable somehow (like the Mindstorms Brick). She wants a cyber cat (she feeds an electronic fish everyday as it is -- has me transfer it to the laptop when we go on trips), and as a parent I'd be more inclined to buy it if she could program it herself. A palette of sounds and motions, reflex arcs. What I think more kids would like: an easier way to program web sites that function more like mazes, i.e. as browsers get more deeply into them, they become more likely to be the people you'd like to interact with. Casual browsers drift off, frustrated by all the puzzles. Kirby -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.362 / Virus Database: 267.13.11/191 - Release Date: 12/2/2005

Kirby Urner wrote:
Subject: Re: [Edu-sig] I've just started reading this paper
If anyone else wants to grab a copy and chat about it after reading, let me know.
--Scott David Daniels Scott.Daniels@Acm.Org
Downloading now... I anticipate having some comments.
Kirby
So I've been through it once.
I've been through it more briefly. More Pausch. Not my favorite.
Another axis: how were each of these funded, e.g. which were expected to earn a return in the market place? Rocky's Boots was a for-sale product as I recall (and worth buying).
I thought we weren't supposed to acknowledge a consciousness of these kinds of issues ;)
A central purpose of all these systems was never addressed: they give computer scientists interesting work, dreaming up playful gizmos for guinea pigs. To pretend all these toyz are *just* about making programming accessible to beginners is inauthentic -- it's also about doing something challenging and fun (and fundable) with one's CS education. Let's be up front about that shall we? Nothing to be ashamed of.
Yes. But it is indeed something to be ashamed of exactly to the extent there is inauthenticity. And I have the same sense as you, apparently, as to many of these projects. As much as I dissed Alice, I acknowledged that it as educational *for the students involved in helping to build it*. And as much hope as I have for PyGeo, all I say about it for sure is that building it has been an education for the developer - me. But in truth I suspect PyGeo to me a little more authentic - if less polished - than many other efforts cited here, perhaps precisely because there is no CS education that needed to be justified by it, and no funders that need to be satisfied by it, and it was built to precise specifications (in some sense) to serve an actual need - my own Much less speculative, in that sense.
There seems to be a premise that providing a relevant context (answering the question: why program?) needs to be motivated from within the interface or product itself. I'd say that's more a job for the wider culture: to show role model peers using programming skills on TV, in movies. Maybe there's nothing lab coated technicians might do, in isolation, to make CS seem less geeky. Nor is it a given that "attracting people to programming" is the same thing as "attracting people to CS". There's overlap, sure.
I think the answer "why program" has to be be embedded in the effort to teach programming. You are a student - and it is submitted that learning to program can help you pursue learning goals. Mathematics, geometry, etc.. Just as - if you were in business, learning to program might help you pursue business goals. Programming is a practical art, and we will be practical with it out-of-the-box. And stick with the obvious. Mathematics, geometry, etc. . Feel free to pursue 3d world building. Sounds like fun. I encourage you to do so, in fact. But not in school - as 3d world building is not a subject here. Math is. We are not trying to make programming inaccessible and boring. We are trying to demonstrate that programming is a practical art. We are in in school. We will do with it the kinds of things that one does in school. And it is in fact hard. There will be homework, there will be tests, you might not do well at it, you might not even like it. But I do, which is why I am teaching it. And it is my job to help you understand why I like it. I will do my best.
What I think more kids would like: an easier way to program web sites that function more like mazes, i.e. as browsers get more deeply into them, they become more likely to be the people you'd like to interact with. Casual browsers drift off, frustrated by all the puzzles.
If we truly think programming is important, we will concern ourselves less with what "more kids would like". We will direct them in a way that is in their interests, and we will let them fail - if they insist. Art

Kelleher and Pausch's ACM Computing Surveys 37(2) paper. Well, I took my time getting through the paper, and like the rest of you here was left dissatisfied. The first problem I have with the paper is is that, while there is a large body of work that it covers, I am unable to discern a desiderata for whether any particular work will be included. I certainly see Python as one (very successful) attempt to address the "Lowering the Barriers." Not seeing any criteria for inclusion or exclusion leaves me feeling that this paper is about "a bunch of stuff I read." Clearly there has been a lot of effort here in analyzing the subject systems; simply thoroughly reading the system descriptions would be exhausting. The paper though, leaves me with the impression, "I read a bunch of stuff, and this is kinda-sorta how I see the stuff I read can be classified." A survey like this should either start with a taxonomy and show how efforts fall into this taxonomy. Such a paper is about the taxonomy, and should concentrate on how well the taxonomy works. On the other hand, the paper could describe a way of accumulating research, and then produce a taxonomy from observation on the accumulation. Neither seems to be the case here. A kvetch: the SP/k claims PL/1 evaluates 25 + 1/3 as 5.33333. How could this be true? When stating a possibly surprising fact, proofreading is indicated. Why is COBOL in there? If it is, FORTRAN and ALGOL certainly belong, and wherever those three belong is where Python belongs. I suspect that Turing is in this group, and I don't know that Turing was a "stripped down for teaching" language. Claiming that BASIC's "LET" statement is somehow simplifying the language for the student does not convince me; I think LET simplifies the interpreter, not the student's task, As to the chosen hierarchy, the top-level distinction confuses me: Systems to teach programming for its own sake vs. Systems to teach programming in pursuit of another goal To which class do systems to teach programming in order to teach Computer Science belong? Determining the "primary aspect of programming that the system attempts to simplify" seems equally troublesome, requiring a crystal ball -- I have no confidence in reading this paper that another person would cut the boundaries the same way. --Scott David Daniels Scott.Daniels@Acm.Org
participants (3)
-
Arthur
-
Kirby Urner
-
Scott David Daniels