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

European Patent Office (EPO) Series: Down But Not Out – Costa's Comeback
he managed to secure a top-level EU position in June 2024
Journalists Should be Ashamed for Parroting False Claims From IBM Management About "Quantum Computing", Say IBM Insiders Who Work on "Quantum Computing"
IBM is a buzzwords vendor. International Buzzwords Machines.
Exposing Corruption Using a Highly Resilient Platform
Growing levels of trust, based on our track record, help us attract whistleblowers
 
IBM's CEO Does Not Use GNU/Linux, So Why Did He Suggest Buying Red Hat Only to Lay Off Its Workers, Market Slop Instead of Linux, and Sack UNIX Professionals?
Shortly after IBM had bought Red Hat and there were mass layoffs we pointed out that Red Hat's CEO was not using GNU/Linux
If You're Not Focusing on Software Freedom, All You'll Get is Slopware and Buzzwords
If you're not focusing on attaining Software Freedom (and remember "Linux" is just a brand), then you're losing sight of the goals that actually matter
Red Hat/IBM: Microsoft is Our Partner of the Year
Red Hat is a really bad gravy
Gemini Links 05/06/2026: Enshittification of Institutes for Project Management, Codebases Contaminated With Slop, Personal Stories
Links for the day
Communicating With Freedom - Part II - Quibble Breathing New Life Into LibreJS
Notice how work on one thing led to thousands of lines of code added to a mostly dormant (but nevertheless important) project
Slop Has no ROI, an Economy Built on False Assumptions of Slop is Doomed
we're all going to suffer from this Ponzi scheme
Links 05/06/2026: More GAFAM Layoffs, Google Faces Regulatory Crackdown in UK Over Plagiarism in "AI" Clothing
Links for the day
Rumour That Layoffs at Microsoft Will Kick Off on July 1st, 2026 (Impacting 10,000 or More Workers)
this is what the rumour mill or the word through the grapevine is
Mission:Libre, Which Teaches Young People Free Software Ideals, Needs Financial Backing
plea for assistance with Mission:Libre
The Slop Ponzi Scheme is a Problem and Threat to All of Us (Even Those Who Don't Invest in or Use Slop at All)
This problem is systemic, not contained
"Blind Justice" Examines the Solicitors Regulation Authority (SRA) Turning a Blind Eye to Abuse by British Solicitors
We have some jaw-dropping examples of how the SRA does not do actual regulation - to the point where its staff does not actual work and does not look into any evidence at all!
7 Days From Now the FSF's Founder Gives a Talk in Bern, the FSF Has Just Advertised This
Meanwhile the FSF (or GNU) processes and uploads many recent talks by RMS
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Thursday, June 04, 2026
IRC logs for Thursday, June 04, 2026
Links 04/06/2026: Self-hosting Remotely and GemText Emphasis
Links for the day
Links 04/06/2026: Ukraine’s Daily Moment of Silence and Uber Lays off 23% of HR
Links for the day
SLAPP Censorship - Part 98 Out of 200: Microsoft Threatening Real Security Researcher With Criminal Investigation for Talking About Microsoft's Bug Doors/Back Doors
The crime should be the back doors (deliberate attack on every user's data protection), not talking about those back doors
Microsoft Would Get Away Even With Pedophilia
"Microsoft should never be above the law"
Free Software is Nourishment to Software Users, Unlike Proprietary Software
Quit treating "mere users" of software "like animals"
The "Peanut Gallery" of GAFAM Has Infiltrated Free Software Projects or Disrupts Free Software Communities
They contribute nearly nothing and do substantial damage; they're freeloaders who attack the most productive members of projects
Coding is Not a Quantity Game (It Never Was!)
"less is more"
Mass Layoffs Expected at Microsoft in July 2026
They're preparing more "lists" of people
Reflection on EPO Leadership That Harbours Cocaine, IBM Leadership That Pumps-and-Dumps the Shares, and More
ManCity replaced Manuel Pellegrini with a more famous manager it didn't envision winning 20 titles in 10 years (it could only hope) [...] Team-building is something that "Pep" seemed to be good at, as was Jürgen Klopp
Pump and Dump by IBM Insider Traders: Nickle LaMoreaux, Gary Cohn, James Kavanaugh, Arvind Krishna, Robert Thomas, and Others
the shares are already collapsing
FOMO (Fear Of Missing Out) Has Weakened If Not Ruined What's Left of Big Media
Many things that have existed for decades are now being rebranded as "AI"
SLAPP Censorship - Part 97 Out of 200: Garrett in Hiding (From the Simple Observable Fact He's Closely Connected to the Microsofter Who Strangles Women, Tells Women to Kill Themselves, and Worse)
They use one another; they are coordinating this via the SLAPP industry in another continent
Links 04/06/2026: Microsoft Threatening Security Researcher for Naming Back Doors in BitLocker, "Demand is Booming for" Old Tech
Links for the day
Gemini Links 04/06/2026: "Word Vomit", Slop", and Moving to Gopher/Gemini
Links for the day
Rust Outsources its Financing (or Financial Control) to Microsoft
How long before the third "E"?
"Format Sovereignty" Can Only be Accomplished With LaTeX or OpenDocument Format (ODF) or Vendor-Neutral Standards for Editable Documents
Microsoft is, in effect, above the law
IBM's Shares Fell Nearly 13% in One Day (Including After Hours)
its main product is false promises
The Cyber Show on the Importance of Software Freedom and Why GNU/Linux Could Not be Stopped
an excellent article
Drew DeVault Can Still Redeem His Reputation. Revisiting His Attacks (and Attack Site) on Richard Stallman Might be a Good Start.
DeVault has openly apologised (this past spring)
The Register MS is Publishing Paid SPAM; Some of It is Designed to Prop Up the "AI" Pyramid Scheme
The Register MS participates in scams
European Patent Office (EPO) Series: "Operation Influencer"
Costa's political career was far from finished
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Wednesday, June 03, 2026
IRC logs for Wednesday, June 03, 2026
GNU/Linux Usage Rising Among Gamers, But "Hardware Survey Data Not Available."
Not anymore, not for now anyway
Jumping Up and Down on the Shoulders of Giants, Never Talking About What Bill Gates Did
We're back to 2019
Despite LLM Slop or Chatbots, Our Traffic Has Doubled Since We Moved Everything to the UK (in 2023)
The demise of news sites was not what we thought it would be
Software Developers Attacked by Plagiarism Engines Because These Developers Can Teach People How to Exercise Control, Not Outsource to Monopolies of Slop and Back Doors
"Universities should be telling industry what is to be done next, not the other way about. Present education policy has the tail wagging the dog."
Quantum Quantum Quantum Quantum (Pump, Then Dump)
What has IBM become?
Communicating With Freedom - Part I - Developing “Quibble” and Improving GNU LibreJS in the Process
In the next part we shall examine where things currently stand
Quantum Computers Are "All the Rage" (35 Years Ago, What IBM Promises This Year is What People Promised When the CEO Was in His 20s)
"Quantum" hype is high on the agenda
How IBM Removes 15% of Its Staff Without Even Checking Performance of Staff (or Calling That "Layoffs")
Performance Improvement Plan (PIP) as veiled RAs
Links 03/06/2026: Mobile Systems, Openwashing, and New Antenna
Links for the day
Canonical as Reseller of Back Doors in "Ubuntu" Clothing
Microsoft is the antithesis of security and autonomy
Romania Used to be Windows Stronghold, But That's No Longer the Case
Windows was once upon a time so ubiquitous that institutions didn't bother supporting anything except it
KDE Has Long Used Dragons, and Dragons Come From Hatched Eggs
That Microsoft Lunduke tries to paint this as some "trans agenda" thing says a lot about Microsoft Lunduke and his COVID-19-damaged brain
IBM Announces 5 Billion Dollars "Invested" in "AI", in "Security", and 10 Billion Dollars for "Quantum", But IBM Does Not Have This Kind of Money (It's Fake News to Manipulate the Share Price)
IBM has fast-growing debt and liabilities, it does not intend to invest this kind of money, it's a smokescreen and false promises timed to alleviate the sagging share price (52-week low)
When Science and Religion Are on the Same Side, United Against Slop Pushers
The "Mathematics Pope" (sometimes known as "Pope Pi") brought together science and religion, united against technofascists who are mostly college drop-outs who abhor women
Links 03/06/2026: "In Turkey, Criticizing a Corporation Can Land You in Jail" and "Court Bans X Account of Turkey's Oldest Newspaper"
Links for the day
Web Censorship Benefits the Corrupt and the Criminal
More so when corrupt politicians are in charge
Have a "Lifetime" Without Microsoft
The online rage over this is still ongoing
Internet Archive’s Wayback Machine Undoing Censorship of Corporate Wrongdoing
That won't go away anymore
"For Entertainment Purposes Only" But Everyone Must Adopt It for Work and Governance, Say Anti-Scientific Technocrats
"The present mentality around "AI" is like driving to the gym to use a treadmill - it's walking for people who hate fresh air and beautiful changing scenery."
Gemini Links 03/06/2026: Ian Murdock's Ex-wife Footprint in Debian and Alhena 5.6.1 Released
Links for the day
Irish Company statCounter Recognises It Overestimated Microsoft Windows' Market Share in Ireland
it seems like the Irish people are gradually moving away from Windows
Corporate Media Participates in the Lie That Mass Layoffs at GitLab and Loss of Geographic Footprint in More Than a Third of Countries is "AI" and Thus "Success Story"
There's no way to spin this as positive news
Slop Prompting is Not a Coding Skill and Slop Deserves Shunning
Red Hat is hypocritically shunning the very same thing it keeps promoting
IBM colleagues "handed out a PIP and then right after the end date they are gone"
Some go into early 'retirement' to save face
SLAPP Censorship - Part 96 Out of 200: When You Receive Death Threats From Anonymous Sockpuppets/Burner Accounts Connected to People Who Strangle Women and Tell Women to Kill Themselves
Women are not objects and my wife ought not be mentioned in "threats to kill" (how cops have described this)
European Patent Office (EPO) Series: A Tale of Two Antónios - Introducing the Other António
António Costa
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Tuesday, June 02, 2026
IRC logs for Tuesday, June 02, 2026