6

What books would have been used to teach school aged kids BASIC in a classroom setting back when BASIC was in common use? 8-Bit computers commonly came with tutorials to learn BASIC, like A Touch of AppleSoft BASIC or An Introduction to BASIC. From the late 70's through the early 90's many schools taught BASIC and I would like to harness all their hard work instead of reinventing the wheel. David Brin wrote extensively about why BASIC programming is still useful in Why Johnny Can't Code.

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. Repeating this point for emphasis: You could even do it all yourself, following along on paper, for a few iterations, verifying that the dot on the screen was moving by the sheer power of mathematics, alone. Wow!

Clarification: I'm interested in US schools which general used the C64 or the Apple II. Second Clarification: I've expanded the question to school aged since elementary school is aiming very low.

  • 1
    Its not relevant to your question but, for sake of expounding, I learned BASIC from the Sinclair ZX81 and Sinclair ZX Spectrum manuals. They're probably still the best explanatory text I've ever read on a computing subject. Their excellence made them worth a mention...well, to me anyway :-) – TonyM Apr 10 '18 at 16:22
  • 4
    From my UK perspective, there was no concerted effort to teach kids of that age any kind of programming. There was a vague notion of teaching IT skills (mostly involving using word processors and spreadsheets), but I didn't encounter any formal instruction in programming until much later (i.e. after I'd worked it out for myself). Which is a shame, because UK schools generally had BBC micros, which had a much better implementation of BASIC than either the C64 or Apple II. – Jules Apr 10 '18 at 17:06
  • 6
    @jameslarge given that innumerable great programmers got their start using BASIC on micros, it obvious that Dijkstra isn't as wise as he thinks he is. – RonJohn Apr 10 '18 at 20:30
  • 2
    @JeremyP You can write simple scripts today or simple JavaScript but you don't come close to what real programs look like. On an Apple II (or C64 etc) BASIC programs look a lot like everything else, and a number of commercial programs were written in BASIC. I found it very satisfying to write things that looked in my eyes as good as what professionals did. When I switched to GUI programming on the Mac those programs were huge compared to the starter BASIC programs. My first Pascal application had a good 4k of code to handle events and menus before getting to anything else. – Michael Shopsin Apr 11 '18 at 15:28
  • 3
    @MichaelShopsin Yes, back in the early 80's, the gap between professional software (at least for microcomputers) and what I - a teenage hobbyist - could write seemed very much smaller than it does today. – JeremyP Apr 17 '18 at 9:35
3

I will answer different question which is assumed by the original question; I am the author of the textbook in informatics, and think answering this way would be appropriate.

It is not that BASIC was great language to program, or people were just writing great books in the past, but now having difficulties with that. Consider the following:

  1. BASIC was one of the first "consumer" programming language. Programming the way explained in the book was new to the wide audience, and there was a big interest in that - because it was new and it was perceived as having great potential;
  2. If you would carefully examine the books of that time, they were focusing on content of the programming - algorithms - rather than quickly jumping to the button-pressing "angry birds" behavior in front of the keyboard. Programmer was that person who was able to devise working and more or less optimal algorithm to achieve the result using logic. These days programmer is the one who knows buzzword operators of buzzword programming language;
  3. People were willing to study basics of the programming, and were interested in programming as a science subject. Programs of those times are masterpieces doing a lot of stuff within constrained RAM, ROM, graphics, I/O etc. Modern programming is more about making up something acceptable of the "bricks" of already existing functionality into the functional application.

So there're several mandatory things to get good future programmer -

  1. genuine interest in the subject;
  2. knowing the basics of the logic and at least one programming language at low and high level;
  3. be set for the quality - not that perfection, but for the continuous quality in the whole process of software development involving not only coding, but also starting with proper and scalable architecture, proper platform/hardware selection, thoughtful requirements drafting, and execution (coding and testing).

Good book will not change the status quo unless targeted individual is exhibiting properties above.

  • 1
    Very perceptive answer, David Brin says, "Typing in a simple algorithm yourself, seeing exactly how the computer calculates and iterates in a manner you could duplicate with pencil and paper -- say, running an experiment in coin flipping, or making a dot change its position on a screen, propelled by math and logic, and only by math and logic: All of this is priceless." Modern programming books are mostly, here is how you do strings in this language, now here is a web server in 20 lines. The older books focused much more on the algorithms and logic. I want my kid to know why programming works. – Michael Shopsin Apr 12 '18 at 14:28
  • Very few micro BASIC books had any focus on algorithms, so maybe using your IIgs + AppleSoft approach isn't ideal. – scruss Apr 14 '18 at 0:03
4

Not a book but a (relatively) current website, with lesson plans, in AppleSoft BASIC: 20 lessons to teach your 12-year old how to start programming

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.