2013/How My Kids Are Learning to Program By Talking
My children have patiently tolerated a number of teach-STEM-quick schemes their dad has brought home. They’ve taught robots to dance, created simple animations using Scratch, and, quite frankly, made a lot of poop jokes.
What’s missing from these programming tools was storytelling. The ones we tried focused either on easy interactivity or expressive power. If only there were a way to combine the two… oh, wait, there was—46 years ago!
Speaker: Ian Dees
Return to this session's details
Notes by Colin Dabritz:
Why learn programming? "we need more programmers" but much more, "we need scientists" Really want them to learn computational thinking Here is what I have, there is where I want to be. Breaking down the steps to get there. Also becoming problem solvers. "it's nice when a plan comes together" Typical toolkits for teaching beginning programmers two big approaches: wall of text (like traditional), or wall of tools (bits to put together, e.g. sketch) http://scratch.mit.edu/ first project in shoes a fun GUI toolkit for Ruby http://shoesrb.com/ designed for quick GUIs, hosted site for scripts. Spelling kit, verbal. Tool speaks word, shows word, next word. Wrote framework, wanted to start with modifying something existing.
Things learners have to keep in their heads: Syntax Variables/loops/conditionals Box model (html like) too much to start with Show how existing works, then small modification tasks, e.g. modify words. Customization is a great gateway drug (see scripting/creating, e.g. Lua) From wall of text to wall of tools Next program, in scratch, http://scratch.mit.edu/ example game in scratch, blocks, scripts for each actors BIG box of tools, count 12 on screen, scroll down, oh wait, 7 categories… hard to know where to start dinosaur movie with airplane, goes 'rawr' example multiplication game Interesting abstraction breaking down a bit, e.g. assigning random numbers isn't actor, really scratch doing things Her program meant more to her because it met a need book: "Super scratch adventure" Huge palate of choices [paradox of choice?] Good for sketching, animating, Harder for problem solving Dryfus Model of skills acquisition (y: novice, competent, proficient, expert, master, x: mad skillz) "People at different levels of skill need different things [to learn]" Moving from recipes to solutions.
memories of Igal http://opensourcebridge.org/users/1
Making robots accessible to everyone Brett Nelson, OSB2010 http://opensourcebridge.org/sessions/480
Blocos - programing environment http://www.gogoboard.org/blocos
Learn to solve by question and answer (asking questions, gauging answers, socratic method) "lets turn an "ON" puzzle piece, and see what happens. ok add an "OFF" what happens now?. ok, now add delay…" discovering the delay that will give 90 degrees, per robot, carpet etc. Experimenting. They then go 'off script' by design, go have fun. "can I name a dance step?" - discovering procedures without being told
Interaction with environment Ideas, etc. "Now we're just tech support hanging back" environment - colorful palate - almost impossible to make syntax errors
Translating narrative into code "ok you're tell me what you want the robot to do, how do we get that into code?" "Simplicity doesn't buy you much" Seymour Papert, Mindstorms "This is close to the situation with BASIC. Its small vocabulary can be learned quickly enough. But using it is a different matter. Programs in BASIC acquire so labyrinthine a structure that in fact only the most motivated and brilliant (“mathematical”) children do learn to use it for more than trivial ends." http://www.arvindguptatoys.com/arvindgupta/mindstorms.pdf http://www.amazon.com/Mindstorms-Children-Computers-Powerful-Ideas/dp/0465046746 Logo supports conversation about thinking. Big insight here was that code is speech.
Code is Speech
e.g. logo, say "forward 100" etc Dictating logo programs verbally, converted with text to speech. segue into "spiral" unknown function, you're going to teach it how!
Exploration [and Experimentation]
variables loops procedures
say [go home turtle you're drunk]
drawing robots example sneaking in a Cartesian Coordinates example
Learn extra things by accident
(and by the way…) Blocos is just Logo! (blocks generate text logo in the background)
Why does this work? Verbal family, verbal learners? Specific rather than abstract. Discussion is part of the solution.
Q/A robot with 3d printing? Would be neat! Could download plans directly. idea: Pool noodle slices for wheels, bearing from multiple sizes of tubes. Foam board, knife, tape, glue. Like "8 bit 3d printing" Dumpsters of sign companies