views:

246

answers:

7

Background:

I have been teaching a short course for 12-14 year olds interested in learning how to program video games. We have been using Alice now for 3 years. In this time we have used both Alice and Story Telling Alice.

Question:

When is the right time to move on from Alice (or Scratch if that is what you prefer) and move the students on to more advanced languages? Should I watch for specific programming skill, or a specific age, or a little of both? What advice can I give to the parents of the students who show an interest of continuing their programming at home when the course is over?

I'm afraid that at a certain point Alice will not have anything left to offer in terms of real education. It's a phenomenal tool to begin programming education but it is very limited.

+10  A: 

For 12-14 year olds? I'm sure they can handle "real" languages just fine. Lots of teenagers pick up programming on their own around those ages - certainly that can be more difficult than being taught. I'm not sure exactly what you are worried about.

I think the only way you will be able to determine what level is appropriate is by experimenting. You don't want to bore them and you don't want to frustrate them - you want them to be challenged in just the right way. But you won't be able to determine how to do this from quantitative measures such as age - you'll need to push them a little to see how fast they absorb new things.

danben
@danben - I'm not so much worried as I want to create the most appropriate setting for the students. I have taught this class for 3 years, but I have no formal education in teaching. I was just hoping to hear when other people moved their students/children on to more advanced subjects and what they are.
Justin C
I think the only way you will be able to determine what level is appropriate is by experimenting. You don't want to bore them and you don't want to frustrate them - you want them to be challenged in just the right way. But you won't be able to determine how to do this from quantitative measures such as age - you'll need to push them a little to see how fast they absorb new things.
danben
@danben -- I pushed your SUPERB second paragraph from a comment to the main text. Feel free to revert me if you disagree with this edit.
Chip Uni
@Chip Uni - that's fine, I'm glad you agree.
danben
+6  A: 

When is the right time for a beginning programmer to move on from Pascal, from (Visual) Basic, from Python, or from her first language?

The only appropriate answer is: When the programmer wants to do things that are hard to do in her first language. Sometimes, that time never happens.

Chip Uni
+1  A: 

You know. I've started programming c++ when I was 11 and when I was 13 I find out how to create games in Opengl and I got so involved in it. So as for me you should make the change now.

Know I am teaching my friend who has got 14 years and he doesn't have any trouble!

But of course he's got good math skills so it depends always.

oneat
+1  A: 

That is an interesting question, here's my take on this, I would monitor each and every one of the kids to see who repeatedly challenges my knowledge such as 'Why is this code done this way' or 'how do I do this using so-and-so approach', they're the ones to watch out for...again, this is a tricky position to judge, and not alone that, it is the communication side of it that will untap that kid's inquisitive nature...so don't overstep it by pushing unconsciously, by all means, do feel free and not afraid to ask them along the lines of 'Would you like to know a bit more about programming in a grown-up/real-world language?' if the answer is a resounding yes, then you've hit the nail on the head, as I would be sure that they are probably waiting for you to say that.

Now, the next bit, what language, hmmm.. that's another tricky one, perhaps, using Pascal or Visual Basic.NET to emphasize the methodology of the programming essentials - loops, logic, assignments, procedures, functions... ok, this is debatable but that IMHO would be a gentle introduction into the concepts, then after that, if the question arises about systems programming, they will have that knowledge and should be able to master just about any language.

Steer clear of convoluted terse syntax and syntactic sugar as that would bound to confuse them...Once the elements and methodologies of programming concepts are absorbed, then by all means, go for it...

Hope this helps, Best regards, Tom.

tommieb75
+3  A: 

From personal experience, I can tell you the success for such a course varies widely and depends on individual motivation.

I have had no problem teaching myself programming in C when I was 13. For me it was the best thing to start with, because it provides you with a deep insight into the inner workings of a computer. To be fair, it took me quite a while before I was able to achieve reasonable results, but I was damn proud of it.I have always been the kind of person intrigued with how things work, asking at least five times why/how before being satisfied with an answer. C gave me exactly the answers I wanted.

When I was 16 some friends and me started a computer club at school. The club pretty soon attracted a lot of younger pupils between the age of 12-14 because we did the cool stuff like overclocking (with ln2, that was a show!), DoS'ing the school network etc. At one point I decided to offer a programming course in C++ and OpenGl with the goal to create a small game. While some of the kids were really interested and were really motivated, I realized the majority of the kids didn't have the passion to stick through it. They would rather enjoy playing games than writing them.

I think the whole story is two-fold. Programming languages like ALICE are great to get kids started and give them a basic understanding of what programming is and how it feels like. They provide instant feedback and make for great results whilst requiring little effort. The majority of your course will probably be happy with what they can achieve. But some of the kids will always ask you an intriguing "why?". It is for those kids for which you should offer a course in another, more "advanced" language.

Johannes Rudolph
+2  A: 

The answer depends on context, which really matters. Compare two situations:

  • Everyone in school has only used Alice, and after that they're on their own.

  • The older children (in the upper grades) have used PLT Scheme.

(Choice of PLT Scheme is not accidental; they have a great pedagogy that extends from middle school through 3rd semester at university. And they do video games, too :-)

At a certain point Alice will not have anything left to offer in terms of real education.

With this as background, I give you two answers. You move on from Alice when

  1. Your students start to be curious about a more powerful, more sophisticated system, which is available on their computers and which they are aware of every day.

  2. You feel that your students have exausted the amount of real education available in Alice.

I will not argue here why the more sophisticated system should be PLT Scheme; check our their web site, their free book published by MIT Press, and their resources for teachers.


P.S. As a teacher of early teens, you must be aware of the powerful desire of young people to play with the same toys that they see their slightly older peers using.

Norman Ramsey
A: 

I think Python is a great first-step in the world of programming. It provides a small set of keywords and an easily memorized set of libraries that makes it very easy to learn. It teaches proper coding methods with forced whitespace and makes concepts easy to learn through short, readable syntax.

There is an interesting library for the Tkinter UI module called Turtle that you might want to check out. It's easy to use so long as the child understands cartesian co-ordinates.

http://docs.python.org/library/turtle.html http://pythonturtle.org/

After an adequate amount of time with Turtle you could move onto this excellent e-book.

http://inventwithpython.com/chapters/

The subject material in the latter chapters may be over the students heads, but there are at least 6 projects in the book that are easily understood by a first time programmer with python around your target age.

Chris G.