Forgot your password?
typodupeerror
Education Programming United Kingdom Hardware

'Retro Programming' Teaches Using 1980s Machines 426

Posted by samzenpus
from the old-timey-processing dept.
Death Metal Maniac writes "A few lucky British students are taking a computing class at the National Museum of Computing (TNMOC) at Bletchley Park using 30-year-old or older machines. From the article: '"The computing A-level is about how computers work and if you ask anyone how it works they will not be able to tell you," said Doug Abrams, an ICT teacher from Ousedale School in Newport Pagnell, who was one of the first to use the machines in lessons. For Mr Abrams the old machines have two cardinal virtues; their sluggishness and the direct connection they have with the user. "Modern computers go too fast," said Mr Abrams. "You can see the instructions happening for real with these machines. They need to have that understanding for the A-level."'"
This discussion has been archived. No new comments can be posted.

'Retro Programming' Teaches Using 1980s Machines

Comments Filter:
  • by elrous0 (869638) * on Wednesday August 25, 2010 @03:10PM (#33372438)
    That could teach them a thing or two about commerce and trade, I suppose.
    • by TheRaven64 (641858) on Wednesday August 25, 2010 @06:06PM (#33374828) Journal

      I was going to post and suggest that they should use 29-year-old computers instead, because the BBC Micro was (designed as) an absolutely superb platform for teaching programming. Then I read TFA, and it turns out that, in fact, that is exactly what they are doing.

      It was a huge step backwards when the BBC Model Bs in my school were replaced with 386 PCs. The PCs were networked and so had to have some security. The BBCs let you poke absolutely anything and booted straight into a programming language (a dialect of BASIC, but one that supported structured programming and included a built-in assembler), and included a collection of I/O ports that were trivial to connect your own projects to and drive from BASIC. The OS was stored in ROM, and if you did anything especially wrong, you just turned it off and on again and were back to the pristine condition.

      • Re: (Score:3, Funny)

        by PReDiToR (687141)
        Should have had the BBC Master (512) with the 8086 daughter board.

        *CONFIGURE TUBE

        That got me into DR-DOS (I forget what version and can't be bothered to try and reason it out due to alcoholic indifference).

        Oh, and a couple of months after I was playing with that crap my IT teacher at school turned up with a Schneider 8086 machine with an orange monochrome monitor and admitted that he had no idea how to use it but that it was the latest generation of computer that businesses were using. I actually got
  • Mid 1980's for me (Score:3, Insightful)

    by Monkeedude1212 (1560403) on Wednesday August 25, 2010 @03:11PM (#33372440) Journal

    We had to remote into this old Unix System V box and do a few exercises for our course education. No, its not as far back as these students were going but it was helpful to become familiar with that kind of architecture, because you never know whats still going to be kicking around when you get on the job.

    • You really don't. You could end up with one of the two ARCnet plus deployments that were done.

      • Re: (Score:3, Interesting)

        by Glonoinha (587375)

        Hey man, don't bag on ARCnet. That shit was insane - you could pull coax for as long as the eye could see and still maintain decent throughput (for the day) and it would tolerate about as much 'stupid' as any network I've ever encountered. I saw instances of some serious 'stupid' on ARCnet networks - including one length of cable that didn't quite reach, so they spliced it using two pieces of coathanger soldered on both ends to the frayed ends of each piece of coax. They used cardboard to keep the two pi

  • makes sense (Score:5, Insightful)

    by grub (11606) <slashdot@grub.net> on Wednesday August 25, 2010 @03:11PM (#33372454) Homepage Journal

    Makes a lot more sense than starting them off in some poo like Java where they never need to know about the real hardware.
    • Re: (Score:2, Insightful)

      by xtracto (837672)

      Agree completely.

      I like and use Java everyday but I would not suggest learning Computer Science with it.

      I learned data structures and algorithms with plain C and pointers which IMHO is the proper way to do it.

      Just recently I was reading a book about data structures and algorithms in Java, and it was very funny the loops people have to jump to create a simple linked list or stack... because Java is *not* done for that...

  • IMO: Great (Score:5, Insightful)

    by hsmith (818216) on Wednesday August 25, 2010 @03:12PM (#33372472)
    I feel us programmers have gotten too far away from the lower level aspects of the craft and are now too higher level focused. While, this isn't a bad thing (why should you rewrite a framework everytime you start a new application) - it really perverts ones respects for how things work and efficency.

    I am getting back into assembly programming after 8 years of C# and it is a bit of a shift in thought. My college switched from C/C++ to Java my senior year for incoming freshman - a real shame. Programming is totally different when you have no respect of memory management.
    • Re: (Score:3, Insightful)

      by CAIMLAS (41445)

      As a sysadmin, I agree.

      I hate programmers. They need to stop writing such bloated crap, hogging my cycles and eating my RAM. Sure, it's OK on one system, but when you've got to push that resource use out across 10, 20, 30, or more servers?

      That gets expensive, especially with the recent memory cost hike (yikes!) It's infuriating when the only significant change is the library/framework getting upgraded, and then you've got to upgrade a couple dozen clients and/or servers as a result due to poor performance.

    • Re: (Score:3, Informative)

      by mrwolf007 (1116997)

      (why should you rewrite a framework everytime you start a new application)

      Lots of frameworks are corsets. Looks nice, but only hinders when you want to get the job done.

  • by John Hasler (414242) on Wednesday August 25, 2010 @03:12PM (#33372476) Homepage
    Uhm, we were saying that in the 1980s. At Bletchley Park they should be teaching with machines that actually are old.
  • by commodore64_love (1445365) on Wednesday August 25, 2010 @03:13PM (#33372482) Journal

    You would get exactly the same "feel" as you get with an old C=64 or Atari or Amiga machine. If your goal is to get down to the bare metal, then go ahead and do so. There's no need to dust-off old machines that are on the verge of death (from age).

    • by cptdondo (59460) on Wednesday August 25, 2010 @03:35PM (#33372770) Journal

      But DOS doesn't have all the neat tools.

      I learned on a PDP-8; 16K of hand-strung RAM and a CPU slow enough that you could put an AM radio next to it and hear it compute.

      This thing came with all sorts of neat tools, including assembler (of course) and a FORTRAN compiler.

      You learned to program good, tight code and really, really thought about your data structures.

      Sure, programming today is much, much easier and we can do lots more. I cringe when I look at FORTRAN IV code these days; it's painful. But it did teach me a lot.

    • by Rand Race (110288) on Wednesday August 25, 2010 @03:36PM (#33372780) Homepage

      Or you could just fire up a terminal ... Oh, Windows. Never mind.

      I just dusted off a couple of C-64s, an Amiga 500, a Sun 3/50 and an Apple IIc the other day. They were filthy. And on top of the box of cables I needed to get at.

    • Re: (Score:3, Interesting)

      by Nethead (1563)

      You're an old hacker and may relate to this. I found free on craigslist a hand built (hand wrapped) Z80 CP/M box with dual 8" drives and a case of diskettes. No instructions or schematics. This winter I'm going to dig into it with my scope and logic probe and see if I can get the old baby working again. I was amazed that I was still able to just look at what components were on the boards and get a fairly clear idea of how it was put together. I figure the hard part will be following the address lines a

  • I keep saying that (Score:3, Interesting)

    by Anonymous Coward on Wednesday August 25, 2010 @03:13PM (#33372484)

    ... if you want to know how computers work, learn microcontrollers with the Atmel 8 bit family of controllers (ATMEGA8, for example). These things are wonderfully documented, there is a free C/ASM development environment with emulator (single-step, breakpoints, etc.). The real deal is just a few dollars for a development board (or get an Arduino, same thing). You don't get the absolutely down to the transistor insight, but that's really just a few experiments with TTL gate chips and LEDs away.

  • "Actors" (Score:5, Interesting)

    by Applekid (993327) on Wednesday August 25, 2010 @03:13PM (#33372488)

    They each took on the role of a different part of the machine - CPU, accumulator, RAM and program counter - and simulated the passage of instructions through the hardware.

    The five shuffled data around, wrote it to memory, carried out computations and inserted them into the right places in the store.

    It was a noisy, confusing and funny simulation and, once everyone knew what they were doing, managed to reach a maximum clock speed of about one instruction per minute.

    I wish I had a teacher like this while in [US public] school.

  • Next up: Driver's Eduction on the Model T [wikipedia.org]. ;)
    • Re: (Score:3, Insightful)

      by Locke2005 (849178)
      What would be easier to learn basic mechanics from working on: a '57 Chevy or a 2011 Lexus?
      • Re:Sounds like fun (Score:5, Insightful)

        by jeffmeden (135043) on Wednesday August 25, 2010 @03:36PM (#33372796) Homepage Journal

        New cars are wonderfully simple under the hood, once you strip away all the plastic. Ever taken apart an old carburetor before? Ever try to get it back together in working order? Give me a FI computer, airflow sensor, and fuel injector any day. Not surprisingly, cars went from a maintenance interval of 1,000 miles with a life expectancy of 50,000 miles to a maintenance interval of 10,000 miles and a life expectancy of 250,000 miles by *avoiding* complexity.

        • Re: (Score:3, Insightful)

          by Anonymous Coward

          Ever taken apart an old carburetor before? Ever try to get it back together in working order?

          Yes, lots. While I appreciate the old joke that "carburetor is a French word, meaning 'leave it alone'", I never found carburetors to be capricious, only more complex than 'screwdriver mechanics'. You have to know how the carburetor works, and you have to have the correct service manual, and you have to have the tools to assure the precision parts are all in spec.

          The only difference with carburetor overhaul was you

    • Re: (Score:3, Informative)

      by localman57 (1340533)
      There's a bit of truth to that Model T stuff. Everybody thinks they know how to drive a standard transmission until you throw 'em in an antique without synchros... I woudl guess you could say the same about automatic spark advance, but I've never personally experienced that...
      • Re:Sounds like fun (Score:4, Informative)

        by Nethead (1563) <joe@nethead.com> on Wednesday August 25, 2010 @03:50PM (#33372966) Homepage Journal

        The model-T was even stranger: http://en.wikipedia.org/wiki/Model_T [wikipedia.org]

        The Model T was a rear-wheel drive vehicle. Its transmission was a planetary gear type billed as "three speed". In today's terms it would be considered a two speed, because one of the three speeds was actually reverse.

        The Model T's transmission was controlled with three foot pedals and a lever that was mounted to the road side of the driver's seat. The throttle was controlled with a lever on the steering wheel. The left pedal was used to engage the gear. With the handbrake in either the mid position or fully forward and the pedal pressed and held forward the car entered low gear. When held in an intermediate position the car was in neutral, a state that could also be achieved by pulling the floor-mounted lever to an upright position. If the lever was pushed forward and the driver took his foot off the left pedal, the Model T entered high gear, but only when the handbrake lever was fully forward. The car could thus cruise without the driver having to press any of the pedals. There was no separate clutch pedal.

        The middle pedal was used to engage reverse gear, and the right pedal operated the engine brake. The floor lever also controlled the parking brake, which was activated by pulling the lever all the way back. This doubled as an emergency brake.

  • Probably a good idea (Score:4, Interesting)

    by Anonymous Coward on Wednesday August 25, 2010 @03:17PM (#33372534)

    We ran some older machines in my first programming course. When you can see the direct results in speed (or lack of) it can help teach better approaches. Writing a game and seeing the screen flicker when you ask the CPU to do too much is good modivation to find a more effectient approach. One our our instructors also did something like this with visual sorting procedures. If you can see the difference in speed between one sorting approach and another, it sinks in.

  • by PolygamousRanchKid (1290638) on Wednesday August 25, 2010 @03:17PM (#33372542)

    The computing A-level is about how computers work and if you ask anyone how it works they will not be able to tell you

    That's what most people would say when you asked them how something works. Computers, fermentation, a Wok . . . etc.

    "Um . . . I dunno . . . "

  • Old trick... (Score:3, Interesting)

    by ibsteve2u (1184603) on Wednesday August 25, 2010 @03:18PM (#33372556)
    I wasn't alone in keeping '286, 386, and '486 boxes around until Pentiums became prolific...and the same goes for dual cores etc...you write code that runs fast on the older generations, and you never hear user-land complaints about your stuff's performance on the new.

    Of course, with the advent of .NET....well, now you're only as good as Microsoft is.
  • Knowability (Score:5, Insightful)

    by tverbeek (457094) on Wednesday August 25, 2010 @03:18PM (#33372562) Homepage

    One of the great things about the early micros (and probably the even-earlier minis) is that they were Knowable. With a little time, an intelligent person could become familiar with the workings of the entire architecture. I used to have a map of every memory location in the 64KB of ye olde C64 (most of it was user RAM of course) explaining what each byte was for. POKE a different value to a certain address, and the background color changes. PEEK at a certain address and it tells you the current hour. You could learn this... all of it. Obviously that's just not possible with modern computers (probably not even modern phones); no one person can grok the whole system.

    • Re: (Score:2, Insightful)

      by ITBurnout (1845712)
      Beagle Bros Apple II Peek & Poke Chart FTW! Good memories dinking around with that.

      The professor does have a point. I remember writing one of my first BASIC programs. All it did was wait for a key to be pressed, then fill all character positions on the screen with that letter. I could watch it go line by line. Then I wrote the same program in 6502 assembler. The entire screen of characters changed instantly, as fast as I could type. A feeling of awe and sudden empowerment rushed through my vei
  • Ridiculous (Score:2, Interesting)

    by 16K Ram Pack (690082)

    The five soon discovered that just because a program was simple did not mean the underlying code was straight-forward. To make matters more testing, the BBC Micro offers a very unforgiving programming environment.

    My first piece of commercial programming was on a BBC Micro and having that environment didn't teach me anything, it just made programming more of a pain than being able to cut and paste, set debug breaks and so forth. And it doesn't teach any more than using C#/VB because it's a machine designed around using BASIC, which is itself an abstraction (and IIRC, you didn't have functions, so had to endure the horror of GOSUB/RETURN).

  • Edlin (Score:3, Insightful)

    by stevegee58 (1179505) on Wednesday August 25, 2010 @03:29PM (#33372690) Journal
    Edlin should be a mandatory part of the course for the full immersive effect.

    Or was that the 70's? Gosh I can't remember now cuz I'm so old.
    • Edlin (Grr....) (Score:2, Insightful)

      I first used edlin on DOS 1.0 and was kept using it until better alternatives (norton edit, anyone?) appeared. Edlin makes vi seem like a walk in the park. I've used edlin for assembly and Pascal programming, and I say "curse you!" to anyone who jokes about those dark days.
    • > Or was that the 70's?

      1980: it came with early versions of MSDOS. I avoided ever learning it by using CPM/86 and Unix.

  • Wouldn't it be better to use the emulation route? For example, writing a program for the original gameboy, and running it through the emulator. I remember at university we learned assembly on an emulated MIPS. We could focus on the individual instructions, on hardware that was simple and clean, but it all ran on the unix servers (x terminals).

  • crufty calculator? (Score:3, Interesting)

    by chitselb (25940) on Wednesday August 25, 2010 @03:35PM (#33372762) Homepage

    from the link: "using 30-year-old or older machines."
    from the fine article: "First released in 1981; discontinued in 1994 using 30-year-old or older machines."

    I recently (three weekends ago) fired up my Commodore PET 2001 [flickr.com] (a *genuine* pre-1980 computer) and have been writing a Forth [6502.org] for it. It's really a lot of fun, and I'm finding that 30 years experience in various high-level languages has improved my "6502 assembler golf" game a lot. It's very incomplete, but the inner interpreter mostly works. Feel free to throw down on it here [github.com]

    Charlie

  • by BlindSpot (512363) on Wednesday August 25, 2010 @03:38PM (#33372804)

    10 years ago when I went through University, the core of the mandatory Assembly programming course was taught on the PDP-11 architecture, then 30 and now 40 years old.

    Granted it's not quite the same. We used emulators and not the real things. Also it was for different motivations. The prof felt it was simpler to teach the cleaner PDP-11 instruction set than the 80x86 or 680x0, although the course did eventually also extend to both. Also he happened to be an expert in systems like the PDP-11.

    However the idea of using old systems as teaching aids is hardly new - or news IMO.

  • by ed (79221)

    I was using them at college when they were new.

    My first job was writing software that controlled scientific instruments and their was an awful lot of eductaional software written for them because they were designed to be used in schools. The Basic was more structuured and it could use microcassettes or 5 1/4 flopies with its own DOS.

    In short, if you are going to use a dinosaur, it is the best dinosaur to choose

  • Mastery? (Score:3, Insightful)

    by vlm (69642) on Wednesday August 25, 2010 @04:09PM (#33373182)

    For Mr Abrams the old machines have two cardinal virtues; their sluggishness and the direct connection they have with the user.

    Another hacker learning skill you must obtain, that he forgot to mention, is how to completely master a system. This is different from merely learning enough.

    At one point, I could tell you every minute detail of OS-9 (the motorola 6809 CPU OS, not the apple product two decades later) and I also nearly mastered 68hc11 assembly, Z-80 assembler, and the PDP-8.

    There is no point trying to teach kids how to master something using, perhaps, the linux kernel, because its too freaking big, at least for a one or two semester course.

    The mastery skill requires figuring out what you don't know and then figuring out how to find it. Very much like spatial mapping, I see a blank spot in my map of how it all works, so how will I get from where I know to where I don't know? Also you learn how to learn the philosophy of a complete working system, sort of a C/S ecology mindset. Finally there is a bit of reflective thinking that interacts across now usually broadly separated problem areas, look how the memory allocation system has reflected onto the design of the I/O drivers and vice versa.

    Learning how to master a topic is a valuable skill, and at least for CS students, frankly best learned on the smaller older stuff. Too many newbies think asking small specific questions of google is all they need, and think they can scale up to a big project merely by asking more little questions, without thinking thru the big picture.

    A fourth thing the dude forgot is that older computers were MORE powerful. Power is what comes out of the barrel of a gun, its not P=I*V or MIPS. A single old MVS mainframe could run a small govt department or a multinational corp.

  • by boristdog (133725) on Wednesday August 25, 2010 @04:22PM (#33373356)

    It's true, today's computers ARE too fast for students.

    Kids today don't know the joy of being able to slack off for 5 to 10 minutes in class while their screen says "Compiling..."

  • by mspohr (589790) on Wednesday August 25, 2010 @04:28PM (#33373428)
    This reminds me of a quote I read from Philippe Khan back in the really old days. He used the original IBM PC (4.77 MHz) to test code (Turbo Pascal) when much faster (8 MHz) machines were available. He said he "liked to watch the computer work".
  • Who says what? (Score:3, Insightful)

    by rcastro0 (241450) on Wednesday August 25, 2010 @04:37PM (#33373524) Homepage

    I noticed a bunch of low (even 4 digit)/. user ids in this thread -- like the guy who got the CP/M box off craigslist. I think it would be quite interesting to do a correlation between low /. user IDs and opinion on the subject. The hypothesis is that older people will have a softer spot for older machines.

    Myself? I think learning to program in older machines is a great idea. But then again I learned to program in Sinclair ZX-81's BASIC language -- back when 16kb was a memory expansion...

  • by jejones (115979) on Wednesday August 25, 2010 @06:26PM (#33375116) Journal

    I'm reminded of something that happened to me while I was a student assistant at a remote job entry location of a university's computer facilities.

    The incoming batch of engineering freshmen were being taught, as was the tradition, to program badly in FORTRAN. An instructor assigned them the problem of counting the ways to make change for a dollar, assuming you had plenty of all the denominations of coins. How did he have them do it? Nested DO loops, one per denomination, with each denomination running from 0 to 100 / the denomination's value, of course!

    The result? Bunches of students exceeding the thirty-second time limit for WATFIV jobs so their programs were cancelled before they finished. They'd run them again, of course--maybe the first time was a fluke. (The university ran on a 370/138 at the time....) Then they'd come in and ask how to run in a different job class so they weren't limited to thirty seconds.

    I wrote a program in Algol W with a recursive function that would solve the general change making problem. It solved the specific one in 0.01 seconds. A friend and coworker (alas, no longer with us) wrote a non-recursive program in FORTRAN that took less than 0.01 seconds, so that the output showed it as running in 0.00 seconds. Our boss took the listings and output and had a discussion with the instructor. He, and I hope his students, learned something.

    Nowadays, they wouldn't. Today's computers would run the horribly inefficient version so quickly that nobody would care, and they'd move on to the next thing.

    So I applaud this approach, and hope everyone gets that experience.

    • Re: (Score:3, Funny)

      by dbIII (701233)

      The incoming batch of engineering freshmen were being taught, as was the tradition, to program badly in FORTRAN.

      That's not fair! We were also taught how to program badly in Lisp, Pascal and Modula-2!

(1) Never draw what you can copy. (2) Never copy what you can trace. (3) Never trace what you can cut out and paste down.

Working...