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 [email protected] http://www.csd.abdn.ac.uk/~bscharla @scharlau http://github.com/scharlau/RubyBasics/
© Copyright 2024