3 ms·
It is a perpetual puzzle to me why learning programming isn't considered to involve learning about functions. In my experience the hardest thing about programmi
by akkartik 10y ago
It is a perpetual puzzle to me why learning programming isn't considered to involve learning about functions. In my experience the hardest thing about programming is teaching people the facility of "uncoiling" in their heads the coiled representation of a loop or repeated calls of a function. That in turn requires as a prerequisite the ability to consider a function being called with multiple different inputs, and hold multiple possible situations as you build the function. Until you attack this, the hard problem of teaching programming, anything you come up with will only help learners with the first few hours of their learning. Which is invaluable, don't get me wrong. But what then? There's got to be something better than, "ok you're done with blocks and turtles, now go learn JavaScript."
(I have a start of a solution to attack this problem: http://akkartik.name/post/mu http://akkartik.name/post/mu)
- thunderbong 10y agoScratch has the concept of functions. They are also called blocks. Custom blocks which kids can create. The blocks can take parameters and are conceptually identical to functions. I don't know about the other languages mentioned though. I prepare curriculum for Grades 4 and 5 on Programming using Scratch and Flowcharts and teach kids to create blocks whenever they see that functionalities are getting repeated. Kids tend to learn a little differently compared to adults. Adults tend to want to know the 'big picture' before they begin and tend to have different preconceptions based on what they've learnt earlier. Kids' learning is much more playful, motivated more by inquisitiveness and curiosity. They don't have the urge to prove anything to anyone, including themselves. At those grades, their brains are very flexible and they can think of strange combinations and the ultimate goal of having a program solve a problem is not the aim. Even after many years, I find it hard to let go of trying to guide kids towards a goal, rather than keeping my mind open to new things that they are able to see just because they're not motivated the same way we as adults are.
- akkartik 10y agoThat's true. Logo has functions too. But for all the innovation that has gone into making the notion of an instruction easy to learn, functions everywhere look the same. For example, why can't a function in Scratch change its shape based on the number of arguments? When I learned programming it took me years to stop "ping-ponging" between bugs. I'd fix the most recently discovered bug, only to simultaneously break the second-most recently discovered bug. My students show the same behavior. That's a sure sign that just giving kids functions doesn't help them understand. Your observations about the differences in learning strategies were useful, thanks.
- spinsser 10y agoI hope you don't mind me asking, but I would really appreciate if you could share the curriculum you have been working on, or if you could share you experience. I am currently trying to do the same, so I would appreciate any form of help I can get. Regards.