Bonum Certa Men Certa

Education and Free Software

2020 figosdev



Start it up
Chapter 16: Education and Free Software



Summary: "If students learn how to code, they'll be able to figure out the applications."

Education is one of the best ways to get more people interested in Free software. Unfortunately, most people make education more difficult than it needs to be.



"Unfortunately, most people make education more difficult than it needs to be."It is possible to use languages like Javascript and Python (even Java) to introduce programming. Python is an especially popular language for this purpose, because it is easier to learn than Javascript or Java (or C or C++).

There are subjective elements to any sort of argument like this, and there is the general reality. I suspect teachers have less time to learn coding than students do -- some already know how to code, but others struggle.

If every school teacher has at least five students they want to teach coding to, imagine what we could accomplish with tools that make coding easy.

Looking back at previous successes in history, the languages that have helped introduce the most people to coding (people who would not have learned otherwise) include BASIC and Logo.

I love Logo, but people tend to focus on its graphics features -- which are easier to use, unless we are talking about the new breed of block-dragging Logo derivatives which make most tasks easy.

My problem with Logo as a language for schools (unless we are talking about the earliest grade levels) is that it feels "less like programming" to move a Turtle or even drag blocks around to animate a cat.

These tools are amazing, and they can help people who are even younger learn programming concepts. If that's the level you want to start at, these solutions have their place. Likewise, if you want to just start with Javascript or Python, those are already used in teaching and have their advantages (popularity among them).

I tried those as well (I write code in Javascript and Python, targeting PyPy), but I wanted to make writing code as accessible as possible -- so I tried my hand at language creation. I'd made toy languages before, how about a toy language for teaching? In the 1960s at least (when BASIC and Logo were created) it was a revolutionary concept.

Logo (as far as its Turtle features go) is fun and easy in part because its so minimal. If you want to move up, you can just say "up". In some dialects, you can just say "U". Perhaps at its most minimal, you could draw a box like this:

    R D L U


Right, Down, Left, Up -- what is someone supposed to think that does? You can trace it with a pencil. You want parameters of course, so you let the user specify distance:

    R 5 D 5 L 5 U 5


Now you have a box that can be a specific size. Simple little language, right? But it's getting difficult to follow. We have choices we can make in terms of design here:

    r(5) d(5) l(5) u(5)



r5 d5 l5 u5

r 5 ; d 5 ; l 5 ; u 5


I have my own answer to this, but the top is a bit like BASIC or Python, The middle is very Logo-like just because of the lack of punctuation in syntax, and the latter is more like shell code.

These are similarities based on specific examples -- there isn't a specification that defines "shell code" (unless POSIX does) - nor are most dialects of Logo compliant with a standard.

But it's still a very simple language that's easy to teach and learn. I always thought it would be an interesting experiment to try to extend Logo to make it more like BASIC in its capabilities.

While Python says that explicit code is better than implicit, every explicit element adds something you can get wrong. So while you wouldn't design Python code like this:

    r 5 d l u


The "5" is implicit. Or perhaps the default value is -- obviously this sort of ambiguity is worth avoiding, except perhaps when it's helpful.

Still, for an example that's very conventional:

    color "orange" ; print "hello" ; print "world"


The print command doesn't have a colour parameter, yet we know that both print commands probably use orange.

What we make the first variable implicit?

    v 10 ; colour 1 ; print


In this example, we print 10. It make not make a lot of sense, unless you know that each line begins with a variable. If each command has a fixed number of parameters, we can do away with the semicolons:

    v 10 colour 1 print


But this runs together, so what if we make the semicolons optional:

    v = 10 colour 1 ; print


Then we add special commands that don't share a line with other commands, which Python actually sort of has:

    iftrue p
    v = 10 ; colour 1 ; print
    next


Make enough decisions like these, you can find a balance between very few rules and enough consistency to make the language worth using.

Keep your commands simple, your parameter counts short, your punctuation minimal (or optional) and your language small. You can make it extensible with a more complicated language like Python -- plus, a compiler for a language this simple is easy to take apart and learn from -- you can start from a couple hundred lines of code, work your way up to one or two thousand (for 50 to 100 commands).

Each command is really a short program, so think of it as writing a dozen or two very short programs, and how you would tie them together.

Ideally, coders and teachers would work together more often, helping teachers learn how to create their own languages for teaching.

I realise I'm saying this decades into a world where we train people how to use products, instead of teaching general concepts in the simplest way possible. But it;s my own book and I get to write the advice in it.

Underneath it's all OOP, I like to implement languages in Python, but I can implement languages in my own language. I didn't take the Brown University courses for this, but I like to make things simple when reasonable.

There are all kinds of devices you can run this stuff on. Rather than recommend a specific device, I'll just say: computers exist to be programmed. Users exist to control computers -- the other way around (using computers to control people) is generally speaking, exploiting your customers.

I teach 7 simple programming concepts:

 1. variables - 2. input - 3. output - 4. basic math - 5. loops - 6. conditionals - 7. functions


This is how I define a function in my own language:

    function yes parameter
        iftrue parameter
            now "yes, " prints
            now parameter print
        else
            now "yes" print
            next
        next


Here's a function call:

    now yes "dear"


And the output:

    yes, dear


I often indent using a bit of Python style, but the indentation (except for inline Python) is optional.

What are the (fewer than) 100 commands for? Stuff I have always used BASIC and Python for -- simple graphics, manipulating files and strings, simple calculations and tallying items, automation.

I have advice for people interested in writing simple programming languages as well:

You can write a "hello world" program, even though its useless. But it shows you a little about how a language works.

You can create a "hello world" programming language, even though it's useless.

You can literally make a language that (when it encounters a helloworld or hello command), says "hello world" on the screen. There's your start.

Now as you would with a hello world program, make your language a little more sophisticated -- just a little. There are tutorials of course, but they won't generally tell you how to keep things simple.

If students learn how to code, they'll be able to figure out the applications. If you keep the syntax easy, you can spend more time on those algorithms people say are what coding is really about.

As to how to introduce teachers to this topic, that's the sort of thing a viable Free software movement could do. I used this to help an art teacher (whose boyfriend had always tried to show her how to code) understand coding better than she had previously.

"And this does this... and this puts it on the screen..."

    # count to 10
    for each = 1 10 1
        p = each ; print
        next


...

Licence: Creative Commons CC0 1.0 (public domain)

Recent Techrights' Posts

Touch Grass
Happiness involves what humans have evolved to appreciate, not what humans create to sedate the mind (like skinnerboxes)
The Cyber Show on Technology Having Become a Tool of Mass Psychosis, Not Enablement or Emancipation
Technology as mass psychosis
The Rumour Said That a Second Wave of Microsoft Layoffs Would Come This Week (Ahead of Fake 'Results'), Maybe Tomorrow
Let's wait and see how "MSM" unfold
Karen Melchior Fought the Good Fight
stay tuned for Part 29
 
This Coming Weekend Marks 4 Years Since We Dumped Content Management Systems (CMSs) in Favour of Static Site Generators (SSGs)
the first page dated July 25
Slop's Latest Casualty: The Credibility of Linus Torvalds
If you care about millionaires and billionaires, follow Torvalds (he is already in that "club")
Techrights Will Become More Productive (More Output) Over Time
Big stories about to land
To Wikipedia, "Notability" is Just an Excuse to Hail People Who Serve Billionaires While Marginalising or Defaming the Rest
Wikipedia is an advertising space
Our Series About Solicitors Regulation Authority (SRA) and SLAPPs Will Resume Soon
Originally, in 2025, we gave ourselves 6 years (until 2031) to cover these issues, but we've seen since extended that to 10 years (until 2036) because of the amount of material we have
European Patent Office (EPO) Series: The EPO Transparency Gap
Despite the "European" tag in the organisation's name, the European Union has no jurisdiction over the European Patent Organisation
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Monday, July 20, 2026
IRC logs for Monday, July 20, 2026
Links 20/07/2026: Lashes for Songs in Iran, Kurdish Language at Risk
Links for the day
Gemini Links 21/07/2026: The Boss Baby (2017) and 2026 Old Computer Challenge Epilogue
Links for the day
Canonical Staff Acting Like They Aim to Receive Job Offers From Microsoft
There are moreover allegations that Debian will do the same, in the same way Mono boosters infected both distros in tandem or in turn.
Worsening Staff Affairs at Microsoft
Microsoft is managing to piss off many of its own workers
Czech Mate for GNU/Linux on the Way
Czechoslovakia is having none of that "peace for our time" with Microsoft
Nobody Will be Left Who Trusts IBM Anymore
The common theme is, the management must be completely replaced as soon as possible and truth needs to come out
Wall Street is a Bubble and No Company is Worth 5 Trillion Dollars
It's not hard to see which stocks will crash the hardest (or fastest)
The Corrupt Have Historically Tried to Paint Their Exposers as the Real Problem
As usual, there are efforts to shoot or muzzle the messenger
Search Engine Market Share in Italy: Microsoft Falls to Third in Many Countries Including Italy
Expect more layoffs in Bing
Links 20/07/2026: Spotify Drowning in Slop, Expiry of Software Patents in MPEG-4
Links for the day
Gemini Links 20/07/2026: Another Step Towards Owning Personal Data and Gemtext2 Envisioned
Links for the day
European Patent Office (EPO) Series: Public Missions and Private Ambitions
Despite the French government's strong formal pushback, the lobbying momentum generated by Campinos and Negrão proved unstoppable
"DOOM" and "Bloodbath": the State of Microsoft and XBox
Way to piss off fans
Links 20/07/2026: Notes on E-mail Encryption, Torvalds and His Employer Paid a Lot to Promote Slop (Pyramid Scheme)
Links for the day
What a Difference Six Years Make...
We are also beta-testing a new feature for the site; we plan to announce it some time soon
When It Comes to Slop, Richard Stallman is Opposite of Linus Torvalds
When it comes to computing, Dr. Stallman has long been a voice of reason
Daniel Pocock is in Mainstream Media This Week
Pocock's haters will absolutely hate this
In His Departure Post, Poul-Henning Kamp (phk) Explains Why Linus Torvalds is Full of "Hot Air" and Slop Bubbles
Having lived through previous bubbles as a UNIX geek, phk cannot be ignored
Whistleblowers Keep Flowing
Later today a police investigator should phone us regarding death threats we've received
We Need Less Gadgets, More Humanity
If people are being honest with themselves, many of the gadgets they claim they "cannot live without" are just excesses and distractions they could definitely leave behind
Technology and Gadgets Got Obese, Just Like Their Users
They now sell us so-called 'phones' for slop
Daniel Pocock in The Guardian This Morning
There is an opportunity here to spread a message, even if Pocock won't win a seat
"Samsung Recently Projected a 19-fold Surge in Second-Quarter Operating Profit", Now There Are Mass Layoffs
In a 9-month period Samsung's debt rose by about 80%
Gemini Links 20/07/2026: Dungeon Meshi/Undertale Crossover, "The Hitchhiker’s Guide to the Dark Web and Beyond"
Links for the day
IBM's Control of the Media "Just Showed What Taking Accountability Does Not Look Like"
It is no secret that IBM pays the media
Microsoft Loses XBox Lawsuit, But There Are More
The collapse of studios continues
GNU/Linux Approaching International Average in Djibouti
One can envisage further gains for GNU/Linux, seeing Microsoft is in such a bad shape
Daniel Pocock "[t]he Australian Taking on Nigel Farage — from Down Under"
This can help raise awareness of some issues
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Sunday, July 19, 2026
IRC logs for Sunday, July 19, 2026
Misleading Coverage in Slashdot Promotes and Openwashes Slop
Piggybacking RMS for the headline seems like a PR stunt of sorts
As Envisioned, a Rebellion and Many Whistleblowers at Microsoft
Whistleblowers ensure Microsoft has totally lost control of the "narrative" (face-saving PR)
Microsoft is a Right-Wing Company
Just remember that when people call Microsoft "woke"
GNU/Linux "Market Share" Rises to About a Quarter in Sudan
Can anyone explain to us why?
Gemini Links 19/07/2026: Visiting Ethiopia, Two Dreams, and Price of Skinnerboxes
Links for the day
Tears in IBM, Company Falls Apart While Management Fakes "Performance" to Take Bonuses
Wall Street is a naked emperor
Telling Our Story
In the coming years we'll have some high-impact stories to share and generally tell without fear of reprisal
Microsoft XBox Studio Leaders Upset at What the New CEO Did
From what we can gather, in 2024 XBox was already entering what's known as a "death spiral". Now it's literally moving down the drain/pipe.
IRC Started in Finland, GNU/Linux Did Not
History is like that
GNU/Linux Rises to 8% in Bhutan, Same as the International Average
Taking note of estimated GNU/Linux share in that country, we see it hovering around the international median/average this month
Links 19/07/2026: "The Voice of Google" and "Chinese Surveillance Tech a Threat to Privacy"
Links for the day
Keep Both Eyes on the Ball
At the moment we have six series running in parallel; two of them concern the EPO
'Journalists' Who Help IBM Cover Up Fraud
Journalistic malpractice
The "Modern Linux" Song
Join us now, make the kernel
XBox Layoffs Vastly Bigger Than Microsoft Told the Press, Microsoft Keeps Trying to Change the Subject
Many so-called "XBox fans" are no more
Microsoft Lost 1,200 Billion Dollars in "Market Value", Take a Look at What Happened to Windows
while Windows continues to fall unstoppably GNU/Linux is surging
Links 19/07/2026: People in China Are Buying Feelings and 404 Media Has Third Anniversary
Links for the day
Gemini Links 19/07/2026: Camping, Health, and Hardware
Links for the day
The State of Slopfarms
Slopfarms or LLM slopfarms are a menace and a problem on the Web
GNU/Linux Rising to 6% in Brunei
seventh in the world for GDP (PPP) per capita
Free Software is Like an 'Activist Movement'
People who argue strongly in favour of something (even very good things) will attract the wrath of those whom they oppose
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Saturday, July 18, 2026
IRC logs for Saturday, July 18, 2026