Slashdot Mirror


Want To Get Kids Interested In Programming? Teach Them Computer History

An anonymous reader writes "With poor IT teaching putting kids off pursuing a career in the computing it is time to look for a new approach. Taking kids back to the time of computing pioneers like John Von Neumann and the first machines — the likes of the Z3, the Eniac and the Colossus — would both inspire them and help get over the fundamentals about how computers work, argues silicon.com."

37 of 200 comments (clear)

  1. Yea... teach them history... by Anonymous Coward · · Score: 5, Funny

    ...with PowerPoint.

    >:(

    1. Re:Yea... teach them history... by polymeris · · Score: 5, Interesting

      Why?

      Last week I put together a one-hour implementation of Reversi & showed it to my little brother (he's 12). I expected his reaction to be "meh", since the board was represented by a boring 2D array of dots, Xs and Os representing the pieces, and the input was in numerical coordinates, and of course he's used to cinematic 3D games and mouse input.
      To my surprise, he not only had fun playing, he wanted to know how I had done it, what could be improved, pointed out bugs, and keeps nagging me to fix them.

      Still don't know what the best way to start programming would be for him, but motivation is not the hard part.

    2. Re:Yea... teach them history... by Anonymous Coward · · Score: 5, Insightful

      EXACTLY! The way to get kids interested in programming is to encourage curiosity -- give them the code to a simple video game (tetris? Space invaders?) and let them tinker with it.
      Nibble & Byte magazines used to list page-after-page of source code for Apple][ games. Typing that in, debugging the inevitable mistakes, etc. are good practice! Or show them the amazing old BeagleBros. 2-liner programs.

    3. Re:Yea... teach them history... by Anonymous Coward · · Score: 2, Insightful

      In my own experience, a good coder understands everything from the fundamentals up to the high-level algorithmic concepts. If motivation is not an issue, then teach him Assembly first. He does not have to write a bootloader, but he should understand how a CPU does mathematical and logical ops, movs, jumps, stack etc etc. Don't spend too much time, and use an emulator such as Easy68K or SPIM. Then you can move on to C, which is where he can have a bit more fun writing text-based programs, or even something curses based. Make sure he understands how C gets translated to Assembly that you taught in the previous lesson. Then you should move on to higher level stuff like Java, which is easy to learn and shows that compilers and languages can take care of the more mundane stuff such as garbage collection. Then you should expose him to functional languages such as Erlang (to start, easy to learn and has cool features), then Haskell or OCaml or SML. This builds up a chain from low-level all the way up to the most abstract high-level. I consider scripting languages to be something that should be learned after all of the above, since they are simple tools that can encourage bad practices.

      Once your brother has exposure to all possible levels of abstraction, he will have a clear idea of what he likes, and will pursue his passion. He may become a low-level assembly geek, or a complex abstract algorithm thinker. The most important thing is to show him everything that can be done, and let him choose.

      This is similar to how I learned programming, although after learning Assembly I was pretty much self-motivated. Also, nothing gets you to understand unix better than a couple of good books, a weird non-x86 box and install CDs/floppies of NetBSD (or whatever floats your boat).

      Godspeed, and may you create another intelligent professional that the world will always value.

    4. Re:Yea... teach them history... by ledow · · Score: 4, Interesting

      Most kids, especially boys, when given something like a programmable game that they can play will spend hours doing things like changing it so they get a million points, or changing it so their character looks like a penis, or changing it so that there are a million things on screen, etc.

      It's actually *not* a bad way for them to learn at all. See, understand, experiment, see results of experiment, tinker more. It's how I got into programming at first - sure there was a lot of typing in listings, etc. but the coolest bit was to be able to tweak the QBASIC Gorillas game and things like that.

      In my early teenage, I was ripping the graphics resources out of games like Castle of the Winds and trying to create my own version, and cracking the CD protection on Desert Strike for myself so I didn't need to keep swapping the fecking disks (I did that using MSDOS debug and a copy of Ralf Brown's Interrupt List).

      But the greatest initial impetus, that hooked my entire maths class on silly graphical-calculator games I was writing, was for them to see the code, tweak it and start to understand how it worked.

      I spent hours with a teenager who was working under me for his work experience (two weeks in a "real" job while they are still at school) explaining how to program and the most interesting thing was that they couldn't see how, e.g., 3D, sound, joysticks, etc. could be thought of in the same way as the numbers they manipulated in a basic dice game. Once they realised that everything from networking to 3D to AI to physics was just a matter of manipulating numbers, the "magic trick" of their console games was revealed and they wanted to replicate them.

    5. Re:Yea... teach them history... by JPLemme · · Score: 5, Interesting

      Last year I wrote a simulator of a VERY simple computer. It had four instructions, 16 bytes of memory, and 2 registers. There were no branch instructions; literally the only thing you could do was write a program to add two (8-bit) numbers together. (And it would set the error bit if the result was bigger than 255.) I gave it an interface of nothing but (simulated) LED lights for the registers and memory, and then (simulated) push buttons to select a memory address and poke a value into it. It looked like a relic from 1956.

      I then explained it to my then 9 and 11 year-old sons (who both are teaching themselves to program), explained base-2 math, explained how the "computer" worked and the four instructions they had available, gave them a whiteboard, and tasked them with writing a program to add two numbers.

      They went NUTS! They were discussing theories, pointing out errors in each other's ideas, and getting excited when they fixed bugs. And they were doing it with a maturity level way beyond their years. They loved it. And I think that part of it was because it was simple enough that they felt in control of it. I also had the memory lights turn green as the instruction pointer advanced, so they could watch the program running. (It was slow enough that they could follow it and watch the registers change.) Granted, my boys love history, so that may have sweetened the deal for them a bit. But I was shocked at how easily they picked it up and how much they enjoyed it.

      I'd like to expand it to the point where they can watch a stack operating, and see pointers and offsets getting used, but I just haven't had the time to follow up on it. But it confirms (for me) that the idea of starting at the beginning might be the most effective way to teach programming. (I also taught programming at a local trade college for a few years, and I noticed how much harder it was for the students to pick up--say--OO programming concepts when they had never had to deal with the problems that OO concepts were designed to solve. Trying to simplify it even more for elementary school students seemed mis-guided.)

      The very best part of the story was six months later touring the Mercury Redstone program blockhouse at Kennedy Space Center (I know it's not technically on the KSC property, save your breath). They had an old Sperry-Rand computer with a console full of lights, and both boys lit up and told the (confused) tour guide "I KNOW THIS! I KNOW HOW TO PROGRAM IT!". It nearly brought a nerdy tear to my eye.

      P.S. If anyone is curious for more information I'd be happy to share. It wasn't very complicated, but I think it has a lot of potential.

    6. Re:Yea... teach them history... by JonySuede · · Score: 2

      Then you must suck and you probably are a grunt...

      You probably do not know what came before you therefore you are bound to repeat some historic mistakes.

      Knowledge of history is almost as important in science that it is in politics. Sadly, in both case it is way to frequent to encounter someone with your: "history is boring, let's see some bling" discourse...

      --
      Jehovah be praised, Oracle was not selected
    7. Re:Yea... teach them history... by JonySuede · · Score: 2

      I forgot to suggest something: mix history with doing fun thing with programming.

      Ex,
      Talk about the Von Neumann Machine, then do a small win32 asm program like those: http://win32assembly.online.fr/tut4.html
      Talk about the history of encryption, implement a simple Cesar cipher in python. Talk about the history of code breaking and break his cipher with him...

      --
      Jehovah be praised, Oracle was not selected
  2. Riiiiiight. by OG · · Score: 4, Insightful

    Because there's nothing more that kids love more than history lessons. Seriously, most kids have access to a computer these days. Those with the interest and aptitude will find themselves in the industry or academia, more likely through gaming than through history.

    1. Re:Riiiiiight. by Tx-0 · · Score: 3, Interesting

      I honestly think the interest a kid will show is proportionate to the passion he feels in the words of the teacher.

  3. Frankly... by jcreus · · Score: 5, Funny

    Being part of the generation Z, sometimes I still wonder how people survived with less than one megabyte of memory, no tabs (no Internet!)... Depressing!

    1. Re:Frankly... by laffer1 · · Score: 4, Insightful

      My generation still had game consoles. That helped.

    2. Re:Frankly... by marcosdumay · · Score: 2

      We got our data from mail.

      You shouldn't underestimate the bandwidth of a van full of tapes, et al... But those paper magazines surely had a low data capacity.

    3. Re:Frankly... by PPH · · Score: 3, Funny

      It was all caves and clubs, kid. And fire, but that came later on. And we had to fight off the dinosaurs walking to school. Until Spielberg moved them all to that island.

      Now get off my lawn!

      --
      Have gnu, will travel.
    4. Re:Frankly... by Xugumad · · Score: 2

      > Being part of the generation Z, sometimes I still wonder how people survived with less than one megabyte of memory, no tabs (no Internet!)... Depressing!

      I still have flashbacks sometimes, but I'm slowly recovering....

    5. Re:Frankly... by PolygamousRanchKid+ · · Score: 5, Insightful

      But those paper magazines surely had a low data capacity.

      . . . as opposed to new socially networking twittering systems that have high data capacity but low information content.

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    6. Re:Frankly... by TheRaven64 · · Score: 3, Interesting

      For 8-bit processors with 64K memory (or 128K +banked memory), instructions were only between 1 and 3 bytes in size. Compare that to 16-bit processors with 640K memory where instructions are between 2 and 8 bytes in size or 32-bit processors with 2 MBytes where instructions are between 4 and 32 bytes in size. You still get around 32,000 instructions. It's just the sizes that change.

      I'm not sure where you're getting these numbers from. On ARM, instructions are 2-4 bytes in size for ARMv7 (32 bit) and 4 bytes for ARMv8 in 64-bit mode. On x86-64, the smallest instructions are 1 byte and the common ones average about 3-4 bytes. And these instructions do a hell of a lot more than 6502 or Z80 instructions. One instruction on pretty much any a modern CPU can take two vectors of four 32-bit floating point values and do a fused multiply-add (for example). If you could do that in under 100 Z80 instructions, then I'd be very impressed.

      The instruction size has nothing to do with the increase in memory usage. The biggest difference is the increase in data size. The images on this page alone are several MBs when uncompressed. Just the text is more than would fit into the memory of any 8-bit system. Try writing a book on an 8-bit system: you'll end up having to save each chapter to disk / tape separately, because it can't store the entire thing in memory even as plain 7-bit ASCII text. And, with the massive increase in data size, we've also seen an increase in the things people do with it. High-level programming languages mean that one line of code can now be hundreds of instructions, rather than just one or two. Code reuse means that writing a million-instruction program may only mean writing a few tens of thousands of instructions of new code.

      --
      I am TheRaven on Soylent News
    7. Re:Frankly... by NewWorldDan · · Score: 2

      If you ever find yourself at Disney World, check out the Carousel of Progress in Tomorrowland. Walt was a hardcore futurist and designed this one himself for the 1964 world's fair. It starts in the year 1900 and moves forward 20 years at a time with each time period marveling at how wonderful things are and wondering how people possibly lived without all the modern conveniance.

      I was born in 1976, and I feel rather fortunate to have grown up while computers were growing up at the same time. As a child, I had an Apple ][e. Around 8th grade, we got a 386 for Dad's business, in high school, I bought my own 486 ($1400 - money I earned working at Burger King). At the same time, I went from Apple BASIC to QuickBASIC to Turbo C/C++ and MASM. The biggest challenge back then was finding books or teachers or anyone who knew more than I did at the time about programming. In the early-mid '90s, a Barnes and Noble opened up near enough for me to get to, and they had 2 whole shelves of computer books.

      In any event, I seriously wonder how modern kids pick up programming, given the learning curve today. It seemed so easy to start 25 years ago, taking a BASIC listing and deconstructing what each line did. I think if you were to take away the modern electronics and give kids an Apple ][ or C64, you'd quickly find out who the natural programmers are. The rest would just go outside and play football instead.

  4. Exactly what I did by Tx-0 · · Score: 5, Interesting

    Given the opportunity to teach Informatics to Diagnostic Radiology Imaging students, almost all in their 20s, I decided to start with a first lesson about history of computing, and I started from the ancient times when the most sophistcated calculator was the abacus. Guess what? Almost all of them listening, interested about something that's not really about their business.

  5. Don't get mad...but... by RobertRCleveland · · Score: 2

    I plan to DISCOURAGE my kids from a career in IT. If I could do it over, I would have never done this. It's not fun anymore, it's corporate ran, innovation is disallowed and the 1-800 number to call customer support is far more important that easily disposable employees. Up until around 2001, having of crew of guys to build the network, code, admin support is now down to the bare minimum to call support. I'll teach my kids IT in general, but I won't encourage it as career choice.

    1. Re:Don't get mad...but... by lahvak · · Score: 2

      But teaching someone programming does not necessarily mean preparing them for a career in IT. These days it is for example very good to know how to program if you are a scientist or engineer, and I thing the way I see the trend, it will be even more so in the future.

      --
      AccountKiller
    2. Re:Don't get mad...but... by Anne+Thwacks · · Score: 2
      My two most useful O Levels were woodwork and Latin.

      Woodwork enabled me to make things, even if I have not made anything more complicated than an IKEA flatpack in years,

      Latin because I can guess what the signs mean in most Eurpoean and African countries.

      My son has learned perfectly good IT skills at the "University of Google". althought the fact that his grandmother was a programmer on IBM mainframes in the 1960's probably did no harm.

      I taught him plumbing myself, and my brother taught him chicken plucking.

      Frank Zappa was right: Schools prevent learning!

      --
      Sent from my ASR33 using ASCII
  6. Computers are hard, lolz by Ynot_82 · · Score: 2

    We need to stop this belief that people have, that computers are appliances. They're not, and it's this thinking that's putting the younger generations off of learning how machines work.

    In today's world, a computer is seen as an appliance
    and I admit, I'm not too interested in how the programmable software portion of my washing machine or car's climate control system operates
    They /are/ single use appliances
    Lack of knowledge in these cases doesn't hinder me

    But a computer is highly versatile and can be put to pretty much any task
    Lack of knowledge here is hugely detrimental to what one is capable of achieving

    Knowledge of computing needs to be seen as a core life-skill akin to basic maths or language skills
    Lack of knowledge of either of those will put you at a disadvantage in almost any conceivable situation

    Don't put the entire blame on schools and education
    The hobbyist element is what's suffering most here, the desire to know
    not the formal education side

    Most people will not go into jobs where formal academic knowledge of computers is paramount
    but the life-skill of knowing /how/ to find out a solution to a common problem is essential to everybody

    It's Apple, and other companies trying to follow suit, that are largely responsible for the erosion of such curious tinkering

    "The battery's non-replaceable. Don't worry, if it dies return it to us and we'll send you another device"

    "You can only install programs we endorse. Don't worry, this is for your safety"

    "That's the wrong way to do something. This is the way we do it, and it should be the way you do too"

    "Don't ask questions. Just do what we tell you and it'll /just work/"

    1. Re:Computers are hard, lolz by nurb432 · · Score: 2, Interesting

      We need to stop this belief that people have, that computers are appliances.

      Computers should be appliances, for the consumer. Stuff should 'just work' and they should be insulated from the 'magic'. Else it would be like expecting a person driving a car to be a mechanic. Those days are long gone too.

      --
      ---- Booth was a patriot ----
    2. Re:Computers are hard, lolz by CaptainLard · · Score: 2

      "Just working" and "Open architecture" are not mutually exclusive....

  7. Great idea...! by AlienIntelligence · · Score: 2

    Let's make something that is uncool, boring!

    That'll draw those adhd bieber followers right in!
    Btw, why are we concentrating on 3D for a group
    of people that have hair covering one eye??
    Sometimes both?

    Face it... this is a new world, don't try to draw
    someone in, to something they are not interested
    in. The internet is a really good evolutionary tool.
    People that seek knowledge will seek it, those
    that have an interest in the computer fields, will
    seek it.

    Don't force the burger flippers to learn about tech...
    do YOU want to flip your own burgers?

    -AI

    --
    For me, it is far better to grasp the Universe as it really is than to persist in delusion
  8. Re:Teaching programming in an interesting manner by nurb432 · · Score: 4, Insightful

    The reason kids find it difficult to learn programming is because it is taught in a drab uninteresting manner.

    Well at least there are no false expectations of fun for when (if) they get a job coding ..

    --
    ---- Booth was a patriot ----
  9. Re:IT is a bad career move. by lahvak · · Score: 2

    Of course, being a code monkey is no good, but as far as I tell, people with a good quality comp sci degrees, especially with good background in math or physics, are still in great demand, and end up working on some really interesting stuff.

    --
    AccountKiller
  10. This got in here how exactly? by WOOFYGOOFY · · Score: 4, Insightful

    Sorry, this article presumes a falsehood.

    What poor teaching in Comp Sci is going on where exactly?

    The reason people are leaving IT is because the job opportunities aren't there. I'll say it- outsourcing and H1Bs in the US and similar measures in other countries. .

    How long does it for word from the older brother / friend to the younger brother / friend that the career choices aren't there and they should major in something else?

    How rampant is age discrimination in IT?

    When the boom hit in 1990s , people poured into IT because of the job opportunities. If this thesis is to believed , it was because the teaching was somehow better back then and today it's gone downhill, so people are leaving.

    Nice try. It's all about the economics of being a software engineer. The two things that have changed those economics are
    1) oversupply of labor through the devices of outsourcing and false claims made by corporations of desperate IT labor shortages coupled with lobbying Congress to increase, or make unlimited, the number of visas available for IT workers.
    Software patents which stifle innovation and curtail opportunities for programming entrepreneurs.

    The fact that both of these policies give unnatural leverage over marketplace dynamics to large corporations who in turn fund the re-election campaigns of the lawmakers who pass these laws means means ... everything.

    The free market is a great thing until it works to drive up wages for workers. Then it's a tragedy of epic propositions and someone somewhere has to do something!! That someone is generally your senator.

    1. Re:This got in here how exactly? by bdrees · · Score: 2

      Well, I too, am one of those old timers that faced tough times, for me it was almost 10 years ago I lost my great job, the difference is I chose to stay in the field for the experience instead of claiming unemplyment or flipping burgers, the down side, was I was paid about the same as a burger jockey. About a year ago, I finally got the oppertunity for another great job that landed in my career path, and am now reaping the benefits.
      My point to this story, while it may sound like gloating (its not), is that I believe its about the choices we make durning the difficult times. History has proven that NO job is stable, plan ahead and dont rely on anyone else!
      I'm absolutly with you on the cheap fodder being produced now days (I work with too many of them), and they just dont have the attitude of creating their career, they do what they can to get by, and thats about it. But that is their choice, they will have to deal with their consequences down the road.

    2. Re:This got in here how exactly? by Hieronymus+Howard · · Score: 2

      Did you actually bother to read the article?

      It clearly states that it's talking about Britain. It has nothing at all to do with either Comp Sci teaching in the US or the job market there. It's commonly known that IT teaching here in British schools is appalling (or worse). That's also on the factors behind the Raspberry Pi project - to get kids fired up about programming, as all they get taught in schools these days is how to use Windows and Office.

  11. Recent history would be better by suso · · Score: 2

    If they taught them recent computer history, like the last 10-20 years or so, then they would feel closer to the action and see where their place is to jump on the train. Teaching 1950s computing is likely to just lose them because the technology is so different.

  12. RCA 1802 by Kupfernigk · · Score: 4, Interesting
    In ancient history, if you needed a really low power microprocessor based system, there was a processor made by RCA called the 1802. It was CMOS, and I once demonstrated a development board running off two lemon halves with a copper and a zinc rod in each one. It was very slow but, and here is the point, it could be clocked down to zero. You could single step, not just instructions, but the entire cpu fetch/execute cycle, see the memory address go out on the bus, see the data. Although it had a stack pointer you had to manipulate it programmatically, and write subroutines to handle subroutines, nesting and returns.

    It stuck me then it would be the most perfect teaching tool, because you could do anything with it from teaching the von Neumann architecture to running BASIC on a terminal. The processor and its support chips are long dead (I'm writing about the late 70s), and there doesn't seem to be any modern equivalent.

    --
    From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
    1. Re:RCA 1802 by Anonymous Coward · · Score: 2, Informative

      At the risk of having the site melt down...

      http://www.6502.org

      All kinds of things there. Also, Quinn at blondiehacks has been throwing together her 65C02 project, errors and all, and it's rather fun reading.

  13. Re:IT is a bad career move. by unimacs · · Score: 3, Insightful

    I guess it's my bias, but I don't put a lot of stock in certifications and those you listed have nothing to do with programming. Certifications show that you know how to use the technology du jour but don't demonstrate that you have a fundamental understanding of how computers work. I'd also be suspect of a degree program that focuses on .NET or any one particular framework.

    When I'm looking to supplement our staff, sure I'd like to have somebody who's experienced with the technology we're using at the moment. At the same time, I'd take a clearly talented C++ developer whose never written a line of Java in his life and who really wants the job over somebody who is competent with Java but otherwise nothing to get excited about.

    Good programmers are good programmers regardless of language and they should be able to easily pick up new ones.

  14. Re:IT is a bad career move. by unimacs · · Score: 2

    I agree. If you have something to pair that programming skill up with, it can make a huge difference.

  15. Works for Women Especially by mx+b · · Score: 2

    I find in my classes that in general, people are alright with history to some degree. Interesting knowledge, but not super motivational to do it on its own. However, the women in the class really get more talkative once I point out important women in the history of computing and science. It's such a male dominated field that I think it encourages them that there's nothing wrong with having an interest in it. Men do not perceive the same bias in the workplace and so are less influenced by the personal stories of struggle and success.