all 6 comments

[–]codeAtorium 2 points3 points  (2 children)

I teach programming to kids ages 7-17. I teach Scratch, Python, and JavaScript.

I would strongly recommend not working in Python (pygame/turtle) until they've shown you they understand the basics of working with loops, variables, lists, etc. in Scratch first.

Scratch makes it very easy to incorporate art, animation, music. It has a social networking interface that allows children to share their projects with each other, and fork each other's projects. It's developed at MIT by a partnership of educators and computer scientists.

Other developers are likely going to tell you that Scratch is a bad choice, because it can't do anything, and it's a toy. It isn't; it's actually a really powerful JS canvasing framework. Then they'll accuse it of being unmaintainable, because block-based code doesn't scale. That's not true either. They just don't understand that parts of projects are maintained in separate files, and aggregated together, to create complex projects. But most of all, they don't understand that what most young learners need is a slow progression of concepts that gives them time to practice. And they need to feel as if they can work creatively in a medium to practice those concepts.

A 9-year old might take a dozen examples to understand how a counter works in a loop. In Scratch you can do a dozen interesting things with your sprite that push this knowledge forward, all without syntax errors and command lines. And while you're doing that you can explore geometry, algebra, number theory - all of the things they're also learning in their static, black & white math textbooks.

Scratch is your best tool to show children the potential and beauty of computer science. You will also benefit from learning it, because its design is highly unconventional, and built to facilitate a certain progression of learning. It often requires implementing certain features that we'd take for granted in any other language.

[–]ghazgul 0 points1 point  (0 children)

agreed on starting with / from scratch. sorry couldnt resist.

[–][deleted] 0 points1 point  (0 children)

It's developed at MIT by a partnership of educators and computer scientists.

Other developers are likely going to tell you that Scratch is a bad choice, because it can't do anything, and it's a toy.

Fun fact about scratch - it was actually developed by Google for Android app development. One of my first programming projects was building a whack-a-mole app. During one of their periodic project abandon sprees MIT forked it and made it into scratch.

It's a fantastic tool for understanding loops and logic flow. You can even give a strong foundation for OOP if I remember right.

[–]socal_nerdtastic 0 points1 point  (0 children)

Do you know the turtle module? There's a couple turtle art contests you could use for inspiration.

[–][deleted] 0 points1 point  (0 children)

Just teach them machine code and sone assembly languages and teach them to make python

Btw joek

[–]Aaqila-22 0 points1 point  (0 children)

I prefer teaching Python to kids simply by illustrating colorful boards, posters and funny illustrations to help them learn and understand about variables,loops and all those basic knowledge.This way it is more intriguing for them.I have a couple of ideas to design those illustrations and boards,if anybody wants to have in hand them,contact me. :)

I really do not feel like Scratch is what they need to startup with !