4 ms·
I teach. I have the kids learn Python between age 9 and 11 depending on when they are interested. We write games and learn the fundamentals of CS by following
by red-indian 10y ago
I teach.
I have the kids learn Python between age 9 and 11 depending on when they are interested. We write games and learn the fundamentals of CS by following the curriculum of Rice's "Introduction to Interactive Programming in Python" class designed by Rixner and Warren. It has a Python interpreter and game library that compiles in-browser into javascript, which is a very helpful design for a first class, and for sharing their results with myself, their families, and each other.
Afterwards I encourage those who really enjoy it to learn Java, also using web sources primarily. I intercede when they are stuck but generally they help each other out.
Some of them used to use the Java to write Minecraft mods but that has become a bit more tricky.
There was one student who started to learn Java at age 7, but in general that's too young. If you push things too earlier they don't get a head start. They get burned out and don't want to have anything to do with it any more. You really need to be sensitive to what they are interested in and let them lead.
Most kids when they see others making their own games want to try their own hand at it themselves, so I have managed to create a self-perpetuating cycle.
Learning languages to make games makes sense. Pushing languages to force concepts will be resisted and is counterproductive.
The games approach is nice too because they rapidly learn trigonometry, basic physics, and linear algebra by age 10 or so, and are teaching themselves Calculus on Khan Academy by age 12, as well as researching optics, writing their own shaders and generally doing what most would consider college or graduate level mathematics. Their Java skills also often lead to writing for Android. Some selling their games and other software at a certain point, which helps their families.
It helps that on the reservation I have a great deal of autonomy in what I can do. I've worked in public outside schools before. None of this would be allowed there.
I don't really care for the idea of dumbed down toy languages that can't really be used for production software. Python and Java are well designed enough that they are understandable and usable from the age where they are able to do programming thought. Python is a simpler one to read and use and so we start with that. But Java is very similar and the lessons of Python directly transfer. Java ends up being much more useful for distributable and saleable software, though it is harder as a first language.
- Eridrus 10y agoWhy Python rather than JavaScript?
- beojan 10y agoThe real question is "why JavaScript rather than Python?" The only reason JavaScript is so popular is that it runs in the browser. JavaScript is otherwise a pretty poor language, and certainly much harder to learn than Python.
- Eridrus 10y agoRunning in the browser and having pretty good debugging tools seems pretty useful to me.
- jventura 10y agoMaybe brython can help with that! https://brython.info/ https://brython.info/
- darpa_escapee 10y agoCompared to other languages and environments, debugging JavaScript can be difficult if you don't have a good idea of what's going on behind the scenes in specific browser versions, the DOM and JavaScript VM. Throw callbacks, Promises, etc into the mix and things get confusing pretty fast. Comparatively, other languages, like Python, will throw sane exceptions and a meaningful stack trace when something goes wrong.
- sotojuan 10y agoJS is a pretty bad first language to learn—too many quirks and random syntax in the last few years. Python is dead simple—I recently had to take on a project written in it having never programmed in Python before and I essentially did not have to learn it to get the feature done.
- darpa_escapee 10y ago
- vram22 10y agoInteresting. I teach people programming too, both adults and kids - okay not too young kids, say 10th grade or above. >distributable and saleable software Do you or they make the Python code into an EXE for sale, using one of the available tools, or sell as source?
- enzanki_ars 10y agoIn respect to Minecraft, you can use Python to control aspects of the game in the Pi Edition. With Java, the Bukkit/Spigot API isn't too hard to understand, but I'm not too sure about how hard it would be for kids that age. Depends on their skill level and interest.
- foopod 10y agoWe used Learn to Mod for a junior hackathon, it is like modding Minecraft but with a scratchlike interface. Super cool
- dmVI 10y agoI did the same in New Zealand and it was a massive hit with the kids! Great site with a series of tutorials, in browser barebones Minecraft game to see the results of your code and a great full version Minecraft setup with dedicated worlds where the code is loaded as book objects inside the game. HIGHLY recommend checking them out: https://www.learntomod.com/ https://www.learntomod.com/ They also offer free teacher and student accounts with the ability to limit time. Can't say enough positive things about the service.
- deleted 10y ago[deleted]