While we don’t see it used very often these days, BASIC was fairly revolutionary in bringing computers to the masses. It was one of the first high-level languages to catch on and make computers useful for those who didn’t want to (or have time) to program them in something more complex. But that doesn’t mean it wasn’t capable of getting real work done — this classroom management software built in the language illustrates its capabilities.
Written by [Mike Knox], father of [Ethan Knox] aka [norton120], for his classroom in 1987, the programs were meant to automate away many of the drudgeries of classroom work. It includes tools for generating random seating arrangements, tracking attendance, and other direct management tasks as well as tools for the teacher more directly like curving test grades, tracking grades, and other tedious tasks that normally would have been done by hand at that time. With how prevalent BASIC was at the time, this would have been a powerful tool for any educator with a standard desktop computer and a floppy disk drive.
Since most people likely don’t have an 80s-era x86 machine on hand capable of running this code, [Ethan] has also included a docker container to virtualize the environment for anyone who wants to try out his father’s old code. We’ve often revisited some of our own BASIC programming from back in the day, as our own [Tom Nardi] explored a few years ago.
Pretty much, the spreadsheets carried the masses the rest of the way. While the techno-elite complain about, “right tool for the job”.
Erm, “the right tool for the job” is the tool you have right now, and back in the 80s, BASIC was pretty much the only tool that came with most home computers. That’s what we used, and note that plenty of commercial software has been written in BASIC by the “techno-elite”.
You can write good code in BASIC and you can write crap code in BASIC, that is up to you.
I generally agree, but.. The very popular and iconic C64 had a very limited BASIC interpreter, making this difficult.
Doing something sophisticated required using Peek+Poke, in-line assembly (in DATA lines) or using SYS.
Or using SIMONS BASIC, which wasn’t freeware, though.
Other computers like, say, MZ-80K had just a monitor in ROM and did load BASIC via cassette.
A good one, I mean (SA-5510, S-BASIC etc). Fortran and Pascal were also available. Compilers, too.
Later machines also had boot capability for Quick Disc (QD) or floppy disk.
On IBM PC, there also was ROM BASIC, but it was inferior to the later disk-based GW-BASIC that shipped bundled with DOS disks.
BASIC-86 (MBASIC, BASCOM) and QuickBASIC were also available, followed by Basic PDS 7 and Visual Basic, respectively.
Yeah, I should have included the “use a well featured flavor of BASIC” disclaimer.
Personally I found BBC Basic to be the best. Bonus that it comes with a build-in assembler (6502 or ARM). Although you could do most things in BBC BASIC (thanks VDU command), and usually just used assembly to optimize part of the code I had already written (and profiled) in BASIC.
We had BASIC ‘puters running at our school. Great for printing out ‘100 lines’ punishment. eg ‘I must not use GOTO command on this computer’.
We had one computer in the school district headquarters, and our teacher had to take our punch cards in to run them after school. Got the results back the next day on green/white fan fold paper. Twenty four hour write/run/debug cycle!
Thanks Mr Charleson, you were great.
I’m not trying to be a Scotsman, but in 1975 my high school computer class only got one run on friday evenings.
Simple software can be pretty capable. It seems to me that this application would have worked equally well on an 8-bit computer like an Apple ][ (in the US) or BBC micro (in the UK), or ZX Spectrum (though these were far less common in schools). I suspect in French schools some kind of Thompson TO5 was used. It would have been a bit more tricky on a Commodore 64, because it was hard to generate a graphical chart.
Let’s guess at the storage requirements. In the UK a typical class size was 35. If we assume 7 subjects per student; one grade per week per subject and each grade takes 1 byte, but also attendance needs 2 bits per day (morning and afternoon), then a year’s worth is (52-13) = 39 weeks => 11.3kB per class, or 77kB per 240 student year intake. Those kinds of storage and performance requirements would easily fit within an 8-bit system.
Amstrad CPCs were popular in France, I wonder if they were also big in French education?
I expect after 1985 a green screen CPC 6128 would have been quite capable in this role.
In the UK I recall my primary school had Amstrad PCWs in the school office in the late 80s, presumably for Locoscript for all the letters sent home.
I really miss BASIC for this reason. A lot of reasonably intelligent people used it to solve real problems in exactly the manner they desired, without becoming part of the sainted priesthood of “real” software developers.
Interesting that an article about BASIC brings out this hostility towards people how care about writing quality code (or the “techno-elite” as the other detractor phased it).
Assuming you have a well featured flavor of BASIC, it is possible to write high quality with BASIC. If you choose to write crappy code, that’s up to you, but no need to paint those that choose to write good code as religious zealots.
As a 30+ year industry veteran (most of it in dev tools) I am as “techno elite” as they come. In our quest to solve ever more complex problems, we have built ever more complex languages, frameworks, etc. In doing so, we have significantly increased the barrier to entry and in retrospect I don’t think this is a good thing.
In my day, we were taught BASIC in elementary school. My daughter had to wait till high school because they can’t find enough teachers qualified to teach “proper” programming languages they now use.
Thanks for reply, I get what you mean. I keep saying “when I was a kid computers were cool, and not so much burden as today…”.
But at the same time, while entry bar is higher, it unlocks access to far more amazing things than we had back in the day. Like video/image processing (OpenCV), NLP (Stanford NLP core), advanced statistics (numpy, scikit, etc.), 3D graphics (openscad), 3D printing, embedded systems, SDR, DSP, distributed processing, and much more.
I feel there is also far more access to quality tuition now compared to when we were starting out. From coding courses at community colleges to online tutorials to youtube videos. Although still, maybe it would better to have kids learning coding rather cursive at school. The amount of knowledge is a lot greater than 35 years ago, we should update general education to reflect that.
When I was a lad… we only ‘ad 1Kb of memory an’ if ye want’d to play a game ee ‘ad to be writtin it y’sel’…. (I was going for Yorkshireman, but I think it went a bit Geordie) I was lucky to be in the first round of CS students in my high school. While I preferred to code in BBC BASIC or assembly, we had to learn and use CAMEL (1) for a lot of our exercises. I may have had to learn it from the manual, then help fill in the gaps for the teacher. Funny that many of coding interview questions asked today were covered in my high school CS class over three decades ago (sorting, link-lists, hashes, etc).
(1) https://en.wikipedia.org/wiki/COMAL
Kids don’t learn cursive anymore.
@Taylor That might depend on where you live. Where I live they still learn cursive.
There was a golden age of “domain experts” who actually understood the tasks to be done, writing software in Basic and Turbo Pascal themselves.
The shift to C was very much a professionalisation take over, and functionality went way backwards.
Yes, there’s some truth within.
At least on PC, practical programmers had used Quick Basic 4 (full version of QBasic) or Visual Basic.
Some also had been using Turbo Pascal.
Both Turbo Pascal and QB/Turbo Basic had combined elements of Pascal and Basic, making them fine languages for sane people.
Both allow to program in a clean and structured way. No need for programming spaghetti code.
Or to turn into a freak (as easily happens with learning C/C++).
Its easier to teach an engineer how to program than a programmer how to engineer.
In college (’84 – ’88 ) we used GW-BASIC for all sorts of engineering problem solving. Ex: in particle dynamics we had to show from above a figure skater doing a figure 8 on a rotating rink.
We had Z100s which did 640×225 in 8 colors. We had a 3D CAD program (zcad of course) that was written in BASIC (and we had the source!). It has a mode that displayed in red & green so you could use 3D glasses. Autocad didn’t do 3D back then.
I found JustBasic https://www.justbasic.com/ is a really good introduction to object orientated programming while still being intuitive enough for those of us that can still remember programming on a Sinclair.
The TRS80 had a classroom setup where the teacher’s terminal controlled the student’s computers TRS80s and class records were kept using Visicalc. I like many others ran a BBS in Dos (The BreadBoard System or TBBS by Phil Becker) which also had a database system TDBS, online games and even a mail system (TIMS) through Fidonet….all in DOS…the great and powerful …of its time. I miss those days. TBBS was modified a few years ago to connect to the Internet but the support forum has since folded. Also I saw on eBay a company that has an addon board to improve the graphics add a RTC and Ethernet; all running in TRSDOS/DOSPLUS/DRDOS.
> also included a docker container to virtualize the environment
I was more excited about this, though I was hoping for a containerized DOS emulation, and it’s actually a containerized Basic emulator. While I have 8086 machines to run my GW-BASIC on, it is nice to have a container for demonstrating projects for others.
I want to get to a place where I can easily pull a docker container for most legacy DOS tools, and glue them together as needed.
Dartmouth BASIC’s superpower: moving the complexity from the language into your code.