back to article Doctor Who and the Dalek: 10-year-old tests BBC programming game

Doctor Who has been pressganged into the BBC’s “Make it Digital” push to help kids understand computers rather than just playing with them. Its answer: an educational video game. The cunning plan is to sweeten the task of understanding basic coding by sneaking it into something that is fun, in order to reach the kids who don’t …

Page:

  1. dogged

    hold on...

    Is this thing using some kind of graphical logic loop or is it using VB?

    I'd be cautious about teaching kids VB as a starter language. It can create some horrible syntactic habits in older programmers, god knows what case-ignorance and polymorphism without inheritance could do to kids.

    Which brings us on to thinking about what might be a good starter language for kids (or anyone). Not Javascript, not even just the "good" parts. It's incoherent and inconsistent. Not C, not C++, not C# - there's too much scope for writing horrible code without a commitment to best practise and understanding testing and refactoring. Not bloody Pascal. Ew. So what does that leave?

    F#? .... actually, you could do a lot worse. It'd be good for their maths skills too.

    1. James 51

      Re: hold on...

      Why not Pascal? I know of lots of courses that used it as their training language (before moving to Java).

      1. dogged

        Re: hold on...

        Because it's wasted knowledge. You will literally never use it outside of education.

        I wouldn't teach Java either. It only just got lambdas, for christ's sake. As for working sensibly with an expando equivalent - forget it.

        I can't recommend python because I don't know it and have never felt the urge to learn it. It might be perfect or it might just be something that people who are bad at C++ like to tell me is wonderful. I try not to judge.

        1. stucs201

          Re: I wouldn't teach Java either.

          Java does have one merit when it comes to teaching kids:

          Kids love Minecraft.

          Since that and mods for it are written in Java then Java at least has merits from the motivation side, which is also important if you want the kids to actually be interested and take any notice.

        2. Tyrion

          Re: hold on...

          > I wouldn't teach Java either. It only just got lambdas, for christ's sake.

          And the first thing a beginning programmer absolutely needs to know about is closures and anonymous functions.. Sigh.

          People often dismiss it, but there's no better language than pure C for learning basic procedural programming. It's simple, fast, and universally supported. Grab a GNU/Linux distro, install GCC and VIM, and away you go. A lot of people seem to be championing the idea that programming must be dumbed down to a reductionist agenda, and I think that's a mistake. Nothing worth learning is acquired that way.

          The fact is, a lot of student won't be interested in the science of computing or programming, just like many aren't interested in physics, chemistry, or maths. Spoon feeding them a simplification of the subject matter won't change that reality.

    2. wikkity

      Re: hold on...

      Forget the language, that is simply a tool. It is the logical thought and reasoning that goes in a developers mind and that is what is being exercised here.

      1. dogged

        Re: hold on...

        This is the same reasoning that forced kids to learn Latin (and I should know because I had to) which was eventually discarded as an absolute waste of time.

        It's a different waste of time if it's code, is it? A useful waste of time? "Oh, we're teaching them to think?"

        Fuck that. Teach them something you can use and make actual things that don't suck with. Then they will make actual things.

        Pascal is electronic Batik.

        1. Martin
          FAIL

          Re: hold on...

          But by your argument, we should only teach kids Excel and Word for office use, as that's what they're going to need. But that's completely wrong. We should teach kids how to use SOFTWARE - so they can use Microsoft Office 2007 or Office 2010 or Libre Office or Google Docs and not be phased because it's not exactly the same.

          Similarly - we should teach kids to program - not teach them a specific programming language. Scratch, Pascal, Python - doesn't matter. Hell, I learned to program with Algol and switched soon after to Basic and then Fortran. And my first actual job was in Assembler. It's the principles of basic algorithms you're trying to teach ten-year-olds - not the details of object inheritance, polymorphism and operator overload.

        2. wikkity

          Re: hold on...

          Maybe we should give toddlers oil paints then rather than wax crayons.

          Seriously, I know plenty of people who know c++/java/etc inside out, does it make them a good developer? No, it is the problem solving ability that makes them them a good developer. A language is nothing but a tool used to express how to solve a problem. Last week I've used 5 differnt languages, more if you also include shell/scripting languages. Am I unique for that, no, it is simply the nature of our work, some tools are better for different tasks, the language is nothing but a way to convey out intent to the compiler.

          Teaching a 10 year old a specific language for the puproses of they may use it 10+ years later is crazy talk, sure many of us learn't using lower level methods but those were not lessons thrust on to us, it was out of our interest in discovering. Sure move onto a "real" languages later but the learning the ability to break problems down into smaller pieces and building a solution that fits together is much more benefical as a starting point. It's also more likley to encourage them rather than getting bogged down by obscure compiler erros because they've fogot a semi colon in the header file.

          1. dogged

            Re: hold on...

            > Maybe we should give toddlers oil paints then rather than wax crayons.

            reductio ad absurdam doesn't help your argument and fails in any case. There's nothing wrong with crayon art. There is no reason why something done with crayons can't be worth millions or why crayons couldn't be used to design something that changes the world.

            What you're not going to do is write a program that changes the way the world thinks about anything in Pascal. You'll bin it. You will waste idea after idea on a dead language.

            It's like suggesting that kids should write all their essays in Saxon English rendering them effectively worthless for the future.

            1. hplasm
              Devil

              Re: hold on...

              "... or why crayons couldn't be used to design something that changes the world."

              You always manage to get Windows Metro in somehow...

            2. Martin

              Re: hold on...

              You don't learn to read by starting with D H Lawrence.

              You don't learn to write with calligraphy pens.

              You don't learn art by starting with oil paints.

              You don't learn physics by starting with quantum mechanics.

              You don't learn French by starting with Flaubert.

              You shouldn't learn to program by starting with C or C#.

              1. M Gale

                Re: hold on...

                You shouldn't learn to program by starting with C or C#.

                C# is not C. Nor is it even remotely C++. Microsoft calling it "C"-anything was probably more of a marketing decision than anything based in reality. They could have called it "Microsoft Java" and been far more accurate.

                Anyway, last time I saw a class split into two, with one half learning C first and the other half learning VB first, the C-firsters took the switch to VB halfway through the course incredibly well. Duck-to-water well in fact. The people who did their first couple of months with VB and then switched to C basically shat bricks.

                1. Suricou Raven

                  Re: hold on...

                  I think they called it C# because it inherits the syntax from C.

                  Just like C++, Java, Perl* and just about every other structured language since, including Unrealscript.

                  *With bits added on. Lots of bits, but it's still clearly C beneath with the curly braces and parameters in parathensis.

            3. Tom 7

              Re: hold on...

              @dogged - no you will not bin the pascal work! If its something good then it can be linked in to other stuff without being re-written.

              You can re-use stuff from other language with ease nowadays! Or at least you could 30 years ago.

            4. wikkity

              Re: hold on...

              > reductio ad absurdam doesn't help your argument and fails in any case. There's nothing wrong with crayon art

              Hardly meant to be taken seriously. Plus, there are people don't think Latin is too bad, just as you like crayon art.

              >What you're not going to do is write a program that changes the way the world thinks about anything in Pascal. You'll bin it. You will waste idea after idea on a dead language.

              I never mentioned any language, if I was desiging a course for kids to learn "proper" langauge based programming Pascal would certainly not be considered

              > It's like suggesting that kids should write all their essays in Saxon English rendering them effectively worthless for the future.

              So the concepts and ideas the child expressed in Saxon English would not be abe to be transfered to a different language? True, I'm sure there is likely to be some aesthetics lost in translation if it was poetry.

              This week, I've worked in C (no ++ there), java and javascript on the same system, that software shares the same domain model, interact with each other via a defined vocabulary/contract, there is even an embedded DSL based on scheme in there. The nature of the language imposes some mechanical issues at the implementation level but that is all they are, _implementation details_. In the same way I might print a picture with laods of tiny dots or pain the same image with brush strokes.

              The implementation medium is a way to express your intent, if you can't express your intent in a particular language easily then it is the wrong choice for the problem, this looks perfectly good for 10 year olds sterring a Dalek

    3. phuzz Silver badge
      Headmaster

      Re: hold on...

      I'm pretty sure that there's no language that we could propose teaching to children (or anyone else), that wouldn't be shouted down by at least some commentators.

      Consequently I think the wee buggers should have to learn assembly.

      1. Loyal Commenter Silver badge

        Re: hold on...

        Consequently I think the wee buggers should have to learn assembly.

        Screw that, give them a copy of Knuth's The Art of Computer Programming and make them write everything in the purely hypothetical MIX assembly language!

        To be honest, there's a lot of value in teaching people how things work at a very basic level. As a developer who works with high-level languages every day I may not need to know how to do assembly-level stuff very often, but a firm knowledge of the fundamentals proves useful more often than you'd think.

        1. dboy

          Re: hold on...

          Turing machines. Start with first principles and all that...

    4. Lusty

      Re: hold on...

      "So what does that leave?"

      Ada is what that leaves. The perfect language for either teaching or torture depending on viewpoint. Those who understand programming will get on fine and those who don't will never try coding again thanks to the torture that is the Ada compiler. Problem solved, written code quality improves, wages go up and all the pretend programmers leave the profession forever. As a result we would probably drop 80% of the project managers too since there would be so few programmers required...

      1. dogged

        Re: hold on...

        @Lusty - upvoted for the idea of fewer project managers. That's always going to help productivity.

        I seem to be unpopular with the 14 programmers who couldn't bear to leave VB behind today.

        1. sabroni Silver badge

          Re: I seem to be unpopular with the 14 programmers who couldn't bear to leave VB behind today.

          Unpopular? No, the replies clearly state why they disagree with you. The concepts you need to learn to code are language agnostic.

          Stop pretending it's all VB diehards hating. (Though you've clearly no knowledge of vb.net....)

    5. PassiveSmoking

      Re: hold on...

      Uh guys?

      We're talking about 8-11 year olds here! This is pretty much perfect for that. All it's doing is trying to get across the idea that a program is a list of instructions, some of which can repeat, and some of which you might or might not do depending on whether certain conditions are met or not. If you throw the complexities of a full-blooded modern programming language into the mix you're only going to make it incomprehensible for everyone but the wunderkinds and scare kids off instead of getting them interested, which is the ultimate goal of this project after all.

      Lets teach the little darlings to walk before they can catch exceptions and write recursive methods, hmm?

    6. IsJustabloke
      Facepalm

      Re: hold on...

      You're missing the point.

      The point is not to teach them "programming", the point is to spark interest in programming and I imagine that this will do the job nicely...

      PASCAL is a great language to teach people the basics of programming.

    7. Anonymous Coward
      Anonymous Coward

      >"Is this thing using some kind of graphical logic loop or is it using VB?"

      Seriously?

      Why don't you try actually reading the article and finding out.

      If that's too much trouble for you, just look at the pictures, which also make it perfectly clear.

      You're pretty clearly not smarter than a 10-year-old.

  2. Anonymous Coward
    Thumb Up

    This needs a physical toy! Time to bring back the turtle!

    1. SolidSquid

      Why not go with something a bit more modern and make a cheap quadcopter that can be programmed with scratch/lego mindstorms sort of approach. They'd have something they could actually make fly around the room rather than slowly crawl along the floor. As much fun as the turtle could be for us, commodity hardware like that has gotten a *lot* cheaper and you could put together something much fancier these days.

      Unfortunately it's unlikely that *any* physical hardware would be brought in though, it's just another expense the schools can't afford. At least the BBC's software is free for them to access, so could reach a wider audience

      1. Anonymous Coward
        Anonymous Coward

        "Unfortunately it's unlikely that *any* physical hardware would be brought in though, it's just another expense the schools can't afford."

        A couple of years ago I bought some surprisingly cheap radio controlled cars for the neighbours' under 12 kids to play with in the summer holidays. I soon discovered I needed to keep a stock of them. The cars needed repairing within a couple of hours. Controller telescopic aerials were bent - and wire ones pulled off.

        I had forgotten that kids get quite destructive when they are having fun - especially when vying with each other.

        In my day any radio control was a very expensive purchase - the province of adults. As teenagers one of our more affluent friends had a Jetex motor which was used to propel Airfix model cars to inevitable destruction.

        1. stucs201

          re: Never got enough time with the turtle

          Any would have been an improvement. I'm fairly sure the school had one, but it was one of many bits of hardware than hardly saw the light of day and spent much of their time locked away.

          The turtle was hardly alone in being kept away from most (or even all) of the kids though. The ST in the music dept. was pretty much exclusively for the use of the small handful of kids who played multiple instruments (most of whom had zero interest in computers). I think I saw it once (and then only because a friend who did go on to be a professional musician let me into the closest where it was kept). The ST wasn't the worst though - as far as I'm aware the Z88 and the PPC640 were personal toys for the computer teacher and were never allowed into pupil's hands.

    2. WraithCadmus
      Boffin

      FORWARD 20; LEFT 90; BEEP

      Never got enough time with the turtle, does remind me I need to find my copy of Robo Rally.

      *does the Robo Rally dance*

      1. Dave 126 Silver badge

        Re: FORWARD 20; LEFT 90; BEEP

        The hardware to make a 'Turtle' is incredibly cheap these days. When I look at some Chinese websites that sell quadcopters, motors, sensors and the like, I keep thinking 'Now is a great time to be

        an eight year old boy'.

        I can't comment about 8yo girls, because I've never been one.

        1. Rosie Davies

          Re: FORWARD 20; LEFT 90; BEEP

          Same story for an 8 year old girl. Though obviously the results would be more efficient, better designed and with less random bits hanging off because waiting for the glue to dry was BOR-ing!*

          Rosie

          *yes I know, I am a horrible, sexist sow.

          1. Ken Hagan Gold badge

            Re: Same story for an 8 year old girl.

            "Though obviously the results would be more efficient, better designed and with less random bits hanging off because waiting for the glue to dry was BOR-ing!"

            That would be sixist if you tried to argue that *all* boys and girls fitted the stereotype, but if you just arguing four or fives nines-worth then I think it would be a doddle to find the supporting evidence. (Disclaimer: I've just come home from helping at my local school's code club. My sample size is only a few dozen.)

          2. Anonymous Coward
            Anonymous Coward

            Re: FORWARD 20; LEFT 90; BEEP

            Yeah but it is pretty much true. (And funny).

            What isn't funny is a similar statement by a man wouldn't be treated the same.

      2. bpfh

        Re: FORWARD 20; LEFT 90; BEEP

        How about a BigTrak?

    3. Anonymous Coward
      Happy

      Or use a tiny dalek instead of the turtle !

    4. PassiveSmoking

      Turtle + Death Ray = Dalek!

  3. Voland's right hand Silver badge

    VB for children? I need to clean my keyboard... coffee all over it...

    FFS, even my junior's school got it right - they start with Python at the age of 12 - the age is chosen so that the kids know the idea of a variable.

    Myself - I am a recovering perl adict in python & C rehab. As such I can see the rationale and approve of Python as a choice. You need clean, consistent, well defined concepts. No "this thing is an object, but this thing isn't". It is for the same reason Pascal was taught in Uni once upon a time. It is not because it will be useful in your career (it will not be), it is because it allows the professor to illustrate all concepts in a consistent manner.

    So from that perspective spaghetty languages (Perl, C++, VB, etc) which carry 15+ years of inheritance dating back to the days when the question "What is this new and shiny object thing?" did not get you fired, are a very bad choice.

    By the way, If you want to start earlier, just teach them the idea of a variable. Worst case scenario you will get yourself called to school. My dad got dragged in when I was 7 year old and the teacher found out I know negative numbers. I am expecting myself to be dragged in any day when the teacher loses it with my daughter knowing how to do tall 5-7 digit number subtraction, addition and multiplication at the age of 6.

    1. g00se
      Joke

      Re: VB for children?

      Who else?

      1. Captain TickTock
        Childcatcher

        Re: VB for children?

        Won't somebody think of the children?

      2. Tom 7

        Re: VB for children? Who else?

        I used it to upgrade the offices version of SQLSever4.5 (?) to do all the things we needed it to do that were on offer in the next version without actually having to spend around £35K upgrading everything for the sake of keeping some bugger who'd heard of a new feature he wanted happy.

        You can do good things in almost any language if you want to!

        Mind you I was well pissed off when I discovered they'd sneaked OO into it and not really told anyone - that would have saved me a few hours!

    2. Tim Almond

      VB

      Who cares? I recently wrote a windows service for a company in VB.NET. Not my first choice, but it compiles down to the same MSIL as C#. it is almost a copy of C# with different syntax. There's nothing "spaghetty" about VB.NET - it's an OO language in the same way that Python is.

      All that really matters is concepts - loops, decision and later, OO concepts. Once you've got those, you can pick up almost any language quite quickly. There's the odd differences in syntax rules, languages with strong typing and not (damn you, Javascript) but most of it's very similar.

      If VB.NET works for getting kids into coding, great.

      1. Arnold Lieberman

        Re: VB

        I think you mean, you can pick up any imperative language quickly. Try writing SQL in an imperative style (cursors etc.) and you'll end up with a painfully slow process. As for Prolog...

    3. DaveK

      Re: VB for children? I need to clean my keyboard... coffee all over it...

      Your first priority should be to clean your glasses, not your keyboard. Nothing in the article even remotely suggests they are teaching VB to kids.

    4. Anonymous Coward
      Anonymous Coward

      @Voland's right hand

      >>It is for the same reason Pascal was taught in Uni once upon a time. It is not because it will be useful in your career (it will not be)

      There's many wealthy Dynamics NAV programmers out there, who would disagree with you.

  4. JDX Gold badge

    You mean they actually made a programming tool that is useful AND fun?

    I'd never have guessed that reading the half-baked ideas floating around. Well done, I think.

    1. Cliff

      Re: You mean they actually made a programming tool that is useful AND fun?

      The sooner we break down the distinction between programming and puzzlesolving, the better ;-)

  5. Crisp

    I'm a little disappointed that it doesn't come with an actual Dalek robot.

    It probably wouldn't take me too long to build one though...

  6. Simon Harris
    Unhappy

    copy of Visual C++ as their ideal Christmas present

    If I was a kid, I'd be a bit annoyed if my Christmas present was something I could have downloaded for free!

    1. Tom 7

      Re: copy of Visual C++ as their ideal Christmas present

      Especially as I was already using eclipse and netbeans to drive a linux cluster and the VisualC++ would cost me a years pocket money in hookey MS installs.

Page:

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like