Sign in to follow this  

The best language to get kids excited with

This topic is 4377 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am a teacher at a small private school, and I'm thinking about teaching a course in computer programming. I would only have 2 months (24 75-minute classes) to do it (!). What kinds of things were helpful to you when you were learning, and what got you excited? I am starting to lean heavily towards using Flash. I taught a computer animation course this semester using flash, with great success. Towards the end one of my students started realizing how much more power she could get from programming rather than relying solely on tweens, etc, and she is gushing with excitement about the fact that she can make stuff happen when she clicks a button. However, I don't know actionscript that well, and I'm hesitant to teach a language that will have them in a rut when they want to learn other models. On the other hand, turnaround time for flash is pretty small and it is easy to make visually impressive programs quickly. We have both flash and visual studio (including VB, C++, and C# .NET) available to us, and of course there are free things like php, python, and java around too. Any thoughts or recommendations?

Share this post


Link to post
Share on other sites
Delphi (Object Pascal) because the language is simple and clean yet as powerful as C and GUI construction is very simple (drag&drop). Doing a graphical calculator or units converter or something should be entirely possible in one course.

Share this post


Link to post
Share on other sites
Well, one thing that orignally got me into game programming was these "game makers" the one I used is not around anymore because it is so old. There is this one pretty good one though called Game Maker, it has some programming associated with it, and you can do quite a lot with it, you can even do 3D games.

In fact the winner of the last gamedev contest on this site used game maker for his game, called Ninja Loves Pirate.

Another few simple languages as well would be BASIC, Logo, and Python.

Flash and ActionScript is a nice way to introduce them really though, at least I think so, it not only does programming but also graphics.

Share this post


Link to post
Share on other sites
I don't think it's necessary to see instant results by using flash or something else that isn't very useful. If anything gets them interested it will be seeing the potential that powerful programming languages have, if that doesn't get their attention than they probably aren't interested in computer science in general and probably never will be. So I suggest that you start off by giving them some insight into exactly how their favorite games are made.

Share this post


Link to post
Share on other sites
Quote:
Original post by RITZ
I don't think it's necessary to see instant results by using flash or something else that isn't very useful. If anything gets them interested it will be seeing the potential that powerful programming languages have, if that doesn't get their attention than they probably aren't interested in computer science in general and probably never will be. So I suggest that you start off by giving them some insight into exactly how their favorite games are made.


Hmm, I disagree with the first part, and agree with the second.

If your goal is to get people interested, then you have to make them get results.
It is just more exciting to see that "Hey, I can make stuff that looks cool and acts like I want it to", than "ooh, look, I've made a program that can add numbers together".

But I think your last comment is a great approach. Show them how their favorite games are made. Not specifically "this is how Half-life 2 implemented its physics engine", or "the console in Quake works like that", or "here's how Rome: Total War manages to show so many units on screen", but help them make small graphical games or other equally satisfying apps.

I think Flash sounds like a decent approach. It allows people to get cool-looking results, while hinting at how much more they can do with a "real" programming language.

Other similarly simplistic languages/tools might be worth looking into as well.

And as GDKnight said, I wouldn't dismiss stuff like Game Maker either. I helped my little brother with it a month or two ago, and I was surprised at how flexible it was, and how much actual programming it allowed.

Share this post


Link to post
Share on other sites
Quote:
Original post by Roboguy
About how much math have they had (the reason I ask is that some programming languages' concepts can be explained fairly easily with mathematical concepts such as sets)?


I am a fan of functional programming and a new Haskell programming, and I really like them both (Haskell is _so_ fun!) However, I do not believe Haskell is ever going to excite a young kid. I instead recommend BotsInc and Squeak: it provides an easier programming environment and simpler language for kids and it uses graphics and other multimedia which are more appealing to kids than type theory and list consing :)

Share this post


Link to post
Share on other sites
I'd go with Python and Pygame; it's simple but you can extend it in incredible directions using C and other languages via SWIG. You could easily produce your own tailored gamedev environment using SWIG, for example, or just let the kids make their own stuff using the Pygame library; there has been some great stuff coming out of there.

It's also non-proprietary; I don't know how much you care but a number of academics where I am have serious qualms about locking down students to proprietary systems like Flash and VB.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
If you've only got two months and 24 classes in which to teach the kids enough to do something interesting, I'd recommend KPL (Kid's Programming Language).

It's got a simple BASIC-like syntax, a pretty decent and simple to use IDE, and is completely focused on allowing kids to use sound and graphics easily.

It's at http://www.kidsprogramminglanguage.com

Share this post


Link to post
Share on other sites
I think having some kind of graphics is a must, but they shouldn't be OpenGL graphics. When you start explaining what a glBegin() is and what a render state is they'll get very confused, and the real concept is much simpler. Most schools I've seen use Pascal or Turing for the first programming course. Python might also be good if you can get a simple graphics interface, like "drawLine()" simple, not OpenGL. The other thing is that console IO should be easy - I think all the languages I mentioned cover this, but this is a problem with something like Java. After the introductory programming course, a more advanced course should probably be either Java or C#, because they have great libraries for almost anything you might want to do, they're object oriented, they're simple to learn, and they'll be very useful to know at college or in the industry.

Share this post


Link to post
Share on other sites
How old are these "kids", btw?


My recomendataion (which was used with good success to teach C for microcontrolers at my uni to people with little programming experience) is to have a "framework game" already programmed up (I'd say PyGame is a good choice for this - and you might be able to use some open source game: my suggestion).

Then, go through excercises with the students to help them make changes and add features to the program. If you need to examine students, you can fit this in by having a shortcoming in the program (or a different program) they need to correct as an assignment.

The other advantage of this is that anyone who already knows how to program or picks it up very quickly - will have the entire source of the game with which to play with and add on their own features and such as they wish. Those who are not so programmer-ish might like do a similar thing with art or something. Being able to be creative and do their own thing makes a great incentive to learn and become good at it.


Also - consider having them use source control (use Subversion with TortoiseSVN). The major reason is that it will let your students "roll back" to a known-working state if they break something.

You can also use it for other nifty things: You could have students work in groups or as one large group on the same software (perhaps do this towards the end?). Also: It makes it easy to write a script to merge in changes to your own code if you find bugs in it (it happens).

Share this post


Link to post
Share on other sites
Thanks for the ideas, guys. I really like the idea of giving them a semi-complete program that already gets stuff on the screen that they can tweak, and that idea merges rather nicely with a hobby project I'm working on. I'll let you know how it goes!

PS: The kids are mostly 15-18 (sophomore through senior in HS).

Share this post


Link to post
Share on other sites
Considering that you only have 2 months I'd think about using either Flash or PHP. Given the time frame (and i'm guessing lack of programming experience in your students) it might be difficult to do much more. They're both easy to pick up and both have some use out of the classroom.

Share this post


Link to post
Share on other sites
If you've already got people comfortable with flash then I see no reason to not stick with it. Then, maybe in the future, you can offer an "advanced" programing course in C, C++ or some other language.

I would have killed to have a programming course in high school, though by that age I suspect I would have been teaching the instructor a thing or two :)

Share this post


Link to post
Share on other sites
I have to put my vote in one of the various BASIC languages. (Visual Basic, mainly)

They're easy to learn, pretty powerful, especially for what you're doing, and gets them learning some basics of programming. The Forms system for the various Basic's in Windows are always nice for quick GUI design. If tought improperly, can give some bad proramming habits, but that's really a minor thing unless you intend to eventually dive them in the path of programming in general.

A lot of people might disagree with me, however I stick with what I've said. I learned how to program tinkering with QBasic way back when, and I always got excited running the things I made with it. From there, I've broadened my language knowledge to many differnt things, from Java, to C++.

If you want to try directing them through some web development stuff, my suggestion is PHP, for the fact it's a very easy langauge to use with it's variant style variables and such.

Share this post


Link to post
Share on other sites
Personally, I'd be more interested in shockwave than flash. It is alot more flexible in terms of what you can do with it for games. The 3d capabilities are incredibly easy and it has built in havok support, allowing you to teach students how to make a functional 3d game with collision with very little code. There's also plenty of neat stuff that can be done with imaging lingo. In the end, the students can turn their creations into projectors(.exe files) that can be executed independantly as if it were a normal game, or posted on a website.

Share this post


Link to post
Share on other sites

This topic is 4377 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this