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

Reddit as a Hive of Trolls, Social Control Media Curated (Many Voices Censored and Banned) by Marketing Firm of GAFAM
Typical Reddit
The Solicitors Regulation Authority (SRA) Delusion - Part III - Women Failing Women to Help Violent Americans From Microsoft
Summed up, SRA will gladly prioritise the "legal industry" over women strangled, raped etc
The World Gets Smaller, as Does Its Real Economy ('Human Resources') and So-called 'Natural Resources' (What Humans Call the Planet)
Don't talk about "AI"
Converting FOSDEM Talk on Software Patents in Europe Into Formats That Work for "FOS" and Don't Have Software Patent Traps
transcoded version of the video
 
They Tell Us Slop Replaces Workers, But the Reality Is, US Debt Has Surged 2,300 Billion Dollars in Six Months (the Economy is Collapsing)
Oligarchy already entertains the option of running away to (or colonising) some other planet without pitchforks and "unwashed masses"
Mozilla Firefox Sinks to Just 1.5% in the United States
According to analytics.usa.gov
We're Still Fast
The site is even faster than the BBC's despite being on shoestring budget with only a small technical team
Gemini Protocol is Not a Waste of Time of Effort
We see more and more GNU/Linux- or BSD-focused bloggers turning to Gemini
Our Gemini Protocol Support Turns 5 Today
today is a rare anniversary for us
In Today's World, One Must be Tough and Principled to Get Ahead Morally
But not financially (sellouts)
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Saturday, February 07, 2026
IRC logs for Saturday, February 07, 2026
The Right Wing in the United States Does Not Support Free Speech, It Supports Its Own Speech
Free speech is often opposed by those who also oppose Free software
IRC is a Lot Better Than Social Control Media (They're Not the Same at All)
A good social analogy for IRC is, there are many buildings with a party in each building
Microsoft 'Open' 'AI' is 'Dead Meat'
Or 0xDEADBEEF as some geeks might call it
When Identifying "Low Performers" and "PIPs" Aren't About Improving Performance But Reinforcing a Clique in Your Company/Organisation
It's very troubling to see once-respectable brands like IBM and institutions like the EPO resorting to this
Slop and Flop (IBM), Slopfarms and Hybrids (Linuxiac)
Did Bobby Borisov assume he would never get caught?
Crowdfunding vs Bitcoins: donations are better investment than digital tulip mania
Reprinted with permission from Daniel Pocock
Links 07/02/2026: Misinformation by Slop, Overrated Slop Causes Stock Market Panic
Links for the day
Gemini Links 07/02/2026: Diode Function Generators and Panic Over Buzzwords and Slop
Links for the day
A Can of WORMS - Part III - Envying the Influence and Accomplishments of RMS, Socially Deleterious Attacks on Popular Movements
the actions are deliberate and coordinated, not some 'organic' or grassroots behaviour
Crisis teams assembled as financial regulators anticipate Bitcoin implosion
Reprinted with permission from Daniel Pocock
Links 07/02/2026: More White House Racism, "Europe Accuses TikTok of Addictive Design"
Links for the day
Silent Mass Layoffs: It's Not the Revolution, It's the Loophole and the Hack ("Low Performers" or "Underperformers")
Layoffs by another approach
Mark Shuttleworth (MS) Pays Salaries to Microsoft (MS) Employees
Canonical selling Microsoft
Links 07/02/2026: Windows TCO Rising, Lousy Patents Invalided
Links for the day
Microsoft Leadership: Stop Taxing Us, Tax Only Poor People
Does Microsoft create jobs?
Biggest "AI Companies" (Meta, Alphabet, Microsoft) Borrowed (Additional Debt) About $100,000,000,000 in a Year
Who will be held accountable for all this?
In Case You've Missed It (ICYMI), Google's Debt More Than Doubled in a Year
Wait till it "monetises" billions of GMail users with slop
In 2009 Microsoft Was Valued at ~150 Billion Dollars, Now They Tell Us Microsoft Lost ~1,000 Billion Dollars in Value. Does That Make Sense?
Or Microsoft lost 700 billion dollars in "value" in less than two weeks
PIPs and Silent Layoffs at IBM (and Red Hat) Still Going on, It's "Forever Layoffs" (to Skirt the WARN Act)
American workers out
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Friday, February 06, 2026
IRC logs for Friday, February 06, 2026
Stressful Times for Team Campinos ("Alicante Mafia") at Europe's Second-Largest Institution
Keep pushing
Growing Discrimination in the European Patent Office (EPO)
it's a race to the bottom, basically
Google News Drowning in (or Actively Promoting) Slopfarms Again
LLM slop is a nuisance
Microsoft Stock Crashed When Alleged Vista 11 Numbers Disclosed
And last summer Microsoft indicated that it had lost 400 million Windows users
Gemini Links 07/02/2026: "Choosing a License for Literary Work" and "Social Media Is Not Social Networking (Anymore)"
Links for the day
Gemini Links 06/02/2026: Git and Email Patches; MNT Pocket Reform
Links for the day
Geminispace Net Growth in 2026 About a Capsule a Day
A pace like this means net gain of ~300 per year, i.e. about the same as last year
It's Not About Speed, It's About the Message (or Its Depth)
Better to write news than to just link to news if there's commentary that the news may merit
Benjamin Henrion Warned About the Illegal and Unconstitutional Unified Patent Court (UPC) in FOSDEM 2026
Listen to Benjamin Henrion
Economies Crashing Not Because of Slop Improving 'Efficiency' (That's a False Excuse) and 'Expensive' (Read: Qualified) Workers Discarded in Race to the Bottom
Actual cocaine addicts are pushing out moral people
IBM's CEO Speaks of Layoffs, Resorts to Mythical (False) Excuses
This has nothing to do with slop
Links 06/02/2026: Voter Intimidation and Press Shutdowns in US, Web Traffic Warped by LLM Sludge
Links for the day
Does Linux Torvalds Regret Having Dinners With Bill 'Russian Girls' Gates?
See, the rules that govern the Linux Foundation and its big sponsors aren't the same rules that apply to all of us
IBM: Cheapening Code, Cheapening Staff, Cheapening Everything
IBM's management runs IBM like it's a local branch of McDonald's. IBM is a junk company with morbid innards.
GNU/Linux Measured at 6% in One of the World's Largest Nations
Democratic Republic Of The Congo
Linux Foundation Operative Says We and Our Software All "Owe an Enormous Debt of Gratitude" to a Software Patents Reinforcer
The only true solution is to entirely get rid of all software patents
Mobbing at the European Patent Office (EPO) - Part IV - EPO Can Get Away With Murders, Suicide Clusters, and Systematic and Prolonged Bullying by 'Team Campinos' ("Alicante Mafia" as Insiders Call It)
Nobody in the Council or the EU/EC/EP gives a damn as long as laws are broken to fabricate 'growth'
Jeff Bezos Isn't Just Killing the Washington Post, He's Killing Thousands of News Sites/Newsrooms (in Dozens of Languages) That Rely on It for Many Decades Already
Not just slopfarms; even the Ukraine-based reporters are culled by Bezos, who's looking to please the dictators of the world
Central Staff Committee Confronted António Campinos for Giving His Cocaine-Addicted Friend Over 100,000 Euros to Do Nothing, Just Pretend to be Ill, While Cutting the Salaries of Everybody Else
"On the agenda: Amicale framework & Financial assistance for courses"
How to Win Lawsuits in 5 Simple Steps
Keep issuing threats every week and send 60 kilograms of legal papers to the target
More Than 99% of "AI" Companies Aren't AI, They're Pure BS
We need to discard those stupid debates about "AI" and reject media that gets paid to participate in such overt narrative control (manipulation like The Register MS)
AI Used to Save Lives, Now "AI" is a Grifting Scheme That Burns the Planet and Will Crash the Economy
What the media calls "AI" (it gets paid to call it that) is the same stuff that could instead be dubbed "algorithms"
Living in Freedom When 'False Flag Operations' Like EFF Get Captured by Billionaires to Take Freedom Away
There are many ways to think of Software Freedom
Amutable is a Microsoft Siege Against Freedom in GNU/Linux, Just Like the People Who Brought You 'Secure Boot' Controlled by Microsoft
Do whatever is possible to avoid Amutable and its "products"
Growing Focus on Publication
Over the past ~10 days we always served more than a million Web hits per day
"Going to be a large number of Microsoft layoffs announced soon"
Everybody knows a giant wave of layoffs is coming Microsoft's way
End of the 'GPU Bubble' and NVIDIA Finally Admits It Won't Bail Out Microsoft OpenAI Anymore
circular financing (financial/accounting fraud)
Corrupt Media Won't Hold Accountable Rich People for Role in Pedophilia
Journalistic misconduct or malpractice is a real thing
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Thursday, February 05, 2026
IRC logs for Thursday, February 05, 2026
EPO Management ("Alicante Mafia") Not Properly Sharing Information on Scale of Strikes by EPO Staff
disproportionate (double) deductions in salaries against people who participate in strikes, which are protected by law
Gemini Links 06/02/2026: Slop/Microslop, Home Assistant, and Valid Ex Commands
Links for the day
Blackmail evidence: Debian social engineering exposed in ClueCon 2024 talk on politics
Reprinted with permission from Daniel Pocock
Bitcoin crash: opportunity or the end game?
Reprinted with permission from Daniel Pocock
Changes at the Solicitors Regulation Authority (SRA)
SRA is basically a waste of money
Claims That IBM Will Lay Off 20% (or 15%) of Its Workforce This Year Unless It Finds a Way to Push Them All Out by Threats, Shame, Guilt
Where are the articles about IBM layoffs?
IBM Isn't a Serious Company Anymore, It's a Ponzi Scheme Operated by a Clique and It Misuses Companies It Acquires to Prop Up or Legitimise the Scheme
IBM seems like it's nothing but a "Scheme"
Google News Drowning in Slop About "Linux" (Slopfarms Galore)
Google should know better than to link to any of these slopfarms, but today's Google is itself a pusher of slop