Teaching code literacy
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Teaching code literacy

  • 1,492 views
Uploaded on

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

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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,492
On Slideshare
1,456
From Embeds
36
Number of Embeds
5

Actions

Shares
Downloads
10
Comments
0
Likes
0

Embeds 36

http://lanyrd.com 28
http://paper.li 3
https://www.linkedin.com 3
http://www.twylah.com 1
http://www.linkedin.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Easy as Pie? Teaching Code LiteracySarah Allen@ultrasaurus
  • 2. Coding Literacy
  • 3. Sarah Allen@ultrasaurus
  • 4. Sarah Allen@ultrasaurus
  • 5. Why?Pie: the language Teaching Kids
  • 6. Why?Pie: the language Teaching Kids
  • 7. Why? Pie: the languageLearning from Kids
  • 8. Why me?Why teach kids to code?Why create a language? Why Ruby?
  • 9. AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!! IntrinsicAWESOME!!!!!!!!!!!!! GratificationAWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!
  • 10. IntrinsicGratification
  • 11. Results
  • 12. Results
  • 13. AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!AWESOME!!!!!!!!!!!!!
  • 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. language?
  • 16. Small codeBig effectSimple syntax
  • 17. “real” language
  • 18. Domain Specific Language Domain = Web Games http://pie-bakery.heroku.com/
  • 19. Pie: the language• What is Pie? (demo)• How do you make Pie? (the code)
  • 20. place
  • 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. 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. 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. 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. 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. 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. 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. Metaprogramming
  • 29. Ruby Techniques used in the Pie DSL• method_missing• blocks with instance_eval
  • 30. pie game.pieFile.open(pie_file) do |f|end
  • 31. pie game.pieFile.open(pie_file) do |f| new_pie.instance_eval do eval(f.read)end
  • 32. place park:"You are...def place(options) Place.new(places, options)end
  • 33. park.path trees:northdef method_missing(name) ...end
  • 34. park.path trees:northdef method_missing(name) place = places[name] ...
  • 35. park.path trees:northclass Place def path ...
  • 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. 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. 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. 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. 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. 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. Tech Notes• Sinatra web app http://www.sinatrarb.com/• Rails IDE http://rubyonrails.org/• Rhodes mobile apps http://rhomobile.com/
  • 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. Next Steps• Snazzier games• Create a path to writing more code• IDE improvements
  • 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/