I would like to teach Greenfoot to my 11 year old. I am wondering how I cover the basic concepts of object oriented programming and some java basics. Any suggestions? Thanks
Try the bicycle example maybe? (Bike speed, direction, gear)
Where bike speed is a function that increases as you accelerate and decreases as you brake. Direction and gear are variables.
You understand what I mean? It was a nice example I found somewhere.
If he doesn't get it at first, just try to get him to understand the concept of object-orientedness. That was the hardest part for me. Once he understands, let him dive into the greenfoot API.
I learned C# (which is very simaler to Java) when I was ten years old, and now I'm learning Java. It's really easy for me to learn Java now that I learned C#, which is very straight-forward when you use the Visual Studio Express IDE.
I learned C# from a book (Sams Teach Yourself Visual C# by James Foxall). If he already knows some coding, show him how to do methods in Java. That way, he can experiment with all the methods that are built in to Greenfoot. Eventually, move on to making your own classes and stuff. Whenever I teach object oriented programing to my friends, I explain how classes are like molds and objects inheritance are like the stuff you take out of the molds.
If he doesn't know much programming yet, try Scratch (scratch.mit.edu) - it is fun and addictive and teaches the basics of programming. It is easy to transition from that to Greenfoot.
I wish that I had had someone to teach my programming - it really makes things easier. Good luck, and good luck to your 11 year old!
The Greenfoot book might also be a good thing to look at. If you want a quick place to start then the tutorials would also be good to look at: http://www.greenfoot.org/doc
Another thing that I did was I went to a game programming summer camp (C#, VERY similar to Java). They showed you the basic code, then you could add/change anything you wanted. That way, if you made a mistake copying it down, you learn the proper syntax. Since you have the base code already, you can read it over and understand what does what, then copy and paste parts and modify code to add more functionality. This way, you can take a simple segment of code and make a fun, somewhat complex game without any coding experience. It was a great experience, and I think if I ever teach someone how to code, I will do the same.
To recap:
1. Write a basic game, make sure code is organized.
2. Show him it, he copies it down (don't copy and paste)
3. Help him figure out what each part of code does.
4. Let him play around, change images, change some functionality, add in his own quirks.
5. Once he's done that, you can show him the greenfoot API and he can do a comparison, which would be very helpful for understanding it.
And if he (if she's a girl, sorry, just change the "he"s) doesn't seem to have any interest at all don't bother to push too hard to get him to learn. You can't learn if you don't want to.
Good luck :D!