Teaching code literacy

1,845 views

Published on

Teaching Code Literacy: slides for a talk at Strange Loop 2011

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,845
On SlideShare
0
From Embeds
0
Number of Embeds
50
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Teaching code literacy

  1. 1. Easy as Pie? Teaching Code LiteracySarah Allen@ultrasaurus
  2. 2. Coding Literacy
  3. 3. Sarah Allen@ultrasaurus
  4. 4. Sarah Allen@ultrasaurus
  5. 5. Why?Pie: the language Teaching Kids
  6. 6. Why?Pie: the language Teaching Kids
  7. 7. Why? Pie: the languageLearning from Kids
  8. 8. Why me?Why teach kids to code?Why create a language? Why Ruby?
  9. 9. AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!! IntrinsicAWESOME!!!!!!!!!!!!! GratificationAWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!
  10. 10. IntrinsicGratification
  11. 11. Results
  12. 12. Results
  13. 13. AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!
  14. 14. Why teach kids code?• Software is part of how our world works• Skill for thinking & communicating• Before they start believing they can’t• By high school some will outpace adults
  15. 15. language?
  16. 16. Small codeBig effectSimple syntax
  17. 17. “real” language
  18. 18. Domain Specific Language Domain = Web Games http://pie-bakery.heroku.com/
  19. 19. Pie: the language• What is Pie? (demo)• How do you make Pie? (the code)
  20. 20. place
  21. 21. place park:"You are in a park..."place trees:"You are in a Japanese garden."place river_edge:"The path ends at a river"place in_the_river:"You walk into the riverand drown."
  22. 22. place(park:"You are in a park...")place(trees:"You are in a Japanese garden.")place(river_edge:"The path ends at a river")place(in_the_river:"You walk into the riverand drown.")
  23. 23. place(:park => "You are in a park...")place(:trees => "You are in a Japanese garden.place(:river_edge => "The path ends at a riverplace(:in_the_river => "You walk into the riveand drown.")
  24. 24. place(park:"You are in a park...")place(trees:"You are in a Japanese garden.")place(river_edge:"The path ends at a river")place(in_the_river:"You walk into the riverand drown.")
  25. 25. place park:"You are in a park..."place trees:"You are in a Japanese garden."place river_edge:"The path ends at a river"place in_the_river:"You walk into the riverand drown."
  26. 26. place park:"You are in a park..."place trees:"You are in a Japanese garden."place river_edge:"The path ends at a river"place in_the_river:"You walk into the riverand drown."park.path trees:north, river_edge:eastriver_edge.path in_the_river:east!
  27. 27. place park:"You are in a park..."place trees:"You are in a Japanese garden."place river_edge:"The path ends at a river"place in_the_river:"You walk into the riverand drown."park.path trees:north, river_edge:eastriver_edge.path in_the_river:east!
  28. 28. Metaprogramming
  29. 29. Ruby Techniques used in the Pie DSL• method_missing• blocks with instance_eval
  30. 30. pie game.pieFile.open(pie_file) do |f|end
  31. 31. pie game.pieFile.open(pie_file) do |f| new_pie.instance_eval do eval(f.read)end
  32. 32. place park:"You are...def place(options) Place.new(places, options)end
  33. 33. park.path trees:northdef method_missing(name) ...end
  34. 34. park.path trees:northdef method_missing(name) place = places[name] ...
  35. 35. park.path trees:northclass Place def path ...
  36. 36. place park:"You are in a park..."place trees:"You are in a Japanese garden."place river_edge:"The path ends at a river"place in_the_river:"You walk into the riverand drown."park.path trees:north, river_edge:eastriver_edge.path in_the_river:east!
  37. 37. place park:"You are in a park..."place trees:"You are in a Japanese garden."place river_edge:"The path ends at a river"place in_the_river:"You walk into the riverand drown."park.path trees:north, river_edge:eastriver_edge.path in_the_river:east!
  38. 38. place park:"You are in a park..."place trees:"You are in a Japanese garden."place river_edge:"The path ends at a river"place in_the_river:"You walk into the riverand drown."park.path trees:north, river_edge:eastriver_edge.path in_the_river:east!
  39. 39. place park:"You are in a park..."place trees:"You are in a Japanese garden."place river_edge:"The path ends at a river"place in_the_river:"You walk into the riverand drown."park.path trees:north, river_edge:eastriver_edge.path in_the_river:east!
  40. 40. place park:"You are in a park..."place trees:"You are in a Japanese garden."place river_edge:"The path ends at a river"place in_the_river:"You walk into the riverand drown."park.path trees:north, river_edge:eastriver_edge.path in_the_river:east!
  41. 41. place park:"You are in a park..."place trees:"You are in a Japanese garden."place river_edge:"The path ends at a river"place in_the_river:"You walk into the riverand drown."park.path trees:north, river_edge:eastriver_edge.path in_the_river:east!trees.path river_edge:"go through the trees"
  42. 42. Tech Notes• Sinatra web app http://www.sinatrarb.com/• Rails IDE http://rubyonrails.org/• Rhodes mobile apps http://rhomobile.com/
  43. 43. What I Learned• Installation is boring• Teach Different Things language, environments, physical computing• Seek Immediate Gratification• Errors are part of the user experience
  44. 44. Next Steps• Snazzier games• Create a path to writing more code• IDE improvements
  45. 45. https://github.com/blazingcloud/pie gem install pie https://github.com/blazingcloud/pie-bakery http://pie-bakery.heroku.com https://github.com/blazingcloud/mobile-pie rake run:iphone rake run:android @ultrasaurushttp://teachingkids.railsbridge.org/

×