76
Kids, Ruby, Fun! Introduction of the Smalruby and Ruby Programming Shounendan Kouji Takao, The Ruby Programming Shounendan, RubyConf 2014, 11.19.2014

(beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

  • Upload
    -

  • View
    443

  • Download
    2

Embed Size (px)

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.

Citation preview

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

Kids,Ruby,Fun!

Introduction of the

Smalruby and Ruby

Programming

Shounendan

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

Page 2: (beta 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 ProgrammingShounendan

Shounen = Boys & Girls

Dan = Organization

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

Kody : Kouji Takao• Engineer of NaCl• Network Applied

Communication Laboratory

[email protected]@takaokouji_enFacebook

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

Made possible by

NaCl

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

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

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

NaCl is

SIer

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

NaCl has

30Rubyists

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

NaCl has

6Commiters

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

Pleasevisit

NaCl♪

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

6 years ago,

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

Started to Teach Ruby for youth

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

MotivationsRuby City MATSUE

Project

Teach my son Ruby

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

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

Ruby City MATSUE Project

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

Page 14: (beta 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 15: (beta 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 16: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Since then

1% / yearin Matsue-city

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

A Programmer’s

Best Friend

Ruby is

and

Kids?

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

• Typing• English• Ruby Syntax

Problems

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

Recently,Increased

Programming Education

Page 20: (beta 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 21: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Compulsory educationfor ages 5-16

Concept of algorithmsBuilding and Debugging

It is Practical!

Page 22: (beta 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/

1,000 Teachers100,000,000

Kids

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

Japan

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

Government

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

Compulsory Education

Junior high school / Since 2012

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

Sensor

Motor

Measurement and Control

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

1 Computer / 1 Student

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

about 4,000 students

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

Company

Page 29: (beta 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 30: (beta 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 ;-)

Individualizedinstruction

Boot camping

Page 31: (beta 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 32: (beta 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 33: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Combinationof blocks

= Program

Blocks= Instructions

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

English Japanese

Internationalization

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

Easy to run

Press

Run

Page 36: (beta 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 37: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

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

Ruby + Scratch

Hi,I’m Hatti!

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

Demo

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

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

GitHub:smalruby/smalruby-editor

Page 40: (beta 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 41: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Ruby

Instruction Block

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

( 歩動かす =

move)

Instruction Block

Ruby

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

Kids wanted to code directly!

Page 44: (beta 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 45: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Now

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

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

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

Madeeducational materialby both teachers who are not IT engineers!

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

1 Teacher

Students

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

MATSUE CITY

Ruby classes in whole municipal Junior high school

By 09.04.2014/local news paper(Sanin Chuo Shinpo)

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

91%Junior high school

students will Learn Ruby

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

The RubyProgramming Shounendan

Page 52: (beta 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 53: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Ruby programming events for kidsand parents

Introducing Ruby,once a month

Page 54: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 55: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 56: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 57: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 58: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 59: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 60: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014
Page 61: (beta 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 62: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

Ruby Programming Shounendan

Youth Sports Club

≒ Team

CoachTourna-

ment

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

Welcome

Developers

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

Visual editor•Rails•Blockly

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

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

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

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

RuntimeWindows:DXRuby

Mac or Linux:dxruby_sdl, Ruby/SDL

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

Smalrubot• Arduino• Dino

GitHub: austinbv / dino

Page 68: (beta 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%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)

Page 69: (beta 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 70: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

( 歩動かす =

move)

Instruction Block

Ruby

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

“Blockly’s XML”

Ruby

( 歩動かす =

move)

Page 72: (beta 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 endend

Translate Block from Ruby

Page 73: (beta 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 74: (beta version) KIDS, RUBY, FUN! - Introduction of the Smalruby and RubyProgramming Shounendan - in RubyConf 2014

A Programmer’s

Best Friend

Ruby is

and

Kids

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

NOTQ & A

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

THANK YOU

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

GitHub: smalruby/smalruby-editorEmail: [email protected]

Twitter: @smalruby