4 ms·
Part of the problem is that programming is supposed to be "fun", as in "fun and games", not as in a serious topic that you enjoy so much you call it fun. This
by geebee 9y ago
Part of the problem is that programming is supposed to be "fun", as in "fun and games", not as in a serious topic that you enjoy so much you call it fun.
This is why a lot of programming is taught through graphical games. I'm not knocking Minecraft style programming lessons, they can be very motivational and build up programming skills and thought processes.
Unfortunately, I'm not that kind of programmer. I'm more the type who enjoys scikit-learn and kaggle than xbox. Even as a kid, I was more interested in programming to know who had the advantage in 3v2 rolls in Risk than programming a game itself (in other words, I wanted to program to get insight into a game, not to play the game itself).
But I wanted to introduce my 12 year old to programming, so rather than trying to learn about Minecraft, I helped him install jupyter notebook and showed him how he could automate some of his math homework. We wrote a method to calculate mean, median, range, that sort of thing, and he learned how to feed a series of lists into it, and graph it.
Believe it or not, this pleased him a great deal. He left feeling slightly buoyed, like he'd gained an edge.
But if programming remains an add-on to a school curriculum, who wants to do more math in an after school program, or a summer camp? So "learning to program for kids" will probably remain heavily focused on graphics and games. Which may be ok, my interest in simulating a dice roll rather than programming a game per se may not be reflective of how most kids (who have great potential) are wired.
And honestly, programming Minecraft is among the best of the educational software. Zoombinis was pretty cool, too, even if it was purely a game. Truth his, much educational software just re-teaches math, or history, but with buzzers and rewarding little cartoons for wrong or right answers.
- jacobolus 9y agoZoombinis (1996) was neat to play through with the first 2–5 loads of Zoombinis, maybe a few hours of gameplay, but the puzzles topped out at a very easy level, so continuing to play the game to get more of the little creatures to their destination (out of a possible 40 trips or something) quickly became a time-wasting grind. I think kids would ultimately have more fun with one or more Smullyan books.
- WorkLifeBalance 9y agoI think there's a spectrum from graphical games to full programming. Games can be designed which can explore problem solving, debugging and programming. For example "Human resource machine" is entirely visual but if you happen to click 'export' you get a very basic assembly language style output. If you never clicked export you wouldn't even realise you were "programming", you were just solving the problems on screen. The game does at time explain the analogies used. If you prod the people they'll describe linked lists but such understanding isn't required to progress. Moving across the spectrum a little there are games like TIS-100 and Shenzhen I/O which do involve programming but with very small instruction sets and graphical debugging and feedback. These aren't aimed at children so are more complex than would be suitable for children but what I'm trying to get across is that they don't specifically teach programming. You won't come out of it knowing python or C. You won't know about stacks or function calls. But they do teach problem solving and the run/explode/debug loop of getting an instruction set to work on different sets of data. By being games they gameify the process of wanting to reach acheivements while also solving the "what do I build?" aspect of more freeform/creative programming learning which can often be a dead-end without a sense of aiming toward a goal. I think a Human Resources Machine style game aimed at a younger audience could be greatly impactful on teaching a programming mindset.
- kochthesecond 9y agoI believe neither is necessary, and writing a program in an actual programming language should probably remain a special interest kind of thing. They should however teach the basics as they do teach math. I'm thinking the very basics of discrete mathematics. Like, we can make lists of things, then we can do things with lists, like adding, intersecting, indexing, traversing...
- fludlight 9y ago> Truth his, much educational software just re-teaches math, or history, but with buzzers and rewarding little cartoons for wrong or right answers. Honest question: what's wrong with Skinner boxing kids to get them addicted to memorizing an introductory corpus of data? At some point you want them to get creative, but creativity is impossible without some sort of foundation. My n=1 anecdote is that I now know way more about geography than most of my peers, largely thanks to playing Carmen San Diego 20+ years ago. That game had me look up facts in an accompanying reference book in exchange for a little cartoon reward. I played it many times and eventually retained the facts. PS: Kudos on teaching your kid to use jupyter notebooks! I taught myself how to do stats in college by implementing it in lisp.