It's just a fancy way of saying what it really is (estimating pi with increasing accuracy using geometry). I remember doing the pencil circle drop calculation for pi in middle school which is a similar concept just physical instead of on a computer.
The problem I've found with pygame is that the time from starting to producing a playable game is too long, the kids get frustrated and lose interest when you need to type 20-40 lines of boiler plate to just get an image and a moving character on the screen before anything even happens. I've had much greater success with "boring" projects that produce the final result in 10-20 lines.
They already have games that we'll never be able to come close to in terms of quality. There's nothing that I can make in even 20 hours that is even close to as interesting as Minecraft or a high budget xbox game - there is effectively a very small difference to them between building a game with "boring" dynamics and solving math problems.
This mostly only applies to first projects, once you complete a few projects and have separated out the children who actually enjoy programming - that's when you can start doing multi-week epics. But you need to build confidence and give them some easy "wins" before you are going to be able to do that in my experience.
When I was learning programming in my bedroom as a kid, games and animations were the key - just far and away the most interesting and engaging things you could do. And while it was impossible in BASIC to get anything approaching commercially-produced games, it was possible to easily knock up something that was playable and fun, especially if you salted it with a bit of machine code; I fondly remember my PacMan (very slow), ET (ripoff of the infamous Atari 2600 klunker) and Minesweeper-like thing that was deceptively addictive, all done for yuks in a few hundred lines.
But for kids today, I see these problems:
- Haven't seen anything that gives the simplicity and ease of use for graphics that my old Spectrum had. This is what pygame should be providing, but I agree with you that it is actually pretty disappointing in this regard; I find its API a bit cumbersome and nonintuitive, although others' mileage may vary.
- Modern 3D games set the bar very high, and it's difficult to get kids to understand that they need to aim much lower to get going. And whereas the maths required to write a 2D game is pretty basic first principles stuff, 3D is a whole discipline that needs to be learned.
- Scratch is fun, but very limiting and, if you have a lot of stuff going on, really unplayably slow. My daughter has fun doing little animations in it, but it needs a better object system IMO in order to be able to allow users to push on with it.
I agree, it's hard to actually engage kids with boring games, and anything that involves boiler plate.
The boiler plate should just be hidden away if possible.
I think a small coding exercise that kids would like is something that automatically solves their simple algebra homework. Although, do 12 year olds just go on wolframalpha now?
> I think a small coding exercise that kids would like is something that automatically solves their simple algebra homework.
I don't think recursive tree algorithms and reverse Polish notation, the bedrock of computer algebra systems, would be so much fun to kids. Could you elaborate on what you had in mind?
The problem I've found with pygame is that the time from starting to producing a playable game is too long, the kids get frustrated and lose interest when you need to type 20-40 lines of boiler plate to just get an image and a moving character on the screen before anything even happens. I've had much greater success with "boring" projects that produce the final result in 10-20 lines.
They already have games that we'll never be able to come close to in terms of quality. There's nothing that I can make in even 20 hours that is even close to as interesting as Minecraft or a high budget xbox game - there is effectively a very small difference to them between building a game with "boring" dynamics and solving math problems.
This mostly only applies to first projects, once you complete a few projects and have separated out the children who actually enjoy programming - that's when you can start doing multi-week epics. But you need to build confidence and give them some easy "wins" before you are going to be able to do that in my experience.