1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Hi Guest, welcome to the TES Community!

    Connect with like-minded professionals and have your say on the issues that matter to you.

    Don't forget to look at the how to guide.

    Dismiss Notice

C / C++

Discussion in 'Computing and ICT' started by BarryRiley, Feb 3, 2012.

  1. BarryRiley

    BarryRiley New commenter

    Obviously there's been a lot of talk about programming languages lately, which ones we're going to teach in the future and how it's going to be done. I've heard a lot of talk about Java but nothing about C++. I thought this might be a nice way to explain the simple principles of programming as at it's most basic level, it's not drowned in headers and as daunting to look at as Java. What do you think of a bit of notepad C++ to compile a few simple programmes and teach some programming principles?

    On the subject of programming in secondary school in general, does anyone else get the impression that a lot of people on here seem to be immediately dismissing a language as teachable on here simply because it's out of their comfort zone? I see a lot of posts heralding VB as the way forward whilst Java would scramble the kid's minds and be completely unteachable. I just get the impression that these opinions are voiced by people know VB, but don't know Java.

    It's an exciting time to be an ICT teacher, and we're all going to be out of our comfort zones at some point. I don't think there's any shame in saying "I have no idea how I'm going to teach this" instead of "this is unteachable".

    Bit of a random rambling I know but what are your thoughts?
     
  2. DEmsley

    DEmsley New commenter

    Discovery lessons are great for both teacher and student and, provided you don't over do this, work great.
    My students love it when I cannot answer questions and compete to "beat the teacher" - becoming all too common an occurance these days but, provided your teaching is up to scratch this should not be a problem.
    We offer open choice on programming languages at both GCSE and A level with the caveat "If you use xx or yy we can offer more support".
    I don't know Java, I don't like what I've seen but I have one year 10 students who's just great with it. I just ensure he documents the code really well so I can follow what he's done and challenge where I think his logic or structures are suspect. An idea we took from the EdExcel Applied ICT A level is the line manager/developer model. Students have to explain their designs, code and choices etc to the line manager at formal meetings.
    Bit of a ramble too but hope it makes sense.

     
  3. gavcradd

    gavcradd New commenter

    I find that a bit condescending really. I "know" VB and use it as my language of choice for AS/A2 Compuing. I also "know" Java and C++ (and C, Pascal, Ada, ASP, PHP and a few others) - all covered either in my Computer Science degree or in my work as programmer before I came into teaching. I'd have to consult a text book when beginning any of them again but they're certainly not far outside my comfort zone.
    It's my (informed) opinion that a newbie programmer, especially one who is 14 years old, would baulk at having to use lines like "#include <iostream>" or ensuring that functions all return something (even just zero). the strict case sensitivity won't help either. Yes, it may well help later on to aid understanding, but when they're at the "hello world" stage, I want them to feel like they "get" what every line does and why it's there. When they're choosing the option for a subject and still have the freedom to drop it and pick up PE instead for the first few weeks, it's even more important.
    We should be appluading the very fact that teachers want to use any programming language, not criticising the choice of language! Frankly, anyone teaching using Qbasic or even pullng out the old BBC Micros from the cupboard would get my blessing if that's what they want to do.
     
  4. gavcradd

    gavcradd New commenter

    On a different note, I have thought of using VB for GCSE Computing and then swapping to something like C++ or Java for AS/A2 Computing - a gentle introduction, then something more powerful (and seen in a better light with universities) later on.
     
  5. I hate to be a doomsayer here but really:
    'comfort zones'?
    Substitute the word 'jobs' there.
    I really don't think that the Government's interest is in turning ICT teachers into a more relevant and useful bunch of Computing teachers; in a few years time there will be much less work for all of us as kids vote with their feet and do ANYTHING but the difficult Computing option and Heads give them a helpful push them when they look at the results.
    You really are being a little over-optimistic if you think they give a fig about you or your subject whether it be Computing or ICT.
    I feel really miffed that well-meaning but naive Computing advocates have given Gove and his cronies the ammo to destroy ICT/Computing in schools.
    So it goes.
     
  6. BarryRiley

    BarryRiley New commenter


    Didn't mean it to sound condescending. After all, there's plenty I don't know about programming, I'm sure with your background I know a lot less than you.


    As for the headers, all you really have to include to show the basics is iostream. We don't even have to worry about returning values, for the basics of variables, loops and if statements it's a nice language in my opinion.


    Maybe I'm looking through rose-tinted glasses getting too excited about it. I'll get back to you when I'm unemployed :)
     
  7. colwynexile

    colwynexile Occasional commenter

    Now then NotJohnBrown /NJBSU,
    1. since when have you ever shouted "we're all doooomed" (lol)
    2. do you seriously think after the stink Gove has caused with his comments that he'll be allowed to fail else industry and parents will string him up by his braces and his tart-sharp mouth really will be in an O shape then.
    3. I know *** all since looking at simple basic in the early 80s, but have got on a CAS course and am looking at sorting Python for next year. Don't give up man!
     
  8. Yes. Apologies. Very miserable - had a strong coffee this morning.
    Only some of us are doomed.
    Very popular minister with his home audience - only way we will lose him is if he is promoted.
    Doing Python with my daughters - quite hysterical - must post on my experiences!
     
  9. Probably because you'd have to be teaching a bunch of geniuses C++ first. I'm a good coder, I can pick up languages quickly enough, but C++ as a first language (National Semiconductor 8060 Machine Code if you're interested) would have thrown me.
    If you know C#, Java, Python, Pascal 5.5 up, picking up C++ is feasible. Pointless but feasible.
     
  10. BarryRiley

    BarryRiley New commenter

    At it's higher end it's incredibly complex yes, but in terms of just creating a simple input-output console program I think it would be a good method of teaching fundamentals. It's incredibly easy to just assign variables, input/output variables and create loops. In my opinion it's much easier than Java in this respect. Obviously we wouldn't be using it for bottom set Year 8s

    Why would you say it was pointless. I learned C++ before Java - I think you can do it either way and find the other language easy to grasp as a result
     
  11. Why not use C# ? or Small Basic ?
    At least then if you extend it you do so without the mad syntax.

     
  12. BarryRiley

    BarryRiley New commenter

    I suppose so
     
  13. JaquesJaquesLiverot

    JaquesJaquesLiverot Established commenter

    There's a whole lot of different issues getting an outing in these debates!
    C without the difficult bits? Isn't that JavaScript - which has the added benefit that you can do it in Notepad and don't need a compiler.
    Someone also said to avoid VB and forms. Well, you do end up with lots of messy scraps of code with a VB forms app, but you can knock up something that looks good quite quickly, and that could be good for motivation. I don't think it's a big jump from Scratch or GameMaker to VB in Visual Studio.
    Ultimately, different languages are largely the same at the level we're teaching them - KS3 kids aren't going to worry about C++ classes and operator overloading.
    The most intriguing statements are about students being turned off by the idea of programming. I've introduced the idea to a few students over the past couple of weeks, and they've all loved it.
     
  14. Perhaps it's about what you program. If you program stuff that has some practical result, even if it's very simple, that's better than programs adding 2 numbers.
     
  15. What exactly does Small Basic do that's so great / makes it better than VB as a choice?

     
  16. Tosha

    Tosha New commenter

    Ha Ha teach C++, mad! Memory management, copy constructors, deep/shallow copies, lack of libraries, great choice

     
  17. Well, firstly it's a proper Win32 application. And it's free. And Microsoft aren't trying to stop people using it. The object model is half way competent. It's got Intellisense. It's got a decent library system ; this with the object model means you can encapsulate things usefully. You can draw graphics that aren't GDI hacks.There's no security risk. You can't hack with it.
    Admittedly it's not that good at apps which are forms with win32 controls stuck on.

     
  18. I don't see the point of teaching C++ without using it fully, or getting into the detail of the language. If you're just going to use it for these basics, why not use C or Java, C# etc?

    As to whether it's suitable for school teaching ... well, I doubt it very much; if it's taught fully. I'm teaching a mixed grad/undergraduate C++ class starting in two weeks time; and, as I teach this course regularly, I know that they're going to have their brains fried (static classes, pure virtual functions, abstract base and friend classes, vtables and function pointers, templates, ...)
    Btw, I also wonder about the wisdom of teaching systems' programming languages. C and C++ are really the languages one would use to write compilers (and other languages), and operating systems in. Far better to teach something more forgiving - VB, Pascal, C#, BASIC - or perhaps something really funky like ML, Haskell - or Prolog perhaps?
     
  19. Have you ever actually written anything in Prolog ?

     
  20. Certainly, quite a lot as it happens!
    I'd recommend SICStus if you fancy having a go?
     

Share This Page