Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau

Teaching Ruby
Helping Jake and Jane learn to program
Bruce Scharlau
Jake and Jane want to learn to
program computers
Jake has a game in mind, Jane wants
the basics
Is it better to
teach
programming
wrapped
around a
game, or not?
Games need to focus on the basics
Teach the basics using game concepts
to aid learning
Teach the basics with emphasis on games
Jake wants to realize his idea
Jake has an idea for web based game
Scratch and Greenfoot don’t help
http://scratch.mit.edu/
http://www.greenfoot.org/
RailsBridge points the way
http://railsbridge.org/
Focusing on
the game will
motivate him
Build up Jake’s
learning based
on game needs
Learn what’s
needed as a
problem solving
skill
See each step in context of the game
Use game features to guide learning
Shoes is lightweight and easy to start
http://github.com/shoes/shoes
Shoes is not always easy to follow
What if we
teach
programming
concepts with
game examples?
Jane wants to
learn to
program
The Teaching Children site helps
http://teachingkids.railsbridge.org/
Chris Pine’s ‘learn to program’ is useful
http://pine.fm/LearnToProgram/
Hello World! Is great, but python based
http://www.manning.com/sande/
Jane is interested in ‘coding’
Jane wants to master the concepts
Jane wants the general CS degree
Jane has no specific plans for her need
Jane can be guided by general concepts
The number of ruby books grows
http://www.pragprog.com/titles/ruby3/programming-ruby-1-9
http://book.rubylearning.org/
http://oreilly.com/catalog/9780596529864
Others being done as we speak …
Most ruby ‘learning’ books assume
programming knowledge
These are not the books you’re looking for…
Jake and Jane need process to be more fun
We need a compromise between the two
Maybe we need ‘hello world’ in ruby
and ‘redfoot’ for ruby objects
http://www.greenfoot.org/
Jake’s fixed idea is useful for focus
Games provide program interaction
Console apps
cause problems
but are needed
for interaction
Console apps are also ugly
Shoes and similar GUI tools help, but
can be challenging for beginners
http://github.com/shoes/shoes
http://limelight.8thlight.com/
Plenty of effort underway to provide
beginner learning experiences
http://teachingkids.railsbridge.org/
http://testfirst.org/
http://github.com/ultrasaurus/dusty-attic using Sinatra for Zork type game
http://github.com/ultrasaurus Sarah Allen has a lot of useful examples and ideas
Games provide the ’x’ to do ‘y’ aspect
Games force need and curiosity helps
Games also introduce logic and flow
Games also bring in visual aspects,
which might not be needed
Is is better
to have a
‘reason’ for
learning, or
just learn
‘games’?
Build up Jake’s
learning based
on game needs
Teach Jane
programming
using games
seems better
Use games to realise their potential
All images provided by Niall Benvie at
http://www.ImagesFromTheEdge.com http://niallbenvie.churchilljohnson.co.uk/blog/
http://www.ilcp.com/index.php?cid=usrs&port=nbenvie
Learn the basics wrapped around games
Bruce Scharlau
University of Aberdeen
b.scharlau@abdn.ac.uk
http://www.csd.abdn.ac.uk/~bscharla
@scharlau
http://github.com/scharlau/RubyBasics/