First programming language for high school students?
-
I'm personally not so sure about c# - if only because of : a) the CaSe SensitiVity It isn't intuituitive that Fred != fred b) the curly bracket syndrome It is scary for kids to be confronted with something full of symbols they don't understand. (unless it's graffitti in which case they seem to revel in symbols I don't understand!) While not a great fan, I have found that VB .Net is 'less confronting' to kids than c#
Take a chill pill, Daddy-o .\\axxx (That's an 'M')
These are the reason I liked teaching people Delphi back in the mid-late 90s. Verbosity helps people get both what is happening and strictness keeps them honest for future languages.
-
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.
Amen! Finally someone suggested the original alter of Anders. I learned to program first with basic on a trash 80 in jr high, but didn't get hooked until learning Turbo Pascal in high school.
-
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
Considering that I myself have programmed in virtually every language that any poster has mentioned, I would personally also recommend C# I have personally watched many a potentially brilliant programmer become useless because they were taught with VB. Not saying there is anything wrong with VB. I think it's a great language actually, but not for learning... Let me explain 1) Case insensitivity - This is the biggest problem with this language. It makes programmers lazy. Period. :( Once they have gotten use to not having to type in the correct case, any chances of them ever moving on to another language is lost. 2) Not having to declare variables - I have this same gripe with Java. Once you get into the habit of not declaring your variables, you get into the habit of forgetting that your data is actually represented in a certain way on the PC, and then you learn even less of how your computer actually works. 3) Syntax lessness - I know that's not a word, but you know what I mean. The semi-colon in coding is a big thing. And if it wasn't, the most used languages in the world would have gotten rid of it already a long time ago. I have had many a VB programmer give up on learning other languages because they had to put a semi-colon at the end of statements. In short, I recommend C#(or a C based language) simply because it teaches good programming practices. After that, any programming language is good, because you understand whats going on. I myself do programming in PHP, Java, and VB on a regular basis for work projects, and they are perfect for some of the projects, so nobody has to jump down my throat that I am bad mouthing VB,(insert other language of choice...) Just my 0.02c ;P
-
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
Ruby (www.ruby-lang.org)? It's immensely powerful, lots of libraries that are easy to install with a single command, and it (the language and it's community to be precise) focuses on readability and good practices. A friend of mine has a nice experience of using it to automate tests of a large (10M members) social network site. She was assigned with a test of testing things manually; fortunatelly, her boyfriend is a software developer. It took just a few quick lessons and she's now writing her own tests (no programming background whatsoever). Just my $0.02 MB
-
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
-
COnsidering I'm 20 and learned my first computer language in high school by taking a community college class. I think VB.NET is the way to go. I eventually took courses in C, C++, and C# and think VB.NET is the best. I've worked (and still work) in research and corporate and realized that knwoing the .NET framework is very very important. Your son will enjoy the idea of easily building a user interface and the intelliSense will help him in learning. Plus, chicks dig guys who know .NET. -Max
I don't know if people understand what technology is all about:mad:. Surely assembler, C or any other low level language is not the way to understand the computer - is just that people often refuse the change and get stuck deep inside the computer chips. I can see a lot of purist :suss: trying to lure a 15 years old kid into joining their outdated and self proclaimed groups:mad:. To teach a kid any language developed in the 80's is like denying him an ipod and give him a cd player. Let the kid have fun :) with programming he still have homeworks to do. Give him the simplest of any language. i will suggest anything that has nothing to do with low level maching code:mad:. Almost all new languages addresses the concepts of datatypes, functions and objects :-D . Thats all he need to know in order to be able to tackle pointers, binary, octal & hexadecimal numbers later in life. Don't impose things on this kid:mad:. Only a teacher can device a simpler way of explaining something as huge as computer programming.
-
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
6 years ago at my high school they were teaching C++ as the first language, and I very liked it. However, I became sick the day that my teacher taught OOP, and was somewhat lost for a while when I came back to school. I think my university had it right--which taught Java. It is more straight forward and less ambiguous than how C++ can be, and it (painlessly?) instills the following good programming practices that are seen in many languages: -straight forward OOP (no extra .h header files reqired, like in C++, etc) -reference vs. value -case sensitivity awareness (i.e. VB can sometimes mislead the beginner in when this matters) -great FREE IDEs out there (netbeans, eclipse) ...many more
-
I'm personally not so sure about c# - if only because of : a) the CaSe SensitiVity It isn't intuituitive that Fred != fred b) the curly bracket syndrome It is scary for kids to be confronted with something full of symbols they don't understand. (unless it's graffitti in which case they seem to revel in symbols I don't understand!) While not a great fan, I have found that VB .Net is 'less confronting' to kids than c#
Take a chill pill, Daddy-o .\\axxx (That's an 'M')
Sorry, but I couldn't disagree more! a) Typing skills are already deteriorating at unholy speed in online chats or online game worlds, not to mention game and other forums. I'd rather teach a kid to properly type than teach him to consider it an afterthought! If he is bothered by case, then he can still choose to type everything lowercase and see how far it takes him - it would be his choice however, not yours! b) What problem is there with curly brackets? If your keyboard requires more than two keys to press to get one typed, get another keyboard! Else it is no more difficult to handle than any uppercase character, or plain braces for that matter! Why would curly brackets be scary symbols? Maybe you view them so, I certainly don't, and don't even remember being at odds with these when I started programming. Of course, my first programming language (Pascal) already used them, so I don't know how scary these can be to someone starting out with a language that doesn't - one more reason to avoid such a language IMHO. Why 'less confronting' is an argument for any language as a starting language I don't get either. VB is certainly a lot better than previous dialects of BASIC, but it still inherited a lot of stuff that promotes bad programming style. It is easily possible to write a splendid piece of clean software using VB, but the language itself doesn't lead you to it, doesn't force you to it, even when the teacher isn't looking. In my eyes, the more restrictive a language is, the more likely the programmer will try to understand the concepts behind a language, or any programming language for that matter. The less restrictive it is, the less the programmer will care to understand how it works, because he doesn't need to! In short, if your kid wants to learn Visual Basic, teach him Visual Basic. If he wants to learn programming, teach him just about anything else but!
-
StevenWalsh wrote:
I wish I had started with assembler.
Speaking as one who started on 6502 assembler, hand-written in a notebook, converted to hex and entered a byte at a time, you really need to be keen to persist!
Take a chill pill, Daddy-o .\\axxx (That's an 'M')
I strongly advise against assembler. It lacks the structure of higher languages and without knowing how to properly design and structure a system you won't really learn a lot by mastering assembler! Assembler was my second language (after Pascal, and before Basic, and I know what I'm talking about - I'd never had been able to write an assembler program longer than a few hundred lines without the knowledge to properly design it first!
-
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
-
Sorry, but I couldn't disagree more! a) Typing skills are already deteriorating at unholy speed in online chats or online game worlds, not to mention game and other forums. I'd rather teach a kid to properly type than teach him to consider it an afterthought! If he is bothered by case, then he can still choose to type everything lowercase and see how far it takes him - it would be his choice however, not yours! b) What problem is there with curly brackets? If your keyboard requires more than two keys to press to get one typed, get another keyboard! Else it is no more difficult to handle than any uppercase character, or plain braces for that matter! Why would curly brackets be scary symbols? Maybe you view them so, I certainly don't, and don't even remember being at odds with these when I started programming. Of course, my first programming language (Pascal) already used them, so I don't know how scary these can be to someone starting out with a language that doesn't - one more reason to avoid such a language IMHO. Why 'less confronting' is an argument for any language as a starting language I don't get either. VB is certainly a lot better than previous dialects of BASIC, but it still inherited a lot of stuff that promotes bad programming style. It is easily possible to write a splendid piece of clean software using VB, but the language itself doesn't lead you to it, doesn't force you to it, even when the teacher isn't looking. In my eyes, the more restrictive a language is, the more likely the programmer will try to understand the concepts behind a language, or any programming language for that matter. The less restrictive it is, the less the programmer will care to understand how it works, because he doesn't need to! In short, if your kid wants to learn Visual Basic, teach him Visual Basic. If he wants to learn programming, teach him just about anything else but!
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
-
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
Programming is more of having the ability to break down a problem into the logical steps required to resolve it; the language one chooses to do so falls into mere personal tastebuds preference; a bad algorithm will s*ck on C, C++, Perl, Pascal, VB... even good ol' plain vanilla Basic, but a brilliant algorithm - the trademark of a GOOD programmer, will shine regardless of the platform chosen to implement it. In the interest of keeping things simple enough to concentrate on the problem solving rather than strict syntax, perhaps VB is a good choice to start working on.
-
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