(beta version) kids, ruby, fun! - introduction of the smalruby and rubyprogramming shounendan - in...

Post on 30-Jun-2015

443 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Please see the final version: http://www.slideshare.net/kouji/final-version-kids-ruby-fun-introduction-of-the-smalruby-and-rubyprogramming-shounendan-in-rubyconf-2014 This presentation is called “KIDS, RUBY, FUN!”. I will discuss our activities with the Ruby Programming Shounendan, especially *Smalruby* which is *a key part* of it. This is for RubyConf 2014 in San Diego Nov 19th, 2014.

TRANSCRIPT

Kids,Ruby,Fun!

Introduction of the

Smalruby and Ruby

Programming

Shounendan

Kouji Takao,The Ruby Programming Shounendan,RubyConf 2014, 11.19.2014

Kody : Kouji Takao• CRuby commiter

(Readline module)• A leader of the

Ruby ProgrammingShounendan

Shounen = Boys & Girls

Dan = Organization

Kody : Kouji Takao• Engineer of NaCl• Network Applied

Communication Laboratory

• Contactkouji@smalruby.jp@takaokouji_enFacebook

Made possible by

NaCl

NaCl is inMatsue, Shimane, Japan

http://en.wikipedia.org/wiki/File:Japan_location_map_with_side_map_of_the_Ryukyu_Islands.svg : Maximilian Dörrbecker (Chumwa) CC-BY-SA 3.0CC by SA

NaCl is

SIer

NaCl has

30Rubyists

NaCl has

6Commiters

Pleasevisit

NaCl♪

6 years ago,

Started to Teach Ruby for youth

MotivationsRuby City MATSUE

Project

Teach my son Ruby

Matsue MayerMasataka MatsuraImage from http://www.matsuura-m.jp/

Ruby City MATSUE Project

• By Matsue-city• Promote IT Business• Increase Rubyists• Find Ruby teachers

Teach my son Ruby• Love Ruby

• Love IT Engineering• Make materials for

teaching Ruby to youth

Find Ruby teachers

Make materials for teaching

Ruby to youth+

Started to Teach Ruby for youth

Since then

1% / yearin Matsue-city

A Programmer’s

Best Friend

Ruby is

and

Kids?

• Typing• English• Ruby Syntax

Problems

Recently,Increased

Programming Education

20,000 Teachers

“Should be a compulsory subject!”

By President Obama

Compulsory educationfor ages 5-16

Concept of algorithmsBuilding and Debugging

It is Practical!

HOUR OF CODE by Code.org27,230 events around the world

http://hourofcode.com/

1,000 Teachers100,000,000

Kids

Japan

Government

Compulsory Education

Junior high school / Since 2012

Sensor

Motor

Measurement and Control

1 Computer / 1 Student

~ 2020Ex) Distributed tablets to all 6-12 ages in Saga-city

about 4,000 students

Company

http://pegpeg.jp/

PEG• Joint project of

CANVAS and Google

• CANVAS hold many workshops for children

• Distributed 5,000 Raspberry Pi

TENTO

http://www.tento-net.com/

Life is Tech!

http://life-is-tech.com/

Programming education as a Service

= PaaS ;-)

Individualizedinstruction

Boot camping

Why many kids programming

workshops are held?

Great tools and materials!

by MIT Media Lab

http://vimeo.com/65583694

http://scratch.mit.edu/

Combinationof blocks

= Program

Blocks= Instructions

English Japanese

Internationalization

Easy to run

Press

Run

• Typing

• English

• Ruby syntax

Problems

➡Blocks

➡ Internationalization

➡ Combination of blocks

Smalruby(smɔ́Rːrúːbi)

Ruby + Scratch

Hi,I’m Hatti!

Demo

Smalruby(smɔ́Rːrúːbi)

GitHub:smalruby/smalruby-editor

Scratch Features

• Instruction Blocks• Characters and

Stages• Easy to Run

Ruby

Instruction Block

( 歩動かす =

move)

Instruction Block

Ruby

Kids wanted to code directly!

Emacs icon : http://ochiailab.blogspot.jp/2013/04/powerlineelemacs.htmlVim Icon : http://www.vim.org/index.php

Sublime Text icon : http://blog.livedoor.jp/nonprofessional/archives/1004031653.html

Now

Experimental programming class using Smalrubyfor 288 studentsin this AprilPhoto from http://business.nikkeibp.co.jp/article/report/20141001/271963/

Madeeducational materialby both teachers who are not IT engineers!

1 Teacher

Students

MATSUE CITY

Ruby classes in whole municipal Junior high school

By 09.04.2014/local news paper(Sanin Chuo Shinpo)

91%Junior high school

students will Learn Ruby

The RubyProgramming Shounendan

“Promoting the joy of programming to many kids. “

“Building internet safety awareness for kids through programming!”

Ruby programming events for kidsand parents

Introducing Ruby,once a month

CoderDojo Matsuehttps://coderdojo.com

Free Ruby computer programming club

for Kids,once a month

Ruby Programming Shounendan

Youth Sports Club

≒ Team

CoachTourna-

ment

Welcome

Developers

Visual editor•Rails•Blockly

http://code.google.com/p/blockly/

Easy to Use• Less Dependency• Small Runtime Size• Simple Installation

RuntimeWindows:DXRuby

Mac or Linux:dxruby_sdl, Ruby/SDL

Smalrubot• Arduino• Dino

GitHub: austinbv / dino

Blockly.Blocks['motion_move'] = { init: function() { this.setColour(208); this.interpolateMsg(‘move%1steps', ['STEP', ['Number'], Blockly.ALIGN_RIGHT], Blockly.ALIGN_RIGHT); this.setInputsInline(true); this.setPreviousStatement(true); this.setNextStatement(true); }};

Define Instruction Block

/app/assets/javascripts/blocks/motion.js.coffee.erb( 歩動かす =

move)

Blockly.Ruby['motion_move'] =function(block) { var arg = Blockly.Ruby.valueToCode(this, 'STEP', Blockly.Ruby.ORDER_NONE); return 'move(' + arg + ')';};

Generate Ruby from Block

/app/assets/javascripts/blocks/motion.js.coffee.erb

( 歩動かす =

move)

Instruction Block

Ruby

“Blockly’s XML”

Ruby

( 歩動かす =

move)

class MotionMove < CharacterMethodCall blocknize '^\s*' + CHAR_RE + 'move\((.+)\)\s*$', statement: true, inline: true

def self.process_match_data(md, context) md2 = regexp.match(md[type]) add_character_method_call_block( context, md2[1], new, STEP: md2[2]) true endend

Translate Block from Ruby

Conclusion• Teaching Ruby Motivations• Ruby City MATSUE Project• Teach my son Ruby

• Smalruby• For over 8 years old

• Ruby Programming Shounendan• Learning Ruby Organization for

Boys & Girls

A Programmer’s

Best Friend

Ruby is

and

Kids

NOTQ & A

THANK YOU

Smalruby (smɔ́Rːrúːbi)

GitHub: smalruby/smalruby-editorEmail: contact@smalruby.jp

Twitter: @smalruby

top related