Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Education Programming United Kingdom Hardware

'Retro Programming' Teaches Using 1980s Machines 426

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 LWATCDR ( 28044 ) on Wednesday August 25, 2010 @03:29PM (#33372698) Homepage Journal

    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.

  • Re:Sounds like fun (Score:3, Informative)

    by localman57 ( 1340533 ) on Wednesday August 25, 2010 @03:32PM (#33372730)
    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...
  • by ed ( 79221 ) on Wednesday August 25, 2010 @03:38PM (#33372808) Homepage

    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

  • by spiffmastercow ( 1001386 ) on Wednesday August 25, 2010 @03:41PM (#33372854)
    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 [projecteuler.net] and they'll get a good appreciation for algorithm efficiency.
  • 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.

  • by xaxa ( 988988 ) on Wednesday August 25, 2010 @03:56PM (#33373034)

    They're A-level students, i.e. the final two years of school, ages 16-17 and 17-18. It's probably more interesting than making some crappy VB application, which is what I remember the A-level computing students doing (I didn't do the subject, I did extra maths instead -- it was much more useful for finding a place on a good CS course at university).

  • Re:Au contraire (Score:4, Informative)

    by Sarten-X ( 1102295 ) on Wednesday August 25, 2010 @04:15PM (#33373278) Homepage
    And yet, when that routine needs to run three billion times per execution, it completes a few hours faster than a slightly less-efficient algorithm! That's a significant improvement for any company today working with large-scale data. A lesser programmer simply wouldn't be able to do the job.
  • Conceptual Model (Score:3, Informative)

    by fwarren ( 579763 ) on Wednesday August 25, 2010 @04:18PM (#33373316) Homepage

    Another factor is the conceptual model is simpler. It is possible to know the entire layout of one of these classic machines. The CPU, instruction set, registers, I/O chips and memory layout. You can exactly where a program will load in memory. A 6502 has an Accumulator, X register, Y register, 6 flags, a stack pointer and a program counter. It is possible to know exactly how the computer works on both a hardware and software level.

    Try that with a PC, what happens when you flip the power switch. Well which BIOS, what POST tests, what hardware? What happens up to the point where the boot sector is loaded? What happens after control has been turned over to the boot loader? What about the hardware? There are so many combinations, so many drivers, etc. How do you even go about teaching these things when you can't be sure of what hardware you will have in the classroom?

    The classic machines flatten this out. Even in emulation they are very helpful tools for teaching.

  • by lgw ( 121541 ) on Wednesday August 25, 2010 @05:02PM (#33373816) Journal

    The .NET File.Move() (and FileInfo.MoveTo()) calls the Win32 MoveFile(), but you really need MoveFileEx().

    Requirement: update a file in such a way that all other processes see the update as atomic, even if you crash at an arbitrary point. (Not an uncommon problem in systems programming.)

    Solution: make the change to a copy of the file in a temp area, then "rename over" the known file to get the atomicity you need.

    This approach to making file updates atomic is a fundamental property of a filesystem, but unavailable through the obvious .NET classes (they throw if the destination exists).

  • Re:IMO: Great (Score:3, Informative)

    by mrwolf007 ( 1116997 ) on Wednesday August 25, 2010 @05:55PM (#33374648)

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

Heuristics are bug ridden by definition. If they didn't have bugs, then they'd be algorithms.