Teaching Tech

Teaching Tech

Several years ago I attended a Charlotte Mason conference that included a special event: a craft display. Attendees were encouraged to bring sample objects produced by their children during handicraft lessons. The aim, of course, was to show for attendees what it really means to work with the hands. The aim was to inspire attendees by allowing them to see firsthand the results of this important element of a Charlotte Mason education.

At the time I had been slowly teaching my teenage daughter how to program a computer. I was looking for some milestone for her to work towards. I had an idea. How about if she writes a computer program to put on display at the Charlotte Mason handicrafts fair? She thought it was a good idea, so she diligently worked away at her code until the application was ready for people to see.

The night of the fair came and I brought my little Surface Pro computer. I sat with my daughter as people came into the large all-purpose room. Hand-made artifacts of all kinds were spread across many long tables. But our presentation was unique. Ours was the only one that was interactive. Parents and teens approached us with a look of surprise. My daughter invited interested people to type in adjectives, nouns, and verbs and then press a button on the computer screen. In Mad Libs style, her little application took the user’s words and produced a unique and humorous story.

It was fun at first. But there is a sixth sense that we all have. A sense that alerts us when we have violated some kind of social norm. It’s the feeling you get when you realize you’re the only one at the party wearing jeans. Or that you’re the only one who went to the dessert table twice. Or that you’re talking about a book that no one else likes. It’s the feeling you get when you talk to your classical friends about how much you like Francis Bacon. No one comes out and actually tells you that you’ve committed a faux pas. Everyone smiles and is polite enough. But somehow, in some way, a realization creeps up on you: you’ve broken the rules.

I woke up the day after the fair and felt nothing less than shame. The realization was as heavy as a load of bricks. I brought a computer to a Charlotte Mason handicrafts fair! What was I thinking? How could I have been so foolish? All those parents, all those experts, all those workshop leaders and speakers, they must think I’m a fraud. Everyone knows that real handicrafts are low-tech. Everyone except me.

It was a mistake I don’t think I’ll ever make again.

Going Low Tech

After all, I should have seen the signs. The Charlotte Mason community talks a lot about the dangers of excessive screen time. I remember as if it were yesterday the gripping lecture I heard by Dr. Lowell Monke at the 2014 Charlotte Mason Institute Conference. It was the most riveting warning I had heard to date about the negative impacts of screens on children. I remember he grudgingly acknowledged that sometimes parents do need to use screens. But they should do so in private, behind closed doors. The best childhood, he proclaimed, is a childhood with no screens ever in view.

It may have been at that same conference that I first heard a critique of e-readers, which came as quite a surprise to me. I travelled a lot in those days, and my tablet was my lifeline. It was my access to a massive library that I could fit in a small pocket of my briefcase. But apparently, I was told, it hurts my eyes, my attention, and my retention. Did it have to go by the wayside, along with twaddle and textbooks, for me to have an authentic Charlotte Mason lifestyle? If so, it would be a steep price to pay.

Computers were my great love as a child. I taught myself to program in Basic by the time I was ten years old. When other children asked their parents to send them to baseball camp or basketball camp, I pleaded with my parents to let me go to computer programming camp. My appetite for coding was insatiable. I wrote a program to solve the Mastermind game. As a teenager I played Dungeons and Dragons with my friends, and I wrote a program to automate all the bookkeeping and calculations. I remember vividly the moment we had to take an emergency snack break because I needed to pause the game and fix a bug in the code.

It was a small transition from coding to gaming. I had my dream major in college (computer science) and then I landed my dream job (computer programming). I worked with other guys who were also in their twenties. We’d start work at about 10 AM and code until around 7 PM. And then we’d remain at our desks and the LAN would become our arena. We’d play our first-person shooters until well into the night. Sometimes all night.

But Charlotte Mason, living books, Lowell Monke, and a love of learning slowly changed all that for me. I began to see the devasting impact of video game addiction on loved ones around me. I began to see how screens and videos stunt the growth of imagination. I began to see how screens block our communication and connection with each other. I began to see that relationship is the key to happiness, and technology doesn’t make it happen. I started to purge tech from my home and my school.

I went from hosting LAN parties in my attic to banning video games from my home. I went from showing videos during school time to relying only on printed books. I began to exclude Siri from lesson time. I bought a dictionary. If someone wanted to know the definition of a word, we would look it up. If someone wanted to translate a word from French, we would look it up. If someone wanted to know about Bible history, I would dust off my multi-volume Zondervan Bible Encyclopedia. I remembered what Mrs. Brown said: “the facts that we have taken trouble to find out we usually take the trouble to remember.”[1] Siri is too easy. But you remember what you look up in a book.

During lesson time, I now put away my phone and turn off notifications. We use real, physical books. I used to encourage typed narrations, but now my children write them by hand. And I’ve seen the benefits of this approach. I’m not just following a rule or trying to “fit in.” Rather, I’m enjoying watching my children (and me) grow in imagination, attention, retention, reverence, and focus due to sidelining the digital. I’m enjoying teaching using the tools Charlotte Mason herself had at her disposal.

The Digital Age

But there is a qualification that all Charlotte Mason educators should keep in mind. Charlotte Mason did not live in a digital age. We do. And Charlotte Mason herself urged that “parents recognise every great idea of nature as a new page in the progressive revelation made by God to men already prepared to receive such idea.”[2] We live in the era of software and computers. It is part of the “living thought of the age.”[3] Who gave this technology to humanity? The devil? Or did God in His providence grant us this technology to aid us in His service at just this moment in history? I believe it is the latter, and it’s a belief I base on Charlotte Mason’s world view.

In 1965, House of Education graduate Mary Till wrote that “we should remember that Charlotte Mason was a progressive thinker who devoted her life to children, and who believed that to be adequate, a method of education should ‘touch at all points the living thought of the age’.”[4] If there is any truth to that statement, then I believe that all parents today have the obligation to teach computer literacy to their children. I don’t think it’s an optional element of a Charlotte Mason curriculum. I think it should be required.

According to David Schneider, in 2003 more than half of all workers used spreadsheets in the workplace.[5] An employee who is not at home in Excel may be a liability for his employer. That was in 2003, and I believe that the prevalence of technology in the workplace has only increased. Furthermore, I believe that for most students, computer literacy is probably essential for success in college. My daughter is a freshman studying agricultural business. I was amazed to find that all of her homework assignments for microeconomics were required to be done in Excel. Every calculation, every graph, every answer was typed in cells, constructed from formulas, and expressed in charts.

I’m glad that my daughter had used Excel before this class. I’m glad that when I was homeschooling her, I required her to demonstrate her chemistry lab results in a spreadsheet. I’m glad I taught her how to use PowerPoint. I’m glad I allowed computer literacy to be an exception to our ban on screens. In fact, I’m glad I taught her to program. If I had to do it all over again, I’d do more of the same. I just wouldn’t bring a computer to a handicrafts fair again!

The Science of Relations

But there was a reason for why I associated programming with handicrafts. I wasn’t just suffering from a temporary lapse of judgement. Rather, I was acting on my awareness that the best programmers in the world speak of their work as craftsmanship. Many of the lessons of craftwork apply to programming. A blacksmith is apprenticed, learns by doing, and takes pride in his work. I could read 25 books on sloyd and still not be able to make a single model. Even videos can’t convey this knowledge. The person who knows sloyd is the person who makes models.

But even if craftsmanship links programming with handicrafts, I must concede that programming is not a craft of the hands. When Mason describes the science of relations, she typically begins with relationships between the child and physical objects. For example:

A child should be brought up to have relations of force with earth and water, should run and ride, swim and skate, lift and carry; should know texture, and work in material; should know by name, and where and how they live at any rate, the things of the earth about him, its birds and beasts and creeping things, its herbs and trees…[6]

Programming is most definitely not “work in material.” I should not have brought a computer to the handicrafts fair. But where, then, does programming fit in the science of relations? It doesn’t seem to get us in touch with the great ideas of man or of God. So is it an outlier?

I think not. Rather, I think we find its home in these words of Charlotte Mason:

… we retain those studies which give exercise in habits of clear and orderly thinking. Mathematics, grammar, logic, etc., are not purely disciplinary, they do develop (if a bull may be allowed) intellectual muscle. We by no means reject the familiar staples of education in the school sense, but we prize them even more for the record of intellectual habits they leave in the brain tissue…[7]

In my life, programming has taught me much more than how to write an app. The most valuable lesson it has taught me is how fallible and illogical I am. It has taught me humility, and it has done so by humbling me.

This particular power of programming can perhaps be explained in this way: it is human nature to perceive ourselves as being fundamentally logical. Our natural tendency is to trust our reason. If it makes sense to us, then it must be true. But Mason’s 18th principle encourages us to challenge that notion. She says that reason “it is not always a safe [guide]; for, whether that idea be right or wrong, reason will confirm it by irrefragable proofs.”[8]

I recall many episodes in my career when I was trying to debug a program. I would marshal all the powers of logic and reason that I possessed to understand a particular algorithm and its implementation. After much intellectual labor, I would conclude that the bug was rationally impossible. There must be some other explanation besides the code. A hardware failure perhaps?

But time and again, after days or weeks, the cause of the bug would come to light. In each instance, the computer was right and I was wrong. Programming taught me just how fallible I really am. The computer is mercilessly and relentlessly logical. Any person can benefit from wrestling with a machine in this way. It builds “intellectual muscle,” while also serving up a generous helping of humble pie.

A Living Way

Now if programming is worth learning, then there must be a living way to teach it. I believe this cornerstone of the Charlotte Mason philosophy: “there is no subject which has not a fresh and living way of approach.”[9] I can say confidently that programming, like sloyd and math, is not learned from living books. But does one learn a programming language the same way that one learns a foreign language?

I know someone who thought so. He majored in ancient languages and was an accomplished linguist. He told me that in the near future he would be going to a programming “boot camp.” He said he was confident he would do well because he was such an expert in languages. I had my doubts, but I kept them to myself. Personally, I see about zero correlation between learning Latin and learning Java.

The difference between the two is in what is said. In “human” languages, ancient and modern, we convey ideas for other human beings to understand. In programming we are doing something quite different. We are constructing algorithms, and then encoding them in a form that computers can process. The real art of programming lies in the devising of the algorithms. Translating the algorithm into the syntax of a programming language is the easy part.

With any “learn by doing” subject, it is easy to drown our students with words. The guidance Mason gives about teaching grammar applies to programming too: do it “without pedantry and without verbiage.”[10] After teaching my three children to program, I am convinced of the wisdom of this advice. When I first started, I would rack my brain trying to come up with some way to explain to my child what a variable is. Eventually, I realized that this is a waste of time. I now know the best way to learn what a variable is. It’s to use one! That means coding in the very first lesson.

Over the years I bought and reviewed many books and websites that claim to teach programming. I began to see that the best book would be the one that had many, many programming assignments that were carefully graduated from the simple to the complex. The text that I finally arrived at has served me well for many years and is the book I recommend: An Introduction to Visual Basic 2012, by David Schneider. In my view it is hands-down the best.

Your first reaction might be: Basic? Why Basic? Why not Python, Java, Swift, Go, or some more modern language? I would give the same answer I gave to my “language expert” friend. The syntax of the language is the easy part. The hard part is learning how to conceive and design algorithms. Basic (“Beginners All-purpose Symbolic Instructional Code”) was designed for ease of use, and it allows young programmers to focus on algorithms and instructions rather than the nuances of more specialized professional-grade languages.

A nice benefit of Visual Basic is that the “community edition” can be obtained from Microsoft for free. It enables the first-time programmer to get a simple program up-and-running in minutes with almost no configuration or setup. And David Schneider explains every step required to get there.

The real strength of Schneider’s book, however, is the programming assignments. There are hundreds and hundreds of mini-apps assigned for the student to write. Each assignment results in a small working program which is easily testable. The “oral lesson” goes away and every “programming lesson” is spent with hands-on-keyboard. The explanatory text in the book is great — I am convinced that it is sufficient for the non-programming parent to learn over the summer to be ready for his or her child to start lessons in the fall — but it’s not for the child.

So I don’t have my children read the explanatory text. That text is for me, to get an idea of which new concepts are being introduced. We don’t even do the “paper and pen” questions. We just jump straight to the programming assignments at the end of each section and my children learn by doing.

Now for any software engineers who may be reading this, you may balk at my suggestion to start with Basic. You may prefer to start your children on a language that is more current. I will just say that Basic was a great foundation for my firstborn. Once I felt he had mastered the essentials of programming with Schneider’s book, we then shifted to Swift, a language introduced by Apple in 2014. To get familiar with the new syntax, I actually assigned programming projects from Schneider — I’ve never seen such a rich set of programming problems for a student.

Admittedly Swift was more difficult because I had to learn it without the help of Schneider’s outstanding text. But eventually I grasped it and my son did too. I had a goal in mind, and that was to help my son write a program that would actually get into Apple’s App Store. If my son could write an app for the iPhone, I reasoned, then he was a programmer for sure.

Homeschool doesn’t last forever, however, and as my teenager grew older, I realized I was running out of time to equip him to write that app. We brainstormed together what his app would do. He was studying physics at the time, and we came up with the idea of a calculator that works with vectors. Over a span of weeks, he did his design and coded elements of the app. But graduation was looming and we were running out of time.

I ended up scheduling a father-son retreat. We went to a family retreat center in a remote corner of Michigan, just the two of us for several days. We had our little cabin by the lake, surrounded by other cabins and a large hall for common meals. We sat out on the dock or at a picnic table enjoying the fresh air, the sight of the trees, and the presence of nature. And we each had a MacBook in our laps. And we coded.

For me it was a break from work and routine, and I had a blast. There were a few other folks staying at the retreat site that week. I recall one older woman who approached us and said, “Don’t you ever take a break from your work? You’re working all the time.” The comment amused me. I wasn’t working. I was having fun.

A few days after returning home, we submitted the app to Apple. You have to be 18 to get an app in the store, so the app is in my name, but the code is my son’s. You can check it out here. I hope you don’t find any bugs.

My second child is a girl. I work for a software company, and I have spoken at my company’s annual women’s summit. I explained that women earn only 18% of the computer science bachelor’s degrees awarded in the United States. According to ComputerScience.org, “efforts to attract women to tech-related careers need to begin in elementary school.” Change was going to begin with me.

I was determined that my daughter would be a tech success story. I would teach her to code, even if that meant bringing a computer to a handicrafts fair! My son got an app in the App Store. Maybe my daughter would write two! I even (it is hard to admit) bought a Computer Engineer Barbie to remind me of my goal.

She was obedient and she wrote many programs. But over time it became obvious that this was not what she wanted to learn. She did not want to be one of those 18% of computer science majors who were female. Instead, she wanted to be a farmer. My first response was, “You were born into the wrong family.” But then I woke up to my responsibility as a parent. My daughter’s dream is what mattered, not my own. We stopped before Swift and I got her books on farming instead. After a year in college, she’ll be interning at a farm this summer.

(For that matter, my firstborn didn’t major in computer science either. He is still working on his mechanical engineering degree.)

I have one child more at home. We’re moving steadily through Schneider’s book, and my teenage coder is showing a lot of promise. I think Swift is just around the corner. So be on the watch for an iPhone app in another 2–3 years.

But I’m no longer trying to make my kids into software engineers like me. I’m not preparing my son for a vocation; I’m preparing him for life. Charlotte Mason wrote that “we personally have relations with all that there is in the present, all that there has been in the past, and all that there will be in the future.” [11] Computer technology was not part of Mason’s “present,” but it is part of ours, and according to the science of relations, “fulness of living, expansion, expression, and serviceableness, for each of us, depend upon how far we apprehend these relationships and how many of them we lay hold of.”[12] Will my son ever program a computer at his college or in his career? That’s actually not what matters. What matters is that my son is an “inheritor of all the present,”[13] and that’s a good enough reason for me to make computer literacy a part of the feast.


[1] The Parents’ Review, vol. 41, p. 286.
[2] School Education, p. 159.
[3] School Education, p. 46.
[4] The Parents’ Review, vol. 76, p. 37.
[5] Schneider, D. An Introduction to Visual Basic 2012, p. 344.
[6] School Education, p. 161.
[7] School Education, p. 174.
[8] Towards a Philosophy of Education, p. xxxi.
[9] Parents and Children, p. 278.
[10] Parents and Children, p. 274.
[11] School Education, pp. 185–186.
[12] Ibid.
[13] Ibid.

13 Replies to “Teaching Tech”

  1. Thank you so much for this post. We have been wrestling and researching, trying to wrap our heads around applying CM to this part of modern life.

  2. Very interesting read, thank you. It certainly is difficult to know how and where to draw the line where computers are concerned. I recognize that screen addiction is a real and harmful thing, but on the other hand it’s pretty difficult to go through life without using computers today. Even a Luddite homesteader like me uses one every day for things having to do with homeschooling, such as reading this article or ordering books.(I still don’t own a cell phone, though.) I agree that our children should be comfortable using a computer and even having some deeper knowledge of computers. For me, what is challenging is keeping their screen use down to a reasonable limit. I have one son who is virtually obsessed with computers and programming. He seems to be addicted to screens and although we have a daily limit we have to be really careful about watching him because he’ll sneak. So I feel like if I allow just a little bit, it quickly turns into too much. It’s something we’re still working on.

    1. Laura,

      Thank you for this thoughtful comment. I hope it is clear from my article that I only support careful and constructive use of the computer as part of a homeschool program. I don’t consider all screen time to be equal. If video games, movies, and other forms of computer entertainment are eliminated, then the computer is reduced to being a tool for programming, spreadsheets, and the like. It’s hard for me to imagine this kind of activity resulting in screen addiction. Because I carefully set configuration and controls on the computer, and establish clear lifestyle expectations, my son knows that essentially the only thing he can do on his computer is program. Sneaking is not an option and nagging is nonexistent. I hope that this approach may give you some ideas in how to manage computer use in your own home.


  3. I love reading how you’ve applied Charlotte Mason’s principles in your home Art. I took a required Java coding class in college and wished I had learned about coding sooner.

    I have two practical questions regarding teaching your children coding. Did you create an additional time slot in your school lessons for it? Also, at what age did you start the lessons?

    Thanks for all your contributions to the CM community! This site is one of my favorite resources.

    1. Heather,

      Thank you for your kind words. It’s great to hear that you took a Java class in college!

      Yes, I did create an additional slot in my school timetable for programming. In our homeschool, it’s a core subject alongside history, literature, math, etc. It is neither an afternoon occupation nor something left to the child’s initiative. I have clear learning objectives in place.

      I started programming lessons with my third child at age 12. This was only possible because we started with Basic. I don’t think “real” programming is generally possible at a younger age than that. There are resources out there that claim to prepare younger children for programming, but they seem to me to be just glorified video games and in my view do more harm than good. I would not have a child start programming until he or she can actually type in the code, run the program, and evaluate the results. It should feel like work and not play. For some children, 12 may be too young.

      I hope this helps!


  4. Thanks for sharing, Art. Completely agree that the children of today must be exposed to technology and be versant in it’s use, this is just a fact of life. We’ve started with Python on advice of a friend, using “Hello world! : computer programming for kids and other beginners”. We’ll see if it sticks.

  5. Would you provide some guidance as to which Form would be most appropriate to begin this aspect of the feast?

    1. Heidi,

      Thank you for this excellent question. Charlotte Mason had good reason to delay formal reading lessons till age 6, and I have good reason to delay computer lessons till at least twice that age. Young children need to spend time outdoors, develop imagination, and build relationships. I think most kinds of screen usage before age 12 does more harm than good.

      The age to start programming is somewhat based on your goals. I would like my son to graduate with a programming proficiency that will take several years to develop. If you want to undertake a similar multi-year effort, then Form 3 is a good time to start. On the other hand, if your goal is more general computer literacy, then starting as late as Form 5 should be perfectly fine.

      My daughter never used a spreadsheet until her last year before college. But I assigned to her several structured activities with Excel and PowerPoint during her senior year. I think this gave her the proficiency and confidence she needed for her first year in college. Recently she showed me the PowerPoint slides she created for a project in her English class. She told me she tried to incorporate the concepts I taught her about how to make good slides. It was a touching thing to hear.


  6. Thank you for this article! Especially your observations of how each of your children have developed differently. We have been learning python using “Invent Your Own Computer Games with Python, 4th Edition” by Al Sweigart. Do you think the “introduction to programming using visual basic” would be a good next step using the exercises in python?

    1. Sarah,

      Thank you for the kind words. In my opinion, the Al Sweigart book suffers from the same defect that I see in most books that claim to teach coding. The book is filled with long examples but few exercises, as if one can learn to code by typing and reading someone else’s code. In my view, programming can only be learned by conceiving one’s own algorithms from scratch, and this must be done again again with progressively difficult exercises. The great strength of David Schneider’s book is the vast wealth of exercises and programming projects he assigns.

      Whether the assigned programs in Schneider’s book can be coded in Python largely depends on your own facility with Python and Basic. If you are new to programming it may be difficult. However, if you or your child are willing and able to put in some extra effort, you may be able to implement some or most of the assigned programs in Python instead of Basic.


  7. Thank you so much for your response.  My husband is very comfortable with programming and your ideas made complete sense to him.  Thank you!

Leave a Reply

Your email address will not be published. Required fields are marked *