In 2016, Barack Obama stated “In the new economy, computer science isn’t an optional skill. It’s a basic skill.” The former US President’s understanding of the importance of computer science was true back then and continues to prove even truer in today’s digital economy. Computer science, simply put, is the study of how physical computers are assembled and how the software is subsequently programmed. It is a vast field, with many subsections that have different principles underpinning each one. There is no universally recognized set of principles for computer science – a quick web search for ‘principles of computer science’ will attest to this – so we have selected the top six technical principles we feel are important for children to learn. As each principle is significant and works in conjunction with the others, we have listed them in alphabetical order. All of the computer science principles can easily be taught to children, and some principles can even be reinforced without a computer!
Algorithms – quite the challenging word to say, spell, and understand, especially for children! However, just because it’s tricky, doesn’t mean your child won’t grasp the concept. In fact, we complete a lot of tasks on a daily basis that are essentially completed through algorithmic thinking and decision-making. An algorithm, in short, refers to the step-by-step process needed to complete a specific task. Regarding computer science, algorithms outline what the computer needs to do and how it needs to do it. Algorithms are the foundation of programming; they allow our devices (from computers to smartphones), apps, and websites to make decisions. Similarly, algorithmic thinking requires not only the solution to a problem but steps that can be replicated to find said solution (think of a recipe). Algorithms should be four things: simple; clear; lead to a solution with a fixed number of sequenced steps; and should have the capability to handle some unforeseen circumstances.
There are three basic constructs in an algorithm: linear sequence, conditional and looped.
Linear sequence algorithms: These algorithms follow a specific set of instructions that produce a specified outcome. For instance, the checkout process while shopping online is an example of a linear sequence algorithm. A real-world example would be when following a muffin recipe, the user follows the detailed steps to create an intended product: muffins. Teaching your children to understand simple, linear algorithms can be as easy as following a recipe, following a bedtime routine, or learning to tie their shoes.
Conditional algorithms: These too follow a set of instructions, but also decide between two actions; consider ‘if’ and ‘then’ statements. A simple example on a computer would be when the user clicks a button, an intended outcome will occur; if someone has provided the correct username and password and clicks login, then they will reach their account. Returning to our muffin recipe scenario, if the muffins overbake, then the user will need to adjust the temperature or baking time. When thinking of conditional algorithms in this way, we can see how often we use them throughout the day!
Looping algorithms: As the name indicates, looping algorithms recur and continually do so until they’ve been told (programmed) to stop, have reached a certain conclusion, or repeat only for a pre-determined number of times. A basic example of a looping algorithm, with regard to computer science, would be the pre-determined number of times someone can incorrectly attempt to unlock a mobile phone before it becomes locked for a longer period of time. Another real-world example, referring to our muffin recipe analogy, would be equivalent to making multiple muffins from the same batch, until the batter has run out or when the user is making a set number of batches of the recipe.
To reinforce the principles of algorithms from a computer science perspective, there are a variety of algorithm activities available online. To investigate algorithmic thinking, without the use of a computer, try having your child build a maze out of Lego (or any other toys available) and make arrow cards to create a sequence of instructions. These cards can then be used for guiding a mini figure through the maze. This is a great introductory activity to try before programming something like Bee-Bots. For more complex algorithmic thinking, try these activities which use cards to explain a range of different types of algorithms. For parents who want a better understanding of how algorithms work, the University of York offers a succinct article that explores further types of algorithms.
Artificial Intelligence (AI) is the creation of algorithms and techniques that give a computer the ability to perform tasks that would be typically associated with a human, such as problem-solving and learning. AI has been in development since 1956 – with Alan Turing’s ‘Imitation Test’ – and is one of the fastest-growing sectors of computer science. With the advent of virtual assistants such as Alexa and Siri, AI has already found its way into our homes and has become embedded in the lives of our children. AI is increasingly becoming a mainstay of video games (including FIFA, Minecraft, and Grand Theft Auto V), and many robotic toys and apps for children (including Gizmo, ChatGPT, and SmartDreams Bedtime Stories). The effect of AI on children has even become a focus for study by UNICEF, with an emphasis on how AI can be used to “protect, provide for and empower children”.
Since AI is already an established part of most of our lives, it is crucial for children to have a good understanding of it, as well as its relation to computer science. In fact, teaching coding is an essential skill for AI development, as it is widely recognized that coding is important to the initial implementation of AI. Coding for kids is a great way to introduce coding in a fun, engaging way and will set them up for a clearer understanding of how AI operates. It should also be reinforced that AI is a tool to support us, not to replace our own creativity and ways of thinking.
Computer networking refers to how two or more computers communicate with each other, particularly through exchanging information and sharing resources. A simple example of a computer network is the ability of a printer to receive a document from a computer and print it out. There are two main types of computer networks: LAN and WAN.
LAN: Local Area Networks connect computers that are physically close together. For example, a school’s or an office’s computers would be part of a LAN. These can be connected by physical wires or through Wi-Fi.
WAN: Wider Area Networks connect computers and smaller networks to larger networks, particularly over vast geographical areas. The largest example of a WAN is The Internet.
An understanding of computer networking is vital to the roles of software engineers, a career with significant potential for the future. This understanding will also give children an appreciation for computers and devices and the impact they have on our lives and on the world around us.
Binary numbers, a type of code, are a fundamental concept of computer science. Invented in the 17th century by German mathematician Gottfried Wilhelm Leibniz, each binary digit (or ‘bit’ for short) has only two possible values: 0 or 1. The position of the bits determines the value of a binary number. Binary numbers form the basis for all computer systems and operations, allowing these systems to perform complex tasks and store large amounts of data with speed and accuracy.
If your child is interested in computer science and endeavors to pursue a career in this field, it’s necessary that they understand binary numbers. While binary numbers may seem like a completely different language – which it essentially is – it can also be great fun to learn! Children can even learn binary coding without a computer; a simple web search will provide numerous resources for teaching binary numbers to children. Many will thoroughly enjoy the ‘puzzle’ quality of deciphering this type of code. Children could even start writing coded messages on paper using 1s and 0s and only those who can ‘crack the code’ will be able to read their message! Having this fundamental understanding will give your child an advantage if they decide to pursue education in computer science.
Data structures, which work closely in conjunction with algorithms, are used for organizing, processing, retrieving, and storing information. In other words, data structures allow information to be organized in an effective way. These data structures then allow the algorithms to process that information. Learning data structures and algorithms will allow your child to become an overall better programmer since they are used in almost every program or software system created. There are multiple data structures used, but there are seven structures that will be most suited for children due to their relation to coding: array, linked list, stack, queue, graph, tree, and hash table.
If you’re looking for a way to reinforce the knowledge of data structures without the use of a computer, try this ‘array’ activity:
1. Assemble a group of toys to represent the idea of forming an array by organizing them in a straight line.
2. Identify each piece with a sticky note and write their position in the line as a number (1, 2, 3, etc.,).
3. Anyone can access the ‘array’ to hold information by selecting any of the pieces to ‘remember’ a word/value (by writing it on a sticky note and placing it under the toy). They can only then access the word/value by referring to the piece’s position in the line.
4. In all cases, the toys in the ‘array’ can only be identified by their position in the line.
Real-World Applications of Computer Science
While computer science will be a part of most children’s curriculum around the world, often beginning at the age of 5, it is also a valuable skill with ample career opportunities. In fact, according to the US Bureau of Statistics, roles for software developers are predicted to grow by 26% over the next ten years, and, by 2031, roles for computer and information technology are expected to rise by 15% – both far exceeding the average for other careers (5%). Likewise, the UK government is actively seeking to ensure a ‘high-skilled STEM workforce’ to deliver its ‘science superpower ambitions’.
Just some of the careers (with highly sought-after salaries) that a child could embark on, which feature computer science are:
· Video Game Developer
· Computer Hardware Engineer
· Computer Systems Analyst
· Web Developer
· IT Consultant/Analyst
· Software Engineer
· IT Security Specialist
Furthermore, there are many professions that recognize knowledge of computer science, particularly coding, as incredibly valuable, though not officially part of the role.
While encompassing such an immense field of study, computer science principles are numerous. The principles listed above are an excellent foundation for your child to learn to support their knowledge and understanding of computer science. If you’re looking to further encourage and develop your child’s awareness and interest in computer science, check out the CodeMonkey Coding Courses for further ideas and activities.