Slashdot Mirror


'Retro Programming' Teaches Using 1980s Machines

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."'"

23 of 426 comments (clear)

  1. They'll just use them to play Elite all day by elrous0 · · Score: 4, Funny

    That could teach them a thing or two about commerce and trade, I suppose.

    --
    SJW: Someone who has run out of real oppression, and has to fake it.
    1. Re:They'll just use them to play Elite all day by TheRaven64 · · Score: 4, Interesting

      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.

      --
      I am TheRaven on Soylent News
  2. makes sense by grub · · Score: 5, Insightful


    Makes a lot more sense than starting them off in some poo like Java where they never need to know about the real hardware.

    --
    Trolling is a art,
  3. IMO: Great by hsmith · · Score: 4, Insightful

    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.

  4. Just dump Windows and goto DOS by commodore64_love · · Score: 4, Interesting

    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).

    --
    "I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
    1. Re:Just dump Windows and goto DOS by cptdondo · · Score: 4, Insightful

      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.

    2. Re:Just dump Windows and goto DOS by Thud457 · · Score: 4, Interesting

      How come nobody's done a hobby home brew CPU using tubes and core memory?

      --

      the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

  5. "Actors" by Applekid · · Score: 5, Interesting

    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.

    --
    More Twoson than Cupertino
  6. Re:Does that make sense ? by Sarten-X · · Score: 5, Insightful

    Yes, it makes sense. The students get an intimate feel for writing programs without being able to waste resources ramapantly.

    --
    You do not have a moral or legal right to do absolutely anything you want.
  7. Probably a good idea by Anonymous Coward · · Score: 4, Interesting

    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.

    1. Re:Probably a good idea by spiffmastercow · · Score: 4, Informative

      That can much more effectively be done by concentrating purely about Big O rather than hardware tweaks. Just tell them to do problems from project euler and they'll get a good appreciation for algorithm efficiency.

  8. Knowability by tverbeek · · Score: 5, Insightful

    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.

    --
    http://alternatives.rzero.com/
    1. Re:Knowability by skelly33 · · Score: 4, Insightful

      "Now we have these things called drivers and libraries that do all the basic work for us"

      And where do drivers come from, faeries? Unless you want a generation of aging programmers who understand the workings of the machine to die off completely and become reliant on drivers originating from unknown mystical places, the younger generation of programmers MUST learn these things.

      I do not think it is a coincidence that computers get faster every year, but my experiences as an end-user are not one bit improved since Windows 3.11. Things still break constantly. Mysterious transient problems. Multi-vendor finger-pointing because NONE of them truly understand the complete working system or want to be responsible for it. etc. etc. I still spend about 30% of my time just *waiting* for my PC to do God-knows-what between certain actions.

      It's horrendous, and the problem, in my opinion, is that we have become reliant on "high level" app guys like yourself who just "trust" that whatever is beneath their app is going to do what it needs to magically and that it will all come to pass. And then the apps get heavier, and heavier, and round and round we go in perpetual mediocrity. I've been stuck in this feedback loop since 1989, and I'm telling you it makes me want to just swing a hammer for a living instead sometimes...

  9. Re:Does that make sense ? by Darkness404 · · Score: 5, Insightful

    Yes, it makes perfect sense for two reasons.

    A) It teaches people how to use unfamiliar hardware/software. Chances are the thing you are going to be running at your job is not going to be the thing you studied in university for.

    B) It teaches kids how to not make mistakes in coding. Make a big enough mistake and the entire system goes down. Compilers are also a lot less fault tolerant.

    C) It teaches kids how computers actually work by pealing back layers of abstraction. Think about it, has the average person under 20 ever used a CLI? For anything? I think the closest people come these days to actually using a CLI is typing in something on the Windows "Run" dialog.

    D) It puts things in perspective. It shows how you don't need a Core i7 to play games, that a graphics card with 100 times the memory of the entire computer isn't required to make art, etc.

    E) Its fun. The old computers had a lot more easter eggs built in and little tiny quirks. These days you get a Dell/HP/Gateway/Acer/Asus/etc slap Windows/Linux/OS X on it and its the same as any other Windows/Linux/OS X box, but the old computers all had little things different, some things were frustrating of course, but when you don't have to do it for any too serious of work, it can be kinda fun digging out the old Commodore 64.

    --
    Taxation is legalized theft, no more, no less.
  10. Re:Does that make sense ? by tomhudson · · Score: 4, Interesting

    It's not about "understanding low-level programming" - it's about having a direct connection between what you do and what happens. No virtual machine, no garbage collector, no super-fast compile/link/run/modify cycle (s you're going to take a few minutes to THINK about why something didn't work instead of just doing the "quick fix let's test it and see if we got it right this time" route).

    screw your head on a crippling dinosaur

    The article never said they were using Windows.

  11. Re:Does that make sense ? by localman57 · · Score: 5, Interesting

    If you want to get an intimate feel for writing programs without being able to waste resources, try embedded systems programming. The microchip 10F series has only a few dozen bytes of ram, and a couple hundred words of flash. And no hardware multiply. Making it do useful things is an art. Oh, and unlike some relic from the 70's, you can actually get a job programming for tiny microcontrollers.

    That said, it does seem like a cool class. One I'd like to take, but for personal interest, not professional development.

  12. Re:Does that make sense ? by jeffmeden · · Score: 4, Funny

    How will the student then apply his knowledge to modern languages such as Java, C# ?

    It's really pretty simple. After seeing what a computer can do with code intimately optimized for the machine it's running on, they will be exposed to the status quo in Java or C# and their heads will explode. Problem solved on our end!

  13. Re:History doesn't repeat itself by LWATCDR · · Score: 5, Informative

    Actaually the BBC PC isn't far from the perfect embedded system trainer.
    From the Wilkipedia.
    "The machine included a number of extra I/O interfaces: serial and parallel printer ports; an 8-bit general purpose digital I/O port; a port offering four analogue inputs, a light pen input, and switch inputs; and an expansion connector (the "1 MHz bus") that enabled other hardware to be connected. Extra ROMs could be fitted (four on the PCB or sixteen with expansion hardware) and accessed via paged memory. An Econet network interface and a disk drive interface were available as options. All motherboards had space for the electronic components, but Econet was rarely fitted. Additionally, an Acorn proprietary interface called the "Tube" allowed a second processor to be added. Three models of second processor were offered by Acorn, based on the 6502, Z80 and 32016 CPUs. The Tube was later used in third-party add-ons, including a Zilog Z80 board and hard disk drive from Torch that allowed the BBC machine to run CP/M programs."

    Four A2Ds 8 bits of GIO, and switch inputs. All available from Basic on a machine with a Floppy, Keyboard, and Monitor. Sweet.
    I so wanted one of these back in the day. Too expensive and not really available in the US at the time.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  14. Re:Does that make sense ? by lgw · · Score: 4, Insightful

    Yes, it makes great sense. WHen getting started, it really helps if you're forced to deal with the low level, and more if you can actually see the low level.

    I've spent a large part of my career writing software realted to tape drives. It really helped me getting started that I could sit down in front on an old IBM 9-track reel-to-reel to test my code. Not the most useful thing for production data storage, but terrific for seeing problems with production code. Miss the end-of-tape marker? Flap-flap-flap-flap doh!

    Similarly, writing and debugging production assembly code made me very comfortable with debugging and crash analysis on higher-level languages, even if I didn't quite have matching source. And that experience in turn lets me understand "what really happens" with a language like C# or Java, and for example explain to people why, for example, the .NET file rename function is no substitute for the Win32 file rename system call, despite the fact "they both just rename a file". STuff that should be obvious to even a junior programmer but, well, isn't.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  15. Re:Does that make sense ? by oodaloop · · Score: 4, Funny

    Amongst our weaponry are such things as...I'll start over.

    --
    Tic-Tac-Toe, Global Thermonuclear War, and relationships all have the same winning move.
  16. Re:History doesn't repeat itself by American+AC+in+Paris · · Score: 4, Insightful

    Seriously, how is this useful in modern computing, other than as a "Back in my day..." quote?

    Learning how to use older/simpler machines is an excellent way to learn about a number of fundamental concepts. Modern computing, for all its advances, still operates off the same fundamental principles as it did fifty years ago; it's simply become orders of magnitude more complex.

    Now, while it's perfectly possible to learn how to do this sort of thing using emulation or specialized training software, there's real value to having an appreciation of the history of the field you're planning to enter, and working with machines that were once considered state-of-the-art is a very effective way to gain a sense of just how insanely far computing has come. Note, too, that simply because you're never going to be called upon to program a PDP-8 in real life doesn't mean that you can't learn a fair amount of generally-applicable knowledge about hardware, logic, branching, execution, input, output, and instruction sets. In fact, by pulling yourself out of a familiar environment, you're forced to pay attention to important things that you'd otherwise happily ignore--like "well, how does what is in my head actually get into a computer's inner workings?"

    Finally, always remember that programming is a subset of computer science. Even if all you ever expect to do is write code, a deeper knowledge of what goes on between the compiler and the electrons is going to be quite useful--and will make you a better coder, to boot.

    --

    Obliteracy: Words with explosions

  17. Re:Sounds like fun by jeffmeden · · Score: 4, Insightful

    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.

  18. Been there, done that by BlindSpot · · Score: 4, Interesting

    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.