Coding and IoT for Kids
Marisa Paryasto

Republic of IoT Seminar - 24 Aug 2017
Problems
Wide gap between college/university graduates and industry
expectation
Rapid growth in technology requires more IT engineers
Recruiters cannot find those fits in their requirements (start up -
GeekHunter)
Shorter attention span
Lack of interest in reading
English
Why kids?
• The earlier the better
• Kids hold the future
• Kids learns faster
• Kids are more flexible
• Kids are more committed than adults
ProCodeCG Education Concepts
• Peer learning
• Leadership
• Teamwork
ProCodeCG Curriculum
Flexible
Rapidly changing, following the latest technology
Designed to be able to accommodate different kind and
pace of learning (personal approach)
Practical
Project-based
Why coding for kids?
• Coding/programming is as important as other basic skills that anyone, even kids need
to have.
• It develops a structured way of thinking, thus improving logical thinking.
• It strongly related to language and math because it sharpened the ability of pattern
recognition, which later, at the more advanced level will be very useful for strengthening
problem solving skills.
• Coding is also a great tools for understanding science and other knowledge. With
coding skill one can develop simulation programs to support experiments and other
scientific purposes.
• Coding enhances the ability of analytical thinking through creating and debugging.
By acquiring the ability coding, one will be able to create things, and escalate the level of
creativity.
Is coding literacy really needed?
• Because coding literacy is as important as textual and number
literacy.
• Coding subliminally will teach kids to follow rules and being consistent
while also being critical and creative as well. Kids in this era should not
be taught to learn just one thing, but should be taught to be able to
learn different things in short time.
• Other important thing is that the world is lacking programmers. Teaching
kids to code hopefully will equip them with basic skills they need to
find job later in their life. This is an effort to give them earlier start off, so
they can reach higher when they grow up.
Topics
	 1	 Algorithm & Data Structure. Learn the fundamentals of programming. Structuring
programmer mindset with some introduction to Procedural Programming vs Object Oriented
Programming, Design Pattern, etc.)
	 2	 Game Programming. Learn how to develop games using simple programming languages.
	 3	 Web Programming. Learn how to develop web for different purposes.
	 4	 Application Programming. Learn how to design and develop applications on different
platforms (iOS, Android, Blackberry, Windows)
	 5	 Crypto Programming. Learn how to make codes for cryptography, to secure apps,
software and computers.
	 6	IoT. Using devboards (Arduino/ESPectro)
Events
• Kids Regular Coding Class (Every Saturday)
• Kids Coding Camp (Twice a year)
• Kids Coding Exhibition (Every 17 Aug)
Kids Regular Coding Class - Creating Games
Kids Regular Coding Class - Creating Games
Kids Regular Coding Class - JavaScript
Programming
Kids Regular Coding Class - JavaScript
Programming
var size = 20;
var offsetxpink = 20;
var offsetypink = 20;
c.fillStyle ="pink";
for (var i = 0; i < 10; i = i + 1) {
c.fillRect(offsetxpink, offsetypink, size, size);
offsetxpink = offsetxpink + 20;
offsetypink = offsetypink + 20;
}
var offsetxlavender = 20;
var offsetylavender = 40;
c.fillStyle ="lavender";
for (var i = 0; i < 9; i = i + 1) {
c.fillRect(offsetxlavender, offsetylavender, size, size);
offsetxlavender = offsetxlavender + 20;
offsetylavender = offsetylavender + 20;
}
var offsetxroyalblue = 20;
var offsetyroyalblue = 60;
c.fillStyle ="royalblue";
for (var i = 0; i < 8; i = i + 1) {
c.fillRect(offsetxroyalblue, offsetyroyalblue, size, size);
offsetxroyalblue = offsetxroyalblue + 20;
offsetyroyalblue = offsetyroyalblue + 20;
}
var offsetxdodgerblue = 20;
var offsetydodgerblue = 80;
c.fillStyle ="dodgerblue";
for (var i = 0; i < 7; i = i + 1) {
c.fillRect(offsetxdodgerblue, offsetydodgerblue, size, size);
offsetxdodgerblue = offsetxdodgerblue + 20;
offsetydodgerblue = offsetydodgerblue + 20;
}
var offsetxlightskyblue = 20;
var offsetylightskyblue = 100;
c.fillStyle ="lightskyblue";
for (var i = 0; i < 6; i = i + 1) {
c.fillRect(offsetxlightskyblue, offsetylightskyblue, size, size);
offsetxlightskyblue = offsetxlightskyblue + 20;
offsetylightskyblue = offsetylightskyblue + 20;
}
var offsetxturquoise = 20;
var offsetyturquoise = 120;
c.fillStyle ="turquoise";
for (var i = 0; i < 5; i = i + 1) {
c.fillRect(offsetxturquoise, offsetyturquoise, size, size);
offsetxturquoise = offsetxturquoise + 20;
offsetyturquoise = offsetyturquoise + 20;
}
var offsetxgreen = 20;
var offsetygreen = 140;
c.fillStyle ="lightgreen";
for (var i = 0; i < 4; i = i + 1) {
c.fillRect(offsetxgreen, offsetygreen, size, size);
offsetxgreen = offsetxgreen + 20;
offsetygreen = offsetygreen + 20;
}
var offsetxyellow = 20;
var offsetyyellow = 160;
c.fillStyle ="yellow";
for (var i = 0; i < 3; i = i + 1) {
c.fillRect(offsetxyellow, offsetyyellow , size, size);
offsetxyellow = offsetxyellow + 20;
offsetyyellow = offsetyyellow + 20;
}
var offsetxorange = 20;
var offsetyorange = 180;
c.fillStyle ="orange";
for (var i = 0; i < 2; i = i + 1) {
c.fillRect(offsetxorange, offsetyorange , size, size);
offsetxorange = offsetxorange + 20;
offsetyorange = offsetyorange + 20;
}
var offsetxorange = 20;
var offsetyred = 200;
c.fillStyle ="red";
for (var i = 0; i < 1; i = i + 1) {
c.fillRect(offsetxorange, offsetyred , size, size);
offsetxorange = offsetxorange + 20;
offsetyred = offsetyred + 20;
}
Kids Regular Coding Class - Minecraft Modding
Kids Regular Coding Class - Minecraft Modding
var Drone = require('../drone').Drone;
var blocks = require('blocks');
function skyscraper( floors )
{
echo(floors);
this.chkpt('skyscraper');
for (var i = 0; i < floors; i++)
{
this.box(blocks.iron,20,1,20).up().box0(blocks.glass_pane,
20,3,30).up(3);
}
this.move('skyscraper');
};
Drone.extend(skyscraper);
var Drone = require('../drone').Drone;
var blocks = require('blocks');
function tumpuk( tingkat ) {
echo(tingkat);
this.chkpt('tumpuk');
for (var i = 0; i < tingkat; i++){
this.up(1).box0('35:6',1, 1, 1);
}
this.move('tumpuk');
};
Drone.extend(tumpuk);
var Drone = require('../drone').Drone;
var blocks = require('blocks');
function arrayrainbow()
{
this.chkpt('arrayrainbow');
up(1);
var rainbowColors = [blocks.wool.red, blocks.wool.orange,
blocks.wool.yellow, blocks.wool.lime,
blocks.wool.lightblue, blocks.wool.blue,
blocks.wool.purple];
boxa(rainbowColors, 7, 1, 30);
this.move('arrayrainbow');
};
Drone.extend(arrayrainbow);
var Drone = require('../drone').Drone;
var blocks = require('blocks');
function colortriangle(base,height)
{
up(1);
this.chkpt('colortriangle');
var rainbowColors = [blocks.wool.red, blocks.wool.orange,
blocks.wool.yellow, blocks.wool.lime, blocks.wool.lightblue,
blocks.wool.blue, blocks.wool.purple];
if (typeof base == "undefined")
base = 9;
if (typeof height == "undefined")
height = base;
var j = base;
for (var i = 0; i < height; i++){
this.boxa(rainbowColors,j-i,1,1).up(1).right(1);
j--;
}
this.move('colortriangle');
};
Kids Coding Camp
Leadership - Teamwork - Problemsolving
Marisa - Coding and IoT for Kids - RIoT 2017

Marisa - Coding and IoT for Kids - RIoT 2017

  • 1.
    Coding and IoTfor Kids Marisa Paryasto Republic of IoT Seminar - 24 Aug 2017
  • 3.
    Problems Wide gap betweencollege/university graduates and industry expectation Rapid growth in technology requires more IT engineers Recruiters cannot find those fits in their requirements (start up - GeekHunter) Shorter attention span Lack of interest in reading English
  • 4.
    Why kids? • Theearlier the better • Kids hold the future • Kids learns faster • Kids are more flexible • Kids are more committed than adults
  • 5.
    ProCodeCG Education Concepts •Peer learning • Leadership • Teamwork
  • 6.
    ProCodeCG Curriculum Flexible Rapidly changing,following the latest technology Designed to be able to accommodate different kind and pace of learning (personal approach) Practical Project-based
  • 7.
    Why coding forkids? • Coding/programming is as important as other basic skills that anyone, even kids need to have. • It develops a structured way of thinking, thus improving logical thinking. • It strongly related to language and math because it sharpened the ability of pattern recognition, which later, at the more advanced level will be very useful for strengthening problem solving skills. • Coding is also a great tools for understanding science and other knowledge. With coding skill one can develop simulation programs to support experiments and other scientific purposes. • Coding enhances the ability of analytical thinking through creating and debugging. By acquiring the ability coding, one will be able to create things, and escalate the level of creativity.
  • 8.
    Is coding literacyreally needed? • Because coding literacy is as important as textual and number literacy. • Coding subliminally will teach kids to follow rules and being consistent while also being critical and creative as well. Kids in this era should not be taught to learn just one thing, but should be taught to be able to learn different things in short time. • Other important thing is that the world is lacking programmers. Teaching kids to code hopefully will equip them with basic skills they need to find job later in their life. This is an effort to give them earlier start off, so they can reach higher when they grow up.
  • 9.
    Topics 1 Algorithm& Data Structure. Learn the fundamentals of programming. Structuring programmer mindset with some introduction to Procedural Programming vs Object Oriented Programming, Design Pattern, etc.) 2 Game Programming. Learn how to develop games using simple programming languages. 3 Web Programming. Learn how to develop web for different purposes. 4 Application Programming. Learn how to design and develop applications on different platforms (iOS, Android, Blackberry, Windows) 5 Crypto Programming. Learn how to make codes for cryptography, to secure apps, software and computers. 6 IoT. Using devboards (Arduino/ESPectro)
  • 10.
    Events • Kids RegularCoding Class (Every Saturday) • Kids Coding Camp (Twice a year) • Kids Coding Exhibition (Every 17 Aug)
  • 11.
    Kids Regular CodingClass - Creating Games
  • 12.
    Kids Regular CodingClass - Creating Games
  • 13.
    Kids Regular CodingClass - JavaScript Programming
  • 14.
    Kids Regular CodingClass - JavaScript Programming var size = 20; var offsetxpink = 20; var offsetypink = 20; c.fillStyle ="pink"; for (var i = 0; i < 10; i = i + 1) { c.fillRect(offsetxpink, offsetypink, size, size); offsetxpink = offsetxpink + 20; offsetypink = offsetypink + 20; } var offsetxlavender = 20; var offsetylavender = 40; c.fillStyle ="lavender"; for (var i = 0; i < 9; i = i + 1) { c.fillRect(offsetxlavender, offsetylavender, size, size); offsetxlavender = offsetxlavender + 20; offsetylavender = offsetylavender + 20; } var offsetxroyalblue = 20; var offsetyroyalblue = 60; c.fillStyle ="royalblue"; for (var i = 0; i < 8; i = i + 1) { c.fillRect(offsetxroyalblue, offsetyroyalblue, size, size); offsetxroyalblue = offsetxroyalblue + 20; offsetyroyalblue = offsetyroyalblue + 20; } var offsetxdodgerblue = 20; var offsetydodgerblue = 80; c.fillStyle ="dodgerblue"; for (var i = 0; i < 7; i = i + 1) { c.fillRect(offsetxdodgerblue, offsetydodgerblue, size, size); offsetxdodgerblue = offsetxdodgerblue + 20; offsetydodgerblue = offsetydodgerblue + 20; } var offsetxlightskyblue = 20; var offsetylightskyblue = 100; c.fillStyle ="lightskyblue"; for (var i = 0; i < 6; i = i + 1) { c.fillRect(offsetxlightskyblue, offsetylightskyblue, size, size); offsetxlightskyblue = offsetxlightskyblue + 20; offsetylightskyblue = offsetylightskyblue + 20; } var offsetxturquoise = 20; var offsetyturquoise = 120; c.fillStyle ="turquoise"; for (var i = 0; i < 5; i = i + 1) { c.fillRect(offsetxturquoise, offsetyturquoise, size, size); offsetxturquoise = offsetxturquoise + 20; offsetyturquoise = offsetyturquoise + 20; } var offsetxgreen = 20; var offsetygreen = 140; c.fillStyle ="lightgreen"; for (var i = 0; i < 4; i = i + 1) { c.fillRect(offsetxgreen, offsetygreen, size, size); offsetxgreen = offsetxgreen + 20; offsetygreen = offsetygreen + 20; } var offsetxyellow = 20; var offsetyyellow = 160; c.fillStyle ="yellow"; for (var i = 0; i < 3; i = i + 1) { c.fillRect(offsetxyellow, offsetyyellow , size, size); offsetxyellow = offsetxyellow + 20; offsetyyellow = offsetyyellow + 20; } var offsetxorange = 20; var offsetyorange = 180; c.fillStyle ="orange"; for (var i = 0; i < 2; i = i + 1) { c.fillRect(offsetxorange, offsetyorange , size, size); offsetxorange = offsetxorange + 20; offsetyorange = offsetyorange + 20; } var offsetxorange = 20; var offsetyred = 200; c.fillStyle ="red"; for (var i = 0; i < 1; i = i + 1) { c.fillRect(offsetxorange, offsetyred , size, size); offsetxorange = offsetxorange + 20; offsetyred = offsetyred + 20; }
  • 15.
    Kids Regular CodingClass - Minecraft Modding
  • 16.
    Kids Regular CodingClass - Minecraft Modding var Drone = require('../drone').Drone; var blocks = require('blocks'); function skyscraper( floors ) { echo(floors); this.chkpt('skyscraper'); for (var i = 0; i < floors; i++) { this.box(blocks.iron,20,1,20).up().box0(blocks.glass_pane, 20,3,30).up(3); } this.move('skyscraper'); }; Drone.extend(skyscraper); var Drone = require('../drone').Drone; var blocks = require('blocks'); function tumpuk( tingkat ) { echo(tingkat); this.chkpt('tumpuk'); for (var i = 0; i < tingkat; i++){ this.up(1).box0('35:6',1, 1, 1); } this.move('tumpuk'); }; Drone.extend(tumpuk); var Drone = require('../drone').Drone; var blocks = require('blocks'); function arrayrainbow() { this.chkpt('arrayrainbow'); up(1); var rainbowColors = [blocks.wool.red, blocks.wool.orange, blocks.wool.yellow, blocks.wool.lime, blocks.wool.lightblue, blocks.wool.blue, blocks.wool.purple]; boxa(rainbowColors, 7, 1, 30); this.move('arrayrainbow'); }; Drone.extend(arrayrainbow); var Drone = require('../drone').Drone; var blocks = require('blocks'); function colortriangle(base,height) { up(1); this.chkpt('colortriangle'); var rainbowColors = [blocks.wool.red, blocks.wool.orange, blocks.wool.yellow, blocks.wool.lime, blocks.wool.lightblue, blocks.wool.blue, blocks.wool.purple]; if (typeof base == "undefined") base = 9; if (typeof height == "undefined") height = base; var j = base; for (var i = 0; i < height; i++){ this.boxa(rainbowColors,j-i,1,1).up(1).right(1); j--; } this.move('colortriangle'); };
  • 17.
    Kids Coding Camp Leadership- Teamwork - Problemsolving