Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

49
Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau

Transcript of Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Page 1: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Teaching RubyHelping Jake and Jane learn to program

Bruce Scharlau

Page 2: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jake and Jane want to learn to program computers

Page 3: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jake has a game in mind, Jane wants the basics

Page 4: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Is it better to teach

programming wrapped around a

game, or not?

Page 5: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Games need to focus on the basics

Page 6: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Teach the basics using game concepts to aid learning

Page 7: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Teach the basics with emphasis on games

Page 8: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jake wants to realize his idea

Page 9: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jake has an idea for web based game

Page 10: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Scratch and Greenfoot don’t help

http://www.greenfoot.org/

http://scratch.mit.edu/

Page 11: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

RailsBridge points the way

http://railsbridge.org/

Page 12: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Focusing on the game will motivate him

Page 13: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Build up Jake’s learning based on game needs

Page 14: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Learn what’s needed as a

problem solving skill

Page 15: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

See each step in context of the game

Page 16: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Use game features to guide learning

Page 17: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Shoes is lightweight and easy to start

http://github.com/shoes/shoes

Page 18: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Shoes is not always easy to follow

Page 19: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

What if we teach

programming concepts with

game examples?

Page 20: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jane wants to learn to program

Page 21: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

The Teaching Children site helps

http://teachingkids.railsbridge.org/

Page 22: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Chris Pine’s ‘learn to program’ is useful

http://pine.fm/LearnToProgram/

Page 23: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Hello World! Is great, but python based

http://www.manning.com/sande/

Page 24: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jane is interested in ‘coding’

Page 25: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jane wants to master the concepts

Page 26: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jane wants the general CS degree

Page 27: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jane has no specific plans for her need

Page 28: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jane can be guided by general concepts

Page 29: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

The number of ruby books grows

Others being done as we speak …

http://book.rubylearning.org/

http://www.pragprog.com/titles/ruby3/programming-ruby-1-9

http://oreilly.com/catalog/9780596529864

Page 30: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Most ruby ‘learning’ books assume programming knowledge

These are not the books you’re looking for…

Page 31: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jake and Jane need process to be more fun

Page 32: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

We need a compromise between the two

Page 33: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Maybe we need ‘hello world’ in ruby and ‘redfoot’ for ruby objects

http://www.greenfoot.org/

Page 34: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Jake’s fixed idea is useful for focus

Page 35: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Games provide program interaction

Page 36: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Console apps cause problems but are needed for interaction

Page 37: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Console apps are also ugly

Page 38: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Shoes and similar GUI tools help, but can be challenging for beginners

http://limelight.8thlight.com/ http://github.com/shoes/shoes

Page 39: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

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

Page 40: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Games provide the ’x’ to do ‘y’ aspect

Page 41: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Games force need and curiosity helps

Page 42: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Games also introduce logic and flow

Page 43: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Games also bring in visual aspects, which might not be needed

Page 44: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Is is better to have a

‘reason’ for learning, or just learn ‘games’?

Page 45: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Build up Jake’s learning based on game needs

Page 46: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Teach Jane programming using games seems better

Page 47: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Use games to realise their potential

Page 48: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

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

Page 49: Teaching Ruby Helping Jake and Jane learn to program Bruce Scharlau.

Learn the basics wrapped around games

Bruce ScharlauUniversity of [email protected]

http://www.csd.abdn.ac.uk/~bscharla@scharlau

http://github.com/scharlau/RubyBasics/