Another BASIC system for teaching programming?


(Richard Wallman) #1

This just floated into the Debian “testing” repos:

http://basic256.org/index_en

BASIC-256 is an easy to use version of BASIC designed to teach anybody (especially middle and high-school students) the basics of computer programming. It uses traditional control structures like gosub, for/next, and goto, which helps kids easily see how program flow-control works. It has a built-in graphics mode which lets them draw pictures on screen in minutes, and a set of detailed, easy-to-follow tutorials that introduce programming concepts through fun exercises.

It looks like a pretty good/complete BASIC system - it even has native support for databases (SQLite), graphics (including simple sprite routines) and networking basics. It’s not going to replace C, Java or Python any time soon, but it looks like it’s simple enough to catch student’s attentions and allow them to quickly start getting results. I would imagine that development of a simple “Space Invaders” type game could be taught in just a few hours.

I know there are a few of us here old enough to have fond memories of programming in BASIC… :smiley:


(Jon) #2

Ah, nice! Yep, BBC Micro Model B for me, in the days when half the (decent, spiral-bound) book that came with it was dedicated to programming. It even showed the reader how to break out into 6502 assembler too.

Happy days… :sunglasses:

(It looks like they have an Android release too - making a simple dev environment and editor available on popular tablets is a great idea).


(Andy Wootton) #3

“GOTO Considered harmful” - Dijkstra, 1968.

Is there any point risking damaging more young minds? “A few years down the coal mines did me no harm, apart from the permanent cough.” :-/

I have my doubts if the imperative programming paradigm will survive another decade and I’m finding it really hard to unlearn. We’re hitting that parallel wall again, after we did nothing with the 30 year stay of execution RISC negotiated for us.

I’m trying to work out how you would teach functional programming to a complete beginner, without it getting too scary, too fast. I’m not sure if Clojure is inherently complex or it seems so to me because every book is an attempt to convert expert OO coders to the cause by showing the gnarly stuff it’s good at.

What is BASIC better at than Python?


(Steve Pitchford) #4

I’m with Andy on this.

There are so many ingrained patterns of bad practice in so many fields.

I think we need to stop thinking of computers as idiots and start respecting them as massively complex machines. Thinking about parallels between writing instructions on how to make a cup of tea and implementing a complex digital system verges on insanity.

Object orientated programming was a great start at enhancing the role of system partitioning in design but far too few developers know how to use it, and far, far too many confuse objects as variable containers rather than behavioural repositories.

And whilst I’m on the subject of variables…

Imagine the look on a Chartered Accountants face if someone took an eraser to the books and reduced the total every time sales went down?

Variables as a fundamental store ( rather than an optimisation of the reflection of current state ) are fundamentally an anti-pattern in programming. Storage is huge now and transaction logs deserve to be treated as a fundamental first class citizen and the principal storage of state.

The fundamentals of software design should involve data life-cycle management, system partitioning, HCI, and the interactions there-of.

Now… Back to the Port and Cheese.


(Andy Wootton) #5

My new educational hero (who I just discovered happens to have written the quil graphics library I’m using as well as the live-coding music environment I’m interested in)


’Why do we call it “iteration”, instead of “a drum loop”?’

I think he’s wrong about magic though. His problem is that he thinks magic is difficult, whereas every 10 year old knows someone their age learned to be a great wizard.


(Andy Wootton) #6

Update: Sam’s Clojure Library is a client of Supercollider which was used by a lot of the AlgoRavers for graphics and sound. VJ-ing live? I’m admitting reluctantly that you can do this from Ruby and JavaScript, if you must. See bottom-right of http://supercollider.github.io/
Sonic Pi says it gets it sounds from Supercollider too but isn’t in the client list.