How are students learning programming in a post-Basic world?
July 18, 2011 at 12:49 pm 6 comments
The value of Basic being described in this piece is the same argument that, I think the ACM Java Task Force was making about Java. Their point isn’t that Java (or Basic) is a great language. The point is that having a lingua franca, a language that you could count on being everywhere, that there was lots of educational support for, is a cultural advantage for developing more computer scientists. It’s a real cost today that Basic (or something else to take its place) is not omnipresent today.
“I have never received as much hate mail as I got for that article, not even for my infamous attacks on Star Wars,” Brin recalled recently. “It was almost entirely from people who missed the point, with all the rage directed at Basic. Let me be clear that I am not defending Basic. It was a primitive line-coding program, but everyone had it. Textbooks had exercises written in Basic, and teachers could count on a large fraction of their students being able to perform those assignments.”
“I am not defending Basic,” says writer David Brin, who talked about the death of the programming language in a 2006 Salon.com article. “It was a primitive line-coding program, but everyone had it.”
Today, the top one-tenth of one percent of students “will go to summer camp and learn programming, but the rest may never know that the dots comprising their screens are positioned by logic, math and human-written code,” Brin complains.
via How are students learning programming in a post-Basic world? – Computerworld.
Entry filed under: Uncategorized. Tags: Basic, computing education, Java.
1.
BKM | July 18, 2011 at 1:17 pm
Basic is the one programming language that I utterly failed at. I had never encountered it until I was a grad student, and by then I already knew Pascal and C. I just couldn’t think in that spaghetti-tangled paradigm.
I don’t think it would make much difference if it were around. The schools still wouldn’t teach it.
2. How are students learning programming in a post-Basic world … « Siam Source Code – สยามซอร์สโค้ด | July 18, 2011 at 6:35 pm
[...] Link: How are students learning programming in a post-Basic world … [...]
3.
Alex Rudnick | July 19, 2011 at 12:55 am
It used to be on pretty much every PC
I find my colleagues, programmers now in their upper 20s, often got started on QBasic, which wasn’t all that terrible, with subroutines and a nice little editor… and you could do some sounds and some graphics. More importantly, it was on pretty much every PC, including the old clunky ones in school, so you could do something creative once you got done with the boring typing exercises.
4.
Rob St. Amant | July 19, 2011 at 7:17 am
At my department’s annual open house, I’ve occasionally talked with middle school students who have just started to program on their own. They mention HTML and PHP.
I followed the links to David Brin’s 2006 Salon article; it was interesting. I think part of his complaint is based on nostalgia and some unfamiliarity with computing concepts.
The “scripting” languages that serve as entry-level tools for today’s aspiring programmers — like Perl and Python — don’t make this experience accessible to students in the same way. BASIC was close enough to the algorithm that you could actually follow the reasoning of the machine as it made choices and followed logical pathways.
5.
Mark Miller | July 19, 2011 at 3:29 pm
I can see where the argument comes from to say a lingua fanca is good. It treats a programming language as a communication protocol, as if that’s its sole value. Basic was my first language, and it was at the time when it was the universal language for microcomputer users. It had the advantage that books and computer magazines that you could find in bookstores (and in some cases grocery stores) all spoke the same language, which made programming examples easy to find. Just a side note, lest we forget what made that possible were two companies: General Electric and Microsoft. GE popularized Basic in the mid-1960s, and Microsoft popularized it on microcomputers in the 1970s. Microsoft Basic was their first big-selling product in the 1970s before IBM came calling. The reason Basic became the universal language on microcomputers was that most computers had some version of Microsoft Basic that came with them. In many cases it was the default command line interface (any Basic instruction was executed immediately by the interpreter if it was not preceded by a line number).
I looked back at my old Basic programs several years ago, and in some cases I was astonished that I was able to pull them off, because I had trouble keeping track of what was going on, trying to read my own code years later. It wasn’t that I couldn’t remember what the programs did. Rather it was the idea of trying to manage growing complexity in my programs when all variables were global.
I can remember a point where I outgrew Basic, and that’s when I moved on to Pascal. The transition wasn’t that hard.
Looking back at that experience, I do not consider Basic an easy language to learn. It was easy in terms of having a small feature set, but it was not easy to learn its structure. IMO it had some bugs in its language design, if the goal was for it to be a learning language, though that could’ve been due to the implementation.
Secondly, since Basic was so dominant on microcomputers, it imprinted on my mind a concept of what programming was. Pascal felt like an improvement on Basic. This dominance utterly disabled me, though, when I tried to program in Lisp, when I got into computer science, because all of the operating rules were different. It broke the mold that I thought programming fit into. A good part of this was I had a bad teacher as well. It was such a dispiriting experience I vowed never to look at Lisp again. Fortunately I changed my mind years later, and now I enjoy it more than I liked Basic.
Ease of learning and interaction in a programming language have their value in an educational environment, but I think there is something to be said for a language’s structure having pedagogical value in and of itself. This was the spirit in which languages like Logo and Pascal were created. The modern versions of this idea would be EToys, and probably Alice, and Scratch. I’ve only heard about the last two. I’d put Scheme in this category as well. Looking at the language as a representation of a modeling system with rules in which valuable lessons in thinking can be taught is a powerful concept in programming language design and use. Too often what I see in discussions about languages has a software engineering focus, where the sole goal is teaching a method of software construction. What I’m saying sounds kind of like Kathleen Fisher’s argument of “different languages are best suited for different domains,” but I don’t get a sense of the full context of her philosophy from the article.
I agree that at some point software construction is the point, but as a discipline, speaking of computer science here, what is the end goal? Is it “build to know,” or “build to use”?
6. What is the modern equivalent of BASIC? | Contraterrene – Tony Hursh | July 23, 2011 at 12:20 pm
[...] this post, Mark Guzdial brings up an issue that’s generated a fair amount of interest in recent [...]