Why do Kids Need to Learn How to Program?
As a society we become more and more dependant upon technology in order for our society to function properly. Our reliance on IT demands that the generation that comes after us have a solid understanding about computers. Children today grow up using technology every day. But in addition to great technology users, we also need content providers and programmers that are able to make the products of tomorrow.
But in order to reach out to a wider audience of kids, and open their eyes to the amazing world of programming, we need to provide them with challenging, yet fun project that can spark their love for the field.
I wholeheartedly believe that teaching programming through hands-on, exciting and real projects like this will fuel the programming-spark in the students attending the course or reading the book!
![]()
Mr. Bill Gates tweeted recently about the gap between the market need for IT professionals and the number of students that finish with an IT degree. The discrepancy can be clearly shown in the diagram to the right. There is only one way we can fix this future issue, and that is getting the kids of today interested in computers and in programming. Source:
https://twitter.com/BillGates/status/410126941220790272.
Teaching Kids Programming
I am teaching a hands-on programming course for children age 11-16 from January to May 2014. This will be a hands-on programming course where the students will learn both how to interact with physical hardware and devices, as well as hone programming skills.
The end goal of the class is for the student, in groups, to build and control a remote-controlled car, starting from scratch without any prior programming experience. The on-board computer for the car will be a RaspberryPi. The students will have performed all of the experimentation, wiring and programming themselves. The car will be controlled wirelessly either from another RaspberryPi or from a computer.
![]()
The RaspberryPi mini-computer is such a wonderful and exciting product. Sadly though, whenever I show one to kids in the ages between 11 and 16, they have either not heard about it, or have never seen or actually used one.
This course will use the RaspberryPi for what it's worth: An awesome educational tool that will show the students, via hands-on tutorials, what a computer is actually made of, as well as how one can be used in order to build cool projects and awesome products. The fact that the computer can be held in the students hand, and played with directly is great in order to facilitate learning!
Along the way, the students will learn about LEDs, resistors, DC motors and how to design and wire basic electrical circuits.
Compiling a Book
![]()
One to two weeks before each class, the studens will be emailed a new chapter that will detail what we will be doing in the next class. This chapter will also be used as a reference throughout the class.
Once the class is finished, all of the chapters will be assembled and sent off to a copyeditor and a designer. The end goal is for the book to be available online as a website, as well as in PDF and mobile eBook formats.
The manuscript for the book will be written in Markdown format. This format is easy to read without any formatting, while it is also extremely easy to parse and port into other formats, such as HTML and PDF. The Markdown manuscript will form the basis for the books website.
Open Source Licencing
The books content will released under the Creative Commons licence, while any source code in the book will be released under the MIT licence. This will ensure that the books content will be free and available for everyone once the book is completed.
Language
The book will be available in two languages. Because the course itself is held in Norway the book will initially be written in Norwegian because I think it is important for the students to have material available to them in their native language. Each chapter will then be translated into English.
Course and Book Content
The content of the course, and this also the book, is divided up into 7 lessons. Each lesson contains the material that each day of the course will contain.
Lesson 1
- Introduction to the RaspberryPi
- Introduction to Linux
- Putting in the memory card and booting the RaspberryPi
- Logging into the Linux shell and executing simple commands
Lesson 2
- Introduction to Programming with JavaScript
- Introduction to Pijs.io (or similar service) and demonstrate how the Pi can be connected
- Writing simple programs that can be deployed via Pijs.io and executed on the Pi
- Learn about constructs like conditionals (if, if-else) and loops (if, for, etc)
Lesson 3
- Using electronic components through a Breadboard. LEDs, resistors, sensors, etc.
- Learn how to form an electric circuit. Make an LED light up
- Writing a program that makes one LED blink
- Writing a program that shows the current minute, in binary through LEDs
Lesson 4
- Configuring a wireless network on the Pis Operating system Raspbian
- Writing a program that accept input over the network, so that we can trigger events on the Pi (like turning on/off an LED or take a measurement through a sensor and return the value)
Lesson 5
- Introduction to DC motors
- Learn how motors can be connected through Integrated Circuits in order to control the direction of rotation
- Writing a program that can control the DC motor to run forwards, backwards and brake
- Introduction to step motors
Lesson 6
- Going through the parts we need in order to build a radio-controlled car (via a kit or via seperate parts)
- Building and wiring up the car
- Using the RaspberryPi to control the car, backwards, forwards and turning
Lesson 7
- Continue building the RaspberryPi Car.
- Write software that can accept signals wirelessly in order to control the car
- Program the car to drive a specific circuit
What Will the Funding be Used for?
The class itself will be held at a public library, which means that there is no rent involved. However, producing a book with good quality is not free, and even through I have previous experience in writing technology books, I still need help from a copyeditor and a designer in order to create a book that people will enjoy reading.
Also, the hardware costs involved in organizing the course plays a role, with an estimated cost at about NOK 600-800 (EUR 100 - 130) per student (15 students).
The funding goal of EUR 10000 is broken down into:
- EUR 2000 for the hardware for the course
- EUR 2000-3000 for copyediting and technical proofing
- EUR 2000 for design work
- EUR 150-200 Website hosting and related costs
- EUR 2500-3000 for additional costs that will creep up along the way
- EUR 700 IndieGoGo fees
Once the funding goal is reached, work will initiated in order to get the book available on Amazon, as well as setting up a fund where groups that are interested in teaching a similar course can apply to cover hardware costs for their class.
What Will You Get For Supporting This Project?
There are four main backing options.
Individual backer - 10 Euros and up
Your can choose to back with any amount from 10 euros and up. Everyone who backs this project will get the opportunity to be mentioned in the books "thank you" section.
Sneak Peak - 25 euros and up
If you choose to back this project at this level you will, in addition to the perks of the individual backer, get an invite code where you can follow along with the books progress as the book is written (both for the Norwegian and the English Version)
Hardware Backer - 1000 Euros (2 backers max)
Hardware backers will either get their name, or their company logo clearly visible on the books front page, both on the book website and in the downloadable book versions. Hardware sponsors will also get an invite where they can follow along with the books progress as the book is written.
Book Backer - 1500 Euros (4 backers max)
Book backers help sponsor the cost of producing an excellent book that will be enjoyed by many youngsters that are trying to learn programming through a fun and engaging project. Book sponsors will get their name, or their company logo clearly visible to the books front page. Book sponsors also get to include one paragraph about themselves in the books preface. In addition, Book backers will get an invite where they can follow along with the books progress and read the chapters as the book is written.
About the fundraisers
My name is Joachim Haagen Skeie. Through this project I hope to be able to inspire kids to love technology as much as I do! Kids today are growing up with a thorough understanding on how to consume and how to use technology and devices, but few actually get the opportunity to learn at an early age how to make something with and for the technology that exists.
I really like to teach, and I have previously held training courses for IT professionals, where I've held multiple RaspberryPi introductory courses, as well as a two-day Ember.js course through the EmberFest conference (which I organize).
I am currently in the final phase of finishing the JavaScript book Ember.js in Action, which will be published by the respected technology publisher Manning Publication.
Unable to Back the Project, but Want to Help?
If you are unable to back the project financially, there is still loads of help you can give! Help promote the project on social media like Twitter, Facebook and Google+. Pass along links to the project to people you think might be able and willing to support the project. Any help will be greatly appreciated!
With the Very Best Regards,
Joachim