where's the play in programming?
DESCRIPTION
Given at BarCampSD4, 16 Nov 2008.TRANSCRIPT
Where’s the play in programming?
Aaron VonderHaarBarCampSD4
Why program?
What makes programming fun?
• The joy of figuring things out
• Exercising creativity
• Collaborating with others
• Each skill gives you new things to play with
Barriers to enjoying programming
• “too technical”
• hard to get the tools
• don’t know where to start
• many prerequisite skills
• no stable feedback loop
How to make programming fun
• break up new knowledge into small chunks
• each new skill should give results
• reduce the prerequisite knowledge
• make it easy to get and use the tools
• smile
Teaching Java programming
• Grades 4-12
• “Programming should be fun!”
• Student-directed projects
http://wintrisstech.org
Demo student games
not just for geekshttp://flickr.com/photos/mikegoldberg/960968569/
Barriers to enjoying programming
• “too technical”
• hard to get the tools
• don’t know where to start
• many prerequisite skills
• no stable feedback loop
(review)
Usability of programming tools is
a barrier
How much of a barrier?
• Setting up a programming project
• Number of steps is a crude metric
• Pre-condition:at Google search results page
• Post-condition:typing code
But first, a baseline...Writing a story
Writing a story: 1
Writing a story: DONECompleted in 2 steps
One more example from the arts...
Playing a keyboard
Keyboard: 1
Keyboard: 2
Keyboard: 3
Keyboard: 4
Keyboard: DONECompleted in 5 steps
Now for some real programming...
Ruby on Rails
Rails: 1
Rails: 2
Rails: 3
Rails: 4
Rails: 5
Rails: 6
Rails: 7
Rails: 8
Rails: 9
Rails: 10
Rails: 11
Rails: 12
Rails: 13
Rails: 14
Rails: DONECompleted in 15 steps
The programming I grew up with...
QBASIC
QBASIC: 1
QBASIC: 2
QBASIC: 3
QBASIC: 4
QBASIC: 5
QBASIC: DONECompleted in 6 steps
What I teach my students...
Java Application in NetBeans
NetBeans: 1
NetBeans: 2
NetBeans: 3
NetBeans: 4
NetBeans: 5
NetBeans: 6
NetBeans: 7
NetBeans: 8
NetBeans: 9
NetBeans: 10
NetBeans: 11
NetBeans: 12
NetBeans: 13
NetBeans: 14
NetBeans: 15
NetBeans: 16
NetBeans: DONECompleted in 17 steps
How kids like their NetBeans
Default NetBeans Kids’ NetBeans
Mobile apps are what kids will be using...
iPhone Application
iPhone SDK: 1
iPhone SDK: 2
iPhone SDK: 3
iPhone SDK: 4
iPhone SDK: 5
iPhone SDK: 6
iPhone SDK: 7
iPhone SDK: 8
iPhone SDK: 9
iPhone SDK: 10
iPhone SDK: 11
iPhone SDK: 12
iPhone SDK: 13
iPhone SDK: 14
iPhone SDK: 15
iPhone SDK: 16
iPhone SDK: 17
iPhone SDK: 18
iPhone SDK: 19
iPhone SDK: 20
iPhone SDK: 21
iPhone SDK: 22
iPhone SDK: 23
iPhone SDK: 24
iPhone SDK: 25
iPhone SDK: 26
iPhone SDK: 27
iPhone SDK: 28
iPhone SDK: DONECompleted in 29 steps
Programming online...
Heroku.com
Heroku: 1
Heroku: 2
Heroku: 3
Heroku: 4
Heroku: 5
Heroku: 6
Heroku: 7
Heroku: 8
Heroku: 9
Heroku: DONECompleted in 10 steps
“Technical” hobbies take more steps
Writing a story
Playing a keyboard
QBASIC
Heroku.com
Ruby on Rails
NetBeans
iPhone SDK
0 5 10 15 20 25 30
Number of steps
One-time setup Per-project setup
end