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

76
K ids, Ruby, Fun Kouji Takao, The Ruby Programming Shounendan, RubyConf 2014, 11.19.2014

Upload: -

Post on 04-Jul-2015

56 views

Category:

Technology


0 download

DESCRIPTION

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

Page 1: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Kids,Ruby,FunKouji Takao,

The Ruby Programming Shounendan,

RubyConf 2014, 11.19.2014

Page 2: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Kody : Kouji Takao• CRuby commiter

(Readline module)

• A leader of the

Ruby Programming

Shounendan

Page 3: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Kody : Kouji Takao• Engineer of NaCl

• Network Applied

Communication Laboratory

• Contact

Page 4: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Made possible by

NaCl

Page 5: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

NaCl is in

Matsue, 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

Page 6: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Please

visit

NaCl♪

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

Page 7: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

6 years ago,

Page 8: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Started to Teach Ruby for youth

Page 9: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

MotivationsRuby City MATSUE

Project

TEACH MY SON RUBY

Page 10: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Matsue Mayer

Masataka MatsuraImage from http://www.matsuura-m.jp/

Ruby City MATSUE Project

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

Page 11: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

TEACH MY SON RUBY

• Love Ruby• Love IT Engineering• Make materials for

teaching Ruby to youth

Page 12: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Find Ruby teachers

Make materials for teaching

Ruby to youth+

Started to Teach Ruby for youth

Page 13: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Since then

1% / year

in Matsue-city

Page 14: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

A Programmer’s

Best Friend

Ruby is

Page 15: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

• Typing

• English

• Ruby Syntax

Problems

Page 16: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 17: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

20,000 Teachers

“Should be a

compulsory subject!”By President Obama

Page 18: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Compulsory educationfor ages 5-16

Concept of algorithms

Building and Debugging

It is Practical!

Page 19: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

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

http://hourofcode.com/

Page 20: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Japan

Page 21: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Government

Page 22: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Compulsory

EducationJunior high school / Since 2012

Page 23: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Measurement and Control

Page 24: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

1 Computer / 1 Student~2020

Ex) Distributed tablets to

all 6-12 ages in Saga-cityabout 4,000 students

Page 25: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Company

Page 26: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

http://pegpeg.jp/

PEG• Joint project of

CANVAS and

Google

• CANVAS hold

many workshops

for children

• Distributed 5,000

Raspberry Pi

Page 27: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

TENTO

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

Life is Tech!

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

Programming education as a Service

= PaaS ;-)

Individualized

instructionBoot camping

Page 28: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Why many kids

programming

workshops are held?

Great tools and

materials!

Page 29: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

by MIT Media Lab

http://vimeo.com/65583694

http://scratch.mit.edu/

Page 30: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 31: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 32: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 33: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

• Typing

• English

• Ruby syntax

Problems

➡Blocks

➡ Internationalization

➡ Combination of blocks

Page 34: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Smalruby(smɔ́ːrúːbi)

Ruby + Scratch

Hi,

I’m Hatti!

Page 35: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Demo

Page 36: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Smalruby(smɔ́ːrúːbi)

GitHub:smalruby/smalruby-editor

Page 37: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Scratch Features

• Instruction Blocks

• Characters and

Stages

• Easy to Run

Page 38: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Ruby

Instruction Block

Page 39: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Instruction Block

Ruby

Page 40: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

KIDS WANTED TO

CODE DIRECTLY!

Page 41: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

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

Page 42: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Now

Page 43: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 44: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 45: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 46: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

MATSUE CITY

Ruby classes in whole

municipal Junior high

schoolBy 09.04.2014/local news paper(Sanin Chuo Shinpo)

Page 47: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

91%Junior high school students

will Learn Ruby

Page 48: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

The Ruby

Programming

Shounendan

Page 49: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

“Promoting the joy of

programming to many

kids. “

“Building internet safety

awareness for kids

through programming!”

Page 50: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Ruby programming

events for kids

and parents

Introducing Ruby,

once a month

Page 51: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 52: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 53: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 54: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 55: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 56: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 57: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 58: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

CoderDojo Matsuehttps://coderdojo.com

Free Ruby computer

programming club for

Kids,

once a month

Page 59: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Ruby Programming

Shounendan

Youth Sports Club

Page 60: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Welcome

Page 61: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 62: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

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

Page 63: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

RuntimeWindows:

DXRuby

Mac or Linux:

dxruby_sdl, Ruby/SDL

Page 64: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 65: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Blockly.Blocks['motion_move'] = {

init: function() {

this.setColour(208);

this.interpolateMsg(‘move %1 steps',

['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

Page 66: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

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

Page 67: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Instruction Block

Ruby

Page 68: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

“Blockly’s XML”

Ruby

Page 69: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

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

end

end

Translate Block from Ruby

Page 70: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

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

Page 71: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

I believe that people

should focus on creating

tools to help everyone.

Page 72: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

“Facing problems and

looking for the answer

that will solve them”

is a very important.

Page 73: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

I sympathize with

everyone here and …

Page 74: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

I’m glad that we are all

somehow involved with

OSS development.

Page 75: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

A Programmer’s

Best Friend

Ruby is

Page 76: (final version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

THANK YOU

Smalruby (smɔ́ːrúːbi)

GitHub: smalruby/smalruby-editor

Email: [email protected]

Twitter: @smalruby