5 ms·
6 years old? This confuses me. Formal operations typically develop at around age 11 (cf. Piaget); this mental capability is necessary to (among many other thi
by mmirate 9y ago
6 years old?
This confuses me.
Formal operations typically develop at around age 11 (cf. Piaget); this mental capability is necessary to (among many other things) comprehend abstraction, isomorphism, algebra, recursion, and most of the other mathematics-originated components of computer science. How can children without these capabilities, possibly comprehend programming, to any extent beyond the trivially concrete?
- cicero 9y agoWhat's wrong with teaching them the trivially concrete? It's just the beginning of a journey that can progress as they get older.
- mmirate 9y agoJust off the top of my head, there's the 5-year gap between age 6 and age 11, during which this journey does not progress and the memories from age 6 can degrade.
- another-dave 9y agoSurely you could say the same about teaching six year olds anything beyond reading, writing and basic maths. At that age, you're not teaching them (programming) concepts, you're stoking their curiosity
- mmirate 9y agoThen why give a taste of "programming" and not, say, electronics? That would support the (superior) bottom-up direction of CS pedagogy far better.
- pbhjpbhj 9y agoPor que no los dos?
- mmirate 9y agoTime limitations. With current US primary+secondary curricula, most non-remedial students still only get as far as differential calculus before graduating high school - electronics and discrete math are already missing from that, and "concrete programming demonstrations" would strain the schedule even more.
- dbcurtis 9y agoIt means you need to keep the learning tangible, tactile, and concrete. Simple robots are great for that. At that age with my kid, we did Logo+Turtle graphics, with a "be the robot" walk-through before coding. Also we got a Pro-Bot from Terrapin Logo, which is again create concrete, observable output from simple programming steps. Somewhere along the line we had a robot that I don't think is made any more, but it had a paper disk with two channels of information for driving the two wheel motors, and you programmed it with a black crayon. The key is keeping a direct, concrete connection between program and output. Multiple steps of abstract thinking don't work well.
- cr0sh 9y ago> Somewhere along the line we had a robot that I don't think is made any more, but it had a paper disk with two channels of information for driving the two wheel motors, and you programmed it with a black crayon. Sounds like one of the old OWI MOVIT robots - they used to sell a version (I think it is discontinued but still available from some vendors) called the "Binary Player Robot Kit". It doesn't look the same as the original version in the 1980s, but the internal circuitry is probably identical.
- dbcurtis 9y agoOh yeah, Binary Player. It was pretty interesting for how simple it was.
- gertef 9y agoI've noticed this with my kids. You can try to teach something, put a lot of effort into it, make slow and unreliable progress, then back off and then a year later they try again and pick it up instantly because their brain is ready. The key is to provide the opportunity at intervals, and don't push if they aren't ready yet.
- mmirate 9y ago> their brain is ready Without abstraction/generalization capability, how are they able to learn the entirety of the concept rather than merely analyze your concrete examples?
- swiley 9y agoI feel like at 6 years old you understand enough to describe state machines. I did this when I was 6 with the older lego RCX brick. I didn't understand the limitations of the graphical programming language at the time because nothing I thought of was complex enough to push them. It still probably helped me understand intuitively how "dumb" computers are which can be pretty hard for beginner programmers to grasp for some reason.
- mmirate 9y ago> It still probably helped me understand intuitively how "dumb" computers are which can be pretty hard for beginner programmers to grasp for some reason Grasping the dumbness of computers can also be done via a bottom-up approach: transistors, then gates, then boolean-logic/state-machines, then binary-numbers/ALUs, then processors, and so on. "You think it can do X? Then show me how that could be built, using what you've learned so far!" (Analogous, of course, is learning mathematics starting with a 3-column-proof-based approach, rather than ... err, whatever they call the typical American approach.)
- devrandomguy 9y agoAlgebra can be taught to young children by making it concrete. Call the variable boxes, and give them actual boxes to represent them. Color code the units, and don't allow them to mix colors. Tell them to play fair: "You may only give something to the right side, if you also give the same thing to the left side. Same goes for taking things away, or splitting into shares, or asking the teacher for a copies of one of those boxes. Yes, you can do that, just share it fairly between the two sides of the play area." Kids get the rules of fairness really quickly, and those rules map closely to the basics of algebra. I was part of a study where this was attempted, at about age 8 or 9. IIRC, it worked well for about half of us. The teacher totally blew my mind when she took all of my boxes and tokens, put them in her larger pencil container, and told me that my game was now just a piece in a bigger game.
- GlennS 9y agoWell, there are plenty of example of kids who do learn programming at that age, so I guess your ideas must be incorrect. Personally, my parents got me a Commodore 64 when I was 6, it happened to come with a copy of 'An Introduction to Basic Part 1', and I successfully worked through it.
- mmirate 9y agoYou mean Piaget's ideas?