Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. First programming language for high school students?

First programming language for high school students?

Scheduled Pinned Locked Moved The Lounge
c++question
119 Posts 82 Posters 13 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K killabyte

    i would vote VB or Object Pascal for a first syntax to learn, i learnt to code with Delphi a long time ago was a useful begining.

    C Offline
    C Offline
    chaiguy1337
    wrote on last edited by
    #79

    killabyte wrote:

    or Object Pascal for a first syntax to learn

    Why on earth would you teach somebody just learning programming a dead language? Pascal hasn't been used in years. That's like teaching a baby Latin! Personally I don't even agree with teaching so-called "educational" languages like Turing. I honestly don't understand why people claim such languages are easier or better to learn. Why not just start with the latest language and tools? C# and VS2008. That's what I would do. I mean if he has trouble grasping it or it is too much of an overload maybe you could simplify things by breaking it down and focusing on a very simple language. I'll admit the initial overhead of C# (i.e. setting up classes, a static Main method, etc.) could be intimidating but you could always just say "ignore this for now and I'll explain it later". :) Just my 2 cents.

    “Time and space can be a bitch.” –Gushie, Quantum Leap {o,o}.oO( Looking for a great RSS reader? Try FeedBeast! ) |)””’)            Built with home-grown CodeProject components! -”-”-

    D K 2 Replies Last reply
    0
    • R Rosenne

      If not assembler, which would have forced him to know what a computer really is, then Java with clean object orientated code.

      C Offline
      C Offline
      chaiguy1337
      wrote on last edited by
      #80

      Rosenne wrote:

      If not assembler, which would have forced him to know what a computer really is

      A computer really is a series of abstractions layered on top of one another for the purpose of making complex things much simpler to do. Teaching him assembly would just scare the bejeezus out of him and accomplish nothing.

      “Time and space can be a bitch.” –Gushie, Quantum Leap {o,o}.oO( Looking for a great RSS reader? Try FeedBeast! ) |)””’)            Built with home-grown CodeProject components! -”-”-

      1 Reply Last reply
      0
      • S Stephen Hewitt

        I tend to think that it's better to learn from the bottom up, but it probably varies from individual to individual. I’m not suggesting you get carried away with this and start with assembler (when I started I didn’t even use an assembler but rather a monitor) but I do think that some understanding of the low level details makes you a better programmer, even when you’re using high-level languages. I’d probably go with C or C++. If C++ is used remember that you don’t have to learn the whole thing in one go; you can skip things like templates for example.

        Steve

        C Offline
        C Offline
        chaiguy1337
        wrote on last edited by
        #81

        When your father taught you to drive, did he start with the chemical reactions of gasoline molecules involved in combustion? Chances are he didn't even bother with the principles of internal combustion. Point being, you can learn this stuff afterward--and in fact if it turns out he really is interested I would fully recommend learning the nitty gritty details of computers--but how it works is not how to use it, and laying this stuff on him will accomplish nothing but tax his memory. And now for a random psychological thought: the human mind needs order and structure to learn. If you start laying a bunch of lower principles on him, without having a logical place (i.e. understanding) to store that information, he will just have to try to remember it all without understanding its purpose (remember cramming for exams?). On the other hand, if you start with the purpose, the reasoning and the big picture, he can start to build that tree up in his mind and put the branches where they belong--and this time because it's (forgive the pun) rooted, they'll stay there.

        “Time and space can be a bitch.” –Gushie, Quantum Leap {o,o}.oO( Looking for a great RSS reader? Try FeedBeast! ) |)””’)            Built with home-grown CodeProject components! -”-”-

        T 1 Reply Last reply
        0
        • R Rizean

          I'd have to go with C# as it leads in to C++ very easily and I supect he wants to write games. There is nothing better than C# for getting into game development with XNA. They have a whole series of videos for free from MS on game dev with XNA.

          S Offline
          S Offline
          Stomper01
          wrote on last edited by
          #82

          I agree. However, I suggest considering VB.NET. Don't be afraid of VB.NET. BASIC is syntactically more sensibly written than C derivatives, and starts one off with a more common sense attitude towards language syntax. Start him off with VB.NET, suggesting that he may move to C# when he feels like dealing with the C syntax wackiness, as it's closer to C++ and Java. Better yet, show him hunks of code from both C# & VB.NET, tell him the benefits of both, and let him choose which to start with. He can try both, as switching between the two is not a big deal. M$ is concerned with ease of use, and .NET is their pinnacle. He'll naturally learn object orientation and event driven programming with it, and it's easy to get started with. Java is also a good choice, with the NetBeans IDE (it's now the best free IDE). It's got that open source vibe, and multiple OS'es, including J2ME games on phones. But he'll be more productive initially with .NET. Flash is also a viable choice, although it is much more daunting to get anything done in the Flash programming environment, and then you're stuck with knowing only Flash. In summary: VB.NET, C# .NET, Java, maybe eventually C++. Show him Visual Studio 2008 (free edition) with VB & C# code, and NetBeans with Java code. See if he has a preference, and go from there. Then coach him about the logic basics like if/then, switch statements, etc.

          1 Reply Last reply
          0
          • R Rosenne

            If not assembler, which would have forced him to know what a computer really is, then Java with clean object orientated code.

            N Offline
            N Offline
            Nemanja Trifunovic
            wrote on last edited by
            #83

            Rosenne wrote:

            Java with clean object orientated code.

            Java clean? :~ Smalltalk maybe, but not Java.

            Programming Blog utf8-cpp

            1 Reply Last reply
            0
            • I I cant do that Dave

              I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David

              Q Offline
              Q Offline
              Qaos
              wrote on last edited by
              #84

              Ultimately it depends on why your son wants to learn programming. What is his interest? Games? Websites? User applications? Server apps? I would choose a language that would lend itself well to his interest and is not overly cryptic in syntax and semmantics. Even if you don't know the language, you could both learn it together. Just start with the basics like variable declarations/assignment and flow control with plenty of application. Don't rush the learning process. From there it will all depend on if he wants to be a software engineer, a software developer or something else. C#, C++, Java, and VB.NET are all good introductory languages. If it were my son, I'd choose C++ and teach him to clean up after himself. ;) It would make him a better programmer in the long run.

              Justin

              1 Reply Last reply
              0
              • I I cant do that Dave

                I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #85

                I agree that a well-rounded, quick results language is an excellent starting point, but I prefer to point people to the web. There are so many places to post a free web-page or small web-site complete with ASP, CSS, PHP, Python, etc. I found I could actually teach my (nearly) elderly father to think more like I do by having him write in HTML. The turn-around results are essentially instant. Expanding from that (which is something we have all had to do) to PHP 3 was really easy once I got him to understand that the directives were essential. My programming education was in the order of BASIC -> Pascal -> Java -> C++ -> PHP. Honestly, being dumped from Pascal to Java nearly drove me out of programming. I still can't do Java to save my life. It wasn't until I got to PHP that I got fired up again.

                --Taf P.E.B.C.A.K. (Problem Exists Between Chair And Keyboard)

                1 Reply Last reply
                0
                • I I cant do that Dave

                  I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David

                  G Offline
                  G Offline
                  grgran
                  wrote on last edited by
                  #86

                  IronPython, using the .NET framework and NotePad++ for editing. Then move to VB.NET with VS Express. Then to C# Then F# Then look at the IL0 to learn (a bit) about assembly ... then grab the MMIX simulator for hard core fun. Then move out to C or C++ Then Lisp Then Squeak (smalltalk) Note, I'm suggesting that one is better than another. However, python is a dynamic language (you can type on the command line an watch things happen). Using NotePad++ you get color highlighing without intellisense (it's good when you are just starting to look things up, you learn more about the classes that way). The exact languages or order after that isn't so important, but it's useful (if he remains interested) to learn how different languages approach similar problems. If he likes programming you might consider getting him involved in one or two of the many coding contests, they can be valuable learning experiences ... and fun :-) Good luck to you and your son

                  1 Reply Last reply
                  0
                  • M Member 96

                    Wow! Consider this response my alternative to a 1 vote: Just how out of touch are you with the concept of a kid learning something new for the first time? By your logic instead of giving children coloured blocks with letters on them we should be teaching them grammar instead. People have to get an *interest* in something to learn it, hitting them over the head with a lot of fussy details is exactly the right way to get someone to *not* be interested in learning to program. Typing skills? Who cares? If they are bitten by the bug and interested enough then you don't even need a teacher at that point, they'll learn everything they need to know on their own. I didn't even have a computer when I first learned to program, I found a good book on the topic, got interested and wrote many programs in a notebook by hand until I got my hand on a computer for the first time many months later.


                    "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

                    B Offline
                    B Offline
                    bjenner
                    wrote on last edited by
                    #87

                    +1, go with something you know well enough to help avoid too many dead ends. But that said, learning to overcome roadblocks is part of the process. Don't help too much. If the kid has a lot of drive, get something installed since installation these days can be a barrier to success (VS2008? Some other framework / IDE?), then give them a *few* pointers (not necessarily the C kind yet) and step out of the way. Wait to be asked. When walking, some tumbles are part of the process. You can't do that for them, and with out it they can't really learn. Have fun, both of you! P.S. I've heard that after Python, nothing is the same.

                    1 Reply Last reply
                    0
                    • I I cant do that Dave

                      I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David

                      S Offline
                      S Offline
                      sfrsabu
                      wrote on last edited by
                      #88

                      My recommendation would be Scheme - and there is even a good free textbook aimed at high school students available online. There is an ever increasing focus on functional technologies even in OO circles (LINQ, etc), so having a good understanding of that approach to problems should help across most platforms. http://www.htdp.org/

                      1 Reply Last reply
                      0
                      • C chaiguy1337

                        When your father taught you to drive, did he start with the chemical reactions of gasoline molecules involved in combustion? Chances are he didn't even bother with the principles of internal combustion. Point being, you can learn this stuff afterward--and in fact if it turns out he really is interested I would fully recommend learning the nitty gritty details of computers--but how it works is not how to use it, and laying this stuff on him will accomplish nothing but tax his memory. And now for a random psychological thought: the human mind needs order and structure to learn. If you start laying a bunch of lower principles on him, without having a logical place (i.e. understanding) to store that information, he will just have to try to remember it all without understanding its purpose (remember cramming for exams?). On the other hand, if you start with the purpose, the reasoning and the big picture, he can start to build that tree up in his mind and put the branches where they belong--and this time because it's (forgive the pun) rooted, they'll stay there.

                        “Time and space can be a bitch.” –Gushie, Quantum Leap {o,o}.oO( Looking for a great RSS reader? Try FeedBeast! ) |)””’)            Built with home-grown CodeProject components! -”-”-

                        T Offline
                        T Offline
                        Thelly
                        wrote on last edited by
                        #89

                        While I somewhat agree with the "jump in and drive" notion, programming is going to range from "Mechanic" to "Engineer working on NewPanaceaEngine #45," whereas driving gets you into your editor. If you have a good understanding of either Java or C# (especially in terms of how they manage memory for you, which will be important once you're working on algorithm implementation... probably sooner than one might think) they can be good learner-languages because they provide a VERY easy starting point, both can transition to a GUI quickly, both are applicable almost everywhere (too clunky for ad-hoc scripts, for example, but that's hardly something to worry about when you're trying to get started), and both have a nice $0 price tag complete with some nice development helpers. It's really just a matter of "pick your poison" as far as if you want to be locked into MS for a while, or locked into Sun for a while. Personally I'd go with C/C++ though- all the power you need if he really dives into things and wants to learn all that lower-level stuff the runtime languages have decided to shield you from, but easy to pare down to a simple subset for getting one's feet wet without being overwhelmed. Graphics might be a bit of a stumbling block (but really, anything more complex than a form is tricky no matter what you're writing in), but the ability to do almost any "type" of programming (OO, functional, assembler...) without changing your "base" language is a big plus IMO.

                        1 Reply Last reply
                        0
                        • I I cant do that Dave

                          I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David

                          S Offline
                          S Offline
                          Snowman58
                          wrote on last edited by
                          #90

                          In my humble opinion the first language you should teach him is flow charting on paper. I know none of us actually do that anymore, but he needs to understand structure & logic of problem solving on the computer before he jumps into any language. If he can flowchart the problem using the common elements of computer languages it will not matter which language he uses. Languages are fundamentally the same, differing only in syntax, strictness and ease of use. Much like wives and girl friends are fundamentally the same, but each one is different. You have to learn the core rules of dealing with the opposite sex and then how to interface with each one. Now if you come up with a teaching program for that problem please post it!

                          1 Reply Last reply
                          0
                          • C chaiguy1337

                            killabyte wrote:

                            or Object Pascal for a first syntax to learn

                            Why on earth would you teach somebody just learning programming a dead language? Pascal hasn't been used in years. That's like teaching a baby Latin! Personally I don't even agree with teaching so-called "educational" languages like Turing. I honestly don't understand why people claim such languages are easier or better to learn. Why not just start with the latest language and tools? C# and VS2008. That's what I would do. I mean if he has trouble grasping it or it is too much of an overload maybe you could simplify things by breaking it down and focusing on a very simple language. I'll admit the initial overhead of C# (i.e. setting up classes, a static Main method, etc.) could be intimidating but you could always just say "ignore this for now and I'll explain it later". :) Just my 2 cents.

                            “Time and space can be a bitch.” –Gushie, Quantum Leap {o,o}.oO( Looking for a great RSS reader? Try FeedBeast! ) |)””’)            Built with home-grown CodeProject components! -”-”-

                            D Offline
                            D Offline
                            Dan Neely
                            wrote on last edited by
                            #91

                            logan1337 wrote:

                            Personally I don't even agree with teaching so-called "educational" languages like Turing. I honestly don't understand why people claim such languages are easier or better to learn. Why not just start with the latest language and tools? C# and VS2008. That's what I would do.

                            Because it sidesteps the holy war between the window and *nix camps. The 'official' compiler when I started college in 99 was borlands. IT was a compromise between the two camps. Past 'CS101' everyone either used GCC or VC6 as personal preference and targeted platform dictated. It was fun once, we had a comparative programming assignment where everyone wrote the same app and then evaluated each others code. The version of VC6 and the version of GCC being used disagreed on namespace issues. Unless you knew about it in advance and used the preprocessor to work around it there wasn't any cross platform compatibility. :doh:

                            Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

                            C 1 Reply Last reply
                            0
                            • I I cant do that Dave

                              I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David

                              S Offline
                              S Offline
                              slvanya
                              wrote on last edited by
                              #92

                              When helping a student (high school) to choose which lanaguge to learn first, a meaningful analogy can and should be drawn between that student choosing his first computer language to learn and his first foreign language to learn. Which language is better for his career is irrelevant he will get to that soon enough. If my son chooses to learn Greek not Spanish I will be enthusiastic. If he wants to learn Turbo or XQuery I will also be enthusiastic. Why, because his enthsusiastic and free choice, not based on pragmatism, but his curiosity and intuition will help him continue down what hopefully be a very enjoyable and exciting journey. With that in mind, when choosing which language to "take" aka learn, what the young student needs is a "course" catalog elucidating the differences (benefits and qualities) between as many of the languages as possible. A resource such as: http://www2.latech.edu/~acm/HelloWorld.shtml or http://home.nvg.org/~sk/lang/lang.html are ideal. And these are only two examples from a quick search on DMOZ under http://www.dmoz.org/Computers/Programming/Languages/Comparison_and_Review/ Therefore, I think by and far the best (most enjoyable and educational for the student) help that a parent can give their child whom is choosing their first language to learn is to give them as descriptive a "catalog" with as many languages as you can find. So they can be excited about the decision they as what will always be (looked back upon many years later) as their first (perhaps of many) language.

                              1 Reply Last reply
                              0
                              • I I cant do that Dave

                                I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David

                                T Offline
                                T Offline
                                tm_quinn
                                wrote on last edited by
                                #93

                                I think you should start your son off with a functional Language. Yes I know, this is the religious war you were talking about avoiding. But if the Idea is to present him with the essence of what we do; IMHO that is a basic understanding of the implementations of algorythms, there is nothing that makes it clearer than a functional langusge. Yes, I kno it's not going to directly prepare him for a J-O-B, but he's in the 9th grade. As to which one, I personally favor Haskell.

                                1 Reply Last reply
                                0
                                • I I cant do that Dave

                                  I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David

                                  K Offline
                                  K Offline
                                  kinar
                                  wrote on last edited by
                                  #94

                                  IMO, every student should be forced to take a logic course before being taught any language. Logic is the basis for every programming language. If you don't know it, then you can't really learn howto program. If, then, else, and, or, nand, nor, xor. If you don't understand all of these concepts (and I truely mean understand them), you will never be a quality programmer. IMO, basic (not necessarily Visual) is the simplest implementation of logic out of any of the other languages. I would suggest teaching logic using basic initially. Followed by teaching application structure in various languages starting with Basic/VB, C, C++, C#, and last but not least, HTML. After that, they can choose which language (if any) they want to delve into in depth.

                                  1 Reply Last reply
                                  0
                                  • D Dan Neely

                                    logan1337 wrote:

                                    Personally I don't even agree with teaching so-called "educational" languages like Turing. I honestly don't understand why people claim such languages are easier or better to learn. Why not just start with the latest language and tools? C# and VS2008. That's what I would do.

                                    Because it sidesteps the holy war between the window and *nix camps. The 'official' compiler when I started college in 99 was borlands. IT was a compromise between the two camps. Past 'CS101' everyone either used GCC or VC6 as personal preference and targeted platform dictated. It was fun once, we had a comparative programming assignment where everyone wrote the same app and then evaluated each others code. The version of VC6 and the version of GCC being used disagreed on namespace issues. Unless you knew about it in advance and used the preprocessor to work around it there wasn't any cross platform compatibility. :doh:

                                    Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

                                    C Offline
                                    C Offline
                                    chaiguy1337
                                    wrote on last edited by
                                    #95

                                    dan neely wrote:

                                    Because it sidesteps the holy war between the window and *nix camps.

                                    Yes, that's a good point I hadn't thought of. I guess ideally we would have "standard" languages for programming like we do for XHTML, XML, etc.

                                    “Time and space can be a bitch.” –Gushie, Quantum Leap {o,o}.oO( Looking for a great RSS reader? Try FeedBeast! ) |)””’)            Built with home-grown CodeProject components! -”-”-

                                    1 Reply Last reply
                                    0
                                    • I I cant do that Dave

                                      I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David

                                      J Offline
                                      J Offline
                                      Joel Palmer 0
                                      wrote on last edited by
                                      #96

                                      Take a look at this: http://phrogram.com/[^] My 14 year old loved the predicessor to www.phrogram.com which was www.kidsprogramminglanguage.com. I may need to buy this new version. As said in a previous post, kids (all learners) need to get some immediate gratification in order to build confidence and excitement. Once you accomplish that, their own motivations will take them far. I like this approach because at its core is the .NET framework. The writers have gone through a lot of effort to make the experience very visual. The point is that syntax is 2nd to helping someone get familiar with constructs. Teach the power of an "if" statement or a "loop" and don't get caught up in "curly backets or not" :doh: discussion. In KPL, you could dig down into the "real" code. I haven't investigated this version to see if that is allowed. Yes, a smart kid will get bored with the high-level language this provides, but the tool should allow them to go deep if they want. Use this tool to build their learning context. This tool introduces concepts that become complicated very quickly if they are trying to accomplish the task raw. Ever try to go directly at DirectX to produce a 3D game? Not entry level. However, this introduces the concepts, helps the kid build some momentum and lets them have some fun. Then, if they love it, they can take it head-on and will have established a context from which they can work. Good luck. The best teacher isn't the one who gives all the answers; its the one who asks the best questions. :-\

                                      Joel Palmer Data Integration Engineer

                                      1 Reply Last reply
                                      0
                                      • I I cant do that Dave

                                        I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David

                                        A Offline
                                        A Offline
                                        Abdellatif_El_Khlifi
                                        wrote on last edited by
                                        #97

                                        vb.net is one of the best choices to learn programming and to produce applications faster. After seeing a complete application done easily kids would be impressed and attracted more and more by programming world. Through the years and when the experience grows the little programmer will have a better idea about what he/she wants ( kind of programming he/she prefers). In addition, it will be clear to him that there are more sphisticated programming languages and more powerful ones to do advanced tasks. I think that learning VB.NET or C# at the beginning and then to move to C/C++ to have full power ;)

                                        1 Reply Last reply
                                        0
                                        • I I cant do that Dave

                                          I don't want to start a religious war here or have to wade through a history of computer languages. I would have posted on /. for that! My 15 year old son (ninth grade) wants me to teach him programming. I don't want to traumatize him with assembler -- dealing with me should be sufficient. What would be a good first language to use? We both think a barebones implementation of Life (John Conway's ...) could be a good first project. Source code should be available in virtually every language for every possible platform. He's looked at Scratch and MindStorms. He thinks they are too simplistic and wants something that is deeper. (I know MindStorms has C++, etc., but the Lego platform isn't inspiring him.). And, I don't even know if either Scratch or MindStorms is up to the task of Life. Next up might be Micropolis (SimCity) although that could be a bit daunting. Development platforms can be XP or OS X. Thanks all, David

                                          T Offline
                                          T Offline
                                          T800G
                                          wrote on last edited by
                                          #98

                                          For complete beginners (as I was ;) ) I recommend AutoHotkey. Although a script-language, it has everything but shiny graphics: advanced+easy GUI making (easier than MFC ;P ), very good file manipulation (great with text files), simple sound, PLUS, it can compile scripts to exe (what more do you need?). You should see what some people have done with it, in fact you can do anything that ntdll.dll or any other system dll has exported function for (pointers and buffers, no problemo), plus some COM stuff. That's basics, as a next step toward geekness, c++ is the one and only way.:cool:

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups