Successfully reported this slideshow.
Your SlideShare is downloading. ×

Teaching code literacy

Ad

Easy as Pie?
      Teaching Code Literacy




Sarah Allen
@ultrasaurus

Ad

Coding Literacy

Ad

Sarah Allen
@ultrasaurus

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Upcoming SlideShare
Say it loud - James Brown
Say it loud - James Brown
Loading in …3
×

Check these out next

1 of 50 Ad
1 of 50 Ad
Advertisement

More Related Content

Advertisement
Advertisement

Teaching code literacy

  1. 1. Easy as Pie? Teaching Code Literacy Sarah 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 language Learning from Kids
  8. 8. Why me? Why teach kids to code? Why create a language? Why Ruby?
  9. 9. AWESOME!!!!!!!!!!!!! AWESOME!!!!!!!!!!!!! Intrinsic AWESOME!!!!!!!!!!!!! Gratification AWESOME!!!!!!!!!!!!! AWESOME!!!!!!!!!!!!! AWESOME!!!!!!!!!!!!! AWESOME!!!!!!!!!!!!! AWESOME!!!!!!!!!!!!! AWESOME!!!!!!!!!!!!! AWESOME!!!!!!!!!!!!!
  10. 10. Intrinsic Gratification
  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 code Big effect Simple 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 river and 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 river and 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 river place(:in_the_river => "You walk into the rive and 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 river and 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 river and 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 river and drown." park.path trees:north, river_edge:east river_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 river and drown." park.path trees:north, river_edge:east river_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.pie File.open(pie_file) do |f| end
  31. 31. pie game.pie File.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:north def method_missing(name) ... end
  34. 34. park.path trees:north def method_missing(name) place = places[name] ...
  35. 35. park.path trees:north class 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 river and drown." park.path trees:north, river_edge:east river_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 river and drown." park.path trees:north, river_edge:east river_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 river and drown." park.path trees:north, river_edge:east river_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 river and drown." park.path trees:north, river_edge:east river_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 river and drown." park.path trees:north, river_edge:east river_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 river and drown." park.path trees:north, river_edge:east river_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 @ultrasaurus http://teachingkids.railsbridge.org/

×