Ruby Programming

Kids, Ruby, Fun!: Introduction of the Smalruby and the Ruby Programming Shounendan

Kids, Ruby, Fun!: Introduction of the Smalruby and the Ruby Programming Shounendan

by Kouji Takao

The presentation titled 'Kids, Ruby, Fun!' by Kouji Takao at RubyConf 2014 focuses on introducing the Smalruby programming environment and the Ruby Programming Shounen-dan, emphasizing the importance of teaching Ruby programming to children.

Key points discussed in the presentation include:

  • Introduction to Smalruby: Smalruby is a visual programming tool designed to make it easier for children aged 8 and above to learn Ruby through instruction blocks similar to those used in Scratch. It allows kids to create programs by selecting characters and assembling action blocks.
  • Experiences in Teaching: Kouji Takao shares his background as a Ruby committer and the motivations behind teaching Ruby, which include supporting local government initiatives in Matsu and a personal desire to educate his son.
  • Ruby as an Educational Tool: Takao argues that Ruby’s simple syntax and object-oriented design make it an ideal first programming language for beginners.
  • Challenges in Programming Education: He discusses various challenges faced by students, such as typing difficulties and English language barriers, while also noting the global increase in programming education for youth.
  • Global Programming Initiatives: Several international efforts to promote programming education, such as the 'Hour of Code' and new compulsory programming classes in the UK, indicate a growing recognition of programming skills' importance in modern education.
  • Implementing Programming in Japan: Since 2012, programming classes in junior high schools are mandatory in Japan, with initiatives underway to ensure kids have access to computers and relevant educational materials.
  • Smalruby’s Development: The architectural design of Smalruby leverages Blockly to help users create intuitive programming blocks that generate Ruby code, enhancing the programming skills of children.
  • Community Engagement: The Ruby Programming Shounen-dan is a non-profit organization established to promote programming among children via events and workshops, fostering an interactive learning environment with parental support.

The presentation concludes with reflections on the importance of creating accessible programming tools for children and the need for ongoing community support for budding programmers. Takao emphasizes that the primary goal should be to inspire joy in programming while addressing challenges head-on. He invites further inquiries and collaboration in developing Smalruby and other educational practices for young learners.

00:00:18.640 Thank you for attending this presentation, titled 'Kids, Ruby, Fun!'. In this presentation, I will discuss our activities related to the Ruby programming shounen-dan, especially focusing on Smalruby, which is a key part of it.
00:00:41.960 I am Kouji Takao, one of the three Ruby committers and the leader of the Ruby programming shounen-dan. The term 'shounen-dan' is a Japanese word meaning 'boys and girls organization', so the Ruby programming shounen-dan refers to an organization for kids to learn Ruby programming. Additionally, I am a research engineer at the Network Applied Communication Laboratory (NAL).
00:01:28.000 This presentation is made possible by NAL, which is well-known for being a significant employer. The headquarters of NAL is located in Matsu City, Shimane Prefecture, Japan. Matsu is a city of about 200,000 people, near Hiroshima. Please visit NAL in our IDE D province if you are interested.
00:02:11.040 Six years ago, I started teaching Ruby programming to junior high school students in Japan. Junior high school lasts for three years. My motivations were the Ruby City Matsu project and the desire to teach my son Ruby.
00:02:36.560 The Ruby City Matsu project was managed by the city government under Mayor Masataka Matsuura. This project aimed to support the Ruby community because Matsu, the creator of Ruby, resides in Matsu. Ruby has generated new businesses, prompting the government to promote it. The government initiated this project to assist businesses, which require many IT engineers, thus one objective was to increase the number of Ruby programmers in Matsu.
00:03:43.159 Six years ago, the project was looking for teachers who could teach Ruby to the youth. My true motivation came from my love for Ruby and IT engineering; I wanted to teach my son Ruby so he could become an IT engineer when he grows up. However, six years ago, I did not have any tools or resources to teach Ruby, and at that time, Kids Ruby did not exist, which prompted me to create these tools and materials for teaching Ruby.
00:04:40.160 Since then, I have taught Ruby to over 250 junior high school students. While this number may seem low, only about 5,500 junior high school students live in Matsu, meaning I teach approximately 1% of the junior high school students in Matsu each year.
00:05:17.560 Currently, how is Ruby viewed for programming education? As you may know, Ruby is a programmer's best friend. It has a simple syntax, is object-oriented, and has a garbage collector. Therefore, I believe it is well-suited for kids who want to start programming.
00:05:48.639 In the six years I have spent teaching Ruby in Japan, I have encountered several problems. First, typing can be difficult; most kids don't know how to utilize symbols, and pressing Shift plus a comma can be hard. Second, English can be challenging; while they understand the Roman alphabet, basic words like 'if' and 'do' can still pose difficulties. Third, many kids lack knowledge of Ruby syntax and standard libraries, which hampers their ability to work independently and slows down their learning.
00:07:09.879 In recent years, programming education for elementary and middle school students has increased worldwide. The most active programming education is currently taking place in the United States. For example, according to a New York Times article from May 10, 2014, 20,000 teachers from kindergarten to high school incorporated programming classes into their curriculums.
00:07:49.919 Furthermore, President Obama has emphasized that programming is necessary and should be a compulsory subject, which hopefully will accelerate its inclusion in education. In September, the United Kingdom officially introduced programming to the new compulsory education curriculum for ages 5 to 16. At age five, students begin learning about algorithms, building, and debugging simple programs.
00:08:41.000 There is a movement to introduce programming education in many other countries. One such initiative is the 'Hour of Code' project by Code.org, aiming to train over 10,000 teachers to effectively teach programming to their students. Soon, it is expected that 100 million kids will receive programming education from these trained professionals.
00:09:30.120 Many prominent individuals support the project and have donated. For instance, Mark Zuckerberg, Facebook's CEO, has shown his support.
00:09:54.519 Now, let me introduce the situation in Japan. To begin with, programming classes in junior high schools have been required since April 2012. This class is officially called 'Measurement and Control', and projects involving controlling small robot cars are very popular.
00:10:30.680 For example, creating robots that can follow remote directions or navigate using various sensors is quite common. Additionally, the Japanese government declared that by 2020, every student should have access to their own computer.
00:10:57.040 As part of this initiative, tablets were distributed to all elementary school students in Saga City. The programming class schedule started on October 20th, and through these initiatives, the introduction of programming education will continue to grow.
00:11:22.079 At the same time, private companies are becoming increasingly active in this area. For instance, the P Project aims to spread programming education and has become a hot topic.
00:11:43.839 PEG is a collaborative project between Canas and Google. Canas is a Japanese nonprofit organization that has been conducting workshops for children. Besides programming, PEG has engaged in programming workshops and has distributed 5,000 Raspberry Pi computers to educational institutions across Japan.
00:12:25.600 Additionally, Tent Man also manages visualized instruction and offers boot camps and weekly programs for programming. It is interesting to note that they organize programming courses as businesses.
00:12:58.800 Beyond those mentioned, various workshops for programming education for youth have been held, and programming education continues to expand in Japan as well as internationally.
00:13:08.600 Do you think many kids programming workshops are being organized lately? I believe it is because we now have excellent tools and materials for teaching programming.
00:13:31.240 For example, Scratch is the most well-known programming education tool. It is a visual programming language developed by MIT and is widely used in various educational settings.
00:13:46.640 Scratch has over two million users worldwide, and in Japan, it is predominantly used in workshops for elementary and junior high school students. Scratch instruction employs blocks that describe programming concepts, making it easy for students to find instructions and create programs. Moreover, Scratch supports internationalization, allowing Japanese kids to comprehend everything easily. To execute a program, students simply need to click the green flag on the screen.
00:14:24.920 I believe that the features of Scratch will address my concerns regarding typing, instruction blocks, and English syntax. Accordingly, we have developed Smalruby.
00:14:50.679 Now, let me demonstrate what Smalruby is. Smalruby enables users to create programs by choosing characters and putting instruction blocks together. For instance, I can select a ninja character and press a button to add instruction blocks.
00:15:30.520 Much like Scratch, Smalruby allows children to create animations by placing event blocks and defining movement steps for characters. If the character reaches the edge of the screen, we can program it to turn or perform other actions.
00:17:53.200 In Smalruby, kids can easily program using both Smalruby and Ruby buttons to showcase their Ruby programs. Additionally, they can input the programming code directly as well as convert Ruby code to instruction blocks.
00:20:05.520 The structure of Smalruby resembles Scratch by employing instruction blocks and integrating with characters and stages. It simplifies file management tasks, such as creating, updating, and loading files. Notably, Smalruby can convert instruction blocks into Ruby code.
00:21:40.240 This two-way communication is a unique aspect of a visual programming editor, and I believe it enhances the learning experience for kids. Through the development of Smalruby, I discovered that kids wanted to push their programming skills further by implementing more complex features.
00:22:56.639 Recognizing this, I made sure that Smalruby could accommodate both coded input and instruction blocks. This allows children to transition more naturally into hard coding while gradually familiarizing themselves with Ruby syntax.
00:23:29.240 Once kids grasp the fundamentals of programming through instruction blocks, I aim to introduce them to coding as quickly as possible.
00:24:03.120 In April, we held an experimental programming class utilizing Smalruby, with a group of 288 junior high school students divided into classes of 32. Interestingly, there were no educational materials available, so both the teachers and I had to learn how to use Smalruby. They successfully created instructional material on their own without any prior IT engineering knowledge, showing that it was manageable to grasp Smalruby's functionalities.
00:25:53.140 The experiment was a resounding success, leading the Matsue government to implement computer classes using Smalruby by April 2016. Currently, about 6,000 junior high school students will soon have access to Ruby classes.
00:26:35.680 Smalruby is designed for children aged 8 and older. Combining this with my passion for fostering future programmers, I have established the Ruby programming shounen-dan.
00:27:01.199 The Ruby programming shounen-dan is a nonprofit organization focused on promoting the joy of programming among children and educating them about internet safety through programming. We hold Ruby programming events for kids and parents on the third Sunday of every month.
00:27:40.600 During these events, students learn to create games, such as chases and puzzles. The students are actively involved in assembling components, and the support from parents is invaluable, as they encourage their kids while letting them explore and experiment.
00:28:20.240 Interestingly, we also have a Koda Dojo event on the fourth Saturday of every month. The Koda Dojo is part of a global network of free computer programming clubs for young people managed by volunteers.
00:28:48.600 Unlike the Koda Dojo, we specifically use Ruby in our sessions, aiming to create an environment similar to youth sports clubs where kids can participate in programming competitions.
00:29:26.240 The development of Smalruby is a personal endeavor of mine to enhance children’s programming skills. If you are interested, please feel free to implement additional features.
00:29:59.200 Now, I will explain the architecture and implementation of Smalruby, our visual programming editor. We have implemented functions that allow users to create programs by combining instruction blocks to generate Ruby code.
00:30:20.920 By using the JavaScript library called Blockly, developed by Google, we have ensured that the code runs with low dependencies, resulting in a minimized runtime size. The installation process is straightforward, making it easy to create a visual programming editor that functions on web browsers.
00:31:07.480 The programs created with Smalruby can run using DX Ruby on Windows. DX Ruby is a Ruby gem that facilitates 2D graphics, music playback, and event handling, making it suitable for creating 2D games.
00:31:29.680 If you are using Mac or Linux, you can also run Smalruby utilizing DXRuby and SDL alongside Ruby/SDL gems that provide compatibility APIs.
00:32:10.680 Additionally, Smalruby can be utilized to control Android-based robots, using a reference robot called Smart Robot, featuring two motors, two LEDs, and one sensor.
00:32:50.560 Let’s look at how to define instruction blocks using Blockly. For example, we can create an instruction block called 'move 10 steps.' First, we name the motion, then assign an object to it, followed by implementing the initialization process of the instruction block.
00:33:36.960 For example, we can set the color to blue and connect it to other instruction blocks in a sequence. This allows us to define the actions in a way that generates the appropriate Ruby code.
00:34:33.600 In conclusion, I began teaching junior high school students Ruby motivated by both the Ruby City Matsu project and my desire to teach my son. I created Smalruby for children over eight years old, and I started the Ruby programming shounen-dan, an organization to teach Ruby to boys and girls.
00:36:02.280 I believe that the focus should be on creating tools to help young programmers. It is essential to face problems and seek solutions; this aspect of our work is vital. I empathize with the community of open-source software developers. Ruby is a powerful tool and an excellent answer to our challenges, so we must strive to provide future programmers the best resources possible, allowing them to enjoy programming just as we do.
00:37:07.599 I would like to thank everyone for their attention, and I apologize for being unable to answer questions at this moment due to my limited English listening and speaking skills. If you have any questions, please feel free to approach me one-on-one after the presentation. Thank you very much.