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

426 comments

  1. Niggers by Anonymous Coward · · Score: 0, Funny

    Why don't niggers like to eat Tootsie Rolls? They keep biting their fingers off.

  2. 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 object404 · · Score: 1

      Testing for slower systems & lower CPU has become a big problem w/ us right now, especially since access to older "obsolete" machines is very very difficult now.

      How do you guys do this? I mean with the only off the shelf PCs available running over 1GHz these days, how do you test for a 200-500MHz platform these days? Personally, I used nested VMs running a la Russian Dolls or matrix within a matrix within a matrix for you geeks who don't know what a VMs are. I was running Puppy Linux & DamnSmallLinux inside Ubuntu inside WinXP

      Virtualbox is very idiot friendly compared to VMWare and rockses sockses :)

    2. Re:They'll just use them to play Elite all day by ilikejam · · Score: 1
      --
      C-x C-s C-x k
    3. Re:They'll just use them to play Elite all day by Nikker · · Score: 2, Insightful

      Why not underclock the CPU?

      --
      A loop, by its nature, continues. If that didn't make sense, start reading this sentence again.
    4. Re:They'll just use them to play Elite all day by Pentium100 · · Score: 1

      How about making the program run quite fast on the 1GHz CPU? Then it may run OK with a lower processor, but if you make it just bearable on the 1GHz then it will be too slow on slower machines.

      Also, new CPUs can reduce their clock speed to about half of maximum for power saving, so if you get a new 1GHz CPU, you can make it 500MHz.

    5. Re:They'll just use them to play Elite all day by hairyfeet · · Score: 1

      Uhhhh...you DO know there are places like Surplus Computers where you can pick up older machines like this 600 Mhz Tegra laptop all day long, yes? It isn't like finding older machines is exactly hard. If you were talking about old SPARC desktops or maybe MIPS I'd agree with you, but x86 is as common as dirt and just as easy to find.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    6. Re:They'll just use them to play Elite all day by Red+Flayer · · Score: 1

      Old working PCs are free (w/ pickup) if you browse freecycle or craigslist if you don't want to use a VM/emulator/underclock. Or you could visit one of the specialized sites that deal in old computers. I wouldn't want to waste the space on them, but I'm sure you could collect enough machines for your testing purposes quite easily.

      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    7. Re:They'll just use them to play Elite all day by LinuxIsGarbage · · Score: 1

      I have some PIIs and PIIIs I will sell you.

      Have a look at http://www.adrianboeing.com/tools.html "CPU Speed Adjuster".

      Use SpeedStep/Powernow to force the lowest clock rating to prevent a CPU burning application from chewing too much power. As well, look at Thermal throttling. http://cpu.rightmark.org/products/rmclock.shtml lets you manually set such throttling states on some processors. You can sometimes get 12.5% of the original speed.

    8. Re:They'll just use them to play Elite all day by Icegryphon · · Score: 1

      Remember when programs where superior because of there performance.
      When computer resources where valuable you had to code for performance.
      To many scrubs in the programming world today.
      These application developers don't even know what hardware is.
      (i've see it, they are clueless, and there are plenty of them)
      How many programmers understand all the different SSE versions?
      well that is the end of my rant.

    9. Re:They'll just use them to play Elite all day by c0d3g33k · · Score: 2, Funny

      Sadly, I remember when spelling and grammar were taught in schools. Those days seem to be gone as well, and I miss them much, much more than the days of limited computer resources.

      Well, that is the end of my rant.

    10. Re:They'll just use them to play Elite all day by Narishma · · Score: 1

      That's Tecra, not Tegra. Tegra is an ARM SOC made by nVidia.

      --
      Mada mada dane.
    11. Re:They'll just use them to play Elite all day by Ironhandx · · Score: 1

      Because even underclocked the new processors are faster. Most of them get a lot more work done per clock than previous generations and trying to fuzz it would be hard.

    12. Re:They'll just use them to play Elite all day by Nikker · · Score: 1

      Running recursive VM's is in no way an accurate method either. If Accuracy is important for any reason having identical hardware is the only way to go. If you don't have a spare laying around then it's time to go shopping.

      --
      A loop, by its nature, continues. If that didn't make sense, start reading this sentence again.
    13. 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
    14. Re:They'll just use them to play Elite all day by TheRaven64 · · Score: 1

      access to older "obsolete" machines is very very difficult now

      Really? I have several in my attic that I can't get rid of because no one will take a machine under 1GHz even for free.

      --
      I am TheRaven on Soylent News
    15. Re:They'll just use them to play Elite all day by Ironhandx · · Score: 1

      Hmm, Emulation perhaps? Thats about all I can think of if the old hardware isn't available. That would require custom implementation of course and may be too expensive but its about the most accurate method without the actual hardware. Though you would want to have the actual hardware for comparison at first.

    16. Re:They'll just use them to play Elite all day by Lonewolf666 · · Score: 1

      Maybe a C64 emulator could fill that role. I remember that the original (hardware) C64 was quite accessible too. The one thing you might miss for hardware projects, however, is the parallel port.

      --
      C - the footgun of programming languages
    17. Re:They'll just use them to play Elite all day by zmollusc · · Score: 1

      Just press the Turbo button. Duh!

      --
      They whose government reduces their essential liberties for temporary security, receive neither liberty nor security.
    18. Re:They'll just use them to play Elite all day by jpate · · Score: 1

      seriously? Do you live in the UK? send me an e-mail (address available on my homepage) if you want someone to take one off your hands for free (or the cost of shipping if it's too far for pick-up).

    19. Re:They'll just use them to play Elite all day by bhcompy · · Score: 1

      Is it really that hard to get an old PC? I've got PCs sitting around with P60, P200, K6-2 500, K7 Athlon 700, Dual 550 Xeon, Dual P2 350, etc. These are all PCs I've used in the past or just put together through a teenage and adult lifetime of collecting old shiat from friends and family that I helped out. They're really not all that hard to come by if you look around

    20. Re:They'll just use them to play Elite all day by NightCreature83 · · Score: 1

      That tool doesn't work on multi-core CPU's as it can only burn cycles on one core.

    21. Re:They'll just use them to play Elite all day by PReDiToR · · Score: 2, Funny

      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 up in front of the class and showed the teacher what it could do.
      I lost all my street cred that day =/

      --

      Do not meddle in the affairs of geeks for they are subtle and quick to anger
    22. Re:They'll just use them to play Elite all day by LinuxIsGarbage · · Score: 1

      Not directly, but you can make it work. slow.exe only works properly on CPU 0. Either force your application and slow.exe affinity to processor 0, or put slow.exe on processor 0 and http://www.softpedia.com/get/System/Benchmarks/CPU-Burnin.shtml something like this on the rest.

    23. Re:They'll just use them to play Elite all day by SanityInAnarchy · · Score: 1

      That would require custom implementation of course and may be too expensive

      I don't know anything about this, but qemu exists. It can't be too hard to adapt it to emulate an appropriately-clocked CPU.

      --
      Don't thank God, thank a doctor!
    24. Re:They'll just use them to play Elite all day by Glonoinha · · Score: 1

      We're not talking QEMU.
      We're talking QEXT and QEMM. Now that is retro.

      --
      Glonoinha the MebiByte Slayer
    25. Re:They'll just use them to play Elite all day by rubi · · Score: 1

      Maybe. How to program for severely limited resources too (a.k.a. smartphones and such).

    26. Re:They'll just use them to play Elite all day by QuantumLeaper · · Score: 1

      Emulation works great for slower system. MESS emulates a lot of old computers, SIMH http://simh.trailing-edge.com/ also does a great job with old systems, PDP-1 though PDP-15 and some other old systems. You see there resources out there so you don't need to run the Old systems, but I guess it more fun to use the old computers...

    27. Re:They'll just use them to play Elite all day by Anonymous Coward · · Score: 0

      I remember those days -- they created a bunch of dead-end software like WordPerfect 5.1 running MS-DOS.

      Meanwhile the guys wasting their cycles on what was considered "bloatware" still have shipping production code in many cases.

    28. Re:They'll just use them to play Elite all day by david.given · · Score: 1
      My school had a network of BBC Masters, connected via Acorn's proprietary Econet networking system (blazing fast as 25kB/s!). It was a surprisingly modern networking protocol, with ports, subnets, bridging, RPC, etc: we used it to connect the machines to a central file server (a souped-up Master with second processor connected to a 20MB Winchester). The system eventually died when the file server got struck by lightning.

      What Econet didn't have was any form of designed-in security --- out of the box, each computer would honour RPC requests to do stuff like read and write memory, force jumps to addresses, etc. You could turn it off, but the default was to have all this enabled! I wrote a little program with would suck the framebuffer off someone else's machine and display it on my own, and if I didn't like what they were doing I could reset their machine remotely.

      The BBC was a beautifully designed machine. While competitors like the Commodore 64 and the ZX Spectrum were basically designed as CPUs in a box, with just enough OS to load your software, the BBC had a genuine modular operating system with pluggable file systems, application ROMs, invisible access to paged memory, vectored system calls, etc. It scaled well enough that the early ARM machines ran a variant. It's a shame that Acorn's master plan didn't work out: the BBC Micro was originally conceived as the I/O processor for a multiprocessor system, connected via a high-speed parallel bus ('the Tube'). That way your applications ran on a dedicated processor with 63.5kB of usable RAM and no interrupt overhead, and system calls were RPCd to the BBC Micro. It even supported multiple architectures; while the 6502 second processor was the only one that really shipped, Acorn also made a Z80 model (which could run CP/M! And Acorn MOS! At the same time!), a 32016 with FPU and 1 to 4MB of RAM, and the original ARMs were bootstrapped as BBC Micro second processors.

      If only the BBC Micros were cheaper, and Acorn had some (any) marketing skill, we might not be using PCs today...

    29. Re:They'll just use them to play Elite all day by TheRaven64 · · Score: 1

      The cost of shipping from Swansea to Edinburgh is probably much more than you could get them for locally. You might try looking at your local recycling centre - they typically have a skip for old computers, and will let you take away any that you want (I picked up a 1GHz Athlon from mine a while ago for someone who needed a computer just for wordprocessing - massive overkill, but it was free). Also, check with the university computer society - they're likely to have a load of members with old machines doing nothing.

      A couple of months ago, you'd have been in better luck. I got rid of a load of machines (SPARCstation 4s and 66MHz PowerPC Macs) when I moved. I still have a 200MHz Pentium and a 550MHz Pentium 3 that I'll probably never use, and a 1.33GHz Athlon that I might find a use for though.

      --
      I am TheRaven on Soylent News
    30. Re:They'll just use them to play Elite all day by TheRaven64 · · Score: 2, Interesting

      The problem with using an emulator, is that you're then using an emulator. When you're learning to program, it's much more satisfying having something running on real hardware - even obsolete real hardware - than in an emulator. If you're going to use a virtual platform, you may as well use something like Java, in terms of the amount of how enjoyable it is.

      One of the problems that they are trying to address with this idea is that modern programming is so abstracted from the real hardware that you don't get a feel for how things really work. Running an emulator would defeat this purpose.

      And don't downplay the I/O. Wikipedia tells you that the BBC had:

      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

      One of the machines in my school had a ZIF socket connected to one of the ROM slots, so you could burn programs to an EPROM and have them available on boot.

      The GPIO ('user') port was amazingly useful. It was mapped to a byte of address space, so you could read the 8 input pins and write the 8 output pins with PEEK and POKE commands from BASIC. My school computer lab had a load of things that you could connect to this port. Some were simple, like a 7-segment display (I learned hex programming that - each segment was controlled by a single bit, so you needed to supply the hex digit corresponding to the shape that you wanted). Some were more complex, like a set of traffic lights and a robot arm. I borrowed one and some light gates over the summer holidays and made it drive my scalextric set. Not very well, because it was rapidly pulsing the controller rather than gently controlling it, but it managed to do one complete lap of a circuit before crashing. The code for that was relatively simple - it measured the speed at each light gate and adjusted the pulsing speed if it was too slow or too fast. You drove the car around once for it to record the 'correct' speed, and then you could race against it. Well, in theory - mostly you could race and it would crash, but I still learned a lot about control theory from the problems I encountered there (and from having a father with a PhD in control theory around to help, of course).

      --
      I am TheRaven on Soylent News
    31. Re:They'll just use them to play Elite all day by TheRaven64 · · Score: 1

      I still have the original user manual for the BBC Micro on my bookshelves (slightly damaged by damp, because my mother decided to store it in a cardboard box in her cellar for a bit when I left home), complete with the hand-drawn circuit diagrams in the back. It really is an amazing machine.

      Most of the time I was using the BBC was in the early '90s, when it was already a somewhat archaic machine - an 8-bit machine in a 32-bit world - but even then it was interesting. It was about as complicated as a computer can be and still be completely understandable by one person. The early Archimedes machines were almost that simple, but not quite. With the BBC, not only could you understand all of the individual parts, you could understand how they all fitted together. Even the CPU was simple enough that an undergrad could probably design something equivalent and a schoolchild could at least understand everything it did, if not quite how it did it.

      Acorn's problem was the belief that the UK market was the world. Back then, most computer companies only aimed at the domestic market. This meant that US companies had bigger economies of scale (because they had a much larger domestic market) and so could easily undercut the companies in smaller markets. They didn't entirely die though - their CPU spin off currently has the largest market share of the CPU market...

      --
      I am TheRaven on Soylent News
    32. Re:They'll just use them to play Elite all day by cowbutt · · Score: 1

      Emulation would have disadvantages compared with teaching on the actual hardware, but it also has advantages too; it's almost trivial for an emulator to provide In Circuit Emulation-like features, such as being able to snoop on IO, CPU register contents, pause execution etc. Back in the day, devices like the Multiface were the closest thing most people had to debug at the very lowest levels (though some of the POKEs hackers had access to rather more advanced semi-custom built kit).

    33. Re:They'll just use them to play Elite all day by Anonymous Coward · · Score: 0

      I might be wrong (this is just a guess), but as the old CPU's didn't hold as many instructions, nor ability to handle memory etc there is probably plenty the students can learn about how the memory works and how instruction sets are stored etc. Back in my day (Oh gees, I'm old. Get off my lawn already), we used to worry about memory, speed of the program etc. (I started programming back in 1979 if my memory serves me correct and completed my first programming course in 1981). Things like the 386, though capable of handling 4 GB of RAM wouldn't have been able to attach to that much as 2 MB memory boards were about as big as it got. I used to have a memory board in an old PC that was for 256 KB of memory and it was the length of the PC (IBM XT), and as high as the case.

      If they are learning about how the computer works, then buses and other stuff comes into it. If you are using a modern machine that has memory to burn and fast buses etc, then all you're really learning is assembly on a slow machine. I can see how they might learn something more if they find their program is failing because they didn't have a wait in the instructions for something being written to a peripheral device and the program executed too fast or something. The instruction sets don't have the garbage collection a lot of the newer programming languages have in them now a days.

    34. Re:They'll just use them to play Elite all day by trum4n · · Score: 1

      I'll sell you 40 machines under 1ghz for 200USD.

    35. Re:They'll just use them to play Elite all day by twistedsymphony · · Score: 1

      I think I enjoy programming in assembly on embedded controllers more-so than your typical PC app... when programming at the lowest level there is a clear and distinct correlation to the methods you use to accomplish a task and the speed of the output. programming at the higher level just feels so disconnected by comparison. When I program in C or Java I feel like I'm just drawing up plans to a house and letting someone else build it, when I program in assembly I feel like I'm pounding the nails myself... and it's much more rewarding.

    36. Re:They'll just use them to play Elite all day by Oldstench · · Score: 1

      Interesting. I like to get things done during my work day rather than spend all day "pounding nails". To each his or her own.

    37. Re:They'll just use them to play Elite all day by ghjm · · Score: 1

      Run under VMware ESX and limit the amount of CPU available to the VM.

    38. Re:They'll just use them to play Elite all day by fishbowl · · Score: 1

      "When you're learning to program, it's much more satisfying having something running on real hardware - even obsolete real hardware - than in an emulator. "

      I would have killed for a Z80 or 6502 emulator back then.

      --
      -fb Everything not expressly forbidden is now mandatory.
    39. Re:They'll just use them to play Elite all day by NightCreature83 · · Score: 1

      It is easier to just write multithreaded busy wait loop myself to burn cycles on other threads if i wanted to do that

    40. Re:They'll just use them to play Elite all day by JazzLad · · Score: 1
      --
      "If you have nothing to hide, you have nothing to fear." - Every fascist, ever
    41. Re:They'll just use them to play Elite all day by Nikker · · Score: 1

      I bet if you are willing to pay 10-30k for a custom emulation package you would be willing to look around for some 2nd hand p2's. They can be found but if you are looking for a clock-by-clock comparison you have to take into account everything down to the chipset, hdd performance, etc. It's upto who is doing the work. The lowest common denominator is the current performance, if you are adding in sorts and algorithms this late in the programs life cycle then you are likely in troubled waters.

      The main reason people keep these old relics is because of a peripheral or some custom code that was written on that very box that everyone was just too scared to touch. If you are actively coding for hardware that was made 10+ years ago then you should start asking questions ;) Especially generic / ancient Intel desktops.

      --
      A loop, by its nature, continues. If that didn't make sense, start reading this sentence again.
  3. Mid 1980's for me by Monkeedude1212 · · Score: 2, Insightful

    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.

    1. Re:Mid 1980's for me by Ironhandx · · Score: 1

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

    2. Re:Mid 1980's for me by Machtyn · · Score: 1

      This sounds like one of my university classes... from 4 years ago. Our uP class was teaching us how to build a main board, memory management and how it plugs into the CPU, etc. Our uP was the Motorola 68000. We were using about the second or third generation. There were some extra registers and some advanced memory management on the 4th gen stuff that we didn't get.

      That was the class I looked most forward to doing, unfortunately, my team wasn't so hot. Bread board, 100+ wires all over, not a pretty sight.

    3. Re:Mid 1980's for me by Lord+of+Hyphens · · Score: 1

      We used an 8088 for our course. The term, IIRC, is SBC (or single-board computer).

      --
      "I've spent my whole life figuring out crazy ways to do things. It'll work." -- Montgomery Scott, "Relics"
    4. Re:Mid 1980's for me by Glonoinha · · Score: 2, Interesting

      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 pieces of coathanger separated.
      Craziest thing I've ever see. And it still ran, full speed.

      --
      Glonoinha the MebiByte Slayer
    5. Re:Mid 1980's for me by LWATCDR · · Score: 1

      ARCNet was very popular for places like air ports where you could have extremely long runs. I even remember reading about it being used for an ROV back in the day.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    6. Re:Mid 1980's for me by uninformedLuddite · · Score: 1

      Up until a couple of years ago I was dealing with sites still running PDP-11's. One of these sites employed a new CS graduate as their sysadmin. She recommended they modernise all their systems and get rid of the one that had served their needs perfectly for decades. It was a total disaster. We were asked to come back and we chose not to fix the problem as we had warned them till we were blue in the face that she was going to destroy the infrastructure we had successfully maintained since its original implementation. We subsequently discovered she had sold all of their old equipment as scrap before the new setup had even been tested in its role(it failed miserably). She left shortly after causing this disaster and to give you an idea of the size of this DISASTER she scrapped over 400 VT220s(all replaced with brand new top of the line PCs). If you are out there Wendy W. you truly suck.

      --
      The new right fascists are bilingual. They speak English and Bullshit.
  4. Does that make sense ? by razwiss · · Score: 1

    I mean, seriously ? I'm pretty sure you don't need to screw your head on a crippling dinosaur to understand low level programming

    1. 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.
    2. 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.
    3. Re:Does that make sense ? by razwiss · · Score: 2, Insightful

      How will the student then apply his knowledge to modern languages such as Java, C# ? He'll have to optimize his code by doing a bunch of tests, just as he would have did without that class. With a flags and the time (in ms) required by each of the different methods, he will understand, for example, that quick sort is faster than bubble sort. And so it goes.

    4. Re:Does that make sense ? by Anonymous Coward · · Score: 0

      Exactly. That's why students in automotive engineering always start off with a garage full of Bugatti Veyrons and such.

    5. Re:Does that make sense ? by Darkness404 · · Score: 1

      Ignore the 2 reasons part, I don't know what I was thinking when I typed that part up...

      --
      Taxation is legalized theft, no more, no less.
    6. 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.

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

    8. 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!

    9. Re:Does that make sense ? by 16K+Ram+Pack · · Score: 1

      But writing on a BBC Micro wastes resources. They just happen to be human rather than processor time (which is now a lot more expensive).

    10. Re:Does that make sense ? by blair1q · · Score: 1

      You were thinking of putting it in a loop.

    11. 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.
    12. 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.
    13. Re:Does that make sense ? by Sponge+Bath · · Score: 2, Funny

      ...exposed to the status quo in Java or C# and their heads will explode.

      Or at least cause their head veins to pulse as shown in this computer lab photo.

    14. Re:Does that make sense ? by LanMan04 · · Score: 1

      Think about it, has the average person under 20 ever used a CLI? For anything?

      The average person under 100 hasn't ever used a CLI. But I think it's just as important to programmers now as it was 25 years ago.

      --
      With the first link, the chain is forged.
    15. Re:Does that make sense ? by Anonymous Coward · · Score: 2, Funny

      I thought we were supposed to pick the two we liked and ignore the others...

    16. Re:Does that make sense ? by gander666 · · Score: 1

      I love this idea. I learned 6502 assembly way back, and spent time in grad school hand optimizing fortran subroutines to extract the optimal performance out of a well aged (in 1985) Cyber 730 system.

      Most programmers I run into today have never once touched assembly, and many of them think that ANSI C is the same as assembly. While it has been a LONG time since I have coded anything, I have shown a couple coders some old school optimization techniques that blew their minds

      Of course I know that modern, optimizing compilers can do about 90% of what we used to do by hand, but to extract the last 10%, you really need to know the architecture, the opcodes, and even the errata to get the best.

      --
      Suppose you were an idiot and suppose you were a member of Congress ... but I repeat myself. - Mark T
    17. Re:Does that make sense ? by clone53421 · · Score: 1

      I think the closest people come these days to actually using a CLI is typing in something on the Windows "Run" dialog.

      Most people don’t even use that. When the Run dialog opens, it contains the last thing that was executed from it, and on a non-technical user’s computer this always seems to be the last thing I executed from it however long ago it was that I used their computer last.

      If you ask me, the closest thing people come these days to a CLI is the Location bar in Internet Explorer... maybe even the search bar in Google.

      --
      Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
    18. Re:Does that make sense ? by capo_dei_capi · · Score: 0

      And the same thing couldn't have been achieved at home with an emulator?
      Besides, these are high school students, not some university students taking classes in programming for embedded systems.

    19. Re:Does that make sense ? by Lobachevsky · · Score: 1

      The resources of students have negative cost. That is, they pay _you_ for you to use their resources (their brains).

    20. Re:Does that make sense ? by Moridineas · · Score: 3, Interesting

      I was in AP computer science over a decade ago. We used C++ using the "apstring" and "apvector" classes that were similar to the STL.

      We of course had to implement bubble short, quicksort, insertion sort, and so.

      It was fairly slow on our computers (386s/486s/maybe one pentium!) and you could REALLY see a visible difference between the difference sorts. It was very obvious.

      I rewrote the sorts using standard C arrays instead of apvector. Even on those ancient computers, the differences were suddenly almost gone. Bubblesort using straight arrays was faster than apvector quicksort--at least for fairly small arrays. I don't remember the specifics anymore, but you had to be sorting IIRC several thousand things before there was much of a recognizable difference.

      So yeah, that made a big impression on me. Then again that class, and intro classes in college were the last time I've had to write my own sorting algorithm...

      I think it's a good thing that people who have maybe only used 2ghz+ computers are given a chance to experience something else. I guess a better question would be, why is expanding your horizons ever a bad thing?

    21. Re:Does that make sense ? by retchdog · · Score: 1

      Another way to get to this level of demand is to have them work on extremely large datasets using mathematically sophisticated models. Even on a modern computer, developing a sparse matrix-represented tensor from R^{60 000} dimensions to R^{7500^2} will take a bit of planning.

      This will train (mostly) the same skill set and also prepare them for real work. Unfortunately, most CS teachers don't know jack about numerical optimization/statistics/data mining.

      Instead of old machinery, they can just code for the MMIX machine right?

      I don't have particularly anything against this retro programming plan, and I think it'd be a fun and useful experience. There are however many other ways to get people to think.

      --
      "They were pure niggers." – Noam Chomsky
    22. Re:Does that make sense ? by lgw · · Score: 3, Insightful

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

      Do you believe that a school should teach Java, or teach programming?

      BTW, C++ can kernel-mode C programming jobs aren't going away, and tend to pay better than Java jobs as the talent pool is growing smaller. Especially for kernel-mode programming, very few schools are turning out bright young talent with any relevent skills in that area, so the labor pool is aging out but the demand isn't shrinking.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    23. Re:Does that make sense ? by xaxa · · Score: 3, Informative

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

    24. Re:Does that make sense ? by loshwomp · · Score: 2, Insightful

      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.

      Agreed on all of the above, but the experience of working on the relics will translate to modern embedded systems sufficiently well that I think there is value. In many cases the relics will be even slower and be more RAM- and ROM-constrained than all but the the tiniest of today's embedded microcontrollers.

    25. Re:Does that make sense ? by XnavxeMiyyep · · Score: 1

      I always thought it was weird that they made us use APVector and APString instead of regular Vectors and Strings. Was it just so College Board could feel better about themselves?

      --
      I put the 't' in electrical engineering.
    26. Re:Does that make sense ? by bugs2squash · · Score: 3, Insightful

      I don't know what the A level syllabus is, but I suspect it is more about learning how computers work in preparation for a university degree than about learning how to program in any particular language. Quite frankly I think they should keep things as fundamental as possible at this stage. Students can always go to community college if they wish to learn how to set up outlook, operate excel or write java etc.

      --
      Nullius in verba
    27. Re:Does that make sense ? by Moridineas · · Score: 2, Interesting

      I think it's because apstring and apvector were both simplified versions of the real deal. And the entire source code for both was pretty small and understandable for people just getting into C++, templates, etc.

      We at least created modified versions of them as well, extending or re-implimenting certain functions. I don't really remember too many specifics!

    28. Re:Does that make sense ? by spiffmastercow · · Score: 1

      Does the .NET rename not just invoke the win32 system call? Never investigated the issue very thoroughly, but I find don't see what's so obvious about what's happening under the hood, aside from an extra layer of abstraction.

    29. Re:Does that make sense ? by Rising+Ape · · Score: 1

      The BBC Micro was a wonderful machine for tinkering. Assuming they're using the BBC Basic (which was very good compared to the other micro Basics), you can easily do the "quick fix let's test it" thing. Actually, you probably can if they're using 6502 assembly language - the system came with an assembler integrated with the Basic interpreter.

      A great computer to program, in its day. All this high level abstraction of modern languages may be very practical but it's so terribly dull.

    30. Re:Does that make sense ? by spiffmastercow · · Score: 1

      arg.. ignore "find". My grammar is way off today.

    31. Re:Does that make sense ? by Sarten-X · · Score: 2, Insightful

      I've spent many years working with microcontrollers. I wholeheartedly agree.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    32. Re:Does that make sense ? by LinuxIsGarbage · · Score: 1

      If you ask me, the closest thing people come these days to a CLI is the Location bar in Internet Explorer... maybe even the search bar in Google.

      The search bar in Internet explorer? Not so much. Usually to do another google search they will minimize all open windows one by one, double click the Internet Explorer icon on the desktop, type "www.google.com" in the location bar, then type the search. But yes, usually on non-technical user's computers the last thing in Run is the last command I ran.

    33. Re:Does that make sense ? by MBGMorden · · Score: 1

      Probably not necessary, but it's interesting. For teaching basic, low-level "Think like the computer" type tasks it's probably useful. I personally self-taught (using books, magazines, etc) myself BASIC - at first using my aunt's Tandy TRS-80 and then on my own Commodore 64. I never wrote anything too advanced on it, but I got good at thinking procedurally. Both I and a good friend from high school majored in Computer Science when we got to college, and I can honestly say that even though I'd never touched Java (our intro language) in my life, I still picked it up FAR faster than he did because I was used to thinking about variables, loops, conditionals, etc. Even though they're basic (no pun intended :)), those machines teach that mindset.

      That said, in today's world, I think understanding object-oriented programming is quite important. With that in mind, I think it'd be better to start students on Java or Python, neither of which are available on those old systems.

      --
      "People who think they know everything are very annoying to those of us who do."-Mark Twain
    34. Re:Does that make sense ? by Anonymous Coward · · Score: 0

      Yep. I learned when these type of boxes were current. One thing it will teach is how to write your code so it runs in 640K of RAM! Not sure they will be able to run Java. :)

    35. Re:Does that make sense ? by clone53421 · · Score: 1

      Not the Search bar... the Location bar.

      Although, I find that often people use the Location bar and Search bar as if they were interchangeable (typically only ever using one of them).

      Most typical would probably be:

      a) Using the Location bar as if it were the Location / Search bar.
      b) Using the Search bar as if it were the Location / Search bar.
      c) Using the search field in the actual Google webpage (typically their Home page) instead of the Location / Search bar.

      --
      Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
    36. Re:Does that make sense ? by ceoyoyo · · Score: 2, Interesting

      Oh, the luxury.

      In my digital design course we had to build a simple computer. After we'd demonstrated adders made out of NAND gates we were allowed to use an arithmetic unit chip, and wired things up with latches etc. so we had a workable bus. Programming was accomplished through DIP switches and output via an LED bank. Just like they used to do (substituting LEDs for light bulbs). When you programmed those things you made sure your code was efficient otherwise your hand would get tired flipping the switches.

      The really cool part was when we wired two of them together.

    37. Re:Does that make sense ? by Anonymous Coward · · Score: 0

      false. There are no such jobs. Unfortunately, it's not the 80s anymore.

    38. Re:Does that make sense ? by Monkeedude1212 · · Score: 2, Interesting

      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.

      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.

      I can't stress this enough. I'm 22 - so close to the age range you mentioned, and I had only ever used Windows 3.1 when I was around 3 to 5 years old, and even then it was just to boot up some old Kings Quest or Math Tutor game - and beyond that I only ever used to use the MS-DOS prompt on Windows 95 for ipconfig so that we could get a good Age of Empires game going. Once I got into the Polytechnic that changed a lot because one of our professors was very Linux happy and learning to use the terminal on a Fedora machine was great experience. He then insisted that we learn to do the same (or attempt to do the same) in the command line on our windows machines.

      I ask other people a few years younger than me, who would even consider themselves computer experts, because they know how to build one from scratch and the hotkeys associated with Windows - but any of the ones who haven't gone to school basically don't know how to use that kind of interface. Or if they've used it, they know how to run about 4 commands, but not how to navigate through the file structure to execute various tasks.

    39. Re:Does that make sense ? by Anonymous Coward · · Score: 2, Interesting

      So I just used Reflector to decompile System.IO.File.Move and, unsurprisingly, it calls the win32 MoveFile function. So why is the win32 function such a win?

    40. Re:Does that make sense ? by silverglade00 · · Score: 1

      You must have been thinking "2) Cowboy Neal".

    41. Re:Does that make sense ? by Anonymous Coward · · Score: 0

      Go on then. Why *is* the .NET file rename function no substitute for the Win32 file rename system call?

      It may be obvious from the API, but you haven't said exactly which functions you're comparing. Please enlighten us.

    42. Re:Does that make sense ? by Anonymous Coward · · Score: 0

      False? Try telling that to my cube-neighbor, he might be annoyed that he's out of a job and nobody told him.

    43. Re:Does that make sense ? by marcomarrero · · Score: 1

      I somewhat agree with you, it makes sense from an educational view and it's completely pointless to help find a job.

      Unfortunately it's not the 80's, back then any good programmer could get a job. In these times, there's a lot of competition and incompetence out there. Employers will only hire anyone who matches all the keywords and does a good interview, regardless of talent, because they're desperate (or clueless).

      For example, my hobbyist 8086 and 6809 ASM experience is completely ignored and pointless all the times I've applied for job positions in microcontroller / embedded system programming. My x86 code did everything at a hardware level except disk I/O, mouse, and LAN.

    44. Re:Does that make sense ? by localman57 · · Score: 1

      Really? Microchip comes out with dozens of new variations of cheap 8-bitters every year. Somebody must be writing for them...Like me! So there's at least one such job... In reality, those programming jobs are going more and more to people who integrate systems at the PCB board level. The tiny, tiny micros are now often seen more as configurable logic as much as time-based computers.

    45. Re:Does that make sense ? by rxan · · Score: 1

      I dunno. I did assembly programming on a Motorola 68K. We put stuff into registers, used gotos, bit oring and all that jazz.

      Point is I don't think the hardware we used was that old, but we still learned the basics of computing.

    46. Re:Does that make sense ? by wood_dude · · Score: 1

      Ah, yes. The start with a blank source code, then debug it till it works approach. No real understanding of how anything works, but somhow you get through... Try building it from scratch useing relays, then your a man !!! http://web.cecs.pdx.edu/~harry/Relay/

    47. Re:Does that make sense ? by Radtoo · · Score: 1

      I disagree. 30 year old design approaches are often far more simple, and additionally often misguided and deficient with regards to various desirable properties. They are only really good as a study of things we already did and found to be flawed or insufficiently sophisticated, and that's a topic most useful to teach while the actual state-of-the art is also taught, but overall TOO simple. As an analogy 30 year old computers are very much the equivalent of 2000 year old toolboxes. We still essentially have all the same old tools, but more modern, more specialized ones that are particularly good for some purpose that you ought to know about as well in order to be considered "good" or "well trained".

      Applying these anywhere near to the state-of-the-art is more complex than ever, not trivial as you make it out to be. Really the only reason to exclusively focus on such old boxes is because you couldn't find a teacher or couldn't reserve enough time to teach either the modern low-level stuff well enough. I guess it's easier and cheaper to find what possibly are older staff to work with much simpler, comparatively unchallenging machines.

    48. Re:Does that make sense ? by lgw · · Score: 2, Informative

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

      --
      Socialism: a lie told by totalitarians and believed by fools.
    49. Re:Does that make sense ? by jythie · · Score: 1

      That was my initial reaction to this. When I was in school and they wanted us to learn what working close to the computer was like, they gave us a bunch of 6811s. Though more useful to this discussion, we also had a 6811 simulator that ran on modern hardware so we could watch exactly what the CPU and memory were doing in real time without needing access to exotic hardware.

    50. Re:Does that make sense ? by Anonymous Coward · · Score: 0

      the .NET file rename function is no substitute for the Win32 file rename system call, despite the fact "they both just rename a file"

      I don't use .NET, so I am loathe to ask...what on earth could possibly be the difference? In PERL, for example, all it's doing is calling rename(2) with the same two strings (nay, the same two pointers)

      You pass two strings. Does .NET mangle the strings?

      Differences in error handling?

      Different semantics such as renaming across directories or filesystems?

      Differences in UNICODE support?

      Differences in performance?

      Concurrency problems?

      Why doesn't it surprise me that Microsoft screws up something as simple as renaming files :-)

    51. Re:Does that make sense ? by Lord+Kano · · Score: 3, Interesting

      Oh, and unlike some relic from the 70's, you can actually get a job programming for tiny microcontrollers.

      Just last year, I was working for a company (A fairly large one) and they were still running programs written in DEC FORTRAN 77 on Vaxen. A part of my job was to port these programs to an.......Alpha.

      LK

      --
      "Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
    52. Re:Does that make sense ? by hey! · · Score: 2, Insightful

      I don't think this is something that's worth doing for *vocational* reasons. You don't do this because you'll produce a supply of programmers who are better at the flavor du jour of programming language. You don't do it as an *alternative* to access to modern machines either.

      You do it for *educational* purposes, to produce people who understand on a deeper level what is going on than somebody who has studied for some kind of vocational certification. Perhaps they'll go onto be hardware designers, or systems programmers. Maybe they'll design the next generation of computer architectures. Or maybe they'll go on to be a code monkey in the language du jour -- but it won't have hurt them to have been exposed to this stuff.

      Naturally, you have to couple this with the right curriculum and the right teachers. For example, students could learn the bad habit of premature optimization which many of us who learned on these machines did. But you can also teach fundamentally sound coding practice such as sound algorithm selection using basic tasks like sorting and selection. Of course you can do that today as well, but you're immediately into somewhat more advanced mathematics like graph or number theory. That's good stuff too, but it won't hurt to have got a more hands on feel for what makes a program efficient using more basic concepts first before moving on to the stuff that's really interesting from an algorithmic perspective today.

      In short, it's not necessary or sufficient to teach students to program on old hardware, but in the right curriculum with the right teachers, it could certainly be beneficial. With the wrong teachers, it could be pointless or even harmful.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    53. Re:Does that make sense ? by lgw · · Score: 1

      Wow, so many ACs asking the same question, what a strange coincidence.

      The .NET File.Move() (and similar) don't give you an option to clobber the destination - you get an error if the destination exists, period. That kills the straightforward method of making a file update atomic (update a copy of the file, then "rename over" the origonal).

      I was just reading about the .NET ReaderWriterLock class (clearly maind-altering substances were in use when this object was designed) - at this point I'm starting to wonder whether the guys writing .NET have any understanding of the fundamental primitives they're supposed to be providing (but at least it makes more sense than COM - yeesh).

      --
      Socialism: a lie told by totalitarians and believed by fools.
    54. Re:Does that make sense ? by TheRaven64 · · Score: 1

      The nice thing about the BBC (the machine I first learned to program on, and the subject of TFA) is that it blends abstraction and low-level access. It comes with a dialect of BASIC in ROM. This is one of the more advanced dialects and supports things like subroutines, so you can write structured code. It has PEEK and POKE, so you can write directly to memory-mapped I/O addresses, or introspect the running system at a low level. It also has a built-in assembler, so you have everything that you need for writing a compiler.

      --
      I am TheRaven on Soylent News
    55. Re:Does that make sense ? by TheRaven64 · · Score: 1

      And the same thing couldn't have been achieved at home with an emulator?

      One of the things that made the BBC so great was its collection of I/O ports. It was trivial to build things that you could control from the BBC. An emulator couldn't reproduce this.

      --
      I am TheRaven on Soylent News
    56. Re:Does that make sense ? by TheRaven64 · · Score: 1

      no super-fast compile/link/run/modify cycle

      No compile or link step. BBC BASIC is interpreted, so you can modify and run without the other two steps. You can even modify the code in the middle of running it, as I recall, although that sometimes had some confusing results, especially if you renumbered...

      --
      I am TheRaven on Soylent News
    57. Re:Does that make sense ? by Darinbob · · Score: 2, Insightful

      This is true. A-levels aren't about getting a trade job immediately. They're essentially college prep classes, though very different from US style. Why teach and indoctrinate in a particular language today when by the time they're out of school the fashions will have changed? Principles are far more important.

    58. Re:Does that make sense ? by loufoque · · Score: 1

      Think about it, has the average person under 20 ever used a CLI? For anything?

      There is a way to operate a computer efficiently without firing up a terminal?

    59. Re:Does that make sense ? by Darinbob · · Score: 1

      My first computer exposure was CARDIAC, the Cardboard Illustrative Aid to Computers.
      http://www.porticus.org/bell/belllabs_kits_cardiac.html

    60. Re:Does that make sense ? by eulernet · · Score: 1

      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.

      This microship doesn't sound so different from 6502 or Z80.
      I'm curious to know where you can find job for programming these things ?
      A google search returned nothing...

    61. Re:Does that make sense ? by soliptic · · Score: 2, Interesting

      I don't know what the A level syllabus is

      It's a little over a decade since I did mine, and I don't know how much they've changed. But FWIW mine involved partly learning algorhythms / programming - in Pascal, with tiny bits of assembly - and partly a bunch of theoretical stuff such as binary (floating point) arithmetic, BNF, Codd's normal forms, basic hardware/architecture principles & protocols, etc. I can't claim to remember the proportion very accurately. Somewhere between 30:70 and 50:50 I think.

    62. Re:Does that make sense ? by ZombieBraintrust · · Score: 1

      Sounds like a waste of time. This kind of course is going to teach more bad practices than good ones. It is also likely to kill interest in computer science for some students.

    63. Re:Does that make sense ? by Mitchell314 · · Score: 1

      Use the GUI versions of Emacs. :P

      --
      I read TFA and all I got was this lousy cookie
    64. Re:Does that make sense ? by ZombieBraintrust · · Score: 1

      I agree, but is this the best way to get them to yearn? "Two students tackled the bugs and refinements, two the graphics and sounds and the remaining student got to work typing the program onto other machines so testing could get going. " One or more of these students is bored out their mind.

    65. Re:Does that make sense ? by LordVader717 · · Score: 1

      To be fair that can be thought with Java and on modern machines. You can do enough resource wasting with BASIC interpreter too.
      And in all honesty, how relevant is it to be copying Assembler routines on architectures that haven't even heard of floating point numbers?
      If you want to learn obscure architectures there are plenty of emulators which will do the job.

    66. Re:Does that make sense ? by bugs2squash · · Score: 1

      Typing it into the other machines ! Sounds like time for the students to learn how to make a network. I assume they had serial ports at least.

      --
      Nullius in verba
    67. Re:Does that make sense ? by Randle_Revar · · Score: 1

      At my community college, we did some ASM programming on a simulated 8-bit microcontroller...

    68. Re:Does that make sense ? by brantondaveperson · · Score: 1

      That doesn't exactly sound like a whole heap of fun though, does it?

      Part of teaching people at this level is coming up with something that both engages the brain and is at least a little bit of fun. Using highly specialised fields, like the numerical algorithms you talk about (about which I have no experience whatsoever, despite being fifteen years into a programming career), is as likely to turn people off the field as it is to fire up their imaginations.

    69. Re:Does that make sense ? by Glonoinha · · Score: 1

      Honestly Edsger Dykstra (RIP) said it best in his hand written paper "On the cruelty of really teaching computing science".
      Link to a PDF of his handwritten paper.

      --
      Glonoinha the MebiByte Slayer
    70. Re:Does that make sense ? by retchdog · · Score: 1

      I dunno; if you took a poll, I don't think "coding a bit-blitting VGA or even ASCII game on an obsolete platform" would be tremendously popular either.

      Different interests for different people I guess. Here is my own story: I honestly wish I had known about numerical optimization and stats in middle school and high school. It took me until college when I finally had a professor who Knew Things, that I realized that everything I thought I wanted to do in Comp. Sci. was actually math.

      I didn't like math until I took real analysis. If I had known that high school calc would help lead to elegant tricks like convex duality and neat applications like optimizing quasilikelihoods and penalty functions for real world applications, I'd have bothered learning it. As it was, I just figured you could approximate any integral with the trapezoid rule, and all those tricks were pointless. :-/ It wasn't until analysis that I learned about interesting functions and counterexamples.

      I eventually wound up in a good grad school and I'm working on my Ph.D. now, but yeah, if I'd had a class in programming obsolete hardware I don't think I would have jumped for joy.

      --
      "They were pure niggers." – Noam Chomsky
    71. Re:Does that make sense ? by retchdog · · Score: 1

      I guess I didn't make this very clear, but a lot of cool stuff can be done as numerical optimization. Google's ad delivery is done with massive-scale penalized/regularized logistic regression, and you can also do pretty good spam detection that way too. Hell, Google's search is based on math more than CS, and that's gotta be pretty cool, right?

      The question is, I guess, whether these concepts are just too hard to be worth trying to teach; or whether no one has really tried; or whether the kids really wouldn't care.

      --
      "They were pure niggers." – Noam Chomsky
    72. Re:Does that make sense ? by Sarten-X · · Score: 1

      Frankly, I've never considered Dykstra's opinions to be anything particularly notable. His algorithms are great, but he seemed to be stuck on the notion that humans are incapable of handling multiple perspectives on a single problem.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    73. Re:Does that make sense ? by brantondaveperson · · Score: 1

      Teaching seems to be to always be somewhat of a balancing act between something that will engage the enthusiasm of as many students as possible, and something that will transfer as much relevant knowledge/skills to the students as possible.

      I think that one of the big advantages of using the BBC micro in particular (as has already been mentioned here) is its IO ports - allowing one to hook the machine up to all sorts of physical real-world objects (robots, buzzers, LEDs, whatever)

      Myself, 'coding an ASCII game on an obsolete platform' would definitely have captured my imagination, since I did exactly that on the BBC micros we had at school. I even tried to write a chat program using the network fileserver as a store for lines of text. That particular experiment failed, and since our teacher knew less than we did (a problem for most of my generational peers I should have thought), I never got any further with it.

      I was in the same boat as you, but with respect to maths, finding everything up until university extremely dull and therefore not worth my time (arrogance of youth!). Although it does rather sound like you're alot smarter than I am :)

      But I think that the BBC micro will be able to prove itself as an extremely valuable teaching tool, perhaps not of advanced numerical optimization techniques, but certainly of the way in which computing devices work at their most basic level. Just like how in A-level maths one sticks to fairly basic concepts instead of jumping into differential calculus or whichever branch of maths happens to be your personal favourite. (calculus for me, but that's only because it seems so much like magic)

    74. Re:Does that make sense ? by rhyder128k · · Score: 1

      I grew up using an Acorn BBC Micro and I'm a retro enthusiast. However, I don't see how a microcomputer with BASIC is a good way to learn how computers work. In what way is that era more instructive than the current era?

      Although an entry point for a generation of self-taught hobbyists, BASIC is a notorious language for teaching bad habits and techniques that can't be carried over to other systems. Like most micros of the time, the Beeb used a line editor rather than a text editor, so even the environment is at odds with current systems.

      Some examples, although I admit that I'm not an expert when it comes to game dev: Modern games are event driven and games written in BASIC tend to be a loop that whizzes around as fast as possible. Modern games usually emphasize separation between code and content. Modern games also make use of libraries that are interfaced with one another and abstract the hardware interface wherever possible.

      Everything about programming games in BBC BASIC is both at odds with how modern programs are made and how the underlying hardware works. It's the worst of both worlds, really. [remembers where he is] To make use of a car analogy, it's a bit like using horses and carts to teach car maintenance.

      I'm sure it was an interesting course for the youngsters but I find it hard to believe they wouldn't be better equipped, vocationally and academically, if they had learned a modern language and environment. Maybe a bit of ASM to see how things really work under the hood. Learn some 6502 and you gain an understanding of how computers work at a fundamental level that will probably be relevant until the quantum computing era arrives.

      --
      Michael Reed, freelance tech writer.
    75. Re:Does that make sense ? by m50d · · Score: 1

      You seem to believe a school should teach C rather than teaching programming. Teaching programming is easier in a higher level language without the tedious business of manual memory management getting in the way.

      --
      I am trolling
    76. Re:Does that make sense ? by AmonTheMetalhead · · Score: 1

      What? You mean all those people who used MS Dos are over 100 years old?! But i feel fine!

    77. Re:Does that make sense ? by AmonTheMetalhead · · Score: 1

      Yes, punch cards

    78. Re:Does that make sense ? by lgw · · Score: 1

      Teaching the basics of "data structures and algorithms" is (vastly) easier in a higher level language. That's just one small part of programming, however (and a poor place to start teaching, as you can't "see it run" directly). If you want the breadth a greaduate with a programming-related degree should have, there's a lot more to teach. Programs don't run on a whiteboard (and I'm frankly sick of explaining that to you graduates), the run on a physical machine, and there are important condsiderations as a result of that.

      Memory is finite, but much faster than other persistant storage - heck, locality of reference matters across the board. Performance optimization doesn't work the way you might think it does. Objects exists as bytes in memory, with an associated address, and that address might be stable or unstable depending on your memory model. There is a stack, and a calling convention, involved in funciton calls. Etc, etc.

      All that messy business about how it actually works. Sure, high level language for into to data structure and algorithms, great. But the student also needs to learn what's really going on inside the box, and that level is a lot easier for most people to get started with than a bunch of abstractions. LEarning to program in C can be helpful along the way. Learning to write a (simplified grammar) C compiler should be mandatory, even if that compiler is itself written in Java (or Scheme, or etc).

      --
      Socialism: a lie told by totalitarians and believed by fools.
    79. Re:Does that make sense ? by lgw · · Score: 1

      s/you graduates/young graduates/

      I blame Java schools even for my typos. :)

      --
      Socialism: a lie told by totalitarians and believed by fools.
    80. Re:Does that make sense ? by mattack2 · · Score: 1

      Yes, it will get them to "yearn".. Yearn for the good ol' days.

    81. Re:Does that make sense ? by mpeskett · · Score: 1

      It's been about a year since I did the exams, and I can already hardly remember what we were taught.

      If you asked me questions about things that were on the syllabus, I'd (probably) be able to answer, but it'd all be mentally filed under "Stuff I know" rather than "Stuff I learned at A-level", so it's all mixed up with what I learned at GCSE IT, and to a lesser extent what I've learned in the first year of a Computer Science degree.

      I remember we definitely learned about the fetch/execute cycle, which seems relevant here. As a teaching tool there was an emulated model of a simple computer (single CPU, tiny amount of RAM, and a choice of input/output devices controlled via byte-sized registers, pun only partially intended). It ran a generic form of Assembly, and you could slow it down arbitrarily; if you wanted to, you could step through the parts of a single cycle, or step one instruction at a time, or run it at a few Hz or whatever speed.

      The rest of the course... a bit of a blur. I remember the two practical projects; programming in VB and some simple database stuff in Access (it wasn't mandated that we use Access, but it was generally the assumed thing). The first one was required to be VB though, since the format was for everyone to produce something to the same spec, write up documentation of everything along the way (design process, screenshots of the program running, all the code, testing records) which you then took into an exam to answer questions about what you'd done to solve problem X. Was a strange, strange means of examination.

    82. Re:Does that make sense ? by mpeskett · · Score: 1

      A crappy VB application and an Access database, I'll have you know.

      Useful things too, but the "practical" modules were admittedly a bit shit (already said more about them 10 seconds ago up the page). Not sure how much exactly I learned in that class that I wouldn't have picked up on my own pretty easily.

      Still, I'm on a good CS course now, so it can't have been all bad. I did the extra maths too though, so who knows which thing it was that convinced them to let me in. (I like to think it was my good looks, quick wit and natural charm, of course).

    83. Re:Does that make sense ? by m50d · · Score: 1

      the student also needs to learn what's really going on inside the box, and that level is a lot easier for most people to get started with than a bunch of abstractions

      Disagree; the place that's easiest to get started is the place where programs are clearest; the hello world should simply be 'print "hello world"' or similar. You and I know that a linked list is more abstract than an array, but someone who's just starting to program sees two things that act the same, just they have to manually faff with the size of one of them.

      --
      I am trolling
    84. Re:Does that make sense ? by xaxa · · Score: 1

      From here

      You do not need to have taken A-level Computing or ICT to do the degree. We look for people who are good at Maths and are excited by computing and its many applications and are or have the potential to be great problem-solvers, lateral-thinkers or systematic thinkers. We welcome people with a wide variety of A-level subjects for our course.

      (their emphasis)

      And Further Maths is on here.

  5. 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,
    1. Re:makes sense by Anonymous Coward · · Score: 0

      There is no need to know anything about the hardware.

      Modern programming is about algorithms and interfaces. Knowing how to simulate 4GB memory space with only 8 bit registers is not important.

    2. Re:makes sense by psbrogna · · Score: 1

      I disagree- Being exposed to how early x86 or other platform programmers worked around limits of the time teaches new programmers how to innovate and think outside the box (in addition to the very valuable insights on performance tuning & optimization on physical hardware mentioned by many others above).

    3. Re:makes sense by Red+Flayer · · Score: 2, Insightful

      There is no need to know anything about the hardware.

      Modern programming is about algorithms and interfaces. Knowing how to simulate 4GB memory space with only 8 bit registers is not important.

      B-b-but the article isn't about modern programming. It's about the A-level program, which is about how computers work, as per TFS/A. Some people need to actually work on hardware in order for your modern programmers to implement their algorithms using an interface.

      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    4. Re:makes sense by Anonymous Coward · · Score: 1, Insightful

      It'll do you whipper snappers some good to learn about hardware.

    5. Re:makes sense by xtracto · · Score: 2, Insightful

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

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    6. Re:makes sense by Anonymous Coward · · Score: 0

      And how are you supposed to implement a good interface or algorithm unless you understand what the compiler has to do to get you sourcecode to run?

      There is a reason to why a modern text editor run sluggish on my 2.66GHz Quad-Core with 6GB ram but a similiar program feels snappy and instant on my old 50MHz system with 64MB ram.
      My bet is that it has very much to do with "modern programming" and less with hardware.

      You really need to learn how a processor works before you can understand the compiler. You also need to understand the compiler before you can select one algorithm or one interface over the other. (And there are plenty of programmers with a good understanding of both hardware and high level languages.)
      You can refuse to learn about it if you want to. I don't really care. I will just use programs written be those who were willing to learn that little extra instead.

    7. Re:makes sense by sjames · · Score: 1

      You'll change your mind if you ever need to deal with code in ring 0.

    8. Re:makes sense by hey · · Score: 1

      In Java it kills be to do stuff like:

              myfunction(new Date());

      since I always want to be able to free up what I "new" like in the C++ world.

    9. Re:makes sense by Spacejock · · Score: 1

      Funnily enough, when I did a comp sci degree in the late 90's the lecturer had just convinced the department to toss out Pascal and use Java for the main programming course instead. We were the guinea pigs, and since I already knew enough C and C++ to be dangerous, I was very happy.

    10. Re:makes sense by brinkman · · Score: 1

      There is no need to know anything about the hardware.

      Modern programming is about algorithms and interfaces. Knowing how to simulate 4GB memory space with only 8 bit registers is not important.

      Sadly, modern programming is mostly about plugging increasingly bizarre abstractions into each other. The algorithms that do the actual work are hidden in the depths of libraries. But even if you're a Java jockey of the most bureaucratic kind, you still need to know about hardware because of the Law of Leaky Abstractions. For instance, sooner or later you will encounter an integer overflow, and it'll throw you for a loop unless you know about the two's complement representation of negative numbers.

    11. Re:makes sense by Jappus · · Score: 1

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

      Funny loops?

      public class Stack {
              class StackElem { public StackElem prev; public T val; }
              StackElem root, top;

              public Stack() {
                      root = new StackElem();
                      top = root;
              }

              public void push(T val) {
                      StackElem node = new StackElem();
                      node.prev = top; node.val = val;
                      top = node;
              }

              public T pop() {
                      if (top == root) { return null; }
                      T ret = top.val;
                      top = top.prev;
                      return ret;
              }
      }

      And that's not even the shortest way to do it.

    12. Re:makes sense by Anonymous Coward · · Score: 0

      What hoops?

      You create a stack in java the same way I do it in c++. With an array and ptr/index. When the array becomes too small, you resize and copy.
      You create a linked list the same way. Each node has a value and a next (maybe a prev if you want to be fancy). The last node in the list has a next of null/NULL/some other sentinel value.
      What specifically is considered a 'hoop' to jump through?

    13. Re:makes sense by jgrahn · · Score: 1

      In Java it kills be to do stuff like:
      myfunction(new Date());
      since I always want to be able to free up what I "new" like in the C++ world.

      I hope you wouldn't use new in C++ in *that* situation though. Good C++ code uses operator new very sparingly. In the case above, there is no reason the temporary Date object needs to live in the heap, with potentially infinite lifetime.

    14. Re:makes sense by Asmodae · · Score: 1

      There is no need to know anything about the hardware.

      Modern programming is about algorithms and interfaces. Knowing how to simulate 4GB memory space with only 8 bit registers is not important.

      Sure, right up until you put your entire fancy data processing algorithm inside the ISR. True story. It took several weeks of us electrical engineers arguing with the software folks about why they couldn't keep up with the data flow and how doing everything in the ISR was a bad idea. And these weren't just any software guys they were supposed to be embedded software engineers writing complex DSP code. I was floored at the time, but seeing statements like this helps me understand.

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

    1. Re:IMO: Great by Anonymous Coward · · Score: 0

      My University did the same thing, though right before my freshmen year (luckily I learned C/C++ in High school). Two years later they switched the first year back to C, then let them get into Java after that.

    2. Re:IMO: Great by CAIMLAS · · Score: 2, Insightful

      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.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    3. Re:IMO: Great by Anonymous Coward · · Score: 1, Funny

      I am getting back into assembly programming after 8 years of C# and it is a bit of a shift in thought.

      Would that bitshift be a SHL or a SHR?

    4. Re:IMO: Great by Trepidity · · Score: 1

      It's emphasizing mindsets that aren't actually a good idea in many modern contexts, though. In particular, it often is best to use automatic memory management, or you end up with a morass of C++-style FooManagers tracking all your resources, like Firefox, in the process leaking many of them and running more inefficiently than a global GC would. Working on machines where instruction/cycle count is a main issue in efficiency also teaches bad habits, since in modern machines cache locality and memory latency are much bigger issues, and some 1980-era optimizations to reduce instruction count are now anti-optimizations.

    5. Re:IMO: Great by jellomizer · · Score: 1

      Well, here is a business case.

      So for every 5 programs you need to upgrade ram on 30 servers. and Lets use high Server Memory Price of $1000. So it is $30,000 to upgrade for every 5 new apps.

      Now these Apps take 2 Months of Development so for each 5 it takes 10 months of development Costing the company $70,000 (with all the benefits and stuff added in) To create the software.

      Now to make these 5 Apps and have them run at 1/2 of the memory footprint takes 40% more time. Meaning $28,000 for software additional for software development costs, then you will need to add $15,000 for the extra memory you will need anyways to run the extra programs, just half as much. then you are up to paying $43,000 in additional costs vs the $30,000 for the hardware upgrades.

      So I will say suck it up that you will have to do your job and upgrade computers, because there are doing more then they did before. Now if you can calculate that improving memory will save the company money (which it might be possible, depending on the factors) then you can encourage developers to code to use less memory. I am sure many of them would be happy to write more efficient code if they know their company is urging them to do so and they respect the extra time it will take.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    6. Re:IMO: Great by Anonymous Coward · · Score: 0

      >I feel us programmers

      Probably just "you programmers". There are plenty of us in embedded software engineering, doing real software.

    7. Re:IMO: Great by mrwolf007 · · Score: 2, Informative

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

    8. Re:IMO: Great by Anonymous Coward · · Score: 0

      ... bit ... shift ...

      I see what you did there...

    9. Re:IMO: Great by Planesdragon · · Score: 2, Funny

      Now to make these 5 Apps and have them run at 1/2 of the memory footprint takes 40% more time.

      Thankfully, you only need to spend six months beating your developers to be aware of memory bloat once. So, count the 40% as a capital cost and move on. (Added bonus: your cultural shift will cause new programmers to adapt or fail, thus extending the value of your investment in proper discipline!)

    10. Re:IMO: Great by Anonymous Coward · · Score: 0

      Pick up a used TIcalc (83,85,86, etc) and a link cable.

      It's quite a fun environment to play around in. One of the cooler aspects is using the built in ti ROM to get tricks done.

      I.e. ASM programmers will jump to a part of the ROM that has some cool routine that is purposed for something else. It ends in a ret and you get a re-purposed feature!

      Also, if you are an aspiring game developer... the community loves you. Your homebrew game can be a drop in the bucket on the internet... But if you make a fun game on a TI a bunch of students will love you for it.

    11. Re:IMO: Great by Darinbob · · Score: 1

      In other words, it's more expensive to higher better and more experienced programmers, when the cheap ones can do the same work and most of the customers (not all) will see the difference. You need to add in the back end costs though, the cheaper programs cost more in maintenance and reduce repeat sales and references.

    12. Re:IMO: Great by CAIMLAS · · Score: 1

      For internal software, what you say makes sense.

      However, it does not make sense when you're buying vendored shit - granted, fringe market vendor shit.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    13. Re:IMO: Great by Anonymous Coward · · Score: 0

      hardware is cheap.

    14. Re:IMO: Great by Draek · · Score: 1

      For most business apps, most of the performance problems come from bad designs, not unoptimized code. And while the quality of the design is, for the most part, orthogonal to the level of abstraction in the language, the large amounts of boilerplate code and the crypticness that's so typical of low-level code makes it *much* easier for a lousy design to go unnoticed.

      Good C/C++ code may be faster than good Python, but good Python is many orders of magnitude more common than good C/C++.

      --
      No problem is insoluble in all conceivable circumstances.
    15. Re:IMO: Great by Anonymous Coward · · Score: 0

      it really perverts ones respects for how things work and efficency.

      No, it does not. Look, I know this isn't going to be a popular opinion, but in the real world, "efficiency" is measured in dollars, not in cycles. Of course it makes sense to optimize, and of course you need to have a solid understanding of the underlying theoretical concepts and the hardware to be able to do this, but if you spend 2 working days optimizing a subroutine so it'll run ten times faster and save your employer five bucks in the process, that's not a good investment (unless you got paid less than five bucks for those 2 days).

      Premature optimization is the root of all evil, and "premature" really means "before you understand what optimization is needed/useful".

      Furthermore, as I said above: a solid understanding of the theory and the hardware is important. Which hardware, though? 30-year old hardware is good for learning the basics, like "this is a CPU, this is memory, these are I/O ports", but once you've got that covered, you've still got a long way to go before you'll understand the hardware you'll actually be working with in your job. Read Drepper's paper on memory and caching, for instance, and see how many assumptions that would have been absolutely valid 30 years ago it shatters.

      Don't get me wrong, though, I think being able to use machines like this really cool, and I'd have loved to be able to do so myself! But don't confuse "cool" with "useful", or "more useful than using modern machines".

    16. Re:IMO: Great by Anonymous Coward · · Score: 0

      good Python is many orders of magnitude more common than good C/C++.

      All of the Python ever written, both good and bad, doesn't even come close to the amount of good C ever written.

    17. Re:IMO: Great by aztracker1 · · Score: 1

      I think it's a balancing act though, I recently saw the following bit of code in C#...
      if (isFlagSet(varname, Flags.Flag) varname = varname | Flags.Flag;
      As opposed to...
      ivarname |= Flags.Flag;

      There's no negative in just setting, and some cost in the check, this was done about 40 time in one class alone... It helps to have an understanding of how things work, but sometimes cleaner code or simpler code in the higher level languages rules over faster, lighter or more efficient code. The cost of maintaining a codebase is more expensive than more/newer/faster hardware... Though designing software to scale is another, similar issue... but scalability isn't nearly the same as raw performance.

      --
      Michael J. Ryan - tracker1.info
    18. Re:IMO: Great by Anonymous Coward · · Score: 0

      Programming is totally differentmuch more productive when you have no respect of memory management.

      -FTFY

  7. 'Modern computers go too fast,' by John+Hasler · · Score: 3, Interesting

    Uhm, we were saying that in the 1980s. At Bletchley Park they should be teaching with machines that actually are old.

    --
    Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    1. Re: 'Modern computers go too fast,' by rubycodez · · Score: 1

      indeed, some old-school vacuum tube computers pumped at 1KHz would serve the purpose so much better.

    2. Re: 'Modern computers go too fast,' by Anonymous Coward · · Score: 0

      TFA mentions that the students "programmed a venerable PDP-8 machine by flicking the switches set on its front panel to set the binary values in its memory". Does that count as old? (I'm too young and naive to know.)

  8. 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 Rand+Race · · Score: 3, Funny

      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.

      --
      Insanity is the last line of defence for the master diplomat. But you have to lay the groundwork early.
    3. Re:Just dump Windows and goto DOS by Nethead · · Score: 2, Interesting

      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 and seeing where the memory and I/O is at. I did see a few 74LS138s on board so I guess that is where I'll start. Now to pull the old DOS box out of the shed with the ISA EPROM burner and see what's there. From what I understand the boot ROM was home brewed. This should be very interesting.

      --
      -- I have a private email server in my basement.
    4. Re:Just dump Windows and goto DOS by Red+Flayer · · Score: 1

      These machines aren't that much older than a C64 anyway. The BBC Micro ran on the same 6502 as the Commodore PET, just one generation older than the C64. As I'm sure you know, the 6510 the C64 ran on is a 6502 variant...

      For that matter, Atari 2600s also ran on a 6502, just with fewer pins. There were more 2600s sold than C64s... I'd be willing to bet the supply of still-working 2600s is bigger than the supply of working C64s.

      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    5. 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

    6. Re:Just dump Windows and goto DOS by commodore64_love · · Score: 1

      >>>But DOS doesn't have all the neat tools.

      a:\ msbasic.exe

      Wait. Okay. NOW you have the basic setup for a just turned-on C64 (which defaults to MS-BASIC). Your students can peek and poke to their heart's delight. Or write basic "Hello World" programs like I did way back in 5th grade. Learn the basics.

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

      I'm sure C64love knows all about it. After all, Commodore owned the 6510. They sold them for dirt cheap (about 25 dollars), which eventually landed the 6510 and its variants in almost every major computer and console of the 70s, 80s, and 90s:

      - Atari VCS/2600 (1977)
      - Apple I and II (1977)
      - Commodore PET (1977)
      - Atari 400/800 computers (1979) - and later the 5200 console
      - VIC-20 (1980)
      - BBC Micro (?)
      - Spectrum (?)
      - Commodore 64 (1982)

      - Nintendo ES (1983)
      - Atari 7800 console (1984)
      - Apple IIgs (1986)
      - Super Nintendo (1990)

      The 6510 and its successors were Commodore's biggest success.

      --
      FOX NEWS.com should be BANNED from television and internet. Have the Congress take it over and give us Truespeak.
    8. Re:Just dump Windows and goto DOS by sewiv · · Score: 1

      Not a Z80, but a 68000: I just retrieved the system I learned unix on, a Plexus. Have to fix some mouse-chewed cables and re-assemble it, but it should be fun. Came with the Rainbow 100 that was used as a terminal, too.

    9. Re:Just dump Windows and goto DOS by Anonymous Coward · · Score: 0

      I think you cannot truly understand the essence of optimization of critical sections of code until you feel the pain of the hardware not being able to run your mind-blowing algorithm at 30FPS or whatever it is you need. A 3Ghz CPU can blow the pants off almost any algorithm you can imagine, but when the boss comes and says, okay, now make it do 1M polys instead of just 150K, you need to know off the top of your head of whether that is even theoretically achievable. IMO, it's a lot easier to see the problem at 8 Mhz than it is at 3Ghz...

    10. Re:Just dump Windows and goto DOS by cwrinn · · Score: 1

      RTFA. Or even the stub. "Modern computers go too fast." It's not just about Operating System, it's also about hardware.

      --
      Here's a cookie... *psst* it's MAGIC
    11. Re:Just dump Windows and goto DOS by Tumbleweed · · Score: 1

      You would get exactly the same "feel" as you get with an old C=64 or Atari or Amiga machine.

      If you think the 'feel' is the same between a C64 and an Amiga, you never used them, or you have a REALLY bad memory.

    12. Re:Just dump Windows and goto DOS by gzunk · · Score: 1

      The Spectrum had a Z80A in it.

    13. Re:Just dump Windows and goto DOS by Anonymous Coward · · Score: 0

      No sense adding torture where it isn't necessary. x86 segmented architecture was, and still is, an abomination. Teach them assembly language that -doesn't- rot their minds and has a sane instruction set. Going back to old systems doesn't mean you have to choose the worst single one ever . Intel won the CPU wars only due to Motorola not being able to ramp up 68k production quickly enough to match IBM's schedule for introduction of the PC -- not due to -any- technical superiority at the time. Fate is sometimes very cruel.

    14. Re:Just dump Windows and goto DOS by commodore64_love · · Score: 1

      >>>If you think the 'feel' is the same between a C64 and an Amiga, you never used them, or you have a REALLY bad memory.

      Command Line Interface? Check.
      Music-quality sound? Check.
      Colorful graphics perfect for gaming? Check.
      Both less than 0.01 GHz in speed? Check.

      Obviously the Amiga is more capable since it's 3 years more advanced (1985 versus 82), but they aren't that different as far as usage and purpose. Both were capable of doing something neither IBM PC or Apple Mac could do at the time: Multimedia. Owe and yes I've used Amiga..... I have three of them sitting behind me even now. (A1000, A500, and A2000)

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

      >>>RTFA. Or even the stub. "Modern computers go too fast"

      Which makes no sense to me. Whether you're using a modern 3000 megahertz CPU or the old 1 megahertz 6502, makes no difference. Both run faster than the human mind can analyze.

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

      Heh. I still have a TI 99/4A in storage (in original box with manuals), on top of my tub of old SCSI cables. Daughter's just getting in to Lego Mindstorms so now might be a good time to bring out the TI and introduce basic and assembler to her. And maybe strip out the internals of that LaCie Joule drive tower and set it up for SATA drives. Love the industrial design from back then.

      --
      I drank what? -- Socrates
    17. Re:Just dump Windows and goto DOS by Xyrus · · Score: 1

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

      Which is great, but one should keep in mind that clever code does not necessarily mean good code. For classes and such, that's not necessarily a problem. But in any sort of production environment where your code is going to be reused or maintained by someone other than you at some point, its better for the code to be understandable.

      I fully agree though that there should be more classes like this where they make students actually think about how a computer works.

      --
      ~X~
    18. Re:Just dump Windows and goto DOS by Anonymous Coward · · Score: 0

      The Magic-1 uses 200 74-series chips, each of which has anywhere from 4 to a few dozen gates, so you're looking at a few thousand gates in total. Making something similar out of discrete transistors wouldn't be cheap, and would be very time-consuming. Using valves or relays would be prohibitively expensive and would also require a huge PSU and substantial cooling.

    19. Re:Just dump Windows and goto DOS by jgrahn · · Score: 1

      You would get exactly the same "feel" as you get with an old C=64 or Atari or Amiga machine.

      You've obviously never used an Amiga. Comparing even the old A500 to MS-DOS is like comparing a samurai sword to a caveman's stone axe.

    20. Re:Just dump Windows and goto DOS by Tumbleweed · · Score: 1

      >>If you think the 'feel' is the same between a C64 and an Amiga, you never used them, or you have a REALLY bad memory.

      Command Line Interface? Check.
      Music-quality sound? Check.

      C64 was 'music quality'? It was nothing comapred to the Amiga. And the Amiga had a GUI with a CLI (that was still in GUI mode, which was why it was a slow CLI). Methinks you might want to actually fire up those Amigas behind you. :)

      And saying both were 'less than 0.01 GHz in speed' doesn't compare them very well. One is less than 1MHz, and one is around 7MHz, one 8-bit, one 16-bit. They were nothing alike aside from the company name.

  9. I keep saying that by Anonymous Coward · · Score: 3, Interesting

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

    1. Re:I keep saying that by firewood · · Score: 1

      The problem with using embedded microcontrollers for this tutorial purpose is that they are usually incomplete slave devices, and thus the experience is incomplete and misleading. Rarely did people ever do or teach development completely on those embedded machines themselves (including compiling compilers, the OS itself, etc. on that microcomputer itself), as people did with old tube mainframes, IBM 360s, PDP-11s, and the like. In addition, some of the newer 8-bit microcontrollers are actually a lot faster than these vintage machines.

    2. Re:I keep saying that by Anonymous Coward · · Score: 0

      You don't get the absolutely down to the transistor insight

      I type this as I'm waiting for my soldering iron to heat up so that I can add a couple of transistors to my Arduino...I had to lol.

    3. Re:I keep saying that by Anonymous Coward · · Score: 0

      Or, you can choose freescale, microchip or some other microcontroller that doesn't end each datasheet with page upon page of errata.

    4. Re:I keep saying that by Anonymous Coward · · Score: 0

      some of the newer 8-bit microcontrollers are actually a lot faster than these vintage machines.

      Yes, obviously. A 16MHz Atmega8 (which executes one instruction per clock cycle) is significantly faster than a PC XT. I don't think speed is the point of the exercise though. An 8-bit microcontroller is a relatively clean system with most optimization on the hardware implementation level where it doesn't affect the programmer.

      I'll admit that the Atmels are not typical in one important aspect: They're Harvard architecture (with only flash for program memory), not Von Neumann architecture machines. That precludes things like punching in code byte by byte and then executing it. If you want to give people an impression of the menial tasks surrounding old computers, then microcontrollers are not going to give that impression. If you want to teach basic computer architecture with a fully documented, understandable system, then I recommend the AVRs. Most of the controllers can reprogram themselves and you can attach a keyboard and a small display, so completely standalone operation is possible.

    5. Re:I keep saying that by Anonymous Coward · · Score: 1, Interesting

      I'd rather have errata than no errata. The latter probably just means the implementation errors are undocumented. The Atmels have a clean architecture and a nice instruction set which makes assembly programming an acceptable proposition. Then there's the Arduino system, which is just an Atmega under a catchier name: That means there's lots of working code and hardware projects. Whatever, yes, there are other microcontrollers out there and if you can get more local help for any of them, then that's probably a good enough reason to base your choice on. I really like the integrated development environment that Atmel makes available for free (but you're not forced to use it, you can use other compilers and programmers). Your mileage may vary.

    6. Re:I keep saying that by Anonymous Coward · · Score: 0

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

      That's fine, if you want to learn the high level stuff. But if you really want to learn how they work, you need to take a semiconductor course with a lab and build your own field effect device.

    7. Re:I keep saying that by Anonymous Coward · · Score: 0

      Transistors have electromechanical equivalents for the purpose of digital logic, which I suppose everybody knows from high school physics. Unless you're interested in the physical effects governing semiconductors, there's no need to understand computers below the logic signal level. The actual physical effects used for implementing the logic level are interchangeable.

  10. "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
    1. Re:"Actors" by Anonymous Coward · · Score: 0

      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.

      Even 8086 machines run at about 4MHz. That means a lot more than 1 instruction per minute.

      IF you want to simulate 1 instruction per minute, just run a debugger. You can step 1 assembly instruction at a time!

    2. Re:"Actors" by sconeu · · Score: 1

      I did this several years ago for my daughter's 5th grade class. I wanted to teach them "how a computer counts to 5".

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
  11. Sounds like fun by elmodog · · Score: 2, Funny

    Next up: Driver's Eduction on the Model T. ;)

    1. Re:Sounds like fun by Locke2005 · · Score: 2, Insightful

      What would be easier to learn basic mechanics from working on: a '57 Chevy or a 2011 Lexus?

      --
      I've abandoned my search for truth; now I'm just looking for some useful delusions.
    2. Re:Sounds like fun by localman57 · · Score: 2, Informative

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

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

    4. Re:Sounds like fun by Nethead · · Score: 3, Informative

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

      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.

      --
      -- I have a private email server in my basement.
    5. Re:Sounds like fun by Anonymous Coward · · Score: 0

      I disagree. Carburetors aren't that complicated. It's just a metal brick with ports, vacuum hoses and a whole lot of venturi action going on. I've rebuilt many chainsaw, lawn mower, snowmobile and motorcycle carburetors and I'm just a young guy (25). Fuel injection is much more complicated when you consider how much is going on with the computer, nevermind all the sensors (O2, WOT, MAF, IAT and CPS) to name a few.

      That said, I'm a big fuel injection advocate. I've even thought about fuel injecting my 1954 John Deere 40T, but I probably won't...unless I did it in such a way that it was reversible.

    6. Re:Sounds like fun by LinuxIsGarbage · · Score: 1

      The question was "What would be easier to learn basic mechanics from working on: a '57 Chevy or a 2011 Lexus?" not "Which car is better" or "Which car is more reliable". A fuel injection computer and a sensor just adds a "black box" when you want to learn the basics.

    7. Re:Sounds like fun by Anonymous Coward · · Score: 0

      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 *adding* complexity.

      FTFY

      You think a 2010 model is LESS complex then say a model t? Statements like that make me think you must be joking.

    8. Re:Sounds like fun by Anonymous Coward · · Score: 3, Insightful

      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 couldn't fudge a 'close enough' job and escape notice. This made carburetors a dividing line between wrench twiddlers and real mechanics. Most other parts of an older engine could be reassembled 'close enough' and work fine -- for now; they just wouldn't last as long. Carbs assembled that way would tell you immediately, hence got a reputation.

      What changed around 1985, the beginning of the 'simpler' and 'lower maintenance' era we're in now, is the complex high-precision bits multiplied and got sealed off. You didn't pull everything apart to the last bolt and wire anymore. You had a series of black box sections that were removed and replaced when out of spec. That's everything as complicated as, or more complicated than, a carburetor.

      Apply the same rule of 'remove and replace' to carburetor cars, and they'll be just as 'simple' to work on as you claim new cars are. You'll still be a Barbie saying "math is hard!", but you won't be spouting bullshit about 50,000 mile life expectancies. Seriously, that's just rubbish. Any decently maintained old car that wasn't a known lemon rolled over the odometer easily before you /started/ thinking it was getting time for overhaul.

    9. Re:Sounds like fun by Knitebane · · Score: 1

      A Holley or Edelbrock ( nee' Carter) carburetor isn't that complicated.

      A Rochester is a collection of 17,358, 234 microscopic parts that atomize the fuel by bouncing around randomly inside the carb body.

      The parts move so fast that they warp space-time and this is what makes the secondaries plates bigger than the primary plates.

      --
      "...history will look upon the act of depriving a whole nation of arms, as the blackest." --Ghandi
    10. Re:Sounds like fun by sensei+moreh · · Score: 1

      Ever taken apart an old carburetor before?

      Yes.

      Ever try to get it back together in working order? Yes - and I succeeded. Not only did it work, but I had two extra screws when I finished! It wasn't too difficult, I just followed the instructions in the manual. Programming's harder in the sense that I have to actually develop the instructions (algorithm) before I can actually follow them (in other words, write the program).

      --
      Geology - it's not rocket science; it's rock science
    11. Re:Sounds like fun by dbIII · · Score: 1

      Back when I was learning to be an engineer we used a cut open gearbox from a Model-T Ford to understand how modern automatic transmissions work. It was simpler, everything was large and you could move parts by hand to see how that moved all the other parts.

    12. Re:Sounds like fun by dbIII · · Score: 1

      One feature of the Model-T transmission is that you could safely engage reverse gear at top speed if you wished to slow down. It's epicyclic gears with brake bands (clamps really) to engage the different sets of gears. Modern automatic transmissions also use epicyclic gears.
      I was lucky enough to have a Model-T transmission with a cut open casing to play with in a mechanical engineering lab at University.

    13. Re:Sounds like fun by Nethead · · Score: 1

      I was lucky enough to have a Model-T transmission with a cut open casing to play with in a mechanical engineering lab at University.

      And good job bringing this sub-thread back to topic ;)

      --
      -- I have a private email server in my basement.
  12. History doesn't repeat itself by VGPowerlord · · Score: 0

    In one of the first lessons held at TNMOC the lucky Ousedale students programmed a venerable PDP-8 machine by flicking the switches set on its front panel to set the binary values in its memory. And an interface does not get more direct than that.

    What's next, punch cards?

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

    If you want to actually teach them something, why not just teach them to program for an embedded system? Preferably, one that is still in use today.

    --
    GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    1. Re:History doesn't repeat itself by Carnildo · · Score: 1

      These systems have high-level I/O options (keyboard, monitor) that embedded systems don't, while avoiding all of the complexity (multi-level caching, speculative execution, out-of-order execution, etc.) of a modern desktop.

      --
      "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    2. 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.
    3. Re:History doesn't repeat itself by Anonymous Coward · · Score: 0

      In one of the first lessons held at TNMOC the lucky Ousedale students programmed a venerable PDP-8 machine by flicking the switches set on its front panel to set the binary values in its memory. And an interface does not get more direct than that.

      What's next, punch cards?

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

      If you want to actually teach them something, why not just teach them to program for an embedded system? Preferably, one that is still in use today.

      I was going to tell you embedded systems is a completely different subject from programming on the bare metal, but apparently they're using BASIC so, yeah, expect punch cards by the end of the month.
      Still, I'd take the class given the opportunity.

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

    5. Re:History doesn't repeat itself by John+Hasler · · Score: 1

      > These systems have high-level I/O options (keyboard, monitor) that embedded systems don't...

      Some embedded systems have serial I/O and support terminals.

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    6. Re:History doesn't repeat itself by MrEricSir · · Score: 1

      They need to go back further than that. First the students have to build a generator, then blow their own glass and seal their own vacuum tubes. Near the end of the semester they'll make silicon wafers and cast their own CPUs.

      --
      There's no -1 for "I don't get it."
    7. Re:History doesn't repeat itself by Anonymous Coward · · Score: 0

      It's not about nostalgia. It's about showing students that computers aren't "magic". When the CPU reads and executes an instruction to load a value from RAM into a register, then that's not an incantation of a secret spell. If the only result of teaching with these old computers is that the students are confident that there is no cut-off below which they don't understand what's going on, then that's totally worth it.

    8. Re:History doesn't repeat itself by Anonymous Coward · · Score: 0

      Because embedded systems have completely worthless manuals compared to those old machines?
      Also compilers for embedded systems tend to be buggy and you can't develop om the system itself but have to cross-compile.

    9. Re:History doesn't repeat itself by Mashiki · · Score: 1

      History does indeed repeat itself, but it does so in unique ways such as using upgraded technology but relying on the same tried and true methods. I expect in 10-20 years we'll see something akin to punchcards being used to access unique user-stored information, and personalized execution of code. These days we call them flash drives, or pen drives, or USB sticks.

      --
      Om, nomnomnom...
    10. Re:History doesn't repeat itself by sjames · · Score: 1

      There IS a benefit to using punch cards once or twice. Especially on an old reader with copper brushes. Hole in card allows brush to connect a circuit signaling a 1. Right down to the bare metal indeed.

      I would not suggest using that regularly, but it's a decent lesson.

    11. Re:History doesn't repeat itself by Gaffod · · Score: 1

      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.

      I don't understand. Soldiers don't train with halberds, swords and crossbows. Officers don't train with cavalry formations, trebuchets and castle. Engineers don't start off recreating Stephenson's Rocket or the Wright Flier. Cooks don't start off rubbing wood to start a bonfire and roast mammoth meat. Architects do not stick to cathedrals until they "get their chops".

      In fact, science is about the only profession that does anything remotely similar for training, and even then, if old experiments are recreated, the setup has as many non-crucial elements replaced with modern equivalents as possible. We didn't bother using 19th century batteries for the Ohm's Law experiment, because it didn't matter where the current came from. We didn't bother sucking up chemicals with our mouth through pasteur pipettes for cholesterol extraction when we had automatic pipetters. We didn't bother using Bunsen burners instead of hot plates for chemistry.

      Low level programming for ICs and the like aside, I don't see what about high level programming is so difficult to teach with, say, Eclipse. Possibly linking up the libraries can seem confusing at first, since a default project has a bunch of them already (and generated code for the GUI) but it's not like it won't let you start basic command line app projects.

      This class would definitely teach much history, but just because you love reminiscing about back in the day doesn't mean you should inflict it on everyone. Not only does it make the student's job unnecessarily difficult, but it also takes away the motivation that comes from going home, and being able to immediately apply the thing you learned in class on your computer.

    12. Re:History doesn't repeat itself by Anonymous Coward · · Score: 0

      As far as I know, military history is an important part of officer training. They need to know how different technologies and troop abilities lead to different tactics and strategies, and learn to appreciate the value of tactical innovations. Understanding how tactics change in widely different circumstances is important in order to be prepared for changes in future warfare.

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

    2. Re:Probably a good idea by hazem · · Score: 1

      I was hoping someone would mention Project Euler.

      I'm not a computer scientist but I have fun poking at problems like those. I agree that these would be good for some kids to get their feet wet with CS kinds of problems. Some are easy and can even be solved in an Excel spreadsheet, while others, at least for me, are unsolvable... though I now want to know more about functional languages.

    3. Re:Probably a good idea by PitaBred · · Score: 3, Insightful

      There's still nothing like having your actual computer take another 10s to run the same sort someone else's does in 1s. Our current machines are so fast that sorting 1000 items in .1s vs .01s means pretty much nothing to a learning programmer, even though the order of magnitude difference is the same. And harping on Big O isn't "getting your hands dirty".

      There are people who learn quite well from theory. But that's not everybody, and actual, perceptible feedback is a very effective learning tool.

    4. Re:Probably a good idea by Anonymous Coward · · Score: 0

      Do you not understand big-O? Using bubble sort or selection sort vs. quick sort or merge sort is not an "order of magnitude difference"... sorting 1000 items with selection sort should be on the order of 100 times slower than with merge sort. Sorting 100000 items would be on the order of 10000 times slower. That should be easy to illustrate even on the fastest hardware today. All you have to do is increase the number of sorted items and plot the results, and you have your convincing time difference data.

    5. Re:Probably a good idea by Anonymous Coward · · Score: 0

      We wrote programs in HEX. No kidding. Having experienced that, even for a few hours, really makes you appreciate how far we have come.

      Yeah, we wrote microcode too. It's not hard to do for a simple model computer, one that you simulate in software.

    6. Re:Probably a good idea by spiffmastercow · · Score: 1

      Do you not understand big-O? Using bubble sort or selection sort vs. quick sort or merge sort is not an "order of magnitude difference"... sorting 1000 items with selection sort should be on the order of 100 times slower than with merge sort. Sorting 100000 items would be on the order of 10000 times slower. That should be easy to illustrate even on the fastest hardware today. All you have to do is increase the number of sorted items and plot the results, and you have your convincing time difference data.

      Dude, that was exactly my point. Go check out the link.. You'll find that even modern hardware isn't powerful enough to brute force most of those problems. There's usually an obvious solution that's O(n^3) or so, but you have to find the one that's O(n^1/2) to solve it before you die.

    7. Re:Probably a good idea by spiffmastercow · · Score: 1

      Oops, sorry.. The slashdot layout made it look like you were responding to me, not to him.. Carry on.

    8. Re:Probably a good idea by Anonymous Coward · · Score: 0

      You don't have to use old machines for that. Chronologically speaking.

      Teach them on Nintendo DS/DSi kits. It's only 4/16 megs of RAM, 67/133MHz per second, but it has enough modern goodies (DSP, microphone, accelerated 3D, wireless) to be accepted by the market.

      Now, those kits are two grand a piece so that might be a hindrance. :)

    9. Re:Probably a good idea by Anonymous Coward · · Score: 0

      Back in the early 90's I installed Windows (3.1 ?) on an IBM PC1.

      It was so slow it seemed like it took 30 seconds, or more, to repaint the screen.

      You could see individual elements like scroll bar sliders being drawn.

      Not that is 'really seeing how a computer works' :-)

      Well, not really, but it was fun.

    10. Re:Probably a good idea by Anonymous Coward · · Score: 0

      Our current machines are so fast that sorting 1000 items in .1s vs .01s means pretty much nothing to a learning programmer, even though the order of magnitude difference is the same.

      Confronted with that problem, I went pragmatic: threw a 1000000 items on them to sort.
      Advanced, storage-saving approach would be to hang weights on their feet (insert unconditional waits after each item-moving step).

    11. Re:Probably a good idea by PitaBred · · Score: 1

      I understand Big O just fine, thank you. I got my degree in Computer Science. I also understand people though, and it appears that you do not.

      How do you automatically generate a million items to sort, when the person you're teaching to program is just learning how to write sorting algorithms?

      Yes, you can just increase the number of things you're doing, but it's not the same. It's hard for people to visualize and wrap their heads around initially. You can't start abstracting things like that until the base understanding is laid.

    12. Re:Probably a good idea by Anonymous Coward · · Score: 0

      Our current machines are so fast that sorting 1000 items in .1s vs .01s means pretty much nothing to a learning programmer, even though the order of magnitude difference is the same.

      Then sort a million items instead. If computers get faster, increase the problem size, and you'll still be able to demonstrate the same differences.

      And harping on Big O isn't "getting your hands dirty".

      But it's what actually counts in the end. Seeing for yourself how a bubble sort is less efficient than a quick sort is neat, and it's a valuable learning experience, but it's not something that a course should spend more than a week or two on.

  14. How does it work? by PolygamousRanchKid+ · · Score: 2

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

    --
    Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    1. Re:How does it work? by tomhudson · · Score: 3, Funny

      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.

      You don't understand - this is Bletchley Park, you know, the codebreakers during WW2. Old habits die hard. They *could* tell you, but then they'd have to kill you.

    2. Re:How does it work? by sconeu · · Score: 2, Funny

      No, they could tell you, but you wouldn't be able to use that info on your A-levels for 50 years.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    3. Re:How does it work? by Anonymous Coward · · Score: 0

      Hell, I've been taught exactly how processors and OSes are built up, I still can't explain it to you. Sure, the high-level story is simple, but not so for the details. Besides, this has the added disadvantage of a lack of focus on multi-threaded operation and other modern features. The latter is essential to any programmer. Add to that the fact that while increasing efficiency is entertaining, it is unnecessary and clean, quickly patchable code is preferable, Java or similar languages are much more suited. Especially if you want to teach students how object orientation works. I've learned most of what I know with Java (and some C), and the teaching style I received allowed me to easily transition those ideas to python (and to a lesser extent, C). I enjoy coding in C, but Java is much easier to use and python is also much faster to code.

    4. Re:How does it work? by Anonymous Coward · · Score: 0

      Butterflies? How the fuck do they work?

  15. waste of time by AffidavitDonda · · Score: 1

    "Because there's no copy and paste, if you do something wrong it takes time to go back and fix it," said Joe Gritton. "You cannot take out sections and move them around."

    So they have to worry about bad interfaces and editors. You can do simple assembler programming on modern machines as well. And understanding C__ should give you a good deal of knowledge about the basics of a computer...

    1. Re:waste of time by jimicus · · Score: 1

      To be fair, it wasn't as bad as all that.

      Acorn never really tried to write a text editor for BASIC for the BBC; the computer had an inbuilt interpreter complete with CLI, so you could edit a line directly from the CLI. And the student's not strictly correct when he says "There's no copy and paste" - you could use the arrow keys to move the cursor up to an arbitrary line on the screen and copy the text from that line directly onto the CLI.

    2. Re:waste of time by mountaineer76 · · Score: 1

      This was one of the things I REALLY felt lacking about DOS's CLI compared to the Beeb when I moved from a 128K BBC Master to a 286 PC back in 1991 - the ability to copy any character on the screen was just so intuitive - DOS felt clunky by comparison (it still does!). I still have the Beeb in the loft while the 286 was long since consigned to the PC graveyard in the sky...

  16. Old trick... by ibsteve2u · · Score: 2, Interesting

    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.

    --
    Orwell: "In a Time of Universal Deceit, telling the Truth is a Revolutionary Act"
    1. Re:Old trick... by TaoPhoenix · · Score: 1

      "Vista on Netbooks!"

      There was a nervous article recently that Intel wasn't sure they could keep the nice pretty line of Moore's Law this time. Maybe if we spent a cycle Super-Optimizing Windows code and maybe better onboard chip communication (I am not a hardware guy) we'd see an effective Moore's Law datapoint and give Intel the 3 years they need.

      For the longest time everyone was boasting that we didn't need to optimize 'cuz programmer time was too expensive. Then 2006 happened to Microsoft. To be fair, Win7 is absolutely in that direction, but what about one more aggressive optimization cycle?

      --
      My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
    2. Re:Old trick... by Nethead · · Score: 1

      I still keep a 286 around for programming my old Syntor X9000 radio. Sometimes a 386sx will work, but it always runs with the old Leading Edge.

      --
      -- I have a private email server in my basement.
    3. Re:Old trick... by Anonymous Coward · · Score: 0

      Of course, with the advent of .NET....well, now you're only as good as Microsoft is.

      It's a poor workman who blames his tools. .NET too slow for you at runtime? Spend more time in dev to create something lean. It ain't difficult to figure out...

    4. Re:Old trick... by gooneybird · · Score: 1

      "Of course, with the advent of .NET....well, now you're only as good as Microsoft is."

      I am sorry to say that .NET is not the only interpreted language here....Give me freakin' break!

      "Of course, with the advent of java....well, now you're only as good as Sun/Oracle was/is"

      Of course, with the advent of <insert interpreted language here>....well, now you're only as good as <insert language originator's name here>

      If your going to condemn something, condemn all interpreted languages and not just the ones that are in vogue today to criticise.

    5. Re:Old trick... by ibsteve2u · · Score: 1

      I gather you believe that Java is as essential to Windows programming as .NET? I might have chosen to "condemn" Java...if I believed that Windows and the other Microsoft offerings were increasingly Java-based.

      --
      Orwell: "In a Time of Universal Deceit, telling the Truth is a Revolutionary Act"
    6. Re:Old trick... by narcc · · Score: 1

      It's a poor workman who blames his tools.

      You can't paint the Sistine Chapel with a two-inch brush.

  17. 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 Dunbal · · Score: 0, Troll

      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

            Fortunately we've moved on from the days when a coder had to know the IRQs, DMA channels and interrupts and had to waste time playing around with peeks and pokes (especially when some of them required you to insert (random number of) NOP's in between because the hardware wasn't fast enough). Now we have these things called drivers and libraries that do all the basic work for us, and we can just program the high level stuff. How cool is it that I can write a multi-threaded graphical program in about 10 minutes? Try doing that in Turbo Pascal 2.0.

            Yeah it means I've had to adapt and learn new languages, new APIs and different ways of doing things. Instead of learning about ports I learn about object interfaces and methods. But you just have to keep up, like any other field. Certainly in my other hobby - medicine, if you snooze you lose.

      --
      Seven puppies were harmed during the making of this post.
    2. Re:Knowability by Anonymous Coward · · Score: 0

      I still have "Mapping the C64". :-) Fond memories.

    3. Re:Knowability by ITBurnout · · Score: 2, Insightful

      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 veins. Fun stuff.

    4. Re:Knowability by ITBurnout · · Score: 1

      This is true. I do NOT miss wasting hours with EMM386.

    5. Re:Knowability by ari_j · · Score: 1

      But, in those other fields, you need to understand how the underlying system works in order fully to benefit from the modern technology. You can't just hook a modern IV pump up to someone and expect them to stop feeling ill. The abstractions and conveniences you mentioned do not demand of most programmers that they understand the underlying hardware interfaces, but they do demand that of some programmers. In addition, the rest of the world's programmers do benefit from a basic understanding of what goes on under the hood.

    6. Re:Knowability by Anonymous Coward · · Score: 1, Interesting

      What you're talking about is the fragmentation of computer science and computer programming. It used to be that one would learn the entire system; now, the system has got large enough that you really need to specialize in a component in order to be skilled enough to get anything done.

      Back when I was in university, we learned C, some Pascal, LISP, ASM for a number of architectures (including theoretical models), and then a bunch of Big O-related maths. By the time we were doing upper level courses, the hardware courses were all about the hardware and the software courses were development environment agnostic -- they didn't care what tools you used, they just wanted it fully documented so that the TA could come along and understand what you'd done and replicate the end product in the build environment. In both cases, it was really more about displayed knowledge through documentation than it was about what APIs you used to get it done.

      The thing about drivers and libraries is that SOMEONE has to write them -- a high level programmer has no need to understand them, but an A-level programmer is required to.

    7. Re:Knowability by chocolatetrumpet · · Score: 3, Insightful

      Fortunately we've moved on

      Still, the parent author has a good point about the nature of computers. There was a time when you could grasp every detail of the system. Now, to understand any one component means a lifetime of specialization. This is good because it makes computers extremely powerful, but it is bad in a way because it makes the world a mysterious place.

      When I started learning html around 1997, it was simple. I could know every tag. I kept up with it through frames and into a small amount of javascript and css. Thirteen years later, many sites are extremely sophisticated, accounting for the nuances of various browsers, etc. It's certainly a formidable hobby at this point.

      When the world is a mysterious place, it is a frightening place. A child growing up in the modern world sees all of our amazing technology as magic. Everything is a mysterious black box that just works, or when it doesn't, you call someone to fix it, or toss it and replace it. That's why I always respected Fred Rogers. Even if it was something as simple as taking children "behind the scenes" at the supermarket, he always strived to debunk the modern world at a pace anyone could keep up with.

      We shouldn't resist technological progress, but we should be aware of how living in a high tech world affects people. Happiness is linked strongly to control. If you choose only to control your own thoughts, you will probably be very happy because success is almost guaranteed. But if, like most people, you choose to try to control the world around you, technology is a double edged sword. While in some senses it has afforded people unprecedented power, in other ways, growing up surrounded by inscrutable sophisticated electronics can be alienating.

      Being able to know things is good for your health. Scientia potentia est!

      --
      Spoon not. Fork, or fork not. There is no spoon.
    8. Re:Knowability by Nethead · · Score: 1

      The C64 actually had 64KB of DRAM and then two ROMS paged in via the I/O lines at 0x000 on the 6510. If I recall correctly the BASIC ROM was at the top starting at 0xC000 and the character ROM was just below that. In one program I wrote I dropped down to machine code to swap out the BASIC ROM and stash an array in the RAM underneath. Other trick were to write the BASIC ROM to RAM and then page it in so you could modify it (I think sysres did this.) Another trick was to do the same with the char ROM and flip the bytes causing all the letters to be upside down.

      --
      -- I have a private email server in my basement.
    9. Re:Knowability by Anonymous Coward · · Score: 0

      On the other hand, if there's a problem with one of those drivers or libraries that someone else wrote, and you don't understand... you're SOL. By taking advantage of the work of other programmers I can edit video, render 3D models, compose music, design buildings... in fact, all I need to do is install the software. Not that there's anything wrong with people who do that, but... I don't want to be one of those people.

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

    11. Re:Knowability by Anonymous Coward · · Score: 0

      How cool is it that I can write a multi-threaded graphical program in about 10 minutes?

      Not cool

      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 veins. Fun stuff.

      Cool

      Or hand in your geek card.

    12. Re:Knowability by Anonymous Coward · · Score: 0

      Quiz - what did JSR $FFD2 do? :)

    13. Re:Knowability by tverbeek · · Score: 1

      Software optimization just isn't economically viable any more. Throwing faster hardware at a problem is cheaper than applying programmer hours. This is why "It'll take a couple minutes for the OS to load" was said in 1980, 1990, 2000, and 2010, and will still be said in 2020 and 2030.

      To be fair, there are still people (including young people) working on low-level software like drivers. But like the high-level drag-n-drop programmers who don't know anything about the plumbing, they have no grasp of what's going on in the floors above them... in part because you need to be that kind of in-the-basement room-lights-off best-friend-is-a-reptile-of-some-kind freak to specialize in that stuff.

      And I, for one, am sick to death of specializing. Maybe I need to find a new field, one that isn't so full of black boxes I'll never have the time to look into.

      --
      http://alternatives.rzero.com/
    14. Re:Knowability by Anonymous Coward · · Score: 0

      When I first read that it was possible to load the C64 ROM into RAM and modify it, my testicles immediately dropped an inch. "Today I am a man."

    15. Re:Knowability by Gaffod · · Score: 1

      PEEK at a certain address and it tells you the current hour.

      You are complaining that now you don't have to hunt for the address through your notes, and instead can simply call something like System.getCurrentHour()? Or does it bother you that the same command works on hundreds of different systems?

      Oh wait, you are complaining because you wasted time perfecting a task which should have been left to the software anyway, and now that software is doing it, your efforts have been rendered irrelevant.

    16. Re:Knowability by dbIII · · Score: 2, Insightful

      There's still high performance computing using in such commercial ventures as oil exploration or manufacturing design. A one percent performance improvement saves well over an hour in a week long processing job - so the old software is seen as obviously slow, gets ditched and the optimised software from somewhere else used instead. We've had things finish three days earlier on less nodes when comparing "brand name" software stuck in the 1990s with bug fixes outsourced to India versus something from a small Texas startup that probably actually has less of a total salary bill than the outsourced old stuff.
      Bad choices at the top level of the old software have the CPU load at zero and no disk or network activity for very long periods of time while the optimised software runs flat out.

    17. Re:Knowability by Anonymous Coward · · Score: 0

      Of course drivers come from faeries. Did you think Nvidia's Dan/demo was a fairy out of mere coincidence? I think not.

      Seriously though, your point is spot on. It's amazing how from a usability standpoint there have been few changes. I click and it takes forever for apps to load. My Java IDE now eats more ram than 50% of the computers I've owned had hard drive space. Layer, upon layer, upon layer for no real reason other than programmer 'productivity'.

      Here's the thing though, programmer 'productivity' has costs - they are just deferred to the user and the system administrators where they can grow exponentially. So your nifty app (tm) loads 5 seconds slower than it could be cause you saved a day and some mental effort by using some big library for a few simple things. Now your nifty app (tm) becomes widespread (yay!) to say 100,000 people who use it pretty much daily.

      5s x 100,000 x 365 = nearly 6 man-years of time wasted for every year your nifty app (tm) is in use. God forbid your app sticks around and a million people end up using it - you might as well just kill a person every 18 months. That's the cumulative effect. Perhaps it's a little melodramitic, but it's still true. I think we've lost (myself included) the respect for efficiency of the whole system, and the costs we burden our users with.

    18. Re:Knowability by Anonymous Coward · · Score: 0

      If you choose only to control your own thoughts, you will probably be very happy because success is almost guaranteed

      It might take a lifetime of meditation practice though.

  18. Ridiculous by 16K+Ram+Pack · · Score: 2, Interesting

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

    1. Re:Ridiculous by Nighttime · · Score: 1

      (and IIRC, you didn't have functions, so had to endure the horror of GOSUB/RETURN).

      BBC BASIC II had PROCedures and FunctioNs. It was one of the better 8-bit BASICs.

      --
      I've got a fever and the only prescription is more COBOL.
    2. Re:Ridiculous by 16K+Ram+Pack · · Score: 1

      It was a long time ago ;)

    3. Re:Ridiculous by Anonymous Coward · · Score: 0

      You recall incorrectly; BBC Basic always had PROC and FN.

      >10 A%=FNtest
      >20 PRINT A%
      >30 END
      >40 DEFFNtest
      >50 = RND(5)
      >RUN
                        5
      >RENUMBER 0,0

      Silly

    4. Re:Ridiculous by jimicus · · Score: 1

      BASIC II did. BASIC I didn't, but I don't know how many copies of that made it into the world.

    5. Re:Ridiculous by Nighttime · · Score: 1

      The early BBC Model A machines shipped with OS version 0.9 and would have had BBC BASIC I. The Model B came with OS 1.2 (IIRC) and BASIC II. You could buy replacement ROMs for the older machines to upgrade to this version. Heh, swapping ROMs as a way of upgrading your computer's OS.

      --
      I've got a fever and the only prescription is more COBOL.
    6. Re:Ridiculous by jimicus · · Score: 1

      Very likely correct, but I work directly opposite a man who was employed by Acorn back in the day.

      Take it with as much salt as you think it needs, but from what I understand remarkably few model As made it out of the factory. Most were upgraded to model Bs before shipping.

  19. Understanding "computers" vs "programming" by Xygon · · Score: 1

    In my college program on electronics design, we actually did a lot of system-level programming on 8085 machines. We went so far as to build DAC converters to build volt meters out of computers. What it gave us was the ability to understand the basics of CPUs interacting with memory, signals, IOs, assembly language. That said, with two years of that under my belt, I am no closer to understanding any real-world programming that can get me a job, than had I not taken the class.

    Yes, the basics of computers are much easier when you don't have massive clock frequencies adding insane complications to applications. No, programming has nothing to do with understanding what JMP does. Do I think it's valuable? Sure. Do I think it'll make any difference on whether you can call yourself a "programmer?" No way.

    1. Re:Understanding "computers" vs "programming" by dpilot · · Score: 1

      I did similar programming, connected with an EE class. We had our prototype board that plugged into the (dating myself) S100 "mainframe." Our lab projects were combinations of hardware and software. Few things teach you the value of time while computing better than writing a bit-banging UART. For your example, take your DAC and see what sort of AC frequency response you could get out of it. Then give the "A" in the class to the team with the best combination of transient response, frequency response, and overall accuracy.

      My first job in the working world involved programming memory testers. At that point you drop down to microcode on an individual cycle basis, controlling timings within the cycle on pulse shaper cards. You had to know what each and every cycle was doing, and do them all correctly. Now THAT's low-level.

      --
      The living have better things to do than to continue hating the dead.
    2. Re:Understanding "computers" vs "programming" by xaxa · · Score: 1

      Do I think it's valuable? Sure. Do I think it'll make any difference on whether you can call yourself a "programmer?" No way.

      The students are 16-18, at the end of the course they're not meant to be programmers any more than the ones who take A-level Maths are mathematicians.

  20. Edlin by stevegee58 · · Score: 3, Insightful

    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.

    1. Re:Edlin by John+Hasler · · Score: 1

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

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    2. Re:Edlin by sconeu · · Score: 1

      Real men use TECO. On a DEC-20. Running TOPS-20.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
  21. Emulation? by jsebrech · · Score: 1

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

  22. Better teach them C by mangu · · Score: 3, Insightful

    you don't need to screw your head on a crippling dinosaur to understand low level programming

    Absolutely. Better teach them C so they will know how data structures and memory management work.

    Languages that try to do everything may help you write code faster but can be treacherous.

    Let's see a simple example. In Python there is a subtle matter of memory management that can be dangerous to the untrained programmer. When you copy a list like this: a = b you are creating a pointer to the other list, when you copy like this: a = b[:] you are allocating memory for a new list and copying the contents.

    When you know C, the difference between the two copy instructions above is obvious, but if you don't know what is memory management this can become very difficult to understand. I bet there are many bugs created by Java, Python, and other modern languages that come from this inability to understand how the language works under the hood.

    Working on old computers can be fun for some people, but to train programmers nothing beats learning C. C is close enough to the hardware to let one understand the details of how software runs, yet abstract enough to represent any typical von Neumann computer.

    1. Re:Better teach them C by Lobachevsky · · Score: 1

      Exactly. Higher-level languages are _for_ people who already understand lower-level languages. Just as calculator are _for_ people who already understand arithmetic. Schools don't give calculators to kindergarteners or any child who hasn't yet understood arithmetic. First understand arithmetic, and demonstrate you do so by working _without_ a calculator, _then_ be allowed a calculator. Giving people some high-level language on super fast machines with "retina" pixel density and high-level languages is ludicrous when they don't understand the basics. Heck, I'd suggest children be taught on turing machines, and step through _in their head_ their own code. I know way too many programmers who can't play out their own code in their head. Alan Turing did not have access to computers, he developed and tested algorithms _in his head_.

    2. Re:Better teach them C by JesseMcDonald · · Score: 1

      Heck, I'd suggest children be taught on turing machines, and step through _in their head_ their own code.

      Not a bad idea, except that Turing machines are not much like any real-work system they're likely to work with. Perhaps they should start with lambda calculus instead. Both systems are Turning-complete, but lambda calculus is much closer to how developers actually write software.

      Of course, both Turing machines and lambda calculus have a very steep learning curve, perhaps too much so for an introductory course. Even something as simple as adding (or just representing!) two numbers can become a major undertaking. If you want children to learn how computers actually work you'd probably be better off teaching them a simplified assembly language with something like SPIM, along with binary arithmetic and the basics of discrete mathematics.

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    3. Re:Better teach them C by sjames · · Score: 1

      I really like Python, but you just touched on my one reservation with it. It's just too easy to say a=b; b[5]=42 and wonder why a[5] changed. Of course for every depth of copy I want to argue should take place, there exists a counter case where the current behavior is more natural. I suppose that's why it is like that now.

    4. Re:Better teach them C by ceoyoyo · · Score: 1

      You can find examples of the same sort of thing in C. Most of the trouble people have with pointers stems from not having to work with memory addressing in assembly. When you manage all your own memory yourself it's very obvious why using an uninitialized pointer is bad, what happens when you take a pointer and add a number to it, etc.

    5. Re:Better teach them C by Anonymous Coward · · Score: 0

      Hi mangu,

      >Let's see a simple example. In Python there is a subtle matter of memory management that can be dangerous to the untrained programmer.
      >When you copy a list like this: a = b

      That doesn't "copy a list" in any meaningful sense of the word - and there is nothing but "pointers" in Python (they don't call it pointer since that's all there is - why mention it at all?). If you say
      a = 3
      that doesn't "copy the 3" either. It's already there, why copy it? There is only one 3.

      This has been the single most important difference of low-level languages and high-level languages for me.
      The low-level language does manual memory management and so you have to copy each and every thing you ever plan to reuse (after all, can't be sure when some other module frees it from under your feet - or just overwrites it by something else without telling you).
      The high-level language does reference counting/garbage collection and so can just use the existing stuff. After all, why would it go away if it's still needed?

      > you are creating a pointer to the other list,

      It's funny how different my perspective is. What does that sentence even mean? It's not like "create a pointer" is a basic mathematic function.
      What "a=b" does is introduce a new symbol "a" that gets the same value as the other symbol "b" has.
      (These symbols will eventually be resolved by closing the entire block by adding functions which have the symbol names as parameters and get the symbol values as arguments, until you get down to the actual symbolic mathematics that reduces your program to its result)
      Note that no function call was involved so no computation was involved either (apart from compiler/interpreter housekeeping for the new symbol), so how could it have copied any data (as far as the program is concerned)?

      >when you copy like this: a = b[:] you are allocating memory for a new list and copying the contents.

      Or you could describe it as "return a new list that contains all the items for the original list". By throwing chicken bones. Or whatever. What does it matter how? And here it is a function call (__getslice__), whose docs say it is returning a _new_ list, which is how you know that it does.

      >When you know C, the difference between the two copy instructions above is obvious,

      These were both not copy "instructions".

      >I bet there are many bugs created by Java, Python, and other modern languages that come from this inability to understand how the language works under the hood.

      In Python it should not matter what it is doing at the bare metal. The really important bit is the mathematical (or logical, if you will) structure of the language itself.

      Python, at least, has the philosophy of "do the most expected thing", which means you don't have to care about intel CPUs not being able to right-shift more than 31 bits without making mistakes (hint: they can't). Why would you have to worry about crap like that?

      C still has weird shit in it that came from the original PDP.
      For example, dividing an integral number by another integral number yields another integral number. The mind boggles. In one fellow sweep, got rid of both Cantor and the ancient greeks.

      And they can't fix it. C has stuff in the ANSI C standard, so processor designers design their processors so that C can be compiled to it the processor's instructions quite well, which means all those weird things will be there until hell freezes over.

      >Working on old computers can be fun for some people, but to train programmers nothing beats learning C. C is close enough to the hardware to let one understand the details of how software runs, yet abstract enough to represent any typical von Neumann computer.

      Well, for driver development, yeah.

    6. Re:Better teach them C by TheRaven64 · · Score: 1

      Unlimited register machines are a better theoretical model if you want something that maps cleanly to how a real machine works. If you compile your code using LLVM, then it's converted to URM code as an intermediate step.

      --
      I am TheRaven on Soylent News
    7. Re:Better teach them C by Darinbob · · Score: 1

      I think you need both approaches. You need a concrete low level program and programming model, which is where C or Pascal come in, definitely this must be augmented with a course on assembler and computer architecture. But you should also have a very abstract higher level language, such as Scheme or Haskell. Then you learn both the low level fundamentals as well as fundamentals about thinking about algorithms, both areas which are very vital to optimization. Only at an advanced level should one get into the typical Java style of using a programming language merely as duct tape to join together preexisting frameworks.

      Even with just C I've seen people that seemed to be stuck with invalid computing models. Ie, they treated strcpy as a unit operation, no not more expensive or cheaper than any other line of the code, or that multiply/divide/modulo or floating point were inexpensive operations everywhere. I definitely see this much more often with the self-taught C programmers who used "Learn C in N days" books. That's why you also need the assembler or computer architecture. You may never use it again in your career, but it's very important to know this, in the same way that it's important for a biologist to have spent some time learning about the Kreb's cycle.

      Begging off on computing fundamentals is akin to students who claim they don't need to learn arithmetic because they have calculators now.

    8. Re:Better teach them C by Darinbob · · Score: 1

      But not everyone studying computers (esp. at A-levels) becomes a "developer". State machines are vital in many branches of computing (even for some "developers"), and some people end up designing computers and chips and systems. The problem with Turing machines and Lambda calculus both is that they weren't invented to help learn about computers, but as models to express very abstract computability issues.

      A beginner would be better off with something like MIX. It would be great if students had to think about how to multiply two numbers when you don't have a multiply instruction, or adding two 32-bit numbers when you only have 8-bit registers.

    9. Re:Better teach them C by mangu · · Score: 1

      Python, at least, has the philosophy of "do the most expected thing"

      And it fails miserably in the example I mentioned.

      When I write a = b; a = 3; b = 5 the end result will be that variable a will contain the value 3 and variable b will contain the value 5, which is the "most expected thing".

      When I write a = b; a[1] = 3; b[1] = 5 the end result will be that both a[1] and b[1] will contain the value 5, while the "most expected thing" would be that a[1] had the value 3 and b[1] had the value 5.

      This is even more confusing when one uses multi dimensional arrays. An exercise for the student: without running the code, can you tell just by looking what's the difference between these two declarations:

      >>> a = [[0] * 5] * 3
      >>> b = [[0] * 5 for i in range(3)]

      It would take an experienced Python programmer to know, just by inspection of the code above, to know that the result would be:

      >>> a[0][1] = 3
      >>> a
      [[0, 3, 0, 0, 0], [0, 3, 0, 0, 0], [0, 3, 0, 0, 0]]
      >>> b[0][1] = 3
      >>> b
      [[0, 3, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

      In C it's very clear the difference between { b = malloc(5); a = b } and { b = malloc(5); a = malloc(5) }

      In Python it's not always clear to the neophyte where malloc is being called, because the call to malloc is disguised deep into a library written in C that's called by the Python interpreter.

    10. Re:Better teach them C by Epesh · · Score: 1

      Let's see a simple example. In Python there is a subtle matter of memory management that can be dangerous to the untrained programmer. When you copy a list like this: a = b you are creating a pointer to the other list, when you copy like this: a = b[:] you are allocating memory for a new list and copying the contents.

      When you know C, the difference between the two copy instructions above is obvious, but if you don't know what is memory management this can become very difficult to understand. I bet there are many bugs created by Java, Python, and other modern languages that come from this inability to understand how the language works under the hood.

      Well, in all fairness to Java, the memory management rules are pretty simple - people rag on Java for being too simple, but they don't consider how easy it is to actually understand what happens when you pass copies of references around. And there are no exceptions to passing copies of references as method arguments; it's how it's done, and the only way it's done. That makes Java far more "knowable" than python, for better or for worse, because the rules are constant unless some moron decides to do things differently than the Java conventions suggest and refuses to document it. Java nudges you really hard towards an acceptable middle. That hurts the people who really, really know what they're doing (and helps the people who know even more than the people who really, really know what they're doing, because they can game the JIT) but it means that even newbies can generally create decent java - and if they do it wrong, java punishes them enough that they have a real impetus to get it more or less right. Of course, with all that said, C is a better language to master first. By all means, teach them C.

      --
      Everybody dies.
    11. Re:Better teach them C by m50d · · Score: 1

      You're getting into trouble because you're trying to write C in python. If you want to twiddle array elements then sure, C's a more appropriate language for that. But when you're writing python properly you practically never use variables, and not having to explicitly allocate and deallocate your memory makes it much clearer what the actual program is doing.

      --
      I am trolling
    12. Re:Better teach them C by AmonTheMetalhead · · Score: 1

      I have to agree, as a kid i toyed with 6502 assembly on a C64, when i later learned C & we came to the subject of pointers, i noticed that all the others were wildly confused about the subject, while it was so obvious & logical to me, even now, the knowledge i gained from those early days really comes in handy even though i no longer do development

  23. crufty calculator? by chitselb · · Score: 3, Interesting

    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 (a *genuine* pre-1980 computer) and have been writing a Forth 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

    Charlie

    --
    never ask a question you don't want to know the answer to
  24. Au contraire by starglider29a · · Score: 1

    I have programmed on TRS-80s and 8088 w/8087s. Compiled C and Read & Go BASIC.

    But now I'm programming python on an 8-core Xeon. When I'm writing a stored procedure or a nested loop of two recordsets, I ***STILL*** catch myself thinking about how slowly those instructions would take on a slower machine. "Do you know how LONG that looping will take?... oh. 0.000006 seconds. heh heh. I catch myself "subvocalizing" the loops, and I shy away from something "so resource intensive" and look for another, more efficient solution.

    Yes, it's great to learn how a computer does what it does, but if you miss the simple solution because your mind is "read and go"-ing, then you hobble yourself.

    1. Re:Au contraire by sjames · · Score: 2, Insightful

      I'll bet, though, that in those cases where the performance really is that critical you're a lot more able to deal with it than someone who thinks the nested loop takes ZERO time.

    2. Re:Au contraire by ari_j · · Score: 1

      Consider the difficult but efficient solution to be a tool in the box. Having that tool available will come in handy. Most of the time, you can use higher-level solutions that are easier to debug, easier to modify, etc. But when you do come across the procedure that takes 0.1 seconds and needs to take 0.01, you will have a tool at your disposal to fix it.

    3. Re:Au contraire by Sarten-X · · Score: 3, Informative

      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.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    4. Re:Au contraire by m50d · · Score: 1

      Not if that guy spent his time learning about algorithms on a more abstract level, and can spot where the program's doing something O(n^2) when it could be doing something O(n).

      --
      I am trolling
    5. Re:Au contraire by Shotgun · · Score: 1

      Except that the faster algorthm is a memory hog, and takes an extra week because it is thrashing physical storage across the network trying to access those three billion multimedia records.

      I've seen some really horrendous code using "advanced" algorithms in my time, and it has usually come from the computer science types that have the mindset that they don't need to know what the underlying hardware is capable of. The hardware and algorithms are, always have been, and always will be very tightly coupled.

      --
      Aah, change is good. -- Rafiki
      Yeah, but it ain't easy. -- Simba
    6. Re:Au contraire by sjames · · Score: 1

      First though, it helps if you actually know the O(n) replacement for the O(n^2). More commonly though, you might find a case where n is well bounded and a seemingly minor change takes you from O(2n) to O(n) and that is just enough to get by. The kinds of "dirty" tricks that accomplish that tend to be known mostly by people who have programmed small machines.

    7. Re:Au contraire by Sarten-X · · Score: 1

      If it's slower and uses more resources, it's not really more efficient, is it?

      --
      You do not have a moral or legal right to do absolutely anything you want.
    8. Re:Au contraire by Shotgun · · Score: 1

      No. But what about when it is faster and uses more resources? At that point, you have to actually become and engineer and start engineering (ie, make the most use of the least amount of resources).

      --
      Aah, change is good. -- Rafiki
      Yeah, but it ain't easy. -- Simba
    9. Re:Au contraire by Sarten-X · · Score: 1

      Saying a program "takes an extra week" implies that it's slower. Since time is a factor in the overall cost, it's less efficient with all other things being equal. Of course, memory use is another cost. I think we agree overall.

      A good programmer knows that quicksort is very fast. A different good programmer knows that quicksort can take a lot of memory. A great programmer knows that the correct solution depends on what resource is more readily available. Great programmers must maintain at least two perspectives on all such problems. They must see the problem from a hardware side, knowing what hardware is available. They must also see the problem from an algorithm side, minimizing the number of operations.

      Personally, I think it's also important to weigh the effects of "weird" implementations on code cleanliness, but that's off-topic.

      This is why I think it's important that programmers work on old hardware for a little while. When they do go to modern hardware, there's still the idea in the back of their mind that everything has a cost. Yeah, now and then they'll worry about unrolling loops and the like, but as long as they eventually get the "less than 1 ms" realization like starglider29a mentioned, I think it's worth the extra effort to learn the old ways. When in the position where that tiny speed increase can save a significant about of time, they have the ability to make that change. Contrast this with a "pure hardware" programmer, who knows only that the current algorithm is already using very little memory. Also contrast it with the "pure algorithm" programmer, who knows that the current program solves the problem eventually.

      There is a balance here, and a great programmer must be able to recognize all the issues at hand. That ability can only come from having a wide array of experience.

      --
      You do not have a moral or legal right to do absolutely anything you want.
  25. 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.

    1. Re:Been there, done that by Nimey · · Score: 1

      Lucky you. Ten years ago I was taught 8086 assembly with an MS-DOS assembler from the mid-late '80s, as an introductory course.

      I had a deep sense of wrongness about the language.

      --
      Hail Eris, full of mischief...

      E pluribus sanguinem
    2. Re:Been there, done that by Anonymous Coward · · Score: 0

      Not to start a flame war but isn't the 680x0 instruction set very clean, at least compared to that x86 crap I remember? There is only one address space, instructions come in one, two and four byte sizes, it divides and multiplies in just one instruction, addressing modes are sane... a joy compared to the f*cking Intels.

      Haven't looked at the PDP11 instruction set but if it is as clean as the Motorola one, I understand why Unix was developed there.

    3. Re:Been there, done that by hax4bux · · Score: 1

      IMO, M68K was much easier than MACRO-11. But I would be happy with either one.

    4. Re:Been there, done that by drinkypoo · · Score: 1

      I went through the same process, but see it from another angle: I figure if I can learn to do x86/DOS ASM then I can learn anything. It was weird, but it's not like it wasn't apprehendable.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    5. Re:Been there, done that by Nimey · · Score: 1

      Mainly it was having only four GP registers, except most of the GP registers also have special uses; also that x87 is purely stack-based instead of sticking a few extra registers in.

      I'd have been happier with either a saner "real" architecture, such as the Motorola 68K, or a "toy" architecture like the MOS 6502 or a PIC.

      --
      Hail Eris, full of mischief...

      E pluribus sanguinem
    6. Re:Been there, done that by drinkypoo · · Score: 1

      Mainly it was having only four GP registers, except most of the GP registers also have special uses; also that x87 is purely stack-based instead of sticking a few extra registers in.

      Yes indeed. x86 has zero general-purpose registers. stack-based coprocessors are not all that unusual, though.

      I'd have been happier with either a saner "real" architecture, such as the Motorola 68K, or a "toy" architecture like the MOS 6502 or a PIC.

      But would you have learned so much? You could learn 68k, but that's on its way out (finally, for good or ill... but I'm sure it will continue to be used for decades to come just as the Z80 continues on even in the age of ARM.) You could learn PIC, but now AVR has become inexpensive enough for most tasks and it has more headroom. You could have learned MIPS, but it's all but over... it's in the third-string netbooks. PowerPC? Perhaps if you plan to work for Microsoft Entertainment, or IBM. I guess what's left is x86 or ARM. Finding someone to teach ARM is going to be tougher and the school already has a raft of PCs in most cases. x86 it is! Not to mention that MASM continues to run on Windows whatever...

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  26. Beebs are good machines by ed · · Score: 2, Informative

    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

    1. Re:Beebs are good machines by jimicus · · Score: 1

      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

      Pedant: Microcassettes were usually used in dictation machines, BBCs usually used plain audio cassettes.

    2. Re:Beebs are good machines by ed · · Score: 1

      Yes beebs usually used ordinary cassettes, which I didn't specify, but they could use microcassettes (as could the Sinclair QL) and disks. The disks needed an extra ROM, not just a drive.

      Note the bit where I said I worked with the bloody things

  27. Edlin (Grr....) by Primitive+Pete · · 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.

  28. For Sale by Anonymous Coward · · Score: 1, Funny

    Timex Sinclair 1000 w/ 16KB Expansion Module. Manual included. Original boxes & styrofoam.

    1. Re:For Sale by 16K+Ram+Pack · · Score: 1

      Will you throw in a rubber band?

  29. Code by Charles Petzold by chocolatetrumpet · · Score: 1

    If this opportunity sounds interesting to you but you grew up with high level languages, definitely check out the book Code by Charles Petzold. I could really only keep up with the first 500 pages or so, but it is still incredibly insightful and interesting if you want to know how a computer really works. You could basically use it to learn how to build a computer from scratch and program it.

    --
    Spoon not. Fork, or fork not. There is no spoon.
  30. Um.. Microcontroller courses? by Anonymous Coward · · Score: 0

    Am I missing something here? What's the difference between programming a 30 year old PC and programming an 8-bit or 16-bit microcontroller. Build your own OS as a while(1) loop... Understand volatile variables and interrupts... It's much more applicable today too since these systems sell in orders of magnitude larger volume than modern intel PCs... They literally exist in everything from your laptop to your wrist watch to your car or your microwave.

    You can run one of these things at 1kHz or 100MHz.

    Any embedded architecture course in a good ECE program will give you a healthy respect for memory utilization, interleaving processes on a processor, and deterministic processes to boot.

    Cornell has a great one that I TA'd while I was a grad student
    http://courses.cit.cornell.edu/ee476/

    That page has tons of projects from previous students. All focused in the Atmel AVR 8-bit RISC architecture typically running at 16MHz max. One clock cycle per instruction for the most part. Projects range from video games to robots or RFID readers.

    I'd say that that's a much better use of department resources. I came from embedded systems programming to PC based programming and I feel like I have an extra healthy respect for resource utilization, etc. When you can just insert assembly in line and take over absolutely everything the processor is doing, while handling peripheral interrupts, you can do some really awesome stuff.

  31. Microcontrollers by cpscotti · · Score: 1

    I had the same kind of learning back in my days using PIC microcontrollers where I needed to do VERY LOW LEVEL programming and I saw "instructions happening for real", flipping a led's state or the like.
    I value that experience a lot!

  32. Brainf*ck by Ukab+the+Great · · Score: 1

    Laugh if you will, but I find that the most effective demonstration of low-level "how computers really work" programming (short of flipping manual switches PDP style) is Brainfuck.

    1. Re:Brainf*ck by Anonymous Coward · · Score: 0

      :-)
      Agreed.

  33. Re:Just dump Windows and goto DOS^H^H^H^H PIC by Anonymous Coward · · Score: 0

    I love tinkering with PIC microcontrollers. Just like the good old days with my Science of Cambridge Mk14

  34. Mastery? by vlm · · Score: 2, Insightful

    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.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    1. Re:Mastery? by Nethead · · Score: 1

      I remember SWTPC 6800s running entire companies with Uniflex. Multiple terminals and everything.

      Didn't the 68hc11 have and extra page of op codes? I got to know the old 6805 series before moving over to the Rockwell chips. We built a telco controller board based closely (ok, it ran BASIC) on the VIC-20. Put in a 65C02P4 and ran it at 4MHz. On the development board I put in a clutch (HALT) and a gear shift (divide-by-4 7474 setup) so that I could shift it down to a speed where the 1541 drives would talk.

      --
      -- I have a private email server in my basement.
  35. Retro kit by Wowsers · · Score: 1

    I don't know about retro programming, but my first experience of hard programming is being introduced to Assembly language using a Hektor computer, originally designed for the UK's Open University. http://www.old-computers.com/museum/computer.asp?c=602&st=1

    At least using it and it's plug in sensors module helped you understand what all the moving data to / from the stack and all the rest of the commands was actually doing to the hardware.

    Maybe modern versions of this kind of simple kit would help people understand programming more when they start out in it?

    --
    Take Nobody's Word For It.
  36. Logic and Architecture by AndOne · · Score: 1

    When(and where) I did my undergrad in CS, it was mandatory that we took both the basic and advanced Computer Architecture courses and the intro to Logic and Design course. These were the same courses that electrical and computer engineers took. We designed Clock radio circuits, studied K-maps, Boolean logic, gray codes, wrote our own basic RISC chips(instruction set and layout) using Xilinx(with the option to put them onto FPGA's and run them), studied floating point calculations, studied parallel pipelining, did manual loop unrolling, worked with MIPS emulators, studied multiple assembly languages, and not once did I touch out of date hardware.

    I just don't see how using such old computers is anything but a gimmick. Unless you're trying to study some rather obscure architecture for which no emulator exists, I just don't see how it adds much to the educational experience over having a properly designed curriculum

    --
    I don't care what you say, all I need is my Wumpabet soup.
    1. Re:Logic and Architecture by Tacvek · · Score: 1

      Interesting. I recently graduated from a Well known univerisity, that required basically the same thing. One department offered both a CS and a Computer Engineering degree. The degress are very similar in required courses and electives, but with some slight differences. Both required Logic Design, and Computer Architecture I, but Computer Architecture II was only required for Computer enginneers.

      Computer Architecture I required that everybody work with a RISC processor design that was developed over the course of the class. The final project required making certain changes to the existing Verilog for the design. t was not nessisary to run the code on an FPGA.

      Computer Architecture II required the construction of a complete RISC microporcessor, including integration with IO peripherals, and test it on the FPGA. While students were permitted to use the processor design from Computer Architecture I, it would need substantial modifications, and some form of parallelism (be it SIMD, multi-core, hardware threading support, or something else) was required. Some students created entirely new processor designs which was also acceptable, but slightly discouraged due to time constraints.

      The Lectures for this class covered in more detail the lower level functioning of processors, but the CA I class had enough of the basics that the CS students were left with a good understanding of the internals of a reasonably simple processor. The only thing that the CS students should have been exposed to in more detail but were not was floating point, which was mostly covered in CA II, at least at the hardware level. (Unfortunately no lectures on the common pitfalls of floating point were covered. I hope that one of the CS-only courses touched on that more.)

      --
      Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
  37. forget about DOS and move to PM and LM asm OS's by Anonymous Coward · · Score: 0

    Really, there's no longer need for such an archaic environment when there are OS's written in ASM like MenuetOS and "BareMetal OS" ( http://www.returninfinity.com/baremetal.html ) .

  38. Conceptual Model by fwarren · · Score: 2, Informative

    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.

    --
    vi + /etc over regedit any day of the week.
  39. God, this makes me feel old... by Pembers · · Score: 1

    ...I did my computing A-Level on these machines. The school had about 20 of them, networked together with Econet and using a 20 megabyte hard disk for storage. Students had an allocation of 100 K (yes, kilobytes), and I don't think I ever filled mine up...

    Now get off my lawn!

    1. Re:God, this makes me feel old... by jtownatpunk.net · · Score: 1

      No kidding. My youth is not retro, damnit!!! And I never avoided the 8088 workstation in the corner because it was at the end of the coax and tended to drop off the network from time to time. And I never nerdgasmed over the campus' first black and white X terminals.

  40. Compiling... by boristdog · · Score: 2, Funny

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

    1. Re:Compiling... by godrik · · Score: 1

      You don't teach C++ programming, do you ?

  41. Retro Programming, Gosh I feel old. by sir+lox+elroy · · Score: 1

    Wow I used an old 8088 and Basic to do my first programming, dreaming of a day at a PDP. WOW I am getting old.

    --
    Kosh: "Understanding is a 3 edged sword, your side, their side, the Truth."
  42. 1980's machines by rossdee · · Score: 1

    Compucolor II Hit the key labeled Auto . CTRL-A did the same thing I think

    Apple ][ PR#6

    C=64 Load "*",8,1

  43. Really? by Kupfernigk · · Score: 1
    Under the hood of the VW TSI I looked at this weekend is a "simple" 4-cylinder engines - well, 4 valves per cylinder, turbocharger, supercharger, 7-speed 2-clutch auto gearbox, 180BHP from 1.4 liters.

    No, sorry, you are quite wrong. It is nothing to do with avoiding complexity. It is to do with CAD ensuring that every component is properly designed for the duty, advanced FEA ensuring proper thermal management of the engine, and advanced manufacturing and quality systems delivering accurate parts time after time. The complexity is there all right, delivered by the wonders of advanced computing.

    You cannot learn engine design from a TSI engine. You can learn an awful lot from a research engine, single cylinder four-and-a-half inch bore Diesel with almost everything adjustable. You can learn very little (in fact) from a chainsaw engine, despite its only having a few moving parts, because again it is an optimised design. This is why learning on an old BBC Micro is more useful than learning embedded programming (I've done both.) The 6502 and all its works is not a modern, optimised 8 bit processor with a lean instruction set. It is clever, but a bit of a kludge. Assembler on a 6502 forces you to think. Crappy memory architecture causes you to think harder.

    --
    From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
  44. Anonymous Coward by Anonymous Coward · · Score: 0

    I remember working with the original IBM-PC in the 80's. We used to keep a radio near the system unit & we could actually hear the system working. bzzz bzzz bzzz.... eeee eeee eeee aaaaaaaaaa bzzz bzzz eeeeeeeee eeeeeeeee aaaaaaaaa

  45. "I like to watch the computer work." by mspohr · · Score: 2, Interesting

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

    --
    I don't read your sig. Why are you reading mine?
  46. Assembly by MrTripps · · Score: 1

    It is a neat idea, but you could get the same kind of benefits from writing assembly for Pentiums or modern micro-controllers. Easier to find equipment and more relevant and interesting.

    --
    "I'm not a quack, I'm a mad scientist! There's a difference." - Dr. Cockroach
    1. Re:Assembly by Alioth · · Score: 1

      Not really. Pentium PCs have significant barriers to doing easy low level I/O and have an over complex instruction set. Microcontrollers you have to go through compiling, transferring via JTAG or SPI, running etc.

      The BBC Micro on the other hand has the facilities of a microcontroller (A/D ports, GPIO ports, 1MHz bus) but also the immediacy of being able to type a BASIC command and see something happen right now instead of having to fight with power supplies, JTAG leads and setting up a compiler on a PC. The BBC Micro is a very well designed machine, with a much better BASIC interpreter than any other machine of the era (especially the truly terrible Commodore BASIC), which includes proper named procedures and functions, so no GO TO spaghetti. It also has a built in assembler, so if you really want to get right to the metal you can without needing anything else.

  47. Pilots don't start out flying jet airliners by FoolishOwl · · Score: 1

    I believe it's a general pattern in training, to start with a smaller, simpler system that the trainee can more readily comprehend as a whole. It's easier to be a passenger on a big plane, but easier to learn to fly a small plane, as it's a lot easier to keep track of all the details of a small plane.

  48. Who says what? by rcastro0 · · Score: 2, Insightful

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

    --
    Quem a paca cara compra, paca cara pagará.
    1. Re:Who says what? by Anonymous Coward · · Score: 0

      back when 16kb was a memory expansion...

      And a bag of frozen peas was a heatsink. :)

  49. psh by Anonymous Coward · · Score: 1, Interesting

    For my A-level we made our computers from lcd screens and pic chips, and programmed them in assembler... This was just before the millennium, these computers are far more advanced.

  50. Assembler by Murdoch5 · · Score: 1

    This is a good idea, I wish more programming professors actually taught using this kind of method. Currently in Univeristy all the programming professors are saying C#, F#, Java etc... But how does that actually teach programming students. Ask any of them to write a good assembler program and you'll get total crap.

    However ask the embedded programmer to write an assembler program and you'll (should) have it in no time!

  51. PDP8 by kooganani · · Score: 1

    I think it's an awesome approach. When I was in school in 1992 I took a class called "Computer structure." It was basically an assembly programming course, but we started on a PDP8, programming in machine language on the 12-bit front panel of the machine. One of our projects was to write a program that completely erased all of the memory locations on the machine, including the ones that contained the program. I think I got down to one populated location; it was surprisingly challenging. I did an independent project making a small programmable logic gate out of transistors, and with a bit more $ I could have made a 1-bit memory device. Definitely my favorite class in college. Working at that basic level gives you such a great perspective on what's happening under the hood of today's machines.

    1. Re:PDP8 by clone53421 · · Score: 1

      One of our projects was to write a program that completely erased all of the memory locations on the machine, including the ones that contained the program.

      It was a trick question – the correct answer would have been a program that somehow turned the machine off. Perhaps connecting a relay and opening it... alternately, short out the power and blow a fuse somewhere... ;)

      --
      Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
  52. Good Times! by Tablizer · · Score: 1

    1980 PRINT "YEAH!"
    2010 GOTO 1980
    2012 END 'OF WORLD

  53. 8080 - Pascal by asmith.atx · · Score: 2, Funny

    I was learning Pascal on an 8080 in 1997 in High School. It was retro, but not in the way you think is cool - it was in the we have NO money way

  54. IMSAI 8080 and the Kill The Lights game by rclandrum · · Score: 1

    Took about 40 bytes of RAM, and 2-3 minutes to input via the front panel switches, and was a blast to play. Cycled lights through the 8-bits of output on the IMSAI front panel. Your job? Flicking an input switch ON just as a lit light passed above, the object being to turn it off. Miss and it turns a light ON again. Kill all the lights and you win. My 4-year old daughter has had access to everything including the latest console games on our big screen TV and she still begged me to fire up that game. Still have the IMSAI, still boots to CP/M 2.2 via 8, 5.25, or 3.5 inch floppy, and can still run that 40 byte game.

    Dang whippersnappers are spoiled today, I tell ya....

    (sigh) ... back to programming my 4 core Mac with 6 Gigs of RAM and a terabyte disk.

  55. Darn I feel old by Liambp · · Score: 1

    I went to college in the early 1980's and we could only dream about new fangled 1980's technology like the 8088 and 6809 while we cut our teeth on 1970's era 6800 and 8080 processors.

  56. I completely support this! by narcc · · Score: 1

    Teaching kids to program has been discussed countless times on Slashdot. The consensus is always the same: Get an old microcomputer!

    According to Robert Nielsen, computer programming was taught using the famous Kenbak-1 computer at the Nielsen Electronics Institute well into the 1990's (1997, it think, not bad for a computer from 1972!)

    With the computers 5 addressing modes and comprehensive instruction set, it still makes for an excellent teaching tool for advanced students.

    An online emulator is available at http://www.neocomputer.org/kenbak
    All the original documentation is available from John Blankenbaker's website at http://www.kenbak-1.net/

  57. "Re:Does that make sense ?" Yes! by mrwolf007 · · Score: 1

    Just one thing.
    How the fuck do you expect to learn something about the CPU if it's hidden beneath 20 abstraction layers?
    DOS sure had its advantages.

  58. Does it use 9 track tape or keypunch? by hax4bux · · Score: 1

    Because that would be slow. And awful.

  59. Any way this could be done everywhere? by jejones · · Score: 2, Informative

    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.

    1. Re:Any way this could be done everywhere? by dbIII · · Score: 2, Funny

      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!

    2. Re:Any way this could be done everywhere? by SheeEttin · · Score: 1

      Hopefully, though, in the modern world, a program with such a routine would be running it a lot. Taking so much (relative) time, it should pop up in profiling and be targeted for improvement.
      Squeaky wheel gets the grease, after all...

  60. why the inferior clone? by Anonymous Coward · · Score: 0

    Edlin is a rather poor imitation of ed, so I have to disagree. Edlin is not necessary. ed skill, on the other hand, will still benefit you, with descendants like sed, vim, and perl.

  61. I want one! by spaceyhackerlady · · Score: 1

    I've always wanted a PDP-11. They looked like a real computer, a rackmount box with a front panel, switches and flashing lights. Their architecture remains one of the classics.

    I did an operating systems course back in the '80s on LSI-11s.

    ...laura

  62. Check the beastly backplane... by awfar · · Score: 1

    http://users.monash.edu.au/~ralphk/burroughs.html

    This mainframe could be single-clocked through most of its execution and it brought out all of the registers to the front panel - each LED row was potentially 4 different selectable registers; that is how you isolated the problem and repaired the "bit". Pipelined, superscalar, and it had a relatively modern OS (many OS "firsts")l, the famous B5000 stack Architecture of the 1950s,60s. Its daddy had incandescent bulbs for indicators and core memory. You learned bare metal, or you didn't.

  63. Compiler classes by Jim+Hall · · Score: 1

    I work at a university, but as staff (not faculty). A few years ago, I had an interesting conversation with a friend of mine (Computer Science professor). As part of his Compiler class, the students construct a simple language then develop a compiler for it. I suggested that his students should be asked to create their language with these limitations: each instruction could only be 80 characters long (max) and could only be written using:

    • the letters A to Z
    • the digits 0 to 9
    • the special characters: space, equals, plus, minus, star, slash, parentheses, dollar, period, comma, colon, single-quote

    Look familiar? It's the character set from a punch card. LISP and FORTRAN were built using this.

    I thought it would be interesting for students to construct a language and compiler with the same limitations from early computing. It keeps the focus on the language, keeping it simple. Would it help the students to build a better understanding of how early programming languages developed, or how languages evolve when (in a follow-up assignment) the students are allowed to incorporate more characters, including upper and lower case letters? And knowing more about computing, could students construct a (functional) punch-card-based language that was better than LISP or FORTRAN?

    Well, I thought it would have been interesting.

    My friend's response was "what's the point in that?" But after watching this video from the BBC, I think it would have done some good. I'd be interested to hear if anyone else did this in one of their Compiler courses, and what it was like.

  64. I'd go shopping for used equipment by alizard · · Score: 1

    Maybe an ad saying you're looking to buy on Craigslist might work. Offer premium prices if you have to, the idea is to offer enough money so people will dig into their garages to look for ancient hardware you need and they don't. Also, talk to some local hazmat-computer recyclers.

  65. while this is retro and cool by alizard · · Score: 1

    speaking as someone who actually took programming classes on those things back in the 1960s, I'm not at all sure one can learn anything on those devices other than a better grasp of computing history. How is playing with paper tape going to teach anyone about how I/O works on modern computers?

    If one wants equipment with super-slow execution speeds to let people see what's going on (try an oscilloscope as I did to debug a timing loop once), try finding an old Commodore 64 or Apple II on eBay.

  66. 'Modern computers go too fast,' said Mr Abrams. by Anonymous Coward · · Score: 0

    "That's a lie, Mr. Abrams, that's a straight lie" said Bill Gates, and further added, "Modern computers can barely run Modern MS Windows O/S or Apps".

  67. Computer History class at Univ.Delaware by Ragooman999 · · Score: 1

    There's a class at Univ.Delaware on this very subject, Computer History, which also covers programming these vintage computers. The instructors website is www.vintagecomputer.net

  68. The only programming I ever did was in the 80s... by Brad1138 · · Score: 1

    Atari basic on my Atari 800...

    10 print "Commodore 64 sucks"

    20 goto 10

    --
    If you could reason with religious people, there would be no religious people
  69. Hmmmm. by Anonymous Coward · · Score: 0

    Any of these professors ever hear of virtual machines or emulators?

  70. How about the old front-panel micro computers? by reiisi · · Score: 1

    I keep wishing I could get my old Microchroma 68 over here from the States so my kids could play with monitor debug ROM and hand-assembled code, but even that is not quite as hands-on as the 8080 (Altair? Imsai?) box we put together in high school industrial electronics.

    Of course, making a toggle-switch interface for the Microchroma 68 wouldn't be too hard.

    Dang. Now I want to run down to Nihonbashi, visit Marutsu Parts and some of the other places down there, and bring back some modern stuff, PIC or Arduino/ATMEL or low frequency ARM, or, hey, sometimes they even have S08 or ColdFire, although that is a bit more expensive.

    Of course, what I really want to do is get my kids to help me wire-wrap an LS/VLS implementation of the 6809. Make it fully static, so you can hand-clock it instead of software single-step, bring the registers out in LEDs and 7-segment hex displays. Toggle switches, of course. That would allow me to teach the whole hardware stack on an architecture that can handle high-level stuff, as well.

    I suppose I'd want to do something about the 16 bit addresses so I could handle Kanji, or even Unicode. But building a 6809 superset with instructions that load three or four byte addresses into the index registers wouldn't be too much more work. (Paged memory management is cheap, but indexing into an array larger than 64KB becomes difficult without large addresses. Then again, teaching the kids how to break what should be a simple indexed load into bank calculation plus indexed load is also useful programming experience.)

    The big problem, of course is the paper tape or punched cards. I mean, the old tape or floppy disk drives are fun, and can still be hand-built if you really want to, but if you really want to get a feel of the connection between data and digital encoding, there is nothing more in-your-face than seeing the actual bits there as holes in paper.

    Don't ask me what I'm going to do to earn a living while I'm having all this fun with the kids.

    --
    Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
  71. Old school methods by Anonymous Coward · · Score: 0

    Learn to crawl before learning to run: .A 2000
    LDX #$00
    LDY #$01
    STX $D020
    STY $D021
    INX
    INY
    JMP $2000

    SYS8192

  72. Useful? by ascari · · Score: 1

    Computer architecture has changed quite a bit since the 1980s. Remember the RISC versus CISC wars? Remember floating point coprocessors? Remember the segment + offset memory model of early Intel chips? Remember instruction sets that didn't support division? How about Kansas City modulation to tape? This is what they would be learning if the course had any depth at all. (Which I doubt!) Thankfully computer architecture transcended all this stuff, and it's largely irrelevant today. Teach them how a modern computer works instead. Kernels, device drivers, cache strategies and such. Things they could actually use. This whole program sounds like a hipster ploy. Yawn.

    1. Re:Useful? by Alioth · · Score: 1

      It's using BBC Microcomputers. No segment + offset memory model.

      Before jumping into kernels, device drivers and cache strategies (which are subjects beyond 'A' level anyway, which is the level being taught) you still must learn the basics of how a CPU works. This kind of thing will teach that without device drivers, kernels and cache strategies getting in the way and complicating the learning of the *basics*.

      You have to have a good foundation to understand all of the rest of the things. For instance, you wouldn't learn a human language by diving straight into an explanation of the past imperfect subjunctive conjugations of verbs, you would start out with simple which teach the basics of how the language fits together. A BBC Micro will do this excellently for computing students - they can learn the fundamentals without getting bogged down with the high levels of complexity of a modern operating system.

      As an aside, there are still millions of CPUs being manufactured today without a divide instruction. Take the billions of 8 bit microcontrollers that ship every year.

  73. Standard C is not close to the hardware. by reiisi · · Score: 1

    Not even close.

    Segmented pointers? Trying to work on addresses as if they were unsigned integers so the addressing math is clear?

    How do you do a rotate (instead of a shift) in C, especially standard C?

    How do you know for sure that you're toggling the most significant non-sign bit of a signed integer?

    Etc.

    You can get close to the hardware in C, yes, but only if you deliberately throw away portability.

    Untangling the portability issues (among many others) generally takes you down to the assembly language level, even in C. Therefore, C is not sufficiently low-level.

    --
    Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
    1. Re:Standard C is not close to the hardware. by clone53421 · · Score: 1

      How do you do a rotate (instead of a shift) in C, especially standard C?

      How do you know for sure that you're toggling the most significant non-sign bit of a signed integer?

      If you know the size of the data element, it’s trivial, and if you don’t know the size of the data element why would you even be doing that?

      --
      Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
  74. visual basic worlds worst learning aid? by Anonymous Coward · · Score: 0

    I've long maintained because visual basic tries to do just about everything except coming up with the design that is a really really bad tool for teaching, I've lost count of the number of times I've seen people programming by multiple intellisense guess work....

  75. 1 Kelvin? by Anonymous Coward · · Score: 0

    I doubt the tubes will work at that temperature.

  76. Nothing to do but program by DrNico · · Score: 1

    Having taught myself to program on a Sinclair ZX81 (1K RAM, Z80 chip) it's primary virtue was that there was nothing to do with it but program it. On startup you had a command prompt: there were no games, no internet,no facebook, nothing but an editor for BASIC programs which were then interpreted. So the first question was always, what am I going to make you do today? Programs written in BASIC were a little slow, so I then learnt Z80 machine code which speeded things up and forced me to learn about registers and memory and so on. 1K of memory wasn't a lot to use, so I then got a book which gave the line by line Z80 for the ROM so I could exploit the routines in ROM in my programs, so I learnt about a (very very simple) operating system. While I'd never give up my current linux laptop, I cant help but feel I wouldn't understand 1/10th of the little I do understand if it wasn't for that ZX81. Thanks Mr Sinclair!

  77. The old stuff... it's why we have the new stuff by seekertom · · Score: 1

    The old stuff worked and did the job. So does the new stuff, but the MS's and Appl's try so hard to isolate the user from the technology that we easily lose sight of what the technology is all about. Sure I can click here and there, cut and paste to my heart's content, but when I was working at the DOS level cmd line, I had to know exactly what the chips were all about so's I could tell them what I wanted them to do. Not at all like that today. It's a bit like the difference between driving a '56 xk140mc on a road rally and piloting an Esplanade along a major interstate.

  78. WTF? by Anonymous Coward · · Score: 0

    That may be the character set for a particular card punch (keyboard/punch combo), but it's not the character set for punch cards. The cards' character set covers all 256 8-bit values - 0x00 through 0xFF.

  79. I learned on an HP2000 Time-Shared BASIC system by vaporland · · Score: 1

    We also had the AM radio playing frequency scales as FOR-NEXT loops executed. One guy figured out how to generate music notes and had the computer playing "Daisy" - shades of HAL 9000.

    We also figured out how to program interterminal communication between 32 teletypes at once - today it would be called instant messaging or online chat.

    Our instructor was amazed when we did it, because the system had no apparent support for this feature; we just "figured it out". Nobody thought of patenting software back then - - too bad....

    I'm getting an HP2000 simulator up and running running on my Mac Pro, using open source software called SIMH. The guy who decommissioned our HP2000 in 1980 gave me the last a backup tape as an image file, and I have that image running in Windows. He was on the SIMH listserv and passed the files over to me.

    I didn't find the cheating poker program I spent three months writing in 1976 (damn), but I did see my younger brother's friends names as authors in other program comments.

    I've used SIMH to play blackjack on my Teletype ASR35, just like I did in high school, and that is retro gaming at its finest.

    I recently discovered that SIMH can also run IBM System/370 legacy operating systems; apparently one fellow has MVS, CMS and TSO running under Linux on a Dell server. This is my next goal - to simulate the same mainframe environment that I controlled as a computer operator in 1980.

    Kids today, they don't know what they're missing...

    --
    Ask Me About... The 80's!
  80. Oh man... by Shrub74 · · Score: 1

    I'm have something of a philia for older computers. This would be my dream ;-;

  81. shift run/stop by lxs · · Score: 1

    10 a=0
    20 poke 53280,a:a=a+1
    30 if a>15 then a=0
    40 goto 20

  82. clone got owned (2x yesterday)? See inside by Anonymous Coward · · Score: 0

    http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014

    (Where proof that clone53421 doesn't know how to program properly to save his life, he is a "batch boy" at best/most, not a coder in languages like C/C++, Delphi, VB, or any other truly widely used language in industry/professionally for decades now)

    &

    http://slashdot.org/comments.pl?sid=1755714&cid=33378404 and http://slashdot.org/comments.pl?sid=1755714&cid=33353946

    (On HOSTS files vs. Adblock, where clone53421 had to go so far off topic it was amazing and he would do anything to avoid disproving the points posted in favor of HOSTS files vs. adblock)

    Clone53421 was "pwned" soundly on technical matters, and he also laughingly later had resorted to trying to "hide" his errors first by posting off topic to each in reply as anonymous coward also, doubtless in some PUNY attempt to defend himself and FAILING hugely in both links above!

    (LMAO: Clone53421 also later yesterday did tons of posts so others would not see his huge mistakes in those urls above via his post history in some attempt on his part to "bury his blunders" in BOTH urls above, & under the tide of the rest of his bullshit and mistakes yesterday (utterly hilarious)).

    Poor performance clone (no small wonder you GOT OWNED, lol, and 2 times in a row yesterday by the same ac no less).

    1. Re:clone got owned (2x yesterday)? See inside by Anonymous Coward · · Score: 0

      APK is a stalker.

  83. Clone "pwned" 2x in a row yesterday on coding? by Anonymous Coward · · Score: 0

    http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014

    (Where proof that clone53421 doesn't know how to program properly to save his life, he is a "batch boy" at best/most, not a coder in languages like C/C++, Delphi, VB, or any other truly widely used language in industry/professionally for decades now)

    &

    http://slashdot.org/comments.pl?sid=1755714&cid=33378404 and http://slashdot.org/comments.pl?sid=1755714&cid=33353946

    (On HOSTS files vs. Adblock, where clone53421 had to go so far off topic it was amazing and he would do anything to avoid disproving the points posted in favor of HOSTS files vs. adblock)

    Clone53421 was "pwned" soundly on technical matters, and he also laughingly later had resorted to trying to "hide" his errors first by posting off topic to each in reply as anonymous coward also, doubtless in some PUNY attempt to defend himself and FAILING hugely in both links above!

    (LMAO: Clone53421 also later yesterday did tons of posts so others would not see his huge mistakes in those urls above via his post history in some attempt on his part to "bury his blunders" in BOTH urls above, & under the tide of the rest of his bullshit and mistakes yesterday (utterly hilarious)).

    Poor performance clone (no small wonder you GOT OWNED, lol, and 2 times in a row yesterday by the same ac no less).

  84. beeb by Anonymous Coward · · Score: 0

    Agreed - beeb is still a great platform for learning and with inline assembler it opens up so many low level possibilities.

    Failing that, xcode under an archaic feeling os (and yes, I do mean the latest OSX).

  85. Colossus by tehcyder · · Score: 1

    When I saw "Bletchely Park" I was imagining they would get to program replicas of the original Colossus.

    --
    To have a right to do a thing is not at all the same as to be right in doing it
  86. Clone got pwned? 2x in the same day here?? by Anonymous Coward · · Score: 0

    http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014

    (Where proof exists that clone53421 doesn't know how to program properly to save his life, and, that he is a "batch boy" at best/most, and not a coder in languages like C/C++, Delphi, VB, or any other truly widely used language in industry/professionally for decades now since he cited what a batchfile tech might in %ProgramFiles% and not the API calls necessary to use environment variables in say, C or C++)

    In the url above, clone53421 additionally tried the old troll's "partial quote only" trick where the ac opponent he had had noted C and C++ also, where clone53421 omitted his opponent's mention of C/C++, and his ac opponent also showed that Delphi was proven faster than MSVC++ and VB by far in math and strings also in a publication that's about VB no less, and in math and strings work, which every program does by the way, where clone53421 tried to put that language down.

    (Hilarious, and clone53421 also tried to fool everyone, by replying as an ac no less on his part rather than under his registered luser account here, like that fooled anybody as well (not))

    &

    http://slashdot.org/comments.pl?sid=1755714&cid=33378404 and http://slashdot.org/comments.pl?sid=1755714&cid=33353946

    (On HOSTS files vs. Adblock, where clone53421 had to go so far off topic it was amazing, and he would do anything to avoid disproving the points posted in favor of HOSTS files vs. adblock (where once again, he cannot, and it is also where clone53421 also tried to fool everyone, by replying as an ac yet again as he did in the url above also, no less, once more on his part rather than under his registered luser account here... once more, like that fooled anybody (not)))

    Clone53421 was "pwned" soundly on technical matters, and he also laughingly later had resorted to trying to "hide" his errors first by posting off topic to each in reply as anonymous coward also, doubtless in some PUNY attempt to defend himself and FAILING hugely in both links above!

    (LMAO: Clone53421 also later yesterday did tons of posts so others would not see his huge mistakes in those urls above via his post history in some attempt on his part to "bury his blunders" in BOTH urls above, & under the tide of the rest of his bullshit and mistakes yesterday (utterly hilarious)).

    Poor performance clone (no small wonder you GOT OWNED, lol, and 2 times in a row yesterday by the same ac no less). You did the same here, I mean, who the hell are you to state what most folks do on their systems?

    1. Re:Clone got pwned? 2x in the same day here?? by Anonymous Coward · · Score: 0

      -1 Offtopic

  87. Actually they use VB by Anonymous Coward · · Score: 0

    yes - normally they teach them Visual Basic for A Level. Incredible.

  88. I'm returning to smaller computers. by PotatoHead · · Score: 1

    IMHO, this educational experience is totally worth it for perspective.

    When all the constraints are tight, it forces one to consider all the elements of the computer. That's easy to avoid at higher levels of both programming language access, and overall computer capability.

    I don't think it's a necessary thing for everybody, but I also don't think we can avoid this stuff entirely. The wizards, who understand real computing at the lower levels are needed to boot-strap new technology innovations.

    Without them, we won't have those innovations, or if we do, they will be built on other things and limited in their potential.

    Besides all of that, it's the most fun! Older machines rock! It's possible for one person to completely understand them. They are accessible in that way.

    Most importantly, it's possible for one to write code and know every detail about it, not depending on other code. That experience is worth a lot, because it shows people the scope of problem areas. They can understand what they don't know, and then work to resolve it. Very valuable skill, largely denied to people working only at higher levels of things.

  89. Programming 1980's Computers by bratwiz · · Score: 1

    Wow, that'd be like old-home week for me! I loved my Altairs :-)

    Back them programs were still simple enough and short enough that you could stop it at any time and single step through it, examine the registers, read memory locations, change data in those locations, etc-- all from the front panel and see the results on the LED's. Even the "OS" (as it were) itself. I used to run CP/M on mine, mostly. But there were times I'd kick out the OS and just finger-bone something in from the front panel just for the fun of it. And the OP is right, it really does get you closer to the bone so as to be able to get a good, solid understanding of where the hardware ends and the software begins. And if you start *really* digging into things, you learn about the microcode inside the processor too, and how the microcode instructions become machine code instructions. So you learn about the ALU, the various internal switching busses, the I/O bus (for Intel-style systems and such) and working with memory locations, and "magic" memory locations (memory-mapped I/O), and how stuff gets into and out of the internal registers, and how the overflow and carry bits and so-on are really implemented inside the CPU and how they literally control the flow of "bits" from one spot to another, etc--- all of which is really useful information later when software starts getting layered, and bundled, and managed in different ways. Its easier to understand how to peel back the layers when you've had experience at that level to gain the perspective. I have found that its hard to explain it all to people who have never had to interact with the system at that level.

  90. You really ARE stupid, aren't you clone53421? by Anonymous Coward · · Score: 0

    He's stating that in order to perform a rotate you need to use inline asm (he only said assembly language though, but this is doable in C/C++, &/or Delphi for example via the inline asm directive) to do so, and he's correct that it would break C's "intelligent assembler/cross platform code independence" in doing so, because you'd have to define processor architectures and detect for them first, then do branching into the type of assembly you'd be using.

    Get it, noob?

    We all know you're a noob though, based on your shabby performance here all week noted next:

    Clone got pwned? 3x in the same day here??

    http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014

    (Where proof exists that clone53421 doesn't know how to program properly to save his life, and, that he is a "batch boy" at best/most, and not a coder in languages like C/C++, Delphi, VB, or any other truly widely used language in industry/professionally for decades now since he cited what a batchfile tech might in %ProgramFiles% and not the API calls necessary to use environment variables in say, C or C++)

    In the url above, clone53421 additionally tried the old troll's "partial quote only" trick where the ac opponent he had had noted C and C++ also, where clone53421 omitted his opponent's mention of C/C++, and his ac opponent also showed that Delphi was proven faster than MSVC++ and VB by far in math and strings also in a publication that's about VB no less, and in math and strings work, which every program does by the way, where clone53421 tried to put that language down.

    (Hilarious, and clone53421 also tried to fool everyone, by replying as an ac no less on his part rather than under his registered luser account here, like that fooled anybody as well (not))

    &

    http://slashdot.org/comments.pl?sid=1755714&cid=33378404 and http://slashdot.org/comments.pl?sid=1755714&cid=33353946

    (On HOSTS files vs. Adblock, where clone53421 had to go so far off topic it was amazing, and he would do anything to avoid the points posted in favor of HOSTS files vs. adblock (where once again, he cannot, and it is also where clone53421 also tried tdo fool everyone, by replying as an ac yet again as he did in the url above also, no less, once more on his part rather than under his registered luser account here... once more, like that fooled anybody (not)))

    Clone53421 was "pwned" soundly on technical matters, and he also laughingly later had resorted to trying to "hide" his errors first by posting off topic to each in reply as anonymous coward also, doubtless in some PUNY attempt to defend himself and FAILING hugely in both links above!

    (LMAO: Clone53421 also later yesterday did tons of posts so others would not see his huge mistakes in those urls above via his post history in some attempt on his part to "bury his blunders" in BOTH urls above, & under the tide of the rest of his bullshit and mistakes yesterday (utterly hilarious)).

    Poor performance clone (no small wonder you GOT OWNED, lol, and 2 times in a row yesterday by the same ac no less).

    FOR MORE AMUSEMENT ON THIS NOTE? SEE CLONE'S "FOAMING AT THE MOUTH REACTION" TO THE ABOVE FROM THIS URL BELOW NEXT, IT'S HILARIOUS, because he gives away the fact he KNOWS he is a noob and he knows we all know it now too:

    http://slashdot.org/comments.pl?sid=1764066&threshold=-1&commentsort=0&mode=thread&pid=33354120

    "You’re a moron. " - by Anonymous Coward on Thursday August 26, @03:03PM (#33384252)

    LOL, name calling the "best you got", there, 'batchfile boy'? Apparently so: Well, hate to clue you into this, but "new NEWS":

    Your ad hominem attacks and foaming at the mouth profane name tossing reactions only shows your "tell" and that you are upset at yourself mainly, not I, because you exposed yourself as a complete noob in coding because you didn't post that you have to use API calls to get to environment variables in language

    1. Re:You really ARE stupid, aren't you clone53421? by clone53421 · · Score: 1

      He's stating that in order to perform a rotate you need to use inline asm (he only said assembly language though, but this is doable in C/C++, &/or Delphi for example via the inline asm directive) to do so, and he's correct that it would break C's "intelligent assembler/cross platform code independence" in doing so

      No, you wouldn’t, retard. If you know the size of a data word is WORD_SIZE = 32 bits, a bitwise rotate right is simply:

      a = (a >> 1) | ((a & 1) << (WORD_SIZE - 1));

      And a bitwise rotate left is:

      a = (a << 1) | (a >> (WORD_SIZE - 1));

      This is perfectly extensible to any platform with only the adjustment of the definition of the WORD_SIZE constant – which, as I said, you would need to know anyway because the results are hardly meaningful if you rotate an element of an unknown size.

      But hey... naturally you wouldn’t know this, because your idea of “programming” is building front-ends in Delphi or VB for system functions like “move” or “copy”. Hardly a step above batch programming, really.

      --
      Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
  91. Clone the clown, pwned yet again (4th time today) by Anonymous Coward · · Score: 0

    "You can get close to the hardware in C, yes, but only if you deliberately throw away portability." - by reiisi (1211052) writes: on Wednesday August 25, @10:04PM (#33376910) Homepage

    1. First, see relis the op you replied to's quote above, and most importantly, as to what the original poster meant in his usage of assembly language while using C or C++ and violating "cross platform-ness", and the intended use of C/C++ as an "intelligent assembly language"? Read and understand what he meant and what cross platform AND PORTABILITY means you fool clone53421:

    E.G.-> I've seen methods/functions in C and C++ fail during doing cross platform coding not only between operating systems (not TRUE cross platform coding OR "PORTABILITY" anymore than diff. memory access is as you seem to feel is cross platform coding in your noting 32 to 64 bit, though going OS to OS is more of a port than changing memory addressing) , but also across CPU architectures, as in sat powerpc to x86.

    (That is not about 32-64 bit and memory addressability idiot. It is about going across cpu architectures).

    That is the MAIN area where your method may fail clone, especially in diff. compilers for C/C++: Right in the .h/header file &/or interface for said methods/functions across cpu architecture or even operating systems.

    Especially across OS platforms but more importantly across cpu architectures, and?

    This most importantly is where you go wrong here clone:

    The original poster mentioned violating C's cross platform intended purpose as an "intelligent assembly language" by using assembly code, and that's NOT about 32-> 64 bit.

    It is about crossing between processor architectures, not memory access amount ability.

    (Anyone that's attempted doing ports across cpu architectures OR OS types in C code as I have has seen interfaces and header files be imperfect in these capacities, you obviously have not. So much for C/C++ being perfect in cross platform code, eh?).

    ----

    2. The original poster and my more specified methods of using assembly language inline (such as C/C++ or Delphi allow for) would work for this, but it would indeed, violate the intended "intelligent assembler and perfect cross platform binary executable generator" C is intended to be and has thusfar failed at, as he (relis) noted.

    Java has done a better job at this but it is runtime driven & slower than C/C++ are.

    ----

    3. Being written in assembly language also makes his, or my inlined asm, method very likely faster also than straight C methods (as well as guaranteed functioning across CPU family architectures if done in asm for said cpu family).

    ----

    4. Lastly, "size matters" here (and if you don't know it clone, your way fails and you even ADMITTED the case it does fail in, though you try to cover your butt in your statement as you always do with b.s., but the above 3 points blow your doors out easily enough).

    There you are clown53421, better luck next time.

    Man - You show your "noobishness" the more you try to defend yourself via ac replies than from your registered username here (which you admitted to) and you did even worse here -> http://slashdot.org/comments.pl?sid=1755714&cid=33394042 on your networking know how, so give up already, clown53421.

    ----

    "your idea of “programming” is building front-ends in Delphi or VB for system functions like “move” or “copy”. Hardly a step above batch programming, really." - by clone53421 (1310749) writes: on Friday August 27, @08:42AM (#33391080) Journal

    LOL, you mean batchfile coding you used, where you showed that much here http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014, where all you did was say to use %ProgramFiles% ?

    CLUE/New NEWS:

    You

  92. Re:Clone the clown, pwned yet again (4th time toda by Anonymous Coward · · Score: 0

    LOL. I love the way he pwned you, noob. He showed a cross-platform, hardware-independent way to do bit rotations in C AFTER you said: "in order to perform a rotate you need to use inline asm" and "it would break C's "intelligent assembler/cross platform code independence" in doing so, because you'd have to define processor architectures and detect for them first, then do branching into the type of assembly you'd be using."

    Here's a good scenario for you: Hiring interviewer asks, "Show a way to do bit right rotation in C". his answer: "for a 32-bit unsigned int, that would be a = (a > 1)" your answer "you can't, you need to use inline asm" Well guess who just got the job, noob? But I guess that explains why you spent so long living with your mommy and writing shitty delphi apps that you have to write your own astroturf reviews for because any legitimate reviewer would say that they suck.

    Just goes to show that the Delphi-noob apk fails when it comes to any REAL programming.

  93. Re:Clone the clown, pwned yet again (4th time toda by Anonymous Coward · · Score: 0

    whoops, I forgot slashcode would eat the C code, it should read

    a = (a << 31) | (a >> 1)

  94. FAIL due to your use of 32 to 64 bit value change by Anonymous Coward · · Score: 0

    You'd lose because of what was said before you just posted. You only indicated doing a port between 32 bit values and 64 bit values, which is only moving from a 32 bit program to a 64 bit one. That's not indicative of moving between CPU architectures and thus not a true indication of "portability". That is indeed where you would very possibly have to use inline assembly code (which is faster than C or C++ as well which was indicated) because not all .h header file interface are 100% solid between processor architectures in C or C++. You failed on that alone and you know it, because you never touched on what portability really is, and that is moving between processor family types/architectures (not all C or C++ header files or interfaces are perfect there and that is what relis meant).

  95. DOUBLE FAIL here and in the url inside by Anonymous Coward · · Score: 0

    http://slashdot.org/comments.pl?sid=1766164&cid=33426594 rinse, lather, and repeat that url, and your utter FAIL here say it all as well. reiisi was stating how portability issues demand you use assembly language and the ac also indicated that not all header interfaces in all C compilers are perfect for this. I am inclined to agree as I do that for a living at times, in porting applications between processor architectures. That type of work is about hardware interfaces and cpu processor family architecture types involved, not just moving from 32 bit to 64 bit values clone53421. You fail. In addition to that you may wish to refer to the original poster reiisi and his references to segmented pointers and hardware which was what the ac was trying to point out to you. A requote of reiisi's post is necessary for this:

    Segmented pointers? Trying to work on addresses as if they were unsigned integers so the addressing math is clear? How do you do a rotate (instead of a shift) in C, especially standard C? How do you know for sure that you're toggling the most significant non-sign bit of a signed integer? Etc. You can get close to the hardware in C, yes, but only if you deliberately throw away portability. Untangling the portability issues (among many others) generally takes you down to the assembly language level, even in C. Therefore, C is not sufficiently low-level. - by reiisi (1211052) on Wednesday August 25, @10:04PM (#33376910) Homepage

    Understand now clone53421? You can read reiisi's original meaning and its references to hardware which is indicative of what the ac apk posted in regards to having to do what reiisi stated in the ac apk just being more specific in how to do it using inline asm directives.

  96. Re:FAIL due to your use of 32 to 64 bit value chan by Anonymous Coward · · Score: 0

    If you even think that you "port" an application from doing bit rotation of a 32 bit value to bit rotation of a 64 bit value, you're a moron. Bit rotation is already a fixed-size operation(that was actually clone53421's original point, which you completely missed of course) and any application which relies on bit-rotation of a 32-bit value will break if you try to port it to a 64-bit element unless you change all sorts of other stuff too.

    what it IS portable in, is architecture (just the opposite of what you claimed, LOL). Any C compiler that can compile code that bit-shifts a 32-bit value (using an arbitrary size for an example) will compile the code he posted to do bit rotations on that same size element on any architecture. You're a moron.

    But hey, we already knew that. You're nothing more than a Delphi-writing script kiddie. typical script kiddie thinks "oh you just port it from 32 bit to 64 bit what's the big deal", well guess what, the architecture doesn't mean jack shit. if you're doing bit rotations of a 32 bit value it's because you NEED to do bit rotations of a 32 BIT VALUE and using a 64-bit architecture doesn't change that. Of course you wouldn't know that you needed bit rotations in the first place because you couldn't program your way out of a wet paper bag.

  97. reiisi spoke of hardware, not 32 and 64 bit by Anonymous Coward · · Score: 0

    Once more - The original poster reiisi's point was that you can lose that type of portability across hardware architectures/cpu platforms such as powerpc to x86 and vice a versa when trying to do that to signed versus unsigned data (remember: there is a SIGN BIT too).

    The anonymous coward apk only expounded on it further noting that .h/headers aren't always perfect between hardware platforms in C or C++ code and to get around those kinds of hassles, you can use inline assembly.

    The anonymous coward apk also noted that using inline assembly code is the safer and faster way (since assembly code generally also outperforms C and especially C++ code), and is sure to work, whereas dependence on a single compiler's ability to have its interfaces and methods/functions be absolutely 100% perfect in all cases is risky.

    (Either method may work, but I know that when it comes to doing diff. hardware platforms (cpu architectures), it is safest and fastest in most cases to use inlined assembly for the given cpu hardware platform, rather than depending on C or C++ default methods/functions being perfect across diff. hardware architectures/cpu platforms, because they are not always so, and others' header files are often faulty or don't have ports across diff. hardware/cpu platforms either).

    However, in the end, You should learn something about name calling though: It only shows you are projecting your own weaknesses and feel you are a moron since you called others here that. You also seem to be unable to show you have done anything noteworthy in the field of computing as well. You show everyone where you have insecurities in the very names you toss and accusations you make. If you live with your parents, so be it, because you accused others of that here. You've only made that clear to myself in your childish off topic attempts at ad hominem attacks here. Grow up.

    1. Re:reiisi spoke of hardware, not 32 and 64 bit by Anonymous Coward · · Score: 0

      And all that clone53421's original point was that bit rotations (one of reiisi's examples which he intended to prove that C isn't close enough to the hardware) CAN be done in C, easily and portably, (I.e. “SAFEST”) so that was a bad example on reiisi's part. (Whether or not it can be done “FASTEST” in assembly language, as you have now claimed, is entirely up to whether or not the compiler is able to optimize that code. An efficient compiler should convert that code into the exact same equivalent of the bit rotation that YOU claim you have to do in inlined assembly language, making the C version SAFER and JUST AS FAST as your stupid choice to break compatibility and go to inlined assembly code which requires ADDITIONAL architecture detection and branching - as you yourself admitted! - making it SLOWER than the equivalent C which the compiler will ALREADY know how to optimize for THAT architecture.)

      Of course you had to contradict this (because you are a script-kiddie with no real knowledge of programming) and got yourself smacked down, as usual. Thanks for playing.

    2. Re:reiisi spoke of hardware, not 32 and 64 bit by Anonymous Coward · · Score: 0

      LOL. Your failure to be financially stable is highly relevant to your claims of expertise, since expertise would make you more employable and employment would make you more financially stable. And you are the one projecting, not me.

  98. Segmented memory and targetted compilers by Anonymous Coward · · Score: 0

    "And all that clone53421's original point was that bit rotations (one of reiisi's examples which he intended to prove that C isn't close enough to the hardware) CAN be done in C, easily and portably, (I.e. "SAFEST") so that was a bad example on reiisi's part." - by Anonymous Coward on Wednesday September 01, @08:33AM (#33434206)

    When you go from x86 in 16 bit (segmented memory model) to PowerPC in 32 bit (flat memory model) during a port across both memory access limits and cpu architectures, as reiisi stated:

    Are you guaranteed to know on signed data being worked on whether you are rotating the bit that is most significant and not just the sign bit when using C?

    You are not, simply because the C method (from an interfacing .h header file most likely) would have to detect for the target platform, first, and just as the anonymous coward apk noted, and most likely have to use inline assembly to target for powerpc from x86 during a port since their assembly language is different (and C depends on that just like any other languages do in the end, machine language after that too).

    Thus, using C alone? For portability purposes?? You have no true guarantee of that across compilers (not even assembly language ones, as not all assembly compilers target multiple platforms, nor do C compilers (not all possible platforms on either asm or C)).

    Doing it yourself during a port is the right idea that is guaranteed to work, whereas it may or may not in C, and it will also be faster in assembly and especially hand optimized assembly.

    ---

    "Of course you had to contradict this (because you are a script-kiddie with no real knowledge of programming) and got yourself smacked down, as usual. Thanks for playing.." - by Anonymous Coward on Wednesday September 01, @08:33AM (#33434206)

    After the above? Speak for yourself. I notice also that You talk a lot putting others down or trying to, but I seem to see that others such as the anonymous coward apk you seem bent on harassing here has done far more in the arena of computing than you have clone53421.

    Your name calling is merely you projecting your own inadequacies on others and you didn't seem to do very well here on programming this week here in this url:

    http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014

    Nor did you do very well on hosts files and things networking here either in this url

    http://slashdot.org/comments.pl?sid=1755714&cid=33378404

    versus the anonymous coward you seem to stalk and know a great deal about online from things you say (which I doubt are true and you are merely projecting your own inadequacies on others now)

    So I would not talk so big when you clone53421 are already 3 fails deep on 3 topics vs. apk here on this very website (and the fact remains that you also have nothing to your credit that shows you are any good in this science noting you in respected publications, tech trade shows, or commercial software as apk has and from decades ago now while you probably still were in diapers no less).

    1. Re:Segmented memory and targetted compilers by Anonymous Coward · · Score: 0

      C has ways for which you can obtain an unsigned data element of a known size no matter what your architecture. If you don't know whether or not the element is signed, or if you don't know the size of the element, YOU WOULDN'T BE DOING BIT ROTATIONS ANYWAY - the result would be indeterminate depending on the signed/unsigned sized element you ended up using! So ALL of your complaints are mere red herrings designed to hide the fact that you FAILED BADLY after making claims that you couldn't back up.

      Furthermore, you don't do bit rotation on signed values anyway (or if so, you are intentionally ignoring the sign bit and using the element as if it were unsigned anyway, since C doesn't care what you do with it). The result of bit rotation on a signed value (if you interpret it as a signed value) is meaningless.

      Finally, hand-optimized assembly is NOT THAT MUCH faster than compiler-optimized code and furthermore NOT PORTABLE (as the compiler would automatically "port" the code for you if you wrote in C - and OPTIMIZE THE ASSEMBLY AUTOMATICALLY) - UNLESS you are perhaps running something millions of times in a loop, which in the case of bit rotations would most likely imply some sort of parallel data to serial data conversion for communication on a serial bus and your code would be limited in speed anyway by the communication rate of the bus, not the trivial execution speed of the code used to convert parallel data into serially-transmitted bits.

      P.S. Your links that supposedly show where "I" "didn't seem to do very well" - are actually links to YOUR POSTS - not even to my posts, LOL - links to your posts where YOU seem to NOT DO VERY WELL. And you claim that I am projecting. It seems to be more the opposite. Furthermore your accusing me of "stalking" the anonymous coward? Replying to replies that were posted to MY COMMENTS is not "stalking" the person who replied (visiting registered users' comment posting history and posting OFF-TOPIC, BLOW-HARD replies full of UNRELATED HOT AIR on the other hand - that IS stalking! Yet again, more projection from the anonymous coward accusing ME of doing what HE HIMSELF does REGULARLY - in fact his "modus operandi".)

  99. Keep projecting your unemployed status clone53421 by Anonymous Coward · · Score: 0

    "LOL. Your failure to be financially stable is highly relevant to your claims of expertise, since expertise would make you more employable and employment would make you more financially stable." - by Anonymous Coward on Wednesday September 01, @11:23AM (#33436196)

    First of all: If you are "so great" and better than the ac named apk you attack is, well, show us you have done better than he has in his list of accomplishments over time such as having commercial software code to his credit and being featured in multiple respected publications on many topics in computing for decades also many times to his credit, ok?

    Your ad hominem attacks which only project your own inadequacies here continually in your profanity laden foaming at the mouth name tossing attacks, yet you have no substance or accomplishments to your credit for all your false bravado.

    Myself? I am as financially stable as the next person is out there, and perhaps moreso, as I am not neck deep in debt and what I have is paid in full, thank goodness.

    Yes, I would quit when I was behind were I you (and you are behind this week clone53421, per these evidences:

    After your poor results in this url on this topic

    http://slashdot.org/comments.pl?sid=1766164&cid=33435784

    Speak for yourself. You've blown this post based on that set of points also and 2 others this week below (1 on programming and the other on networking topics).

    Your name calling is merely you projecting your own inadequacies on others and you also didn't seem to do very well here on programming this week here in this url either:

    http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014 [slashdot.org]

    Nor did you do very well on hosts files and things networking here either in this url

    http://slashdot.org/comments.pl?sid=1755714&cid=33378404 [slashdot.org]

    versus the anonymous coward you seem to stalk and know a great deal about online from things you say (which I doubt are true and you are merely projecting your own inadequacies on others now)

    So I would not talk so big when you clone53421 are already 3 fails deep on 3 topics vs. apk here on this very website (and the fact remains that you also have nothing to your credit that shows you are any good in this science noting you in respected publications, tech trade shows, or commercial software as apk has and from decades ago now while you probably still were in diapers no less).

    ---

    "And you are the one projecting, not me." - by Anonymous Coward on Wednesday September 01, @11:23AM (#33436196)

    Lastly: You're the one doing constant name tossing here and ad hominem attacks, yet you don't seem to have done as well as the ac named apk you attack here constantly with your off topic ad hominem attacks.

    Why is that?

    The anonymous coward you attack named apk seems to have been cited well many times with commercially sold code to his name and having done well in respected publications like Windows IT Pro magazine as well as trade shows like Microsoft Tech Ed 2 yrs. in a row in its hardest category.

    Have you done the same? Not that we can see, and your performance in this exchange and the 2 others on programming and networking above?? Pretty pitiful on your part.

  100. Show us you've done better than apk has, clone by Anonymous Coward · · Score: 0

    "C has ways for which you can obtain an unsigned data element of a known size no matter what your architecture. If you don't know whether or not the element is signed, or if you don't know the size of the element, YOU WOULDN'T BE DOING BIT ROTATIONS ANYWAY - the result would be indeterminate depending on the signed/unsigned sized element you ended up using! So ALL of your complaints are mere red herrings designed to hide the fact that you FAILED BADLY after making claims that you couldn't back up." - by Anonymous Coward
    on Wednesday September 01, @11:38AM (#33436412)

    Funny, but the methods stated in assembly would work, and guaranteeably so and very possibly moreso for more platforms targetted than C would because it may not have ports to various platforms for its methods in its .h headers and interfaces.

    ----

    "Finally, hand-optimized assembly is NOT THAT MUCH faster than compiler-optimized code and furthermore NOT PORTABLE" - by Anonymous Coward on Wednesday September 01, @11:38AM (#33436412)

    Assembly language IS faster than C without optimizations and faster still with it, and there are assembly compilers that target more than 1 platform/cpu architecture (and memory addressability too) so it can be portable as much as C can be if you use macros that do checks for CPU architectures and such, just as C would have to do in its methods to be portable across various cpu architectures.

    You are, again, incorrect as usual.

    ----

    "Your links that supposedly show where "I" "didn't seem to do very well" - are actually links to YOUR POSTS - not even to my posts, LOL - links to your posts where YOU seem to NOT DO VERY WELL" - by Anonymous Coward on Wednesday September 01, @11:38AM (#33436412)

    Your words are quoted in them, and disproven, and you ran from disproving points (such as on HOSTS files) and you definitely omitted what a programmer would have to do in order to use environmental variables in the other post also, and you claim you did well? Anyone is free to read the urls below, same as which you note, so let others judge on that account lol:

    You're also the one doing constant name tossing here and ad hominem attacks, yet you don't seem to have done as well as the ac named apk you attack here constantly with your off topic ad hominem attacks.

    Why is that?

    He seems to have been cited well many times with commercially sold code to his name and having done well in respected publications like Windows IT Pro magazine as well as trade shows like Microsoft Tech Ed 2 yrs. in a row in its hardest category, you have not, and yet you act as if you are his superior?? Please.

    1. Re:Show us you've done better than apk has, clone by Anonymous Coward · · Score: 0

      He seems to have been cited well many times with commercially sold code to his name and having done well in respected publications like Windows IT Pro magazine as well as trade shows like Microsoft Tech Ed

      Oooh, heap big programmer apk gets great review when he write them himself. me heap much impressed!

  101. Show us your accomplishments then clone53421 by Anonymous Coward · · Score: 0

    "big programmer apk gets great review when he write them himself." - by Anonymous Coward on Wednesday September 01, @12:31PM (#33437304)

    I see this list of the ac apk below and he is a programmer of some note, but not a writer or editor (and he certainly did not do the articles on said softwares).

    The anonymous coward apk only wrote the entire apps or parts of apps that did well in reviews in trade magazines and tech trade shows like Microsoft Tech Ed 2 yrs. in a row (and in its hardest category SQL Server Performance Enhancement):

    quoting apk:

    "My Name is Ozymandias: King of Kings - Look upon my works, ye mighty, & DESPAIR..."

    ----

    Windows NT Magazine (now Windows IT Pro) April 1997 "BACK OFFICE PERFORMANCE" issue, page 61

    (&, for work done for EEC Systems/SuperSpeed.com on PAID CONTRACT (writing portions of their SuperCache program increasing its performance by up to 40% via my work) albeit, for their SuperDisk & HOW TO APPLY IT, took them to a finalist position @ MS Tech Ed, two years in a row 2000-2002, in its HARDEST CATEGORY: SQLServer Performance Enhancement).

    WINDOWS MAGAZINE, 1997, "Top Freeware & Shareware of the Year" issue page 210, #1/first entry in fact (my work is there)

    PC-WELT FEB 1998 - page 84, again, my work is featured there

    WINDOWS MAGAZINE, WINTER 1998 - page 92, insert section, MUST HAVE WARES, my work is again, there

    PC-WELT FEB 1999 - page 83, again, my work is featured there

    CHIP Magazine 7/99 - page 100, my work is there

    GERMAN PC BOOK, Data Becker publisher "PC Aufrusten und Repairen" 2000, where my work is contained in it

    HOT SHAREWARE Numero 46 issue, pg. 54 (PC ware mag from Spain), 2001 my work is there, first one featured, yet again!

    Also, a British PC Mag in 2002 for many utilities I wrote, saw it @ BORDERS BOOKS but didn't buy it... by that point, I had moved onto other areas in this field besides coding only...

    Lastly, being paid for an article that made me money over @ PCPitstop in 2008 for writing up a guide that has people showing NO VIRUSES/SPYWARES & other screwups, via following its point, such as THRONKA sees here -> http://www.xtremepccentral.com/forums/showthread.php?s=ee926d913b81bf6d63c3c7372fd2a24c&t=28430&page=3

    ----

    What do I have to say about that much above? I can't say it any better, than this was stated already (from the greatest book of all time, the "tech manual for life" imo):

    "But by the grace of God I am what I am: and his grace which was bestowed upon me was not in vain; but I labored more abundantly than they all: yet not I, but the grace of God which was with me." - Corinthians Chapter 10, Verse 10

    (And, because I got LUCKY to have been exposed to some really GREAT classmates, professors, & colleagues on the job over time as well)" quote apk

    ----

    We only ask that you clone53421 show us all you have done more, earlier and of better note, than apk has done and probably while you were still in diapers in this art and science of computing.

    Especially after your various ad hominem attacks stating he was not good and only wrote front ends etc. where you have been shown failing on programming topics here (on how environmental variables are used in code) http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014 and you also failed on networking topics here (hosts file) clone53421 http://slashdot.org/comments.pl?sid=1755714&cid=33378404 with your own words being quoted and disproved whereas you failed and ran in disproving the technical points there, instead resorting to

    1. Re:Show us your accomplishments then clone53421 by Anonymous Coward · · Score: 0

      Reputable? LOL. More like a bunch of bullshit tech rags. A bunch of third-world publications and a "PCPitstop" magaznie that I'd put several large steps below even the "GeekSquad" in terms of technical expertise or source of quality computing advice... LOL. Maybe a tiny step above "AntiVirus Pro 2010", BUT ONLY MAYBE. I'm surprised you aren't embarrassed quoting them as sources. in fact, it's to clone53421's credit that shit like that hasn't been attributed to him. You're a joke and an embarrassment.

      And we all know that THRONKA was YOU.

  102. Re:Keep projecting your unemployed status clone534 by Anonymous Coward · · Score: 0

    you also have nothing to your credit that shows you are any good in this science noting you in respected publications, tech trade shows, or commercial software as apk has

    You know what else clone53421 does not have to his credit? he has never written an application that was (and still is) classified as malware/hacker tool by numerous security/malware auditing groups.

    P.S. also you claiming things does not, of course, make them true (in fact given your track record if you claimed them, it should be pretty good basis for believing that they are NOT true! in fact good basis to believe that THEY APPLY TO YOURSELF)... such as clone53421's "unemployed status", that he is "projecting", or that he is nothing more than a "batch programmer" (which any moron (such as yourself) could easily verify is false - for example this code http://slashdot.org/comments.pl?sid=1761098&cid=33318422 which he apparently threw together in 5 minutes of spare time because of an interesting little scenario that he wanted to visualise better)

  103. You mean by "reputable companies" like CA? by Anonymous Coward · · Score: 0

    "You know what else clone53421 does not have to his credit? he has never written an application that was (and still is) classified as malware/hacker tool by numerous security/malware auditing groups."

    APK's application is classified with ZERO THREAT LEVELS (per Computer Associates/CA, who is the source of this? Hahaha, ok). APK's app is rated with no threat, but can be used for the good and the bad (just like ping.exe can be, it can ping a site or issue a ping of death).

    Also, the same has happened to the likes of Nir Sofer of Nirsoft and Dr. Mark Russinovich of Microsoft as well with their apps being classified as "'greyware'/malware" also (meaning their apps, like apk's single one, and ping.exe, can be used for the good or the bad. After all, guns don't kill people. Other people do, so it's up to the user how the app is used).

    So your "attempt" at putting down APK is a waste of time. Your sources ARE IN QUESTION:

    So your main source, which all others based their "opinions" on, was a "reputable company" like CA? LMAO (not, they are infamous for financial scandals, per this article):

    http://www.nytimes.com/2004/06/06/business/the-scandal-that-refuses-to-go-away.html

    ----

    The Scandal That Refuses To Go Away

    By GRETCHEN MORGENSON
    Published: June 6, 2004

    PERTINENT QUOTE/EXCERPT:

    "COMPUTER ASSOCIATES, embroiled in one of the nation's longest-running accounting fraud investigations..."

    ----

    No, we all can pretty much surmise at this point that clone53421 is a nobody/done-nothing "ne'er do well" that wastes his time and unemployed life here on slashdot (at most/best).

    Clone53421, you are on the ropes and all you have is failed attempts at adhominem attacks, which are being blown away 1 by 1 per the above, and your earlier failures here:

    Clone53421's incorrect and only VERY PARTIAL explanation of how to use environmental variables in code:

    http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014

    Clone53421's utter failure on things networking in his inability to disprove APK's 10 points in favor of HOSTS files:

    http://slashdot.org/comments.pl?sid=1755714&threshold=-1&commentsort=0&mode=thread&pid=33265908

    Lastly of course, you have clone53421's utter failure here on programming segmented pointers and doing so absolutely safely and portably across different CPU architectures (such as 16-bit x86 ported to 32-bit PowerPC and vice a versa) using straight C, because not only would inline assembly language methods be safer, they would also be faster and guaranteed to work.

  104. Which is more than Clone53421 can evidence, lol! by Anonymous Coward · · Score: 0

    "Reputable? LOL. More like a bunch of bullshit tech rags. A bunch of third-world publications and a "PCPitstop" magaznie that I'd put several large steps below even the "GeekSquad" in terms of technical expertise or source of quality computing advice... LOL." - by Anonymous Coward on Wednesday September 01, @04:10PM (#33440540)

    Windows IT Pro, Microsoft Tech Ed 2000-2002 as a finalist in its hardest category, and commercial software code to apk's credit, and NOTHING TO CLONE53421's CREDIT AS TO THE SAME, NOT EVEN A SINGLE ONE? LMAO... we all know the score here, and it's 12 to 0 in favor of apk (12) and clone53421 (0). Not even CLOSE.

    ----

    "Maybe a tiny step above "AntiVirus Pro 2010", BUT ONLY MAYBE. " - by Anonymous Coward on Wednesday September 01, @04:10PM (#33440540)

    Again: apk's just done far more than you have clone53421 and industry people liked his work where you? Nobody has, because you're a nobody... face it, facts are facts and you have none to your credit vs. apk with over a dozen by now, probably more too,

    Again, Windows IT Pro, Microsoft Tech Ed 2 yrs. in a row, and commercial software code to apk's credit seems to look good for apk. Clone53421 with nothing of the same to his name? LMAO, not so good for clone53421, especially after all of his (your) name tossing and ad hominem attacks.

    (I'd say you're just another jealous ne'er do well, clone53421, simply based on your reactions, lol, like a frustrated child with your profanities and name calling...)

    ----

    "I'm surprised you aren't embarrassed quoting them as sources. in fact, it's to clone53421's credit that shit like that hasn't been attributed to him." - by Anonymous Coward on Wednesday September 01, @04:10PM (#33440540)

    LOL, clone53421, who is you (as is your usual defending yourself with AC replies after you get shot down by others) doesn't have a damned thing to his credit, because he is a dime a dozen NE'ER DO WELL, period. Show us otherwise... lol, we KNOW you can't!

    ----

    "You're a joke and an embarrassment." - by Anonymous Coward on Wednesday September 01, @04:10PM (#33440540)

    If apk with a list of a dozen accomplishments in the eyes of reputable others is a joke and an embarrassement, then what are YOU, with NOTHING TO YOUR NAME WHATSOEVER, Clone53421?? LMAO... face it: You're a "ne'er do well" clone53421.

    ---

    "And we all know that THRONKA was YOU." - by Anonymous Coward on Wednesday September 01, @04:10PM (#33440540)

    Got proof of that, first of all? Otherwise, we know it's your typical ad hominem attack attempt and more libelous crap from you. Proof, from Clone53421?? LOL, of course not. Certainly not of better and more accomplishments than APK has in respected and reputable publications like Windows IT Pro, or MS' own TechEd!

    Clone53421, all you have is your desperate b.s., and you are free to write THRONKA, as he frequents the bbs where his comments are cited.

    Many others also have had the same results and querying "HOW TO SECURE Windows 2000/XP/Server 2003" online can show that many others liked APK's security guide so much, it is no small wonder he was paid to write it and won a tech contest for it in fact (unexpectedly in fact he said). Have you clone53421 done the same? No, we know not.

    ----

    "You know what else clone53421 does not have to his credit? he has never written an application that was (and still is) classified as malware/hacker tool by numerous security/malware auditing groups."

    APK's application is classified with ZERO THREAT LEVELS (per Computer Associates/CA, who is the source of this? Hahaha, ok). APK's app is rated with no threat, but can be used for the good and the bad (just like ping.exe can be, it can ping a site or issue a ping of death).

    Also, the same has h