It won’t come as a surprise to anyone that at Primo Toys we’re into coding. Both coding for kids and as a general subject to geek out about.
Consequently we spend a lot of our days dipping in and out of coding culture, news and history. So it was a bit of a surprise when we searched for an A-Z of computer programming and not a huge amount turned up.
Here, then, is our own (by no means definitive) attempt to create a programming alphabet.
A is for Algorithm
Algorithms are a super important part of programming. But what is exactly is an algorithm?
Gizmodo’s io9 sums it up nicely: ‘Though there’s no formal definition, computer scientists describe algorithms as a set of rules that define a sequence of operations.’
These rules are written in code so the computer can understand them, and ‘operations’ can be anything from adding up cells on an Excel spreadsheet to telling a robot how and where to move.
Today algorithms touch almost every part of our lives and perhaps the best known algorithm, the Brad Pitt of algorithms if you will, is Google’s PageRank which governs the tech giant’s search engine.
B is for Ada Byron (better known as Ada Lovelace)
No A-Z would be complete without Ada Lovelace (1815-1852), generally agreed to be the first ever computer programmer.
The daughter of the great British Romantic poet Lord Byron (who nicknamed her ‘Princess of Parallelograms’), she was inspired to write the first ever algorithm for what’s considered the first ever computer – created by her friend, the mathematician Charles Babbage (who affectionately called her ‘The Enchantress of Numbers’).
She described her work as ‘poetical science’ and to this day coding is considered an art, craft and science, all in one. Read our article on 8 Ways Ada Lovelace Changed the Face of Computing.
C is for Computer Science v Computer Programming
There’s often confusion between these terms. Hopefully this neat definition clarifies things: ‘Computer science is the study of what computers can do; programming is the practice of making computers do things.’ So, computer science is theoretical while computer programming is practical.
D is for Debugging
Humans write code and humans make mistakes. Mistakes in code are called ‘bugs.’ Debugging is a multi-step process that includes identifying the problem and then correcting it or finding a way to work around it.
Improbably, the first computer recorded ‘bug’ was a real bug – a moth was discovered in a Mark II computer, preventing the machine from functioning properly. The incident, which took place in 1947, was logged by US Navy admiral Grace Hopper in her note book. Her note read: ‘First actual case of bug being found’.
E is for Education
In the last few years, on both sides of the Atlantic, there’s been a revolution in how we teach programming for kids. In 2014, to much fanfare, the UK Government introduced a new ‘computing curriculum,’ under which children aged five to 14 now have compulsory computing classes.
Thanks to the huge interest in STEM education, in the US coding is making its way ‘from the club to the curriculum’ too, with the help of former President Barack Obama’s Computer Science For All initiative.
F is for Fortran
Broadly, coding languages are grouped into lower-level languages, which look more like binary, and high-level languages which are more human-friendly.
The first high-level programming language was Fortran (derived from Formula Translation), which was invented in 1954 by IBM’s John Backus. It gained popularity among programmers immediately, and has stayed in use for over half a century.
G is for Gender Neutral
Even though the first ever programmer was a woman, the gender gap in computing has always been a problem.
Alarmingly, the gap has actually grown in recent years. In 1984, 37% of all computer science graduates were women. Today that number is just 18%.
Thankfully we’re seeing a shift in the ‘coding is for boys’ attitude with the help of excellent organisations like Girls Who Code and kid tech evangelist Randi Zuckerberg.
H is for Hacking
Hacking isn’t just about bringing down nefarious corporations with Angelina Jolie and Jonny Lee Miller or, for that matter, fiddling with the US elections.
Hacker culture, as Wiki puts it, ‘is a subculture of individuals who enjoy the intellectual challenge of creatively overcoming limitations of software systems to achieve novel and clever outcomes.’ It can also apply to remodelling and reworking analogue objects to make them work better or operate in a new or surprising way.
(For smiles and chuckles, scroll down to M and check out some of the early examples of hacker pranks made by students at MIT.)
I is for Invention and Creativity
Programming has never quite been able to shake the idea among outsiders that it’s a dry and colourless pursuit – all logic and number crunching. But the programming world is full of creativity and inventiveness.
Many a name-brand company has been built and supported by inventive programmers, from Apple to Pixar. As well as enriching the world with creative problem-solving as par for the course in their day-to-day, developers are making some stunning visual art.
J is for Jean Piaget
Jean Piaget (1896-1980) was a Swiss clinical psychologist known for his pioneering work in child development. Although not a computer scientist himself, Piaget was huge influence on Seymour Papert (see below) and Alan Kay, both giants in the world of computer programming.
K is for Kineasthetic (or Hands-On) Learning
We code with our keyboards and we see code on our screens, so learning the basics of computer programming means lots of screen time, right?
Well, kind of. But not really.
For over a century, educators from Froebel to Montessori have promoted a hands-on or kinaesthetic approach to teaching in the early years.
Many existing programmable toys currently function as an extension of tablets and smartphones, and the programming therefore happens on-screen. We chose to create a tangible programming language that kids can actually touch, supporting the Montessori principle that young children learn best with their hands.
Click here to check out my op-ed on this very topic for EdSurge.
L is for Logo
Oh, Logo, we adore you.
Logo is the ingenious educational programming language created in 1967 by the grandfather of educational programming, Seymour Papert (1928-2016).
The user writes commands for movement and drawing to produce line graphics either on-screen or with a small robot—a turtle armed with a pen, the Logo Turtle. Papert offered two options for playing and learning: on-screen and off. For the first time, a child could play and learn complex programming by focusing on a screenless, creative outcome.
(As an aside, it’s impossible to overstate the influence that Logo has had on us a company. We like to think of our own tangible programming languages as a physical and, of course, much simpler representation of Logo.)
M is for MIT Student Hacker Pranks
When great minds get together, next-level pranks follow, and MIT students are the original hackers. It’s only natural that they translate their on-screen hacking to offscreen hacks. In May 1992, students awoke to the sight of a police cruiser sitting proudly atop MIT’s great dome. Later it transpired that students had bolted a Chevy Cavalier shell onto a wooden frame and somehow hoisted it on top of the building. In 1999 they hacked the same dome to look like R2D2, and the college’s Green Building got the Tetris treatment in 2012. Students turned the building into a giant pixel screen by fitting coloured LED boards into the windows and proceeded to play a wireless game of Tetris with them. Check out an entire history of MIT hacks at Wired.
N is for Nanotechnology
Never let it be said that programming is an insular field. One of the best examples of a cross-scientific development is nanotechnology – ‘the study and application of extremely small things.’ For decades, nanotechnology ‘has been developed with cooperation from researchers in several fields of studies including physics, chemistry, biology, material science, engineering, and computer science.’ Nanotechnology is full of potential for changing the world for the better through programming, for instance in the form of nanomedicine powered by nanorobots that identify and destroy cancer cells. The future is near and it’s tinier than we can comprehend.
O is for Open Source
There’s long been a history of open and free collaboration between programmers. Open-source software is software developed by and for the user community. It’s a way to make new things, and better things, as a team – a philosophy that we share here at Primo.
P is for Play
‘The desire to arrive finally at logically connected concepts is the emotional basis of a vague play with basic ideas. This combinatory or associative play seems to be the essential feature in productive thought.’ So said Einstein. Listen to any programmer, young or old, talk about coding and they’ll all use the f-word – fun.
We strongly believe that any introducing children to programming needs to be done through play, helped along by educational toys.
Q is for the Queue
A queue in computer science refers to a data structure. A data structure is a way to store data with a set of rules. A queue is a list of data which can be accessed in a certain order. We can add an element to our queue (list) and it will add it to the end of the list; we can only remove an element from the beginning of the list. Think about a queue at the Post Office: people join the back of the queue and customers are seen to from the front of the queue first. In computer science, when we want to access something in the middle of our queue (list) we need to remove all the elements before it first as the rules of this data structure’s rules specify we can only add to end or remove from the start. Watch this video for a visual explanation.
R is for Robots
One of the big problems with computational thinking and computer programming is that, if you’re young, it can feel very abstract. Probably too abstract.
Robots help make things more concrete.
‘By having to control a physical robot and seeing what goes wrong’ says Leon Stirling, Professor Emeritus of Swinburne University of Technology, ‘students learn what robots can and can’t do. They also learn the need for precise instructions.”
Check out our earlier blog post on how kids can learn with robots.
S is for Self-Taught
That’s not a bad thing, given the range of influences it brings into programming, but increasingly parents, technologists and policy makers are seeking to support coding education from a young age (often with the help of modern educational toys) so that kids are given a head start.
T is for Toddlers
In this wonderful animation from Michel Gondry, Noam Chomsky says, ‘Children know quite a lot of language, much more than you would expect, before they can exhibit that knowledge.’
Just like French or Spanish or any other language, programming is easiest learnt young. Using tangible interfaces and learning toys, children as young as three can learn the fundamentals of computer programming.
U is for Usability
Usability (how easy it is to use a piece of written code) is one of the key things that affects the quality of a computer program. Other factors include the robustness of the code, its reliability, portability (the number of different platforms it can run on), maintainability and performance. Computer programmers need to think about the usability of the end product first, rather than how they are going to code it – it’s crucial to keep the end user in mind from the beginning. The higher the program’s usability, the higher the chance it will catch on and be widely used. The philosophy of keeping the end user at the centre of software design process is known as user-centred design.
V is for Virus
Did you know that the first ever computer virus was designed with no desire to do harm? These days malware is associated with all manner of chaos, from deleting data to shutting down an entire country’s health system.
But the first virus was created by Fred Cohen at the University of Southern California in 1983 to test a theory. It could ‘seize’ a computer, replicate itself and then infect other machines using a floppy disc. Cohen, best known for his pioneering work on computer virus defense techniques, created the virus (which was harmless) as an experiment. Though we mostly see computer viruses as malevolent, Cohen believes that a virus can also carry out benevolent tasks, for instance automating tasks such as clearing up disc space.
W is for Women
Just to reiterate, there’s nothing to support the idea that men are better than women at coding. In fact a recent study found quite the opposite. We can confirm that from personal experience, as our brilliant web developer Melenie Schatynski is a woman 🙂
Computer programming is now generally recognised to be a male-dominated field, but it wasn’t always that way. Women made up 75% of the workforce at Bletchley Park during WWII, in roles including codebreaking. So what happened? Marie Hicks, Assistant Professor of History at the Illinois Institute of Technology, investigated the downward trend in her recent book: Programmed Inequality: How Britain Discarded Women Technologists and Lost Its Edge In Computing, and NPR researched the answers in Why Women Stopped Coding. The answers aren’t straightforward, but while we attempt to change the status quo, here’s a list of five inspirational female programmers we can look up to.
X is for Xterminate! (Or not)
The discussion around AI is by turns amazing and terrifying depending on who you listen to and what you read. Will automation save us or should we brace ourselves for an uprising of destructive robots?
The best way to address fears about AI is through education. Demystifying robots, and indeed all tech, gives kids the skills to adapt and remodel the technological world around them. They can learn to create with technology rather than just becoming passive consumers.
Yes, Let’s Try That
Part of the fun of programming, especially at a young age, is making mistakes and finding out what works and what doesn’t. There are often multiple routes to a final outcome, some bumpier than others.
For kids, learning how to self-correct is a skill that’s just as important as learning how to write code itself. So a ‘Yes, let’s try that’ approach is really helpful. It’s all about improving by failing again, and failing better. You need to have a growth mindset!
Z is for Zeros and Ones (or Ones and Zeroes)
Because without binary code we wouldn’t be able to speak to computers. And without computers I couldn’t be writing this to you now!