Let's make a "type the code listings" book for kids.
github.com
github.com
http://inventwithpython.com/chapters/
The programs in this book are actually modeled after such projects from magazines and books from the early 80's.
What's your plan r.e. organizing chapters? By language or by example?
One advantage of us doing this as a multilanguage book is we get to show how different languages solve different problems.
One disadvantage of that is it's a lot to absorb.
Otherwise, very cool idea.
I have much respect for Python, but don't know it well enough yet to be comfortable. Would kids be frustrated by the whitespace / indenting?
The IDE that comes with Python (IDLE) is good enough to help you with the whitespace. And even in MS Notepad it should be fine. Closing parens without editor support is much more frustrating.
Edit: To encourage kids to tweak and program, make the source easy to get to and a breeze to modify. Forcing them to type The whole program to do this strikes me as a bit indirect. We did it in the early 80's because we had to. Often, there was no other way to get your hands on that particular program. Today's environment is vastly different.
But first we need the code. Then we can figure out what to do with it :)
I think that's even more accessible and tweakable than a system where the source code is 100's of keypresses away.
Of course, everyone learns differently. I could certainly be way off base. But I bet most people who actually did those code listings would agree that there's a certain value there that's very hard to reproduce with view source and cut+paste.
Thanks for starting this — all this talk of closed systems keeping kids from playing with programming, and whether video games/programming was art or not was distressing.
Yes, but instead of getting kids into doing by forcing them to type, I think it's much better to just make the source accessible and encourage them to tweak.
You may not know this about Smalltalk, but not only can you browse the source code of everything quickly, you can change it and have those changes active instantly on a key press. In fact, the whole thing was specifically designed as a digital Montessori toy for kids.
I think forcing today's kids to type in source code will just be seen as unnecessary drudgery. If doing is what we want to encourage, why not just make it easy to do and provide some guidance in that direction?
I'm saying, so long as you want to encourage X, why not directly take the steps to encourage X?
Of course, you're perfectly free to set up your own project using Squeak. I bet you'd get a lot of people onboard with that. Then you can prove me wrong :)
That being said, I'm not entirely convinced this is still a good way to teach coding.
http://msdn.microsoft.com/en-us/beginner/bb308756.aspx
Languages aside, it's worth checking out how other people teach kids.
I remember typing in hundreds of lines of poorly visible code in the backs of magazines for the c64 probably 25 years ago.
Sounds great though.
Let's not inflict this on another generation :)
DATA statements aside, typing in reams of code from hard copy certainly ingrained the ability to predict what the code did long before finishing the typing in, and I'm sure that is something that comes in handy even today when scanning other peoples' code.
I think it is harder today to get started programming than it ever was in the past, the 'bar for entry' is no longer some crappy little game you can write in three days but some three-d studio produced glitzy epic adventure. No way 'block shoots block' is going to live up to that, even if you did write all of it yourself, and the 'enterprise' being the red block isn't much of a winner either.
Computers are no longer 'knowable', and this is another matter that needs addressing if we really want to lower the bar for understanding what goes on under the hood.
And I think computers are knowable. Some languages are not, but others are. Ruby has a REPL that's very good as a teaching tool. I've had a lot of luck teaching with that. C++ on the other hand, or even Java, not so much.
I know it's harder than it was, but we could change that as long as we don't decide to fail by defeating ourselves.
No way 'block shoots block' is going to live up to that, even if you did write all of it yourself, and the 'enterprise' being the red block isn't much of a winner either.
I used to think like you do, but my little nieces and nephews proved me wrong.And a very well remembered (and still relevant) lesson that once you've typed it all in, you should type 'SAVE' before you type 'RUN'
Finding typos that you've made is a great way of learning more about the programming language too.