First programming language for high school students?
-
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
D Programming Language. It's very good. Someone wrote a "Life" in it. You can find information at www.digitalmars.com/d and www.dsource.org/projects. I also recommend using the Alternative Standard Library Tango found at dsource at www.dsource.org/projects/tango. It will make learning and creating stuff a lot easier and has lot's more features (threading for example) than Phobos. Lester L. Martin II
-
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
-
Dear Mr: PASCAL language is the best language for teaching programming. the PASCAL was design for teaching purpose. Regards Computer Teacher.
-
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
Trying to decipher which language a high-school student should learn from professional technicians is a futile effort as you can see from the responses. Everyone of us has our personal favorite and like fighter pilots during WWII, each of whom thought their plane was the best in the war, we technicians do the same with languages. There is no right or wrong language to use in teaching. All modern languages are object based in one way or another. However, the one language I would stay away from is C or C++. Both of these languages have been the source of tremendous defect rates in application development over the years because they are both difficult to learn well and thus to use properly. Any real C\C++ developer will agree with this and would admonish those who consider these languages simple to learn. For all the negatives promoted against the BASIC languages by many technicians, one must realize that this is mostly complete nonsense. Both VB.NET and other such versions such as RealBASIC are quality products. BASIC has always been a major foundation for both learning and developing applications in many areas. There is nothing wrong with BASIC except to those who simply prefer curly-braces or arcane syntax if they are using a variant of C\C++. C# is merely VB.NET with curly-braces. I program in both fluently and see practically no difference between them. Both have excellent development environments to work in... And both do exactly the same thing at the same speeds in practically all cases. Java is more complex to learn, not so much from a syntactical perspective as compared to C# but from an API standpoint. The APIs for Java are both broad and deep and can be quite daunting to a newcomer. Also the support environments of the peripheral services such as databases can be somewaht more complex than those of .NET. However, using the NetBeans IDE from SUN Microsystems makes the process of learning and using this language an easier task. My personal favorite is Pascal and was for many years the standard in educational institutions. However, today a complete development environment could be rather expensive. Nonetheless, if this is the route you may want to take, I would suggest looking at Chrome-Pascal for .NET now known as "Oxygene" from RemObjects Software. Python is a cornerstone in the dynamic language community which has very broad support. Far more so than these new "fad" languages such as Ruby, Groovy, Scala; all of which by the way do their jobs and well but are frivolous
-
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
Concerning the typing I merely suggested that neglecting something the kid already has learned (hopefully) within something new that he wants to learn is not a useful argument. I didn't say I want to teach him typing in addition to programming, just that the property of a language not to take care of proper typing is not sth that should be an argument in favor of it! Concerning the complexity of what someone might learn, we're not talking about a 3-year-old playing with colored bricks, but an intelligent, curious teenager who wants to learn something new. If he really wants to learn something, give him a challenge, not something he gets bored about after 5 minutes. Taking myself as an example, when I was 15, I was able to spend days and weeks on given problem, such as solving the workings of a Rubik's Cube. I even worked to improve my findings much later. OTOH other 'puzzles' that I could work out within a day I all but forgot about, knowing that I would be able to relearn it on a whim. I don't know what your preferred style of learning is, but in my experience, I learned least from easy successes, but most from hard earned failures! In the end it was the latter that drove me to learn even more and try to do better in the future, try to anticipate all those nasty little bugs that are the daily bread of any programmer. I know, some people prefer the easy way, and with powerful frameworks like VB.net you can get a long way. But it is exactly those people who have the most difficulty when they are forced to switch to other, more restrictive, programming paradigms. I know that, I've worked with them. Maybe my conclusion was a bit unclear. To be more concise: If you think your kid really wants to learn how to proper program and has the mind to grasp the concepts, do him a favor and start with a language that offers some insight into proper design and programming paradigms. If you're unsure of the longevity of your kid's interest, start out with something more accessible such as VB. My advice however is, if you do that, closely watch your kid and reconsider your decision on a regular basis. Don't hesitate to jump to sth more challenging if you believe your kid can cope with it!
-
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
I just did this with my college-age daughter. We used VB.NET, and I walked her through some basic how-to's.
David Veeneman www.veeneman.com
-
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
-
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
I just got into C# in the last year after having coded vbscript and vb.net for many years and I would say teach vb.net if you want to teach something and have him catch on to OOP quickly without having to worry about case, semicolons and curly bracket syntax, but C# if you want him to be able to move on easier to other things like Java and C++. From what I see in our area's job market (Midwest), C#.Net and Java skills are in high demand. If this is something he is interested in as a career, that may be a good start. If it's just for fun, take your pick.
-
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
Two suggestions (and then some) Alice - http://www.alice.org/ - which gets you going with the graphics right away and provides easy way to make 3D things move. Programming environment allows developing modular code. Supporting materials for teaching since that is it's purpose. Ruby - easiest tool to teach OO since everything's an object and it's better for immediate gratification/feedback as an interpreted language. Potentially harder to do GUI programming in. Javascript could be a fairly direct path to implementing a game of life, though there's some overhead in fitting programs into the whole browser context. Logo - last but not least. I like the lisp like underpinnings and the fact that there's a direct graphics connection. I think you might think in terms of 'good enough' - I don't believe there's one best language and he might be best served by knowing there's more than one way to skin a cat. Another consideration - do your schools offer any AP programming/computer science courses? What languages do they use? What's the best place to start? I've always liked GUI programming since it fulfills my need for instant gratification. But, I usually "plan to throw the first one away". In short - I'd say take a look at Alice.
No matter where you go, there you are.
-
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
-
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
C# would be a good start, but I wouldn't go in to the XNA game development. That can get complicated really quick, especially with no experience in programming or graphics programming like OpenGL. If all else fails, teach him how to use Linux and C/C++/Java!
-
Why don't you try simple games with GDI+? Snake, sokoban, ... stuff like that. I always love the fact you can draw items and make them move. I would recommend a C type language though, VB is really nasty ;)
V.
Stop smoking so you can: Enjoy longer the money you save. Moviereview ArchiveWhile I was learning, I made a Arkanoid/Breakout clone with VB.NET and GDI+. I think it's a good idea for practicing after learning basic concepts.
-
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
When I was in college the first thing we learned was OOD using Pascal, then moved on the C++. If you want to tie him down to Microsoft platforms then teach him VB or C#, if he truly wants to become a programmer start him with C or C++. That way he can learn to properly manage memory usage. If you start him in .Net he will end up like all these other fresh programmers coming out of school that have no idea how to properly manage memory or a thorough understanding of how a computer works. Just my 2 cents. Anthony
-
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
I can't do that Dave. wrote:
I don't want to traumatize him with assembler
And why not? a) you'll know if he takes a shine to that he can tackle just about any other language :-D b) that's how a lot of the older crowd here got started in the first place OTOH I do understand where you're coming from...but I'm not sure I'd appreciate my job today as much had I started with today's high-level languages...
-
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
I started programming when I was 12 (6th grade). I am now 15 (Turning 16 in November) I think I started with BASIC. I just got the grip of how programs work (Source, compile, etc) and then I found out about Visual Basic (VB.NET). That and Microsoft's "Absolute Beginner's" Video tutorial series really hooked me on. Absolute Beginner's video guide is like a step-by-step video tutorial that really helped me learn. Not only it goes through projects but teach essential topics and theories. It also brushes up on Object-Oriented programming with the usual "Car" object with mileage, mpg, model, year, maker, etc. By the time I could consult the MSDN documentations and write a task-manager equivalent app by myself, I knew I was growing out of the language. Then I tried to move on to C# but I found the transition a little difficult. I didn't give it enough time and patience for it to bloom... Then I found Flash. Actionscript goodiness. This is where I spent a good solid 2+ years on. I can't generate life-like trees, but I can make a full website full with transitions and dynamic data loading and video playing and mp3 play list and all the goodness. Actionscript is really easy to get in to. Its basically Javascript modified by Apple to fit Flash's needs. Then now, I'm moving on to desktop. I'm learning Cocoa and Objective-C. So far I've found it the best language to learn (that is most usable in the real world). Visual Basic's nice, but when I see Objective-C code and Visual Basic, I see so much needless junk in VB.NET it just makes me cringe. Now as for where your son starts, it is really up to you. Where did you start? Also, patience, patience, patience is the most important thing, and this is a good opportunity to teach your son lots and lots of patience. Tell him that instant gratification does not come without years of hard work. Scratch, even though it seems simple, can teach a lot about computer science. The goal of scratch is not memorizing syntax and methods, but learning how computers and programs function. The "theories" should be taught in Scratch where you don't have to emphasize with syntax and all the "confusing" things. Then perhaps should move on to Visual Basic, and after almost mastering that, perhaps he should start on Objective-C/Cocoa (About Senior by then?) And if his computer isn't a mac (his primary usage computer) then he should get started on C/C++. Good luck to your son and his journey, and feel free to have him email me anytime. I'd love to talk with him, after all, I'm
-
Concerning the typing I merely suggested that neglecting something the kid already has learned (hopefully) within something new that he wants to learn is not a useful argument. I didn't say I want to teach him typing in addition to programming, just that the property of a language not to take care of proper typing is not sth that should be an argument in favor of it! Concerning the complexity of what someone might learn, we're not talking about a 3-year-old playing with colored bricks, but an intelligent, curious teenager who wants to learn something new. If he really wants to learn something, give him a challenge, not something he gets bored about after 5 minutes. Taking myself as an example, when I was 15, I was able to spend days and weeks on given problem, such as solving the workings of a Rubik's Cube. I even worked to improve my findings much later. OTOH other 'puzzles' that I could work out within a day I all but forgot about, knowing that I would be able to relearn it on a whim. I don't know what your preferred style of learning is, but in my experience, I learned least from easy successes, but most from hard earned failures! In the end it was the latter that drove me to learn even more and try to do better in the future, try to anticipate all those nasty little bugs that are the daily bread of any programmer. I know, some people prefer the easy way, and with powerful frameworks like VB.net you can get a long way. But it is exactly those people who have the most difficulty when they are forced to switch to other, more restrictive, programming paradigms. I know that, I've worked with them. Maybe my conclusion was a bit unclear. To be more concise: If you think your kid really wants to learn how to proper program and has the mind to grasp the concepts, do him a favor and start with a language that offers some insight into proper design and programming paradigms. If you're unsure of the longevity of your kid's interest, start out with something more accessible such as VB. My advice however is, if you do that, closely watch your kid and reconsider your decision on a regular basis. Don't hesitate to jump to sth more challenging if you believe your kid can cope with it!
-
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
I asked the same question for my 11 year old... albeit on another forum. I think the best bet is to evaluate what interests him, and try to work around that. I had tried scratch, but it didn't quite catch my sons interest, though I thought it was good. He's interested in writing his own comics/animations, so I'm looking for something that would enable him to create animations from a somewhat programming point of view. I'd recommend also, as did others, something gui oriented.. so make it catch his interest/be in his interest area, and make it gui oriented. Finally, if he has the patience to put up with brackets, case sensitivity, etc, then don't worry about c++ being too hard, but if those are too much, try some form of basic, or maybe if you can get more graphical, delphi/cbuilder sorts of ide's. good luck Jeff
-
Sorry, I've at least had the decency to point out both my opinion and personal experience that lead to this opinion. If you feel that's bullshit, fine. If you could provide arguments as to why this is bullshit, all the better. I might consider it worthwhile, I'm not perfect after all. But please stop flaming, thank you.
-
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
-
It's tricky. VB vs C#, I am a Basic refugee myself and I must say after learning C# I found it much easier to learn other languages.
He who asks a question is a fool for five minutes. He who does not ask a question remains a fool forever. [Chineese Proverb] Jonathan C Dickinson (C# Software Engineer)
I actually find C# syntax much simpler than VB because it uses symbols rather than words. Symbols help the visualization and picturalization(?) of the code... that is, you can SEE it better.
“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! -”-”-