The homeschool parent can teach students to code at any age. This is true even if the parent cannot themselves code at first. This article will show one way to teach coding, but learning to code is a journey that never really ends. Very young children, as young as ten years old, can code their own programs, games, stories, and songs. MIT has created appropriate tools for the homeschool curriculum. Like children’s books, kids will grow out of this development environment. The young coder can take the fundamentals learned in a program like Scratch and progress into more complex and more mature languages. The non-coding parent can self-educate to provide guidance to the student.
Gaining fluency in artificial mathematical languages, especially computer languages, is the contemporary approach to improving logical capacity that was once reserved for learning the dead classical languages. Learning programming languages, usually referred to as coding, is designing a set of instructions to provide to a machine that direct it to respond. This is usually applied to computers, but it can be for an assortment of machines. In computer programming the instructions are transcribed into a language the machine can understand. Because the machine can only respond to a specific set of logical instructions, mastering coding teaches people to think logically and clearly.
Today, coding can be something as simple as the “up, down, up, up, down, left, left, right” game hacks of the 1990s video game controllers, or punching in codes to your stove to defrost, then cook a roast. The world is filled with embedded computers that are a part of everyday life. More general purpose computers like smartphones, desktop and laptop machines that are continually used by most families can be programmed to create more interesting things like web pages or memes. Everyone knows Apps, so imagine creating one.
Too Young To Type
How young is too young to begin to teach programming? People are never too young to learn to think clearly, but some forms of abstract thought require a certain level of mature reasoning. Access to some machines also requires a certain level of physical dexterity. MIT solved these problems with the toolkit Scratch. Scratch is designed for children as young as 8 years old. MIT has almost a century’s experience in designing programming languages. MIT furnishes many free tools and courses like Scratch. For the non-programming parent who incorporates coding into the reading-writing-drawing homeschool environment, even younger children could be involved with the creation of animated stories, songs, and games while watching the parent master the environment.
This free toolkit allows the student to create animated stories, games, puzzles, or songs, then to share these online.
The coding model is like snap-together plastic blocks. Each block is a specific piece of programming code and the snapping together provides a syntax backbone. With various tools like Motion, Looks, Sound, Events, Controls, Sensors, Operators, and Variables, operating programs can be assembled without knowing anything about logical calculus, syntax, or Boolean Algebra. The program can be reviewed immediately on the Scratch screen. Over the course of time the student will learn the basic components of programming and how to apply them. The program also lets the student define personal blocks for when the existing tools are too limited.
The program comes with robust tutorials and many example projects to explore. Scratch also offers specific help for parents and educators. An interesting use for this toolkit in elementary schooling, and Scratch is really just for younger students, would be to read some story, write an original story about that story, draw the main characters in the original story, then code it into an animated tale with sound, dialog, backdrops, and music to share online with other homeschool students.
Older students also can begin with a program like Scratch to master the basics of coding. They will soon want to learn something more complex. Learning to build WEB applications that can be run online, on the home computers, or on the smart phone is fun. Most students will already be familiar with iPhone game apps, so allowing students to create apps makes sense. A traditional programming language like C++ or JAVA can take months getting from printing a simple “Hello World” on the screen or on a printer to making a web page. No student likes to defer the fun for months.
Happily, powerful intermediate tools can accelerate the process. One tool is called Ruby On Rails.
Ruby On Rails
Like Scratch, Ruby On Rails provides an entire framework for building robust web pages. The program has many tutorials and YouTube presentations to systematically teach the fundamentals of using the product without having to master the elements of building a framework, initializing databases, installing resources and the rest of the nuts and bolts of programming.
An interesting project for the parent teacher in the homeschool would be to create a Family BLOG that tracks and manages the homeschool using Ruby On Rails. This allows the parent to learn the resources and the framework before the student begins. The homeschool can present a professional face to the outside world from the start. This BLOG also can manage the details from the local district and track required testing.
Robust Professional Languages
Much of the world has shifted to the Internet of Things (IoT) where security systems, refrigerators, and washing machines are programmable. Many DIY products and science fair projects are easily programmed with Ruby On Rails.
Like education, programming is a journey. Languages, operating systems, databases, and projects are stops along the way. Once the framework of a program like Ruby On Rails is mastered, the teacher and the student will want to learn languages that give more precise control away from the WEB.
Python is the contemporary leader in professional and hobbyist programming. It is as powerful as earlier production languages like C, C++, COBOL, JAVA, and FORTRAN, but has a more forgiving syntax, simpler object handling, and simple error tracing tools.
The homeschool that wants to incorporate 3-D Printers, program Strawberry Pi’s, create mathematical analysis tools, or manage BLOB data, Python is a simple and powerful language that can do any professional task.
People who want more control over components in Ruby On Rails or Python can go directly into HTML to create them and enhance the WEB project.
JAVA and Oracle
C# and Windows
For the Microsoft developers, the easiest language to learn is C#. It is very powerful and simple to use. The only limitation is that it only works in a Windows environment.
Teaching Programming To All Ages
Teaching programming to all ages assures the homeschool student one great skill for finding and getting work later. Software engineering is one career that still requires no university degree. Mastering Ruby On Rails or Python will open many doors to your student’s future. Mastering Python or JAVA well enough to take the certification in the language, will open career doors. Programmers are hired on merit and certifications can substitute for college degrees in Software Engineering positions for most companies. What you can do is more important than a degree.