Teaching Programming To All Ages

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.

Scratch

https://scratch.mit.edu/

programming for children
Scratch from MIT

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.

In School

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

 https://rubyonrails.org/

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

 https://www.python.org/

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.

JAVASCRIPT and HTML

 https://www.javascript.com/

HTML and JAVASCRIPT have been the core tools of web developers for decades. Most JAVASCRIPT programmers do not even realize they are programming. Almost anything that can be done with another language can be scripted in the web world. The results are more immediate, not requiring complex compilation or assembly of the code.

 https://html.com/

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

 https://www.java.com/en/

JAVA is another very powerful commercial production development language. It was developed by SUN Microsystems, so it has much of the power of that open source environment. It was acquired by Oracle, so has been adapted to a database focus. Needless to say JAVASCRIPT works well in the JAVA environment.

C# and Windows

 https://docs.microsoft.com/en-us/dotnet/csharp/

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

programming for children

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.

Math is Hard

Math is hard. This is half lie, half confession, and half true. This is no mathematical statement. Everything new is hard. Math for children, for young students, and for students approaching adulthood should come organically with life. Math for adults should be the necessary skill for the task at hand. Math for the homeschool teacher will be hard too. Parents should not just hand the math off to some online guru. The teacher should grasp anything the homeschooler masters.

math is hard
“Lionel takes interest in Discrete Mathematics”  by  zdw

Math is hard in itself.

Math is a group of languages. Math languages are logical, artificial languages and not natural languages. Artificial and unnatural, math describes only some things in the world. Different cultures needed to describe different things. Romans did not need a zero. Astronomers in Mesopotamia did. “Zero not only represents nothing but it also represents the starting point of anything” said Brahmagupta.

The most confusing part of math is the incoherent relationship among various approaches that describe the same phenomenon, or solve the same problem. Take addition and multiplication. Romans added with cross-hatches. It served the empire well for centuries. Multiplication enhanced addition in Babylon where the merchants had large and complex calculations pre-solved on clay tablets. Just because each method solves the same problem does not require them to remain logically coherent. Common arithmetic is incoherent across the logical boundaries. This is why each type of math starts by learning rules. Addition and multiplication, for example, have logical gaps. After all, is not 3+3+3 the same as 3×3 ?

math is hard
“Algebraic numbers glow dust”  by  Jonathan Lidbeck

Many math jokes come from the illogical boundaries. Most people have heard the old riddle: “Three people check into a hotel. The clerk tells them that the bill for their stay is $30, so each person pays the clerk $10. The clerk puts the money in the cash register.”

“Later that night, the clerk realizes that she made a mistake and should have only charged the three guests $25. She takes five one dollar bills from the register and tells the assistant to return the money to the guests.”

“On the way to the rooms, the assistant realizes that she cannot split the money evenly among the three people. As the guests don’t know that they were charged the incorrect amounts for their rooms, she decides to simply give them each $1 and pocket the extra $2 as a tip. Each guest gets $1 back, so each paid $9 for their room, ($9 X 3 equals $27). The bellhop kept $2, and $27 + $2 = $29.”

“But the guests originally handed over $30. What happened to the missing dollar?”

The answer is that there is no “missing dollar.” It is an informal fallacy caused by jumping from addition to multiplication at the wrong time and breaking the logical boundary. The different math languages, addition and multiplication,were not developed at the same time by the same people. They have different rules for consistency.

Addition was first used extensively by the Chinese almost 6,000 years ago, so it is safe to say the Chinese invented addition.1 The ancient Babylonians were probably the first culture to create multiplication tables, more than 4,000 years ago.2

Multiplication was a way for merchants to do complex additions quickly by looking at the multiplication calculations on clay tablets, multiplication tables. Today most people get to the same result either by addition or multiplication; however, each method has firm rules. These rules were violated in the joke, so the result seems to reveal a magical dollar. The method of calculating the total is simply flawed. In the end there is still $25 in the register, $3 returned by the desk clerk, and $2 appropriated by the assistant. 25+3+2=30. Right? Addition. Begin there, end there.

Math is not all just fun. Math has natural uses as a tool. Most tasks can use math. This is just common sense. All jobs involve math. Any person that handles money should instantly see through the problem above and solve it by saying in the end that there is still $25 in the register, $3 with the guests, and $2 with the assistant. $30.

The target is math fluency.

How, then, do you teach math in the homeschool. What sequence should math be taught? What if the homeschool teacher is not a math nerd? Schools usually teach math from simple calculation to increasing complexity.  The assumption that the ability to solve more complex problems comes with each math is pretty good, but it need not be the rule at your school. Nothing says that geometry should not come when the student is ready for carpentry, or precision drawing. The homeschool should teach appropriate math when an immediate utility can be seen by the student. Math does not have to be a bleak and dreary time of the day. In the homeschool math can arrive as it becomes organically necessary. Walk, talk, read, write, learn numbers and then counting. Gradually. Then adding things together. Then taking things away. Then dividing things and multiplying them. Eventually, the Mandelbrot sets.

Older students can master household math. Cooking is great to begin the task of learning fractions. At this time various units of measure can also be introduced.

Household accounting with budgets and banking introduces decimals and set theory as soon as the child can learn about money. Mortgages and interest can introduce more complex math through ideas like compound interest.

Geometry is good for crafts and projects, carpentry and landscaping. Any good carpenter must understand angles and lengths. Every math involves memorizing rules. Euclid is difficult for some because all the rules are learned at once and an understanding of each application is not introduced as an example. Memorization is nowhere more important than geometry. Once the rules are mastered, all future woodworking projects are understood, can be planned, designed and completed.

math is hard
“n(n+1)”  by  Jan Tik

Every science class is an opportunity for another set of advanced math tools. Each of the sciences requires understanding specific advanced mathematical languages. Trigonometry is vital in the earth sciences and in video games. Something as simple as planning the drainage in the back yard is a trigonometric opportunity.

Chemistry allows an understanding of all the middle and advanced mathematical languages, and so on.

A good home study course would begin with the foundational math from the basic arithmetic, fractions, percentages to equations, functions and graphs. The full homeschool course would include relative fluency with algebra, geometry, trigonometry, through differentiation, integration and vectors. In the end it should have included complex numbers and matrices. All this can be had from the thousands of sites on the Internet or through any number of very fine homeschool math packages.

The logical calculus is not taught early enough in the US. Typically, public school requirements for math studies may not even include the courses of study above, but if they do, they usually end with precalculus. Homeschool teachers should set the goal beyond this to be competitive with schools that provide most of the technical staffing in the us. The classes usually labeled AP Calculus.

math is hard
“Calculus”  by  Encel

If you begin to teach math at home, a good target is functional mastery of the fundamentals tested in the college placement exams for better schools. The sequence of learning and the context for teaching do not matter. The checklist of material students need to pass the college placement tests are, according to Derek Owens:3

  • The problems that Calculus solves, introduction to derivatives, finding rates of change from graphs, from equations, and from data, Numerical derivatives, Introduction to Integrals, Approximating integrals from graphs, from equations and from data, the Trapezoid Rule
  • A graphical approach to limits, Describing function behavior with limits, Asymptotes, Rational Functions, Polynomial end behavior, The Limit Theorems, Evaluating limits, Continuity, The Intermediate Value Theorem
  • A graphical look at derivatives, Difference Quotients, the Derived Function, Notation, Numerical calculations of derivatives, Tangents and Linear Approximation, Differentiability and Continuity, the Chain Rule, the Product Rule, the Quotient Rule, Leibniz’ Proofs, Derivatives of Trig Functions, Implicit Differentation, Derivatives of Inverse Functions, Derivatives of Inverse Trig Functions
  • The Extreme Value Theorem, Rolle’s Theorem and the Mean Value Theorem, First and Second Derivatives, Concavity and Inflection Points, Graphs and Curve Sketching, The Calculus of Motion, Max-Min problems, Related Rates, Practice
  • Antiderivatives, Integrals, Infinitesimals, Riemann Sums, Definite Integrals, The Fundamental Theorem of Calculus, Properties of Definite Integrals, Numerical Methods, Integration by Substitution, Average Value
  • Derivatives of exponential functions, Derivatives of logarithmic functions, Derivatives and integrals of base b exponents, Integrals with variable limits, Logarithmic Differentiation, Integrals of trig functions, Intro to Differential Equations, Examples and applications, Slope Fields, Euler’s Identity
  • The area of a plane region, The Calculus of Motion, Real world applications, Integrating to find volumes, Plane Slicing, Solids of Revolution, Cylindrical Shells

    Cover these areas before matriculation and the periodic achievement tests required for your homeschool will not trouble you or your student. Most homeschool parents are not fluent themselves in the components of pre-calculus and calculus. Look for getting help on any bullet in the list that seems a mystery. This is essential for getting the better technical jobs or getting into the better programs at university.

    Fluency in higher mathematics is not critical for learning computer science, but helps.

    math is hard
    “Amazing Grungy Fractal Tree Photoshop Pattern 8”  by  webtreats

    Computer literacy should begin early with some computer language suited for young programmers. For example, Scratch is a free programming language for kids. It was developed by MIT’s Lifelong Kindergarten Lab. Blockly is Googles’ offering. Many languages like these can begin in kindergarten. Once the hook is set, more complex projects can be developed in Python, a free programming language every adult with a computer should and probably does not know. This really opens up the project world of companies like Adafruit. This is the world of Maker science and technology. Projects like this can alleviate the relative tedium of learning abstract math.

    The goal is math facility.

    The little human should be able to use math tools at every juncture of life. Not everyone will find a vocation that uses discrete math or calculus, but it is not a door that the homeschool should shut on young minds. It is easy to teach. Everything can be taught online. Everything can be taught from the myriad Goodwill books on math. Remember, something invented in the 17th Century is just as accurate in an earlier edition of the textbook.

    math is hard
    “physics”  by  Hash Milhan

    Using math should be as natural as reading and writing. One student may never master geometry but discover a passion for statistical analysis and the logical calculus. She may not grow to be a civil engineer, but a computer programmer instead.

    Exposure to and a grasp of the basics in all the fundamental mathematics is critical for success in modern technical society. Math exercises memory, logical application, and problem solving. Sure, math is hard, but every new thing in life is hard. The homeschool teacher must make math as organic to the day as any other lesson. If you have a math wizard, you may find that by the time he or she graduates, you have learned enough discrete math to untangle algorithms yourself.

    1https://www.reference.com/

    2 https://www.theguardian.com/lifeandstyle/2014/may/17/ask-a-grown-up-who-invented-times-tables

    3 This list derives from a course developed by Derek Owens who graduated from Duke University in 1988 with a degree in mechanical engineering and physics. He taught physics, honors physics, AP Physics, and AP computer science at The Westminster Schools in Atlanta, GA from 1988-2000.

    Online Technical Training and Certification for Homeschoolers

    Technical certification is one path for homeschool graduates. Technical certification and training leads to employment in specific fields and for specific companies. Technical certification helps while applying to some tech companies, but vitally, to any other companies that use that specific technology in their business.

    Technical workers and contractors have upgraded skills this way for decades. These certifications are not all math. Many technical jobs like project management or product technical support involve soft skills and human interaction more than discrete math.

    Technical Certification

    The Silicon Valley giants are great places to look for online free technical training and reasonably priced certification. They need skilled manpower that the local schools cannot provide. Oracle, Cisco, and Google stand as our examples, but many more companies have free training and certification for prospective employees.

    Oracle

    Twenty years ago Larry Ellison, the founder and CEO of Oracle, floated the idea of providing a quality private school for employees’ children as a benefit, like health care or stock options. While all the employees loved it, the California teacher’s unions and Bay Area politicians did not. Human Resources finally scuttled the idea after examining the legal complications of tying children to the parent’s terms of employment. The idea morphed into technical training programs for teachers, web development contests for students, and on-line courses in India. An internal training program emerged for employees, customers, consultants, and educators. When the company began to offer these classes outside the company, it became Oracle University.

    Oracle Corporate Headquarters
    “Consult the Oracle” by  jurvetson 

    Oracle University offers The Oracle Learning Explorer program for free with entry-level training courses and accreditation for Oracle’s entire product portfolio. The model has always been to provide free on-line training and relatively expensive certifications. The cost of certification discourages the casual test-taker and provides valuable evidence of competence to an employer. The certified professional can work at Oracle, but more importantly, can work for any of the tens of thousands of companies that use Oracle technology.

    https://education.oracle.com/learning-explorer

    Cisco

    Cisco is a networking company with an interest in both hardware and software development, sales, and configuration. Cisco offers many interesting courses through The Cisco Networking Academy. Students can learn the fundamentals of networking, the Internet of Things (IoT), Cybersecurity, and programming in Python, C, and C++. Most introductory courses are free and online. Some that require an installed network are only offered through institutions and the costs depend on those institutions. A handy search tool will give you an extensive list of places near you. Some are high schools. Some are colleges. Some are prisons. Prisons.

    https://www.netacad.com/

    Cisco Systems Headquarters
    “Cisco Systems Corporate HQ” by gtmcknight

    Google

    Google is the best known Silicon Valley big tech company because their search engine has become the generic term for searching the Internet. “Just Google it” is the equivalent of “Let me grab a Kleenex”. Google had the same problem as the other tech firms in finding quality employees and keeping the existing employees trained in the protean technologies of the Internet, telecommunications, and software development. They developed materials to allow people around the world to learn the technology and gain competence in Google-specific tech. Their cloud certifications are particularly valuable. Other training supports development of apps on the Android phones and software for AI devices.

    Grow with Google
    Grow with Google

    Recently Google introduced Grow with Google, a free training platform that covers training in Google core technologies, but also many other avenues of employment. It still offers certification in Android Development, but also in IT Support, Data Analytics, Project Management, and UX Design. All the training is free, but preparation for and testing for certification is pricey. One interesting feature of the Grow With Google page is in the “Free Training” link on the web page. Because Google knows more than your mother about you, clicking on it will find “free training in your area.” You can search some other area, but it will default to where your computer or tablet sits currently. The “Working From Home” link has a wealth of tools and training for educators, students, and workers who work remotely.

     https://grow.google/

    Science, Technology, Engineering, and Math for Students

    Avoiding that horrible acronym STEM for a moment, the Internet offers unlimited opportunities to learn about science and technology, to master engineering skills, and to learn every sort of math. The technical certifications from the companies above are preparing for a career. Before that step, many free sites can teach younger students the basic skills to qualify for technical certification. One very fine and very free resource is the Open Learning Initiative.

    open learning initiative free homeschool resources
    “Open Learning Initiative: using learning science to iteratively improve course design” by giulia.forsythe

    The Open Learning Initiative (http://oli.cmu.edu/independent-learner-courses/) has free courses on the “independent learner’s track.” For the family who are homeschooling online, this is a very good resource for introductory courses, but not just technical subjects. The homeschooler can take intro to Chinese too.

    Another great free resource is the Khan Academy. It is more like K-12, but not tied as tightly to the public schools.

    The Khan Academy (https://www.khanacademy.org/) is a non-profit organization dedicated to providing free, quality education to everyone everywhere. It was designed to augment schools, but as a homeschool you can get access to teacher and student resources. The curriculum is very good. They offer hundreds of topics in video for math and science training online.

    Other Technical Jobs with Certification

    wind turbine trade schools
    “Turbine Tower No 25 undergoing final testing” by Paul Anderson

    Many careers require training and technical certification. Homeschool graduates find that the employers in these careers usually care little or nothing about public school transcripts. These technical certification are usually associated with trade schools and community colleges. None of these are available online. It is hard to imagine becoming a Medical Assistant or Phlebotomist at home, so this type of technical certification moves beyond the scope of this article.

    If you are interested in any of these technical certifications, explore your local schools. Most programs are reasonably priced and come with financial aid, that is, government backed loans. Be sure to ask for a list of graduates who currently work in the field who you can call for references. Not all trade schools are equal. But you can choose to study in many interesting and well-paid careers.

    • Wind Turbine Technician.
    • Phlebotomist.
    • Massage Therapist.
    • Landscaper and Groundskeeper.
    • Medical Assistant.
    • Cosmetologist.
    • Nail Technician.
    • Dental Assistant.
    • Ophthalmic Medical Technician.
    • Medical Records Technician.
    • Licensed Practical and Licensed Vocational Nurse.

    Final Warning About Big Tech

    Not all tech companies offer anything useful to the home school. Some popular names are toxic.

    not a technical training platform
    “Yah baby how you feeling now? A farmer holding a pitchfork and his sinister spinster daughter, house, American Gothic, skulls frame, Halloween, Microsoft, Bear Creek, Redmond, Washington, USA” by Wonderlane

    Microsoft

    Microsoft has a training environment like other tech companies, but it is focused primarily on “educators.”

    The Microsoft offerings for educators are deeply imbued with Critical Race Theory. In the words of one Ken Shelton/ Microsoft class:

    Anti-racism journey for educators with students”

    By: IIRP, LLB, Ken Shelton, US2, and Microsoft

    Date published: 2/11/2021

    “Educators must be courageous and confident in their journey to fully participate in dismantling racism in their learning environments. The intention of this learning path is to deeply question power, privilege, and fragility to interrupt teaching practices that marginalize, isolate, and exclude BIPOC students whole-learners in the classroom. The courses in this learning path are intended to be taken in order and were written with United States K-12 educators in mind. Others may also find them helpful.”

    Not all free training is good for you. You might find the MS site useful in building your case for getting your children away from United States educators. Other than that Microsoft appears to offer nothing useful, technical or otherwise.