Plus it is just really boring to struggle with syntax and typing. It is much more interesting to think about how to get a program to work, and kids are only really going to learn things well if they find it interesting. At least my kids.
Plus it is just really boring to struggle with syntax and typing. It is much more interesting to think about how to get a program to work, and kids are only really going to learn things well if they find it interesting. At least my kids.
I could be totally wrong, but I've never seen an instance where kids exposed to dumbed-down "reduced complexity" material outperform those that weren't, except in sports and art. You can teach the mechanics of a tennis swing with small racquets and oversized balls, but can you really teach pointers with an iPad environment?
Simon Peyton Jones gave a great lecture on this topic at Strange Loop a few years ago. Basically, "computer science" can be reframed as the study of information, computation and communication. Thinking about these subjects rigorously and solving the problems surrounding them is a foundational skill that is much more broadly applicable than just in programming, and really does not need to involve computers at all (as he shows in his lecture.
> I could be totally wrong, but I've never seen an instance where kids exposed to dumbed-down "reduced complexity" material outperform those that weren't, except in sports and art.
I'm not sure I follow. I mean, that's how children learn to read and write, it is not? Or how they learn maths at school: one step at a time.
Of course if a particular child shows great initiative and engagement with pre-computing, they'll do well with real computing, but then why not just start with computing? For the ones that don't care, why not let them continue reading books they enjoy and playing outside?
That's how American children learn to read and write. It's not how Russian children used to learn to read and write; they started school much later, and immediately began fairly mature studies of classic Russian literature and poetry (Pushkin, for example).
If a child shows great initiative with letters, they'll do well with reading. But why not just start with reading?
Russian children don't start with letters on an IPad. They start later, immediately tackling classic literature.
Other people in this thread are pitching simplified programming exercises as an advantageous performance benefit for children to show them before real programming. This is akin to showing kids simplified reading exercises before reading. I do not believe there is any tangible long term benefit to making kids look at a picture of a dog and choose the letter "D" from a floating letter cloud to complete __OG, and I also do not believe there is any tangible long term benefit to making kids complete simple loop structures on an iPad or in a video game in advance of actually starting to program.
It is not crucial for the development of children for adults to provide them with neutered facsimiles of reality.
I just think there's a bit of a gap right now. I think apps like Tynker that provide sort of pre-computing problem-solving are pretty good. I also like environments like Replit that are easy to jump right into and get a Python environment without a bunch of random setup. And all of this is way better than I had when I was a kid! But I think there could be something in the middle, maybe something that started to engage with topics like list manipulation a bit more than the current batch of pre-computing apps do.
So if you don't come into it already knowing how to think, you will be written off as "not technical type" or some such. And you will write yourself off too.
Pointers don't matter at all. Loops and ifs matter a lot.
"Teaching kids computing through iPad apps" sounds like more systematic reduction. The kids that don't get it won't care, and the kids that do get it would have got regular computing, too.
Isn't literally every subject taught exactly this way? Books for toddlers don't have chapters for a reason. Practicing basics as early as possible, means that you don't have to think about little things when you move on to more complex subjects. You spent a long time practicing addition before anybody even told you about the concept of multiplication.
You can develop a similar plan for teaching programming that starts with basics and progressing (variables, linear control flow (aka, no conditionals or loops), conditionals, loops, functions/subroutines, complex types like records, recursion, modules and classes; in roughly that order). You aren't hiding anything, you aren't misstating anything, you just don't move on to advanced things until it's time to. Of course, this progression would probably be a lot faster than the arithmetic -> calculus progression.
The ex-Soviets I know speak reverently of the superiority of Soviet mathematics education, which begun much later than American mathematics education, and was far more rigorous.
There's certainly nothing wrong if a child wants to explore pre-programming on their own, but I think there is little to no value in deliberately exposing them to it in a bastardized form in order to "prepare them for what they'll see later".
Also, the assumption that there actually should be an arithmetic -> calculus progression is itself a pernicious issue- reference page 24 of this PDF for an extremely accurate takedown of the American mathematics curriculum: https://www.maa.org/external_archive/devlin/LockhartsLament....
The idea that there are "basics" that can be safely ignored once learned is patently false. Everything I've read from great performers in any field- piano, cooking, mathematics, physics, etc- contains constant encouragement to return to and refine one's understanding of the fundamental skills of the practice. I did indeed spend a long time practicing addition before anyone informed me that it was time to "move on" to multiplication, and it wasn't until I graduated college with a degree in aerospace engineering that I had read a few books about the history of mathematics and found out that the manipulation of Arabic numerals via "addition" or "multiplication" was simply shorthand for counting, which itself is a fundamental mathematical art. What was taught to me as "multiplication" is actually "one particular algorithmic notation for representing the counting of multiple sets", not "objective mathematical law".
Had I disabused myself of the notion that there was any part of mathematics that I could "stop thinking about" because they were "little", I would have made a much better showing in school.
I'm not entirely joking either; a lot of these "teach kids to code" efforts either start far too high-level and don't really help to dispel the myth that computers are magic, or border on outright corporate indoctrination ("use this locked-down environment, don't even think of trying to go outside it".)
On review, I think I probably took too aggressive of a stance against the concept. If you look at my other comments in the thread, I made a lot of references to the fake "ladder of math", and I thought I detected a similar attitude in "teaching kids to code without using real code". I just don't think there's any benefit in the pedagogical method of "teaching by pruning away the actual realities of the subject", and I think that believing that method is useful leads to more dire consequences down the line.
I mean, if you want to teach a kid piano, you can just start teaching them piano once their fingers are nimble enough to act independently of each other. It's not particularly important to give them a "starter piano" with four keys, and it's more satisfying to bang away on the real one anyway.
I think the simplicity and limitations of computers at the time had a lot to do with them being accessible to a second grader.
It's a shame that his vision of tech education isn't shared by hardware manufacturers. There was the OLPC project, which didn't seem to gain much traction. The iPad could easily fulfill this role, yet the OS still limits the device to media consumption and any programming on it is cumbersome. There's an iPad Scratch app that might be worth a try: https://apps.apple.com/us/app/scratchjr/id895485086
Why be US-centric?
> Things like using a cursor in a multi-line text input are not natural for kids in early grades
Sure it is. In past decades, many children start working their family computer at ages 6-10. Maybe they started with games like Space Invaders or Digger or Xonix, but soon enough they were editing text files.
> it is just really boring to struggle with syntax and typing
Yeah, so let's not teach children to express themselves in writing... that stuff is boring.