Coding Curriculums: Part 5

February 5, 2016 by wendy

Network of fibre optic cables around the world
Submarine Cables by Rarelibra is licensed under CC by-sa 3.0

In Part 4 of our Coding Curriculums series, we focused on computer science concepts that students in key stage 3 should learn based on the National Curriculum in England and the unplugged activities suggested in their guide for secondary teachers. Unplugged activities are important for students to understand concepts, but plugged activities are equally important for students to apply these concepts and learn through experience. Today, we summarize the skills and knowledge that children from ages 11 to 14 should learn through plugged activities.

Coding in multiple languages

By programming in multiple languages, students learn how to apply concepts from one language to another. If they were previously using a visual or block-based language, such as Scratch, they should attempt to apply the same concepts to a textual language, such as Python. At the same time, they can experiment with more complex ideas:

  • Data structures, such as a list, to store a collection of data
  • Functions or custom routines that can be reused
  • Boolean operators, such as AND, OR, and NOT, to combine conditions

Understanding computer systems

To learn about how computers work, students should explore one or more of the following questions perhaps through an inquiry-based project:

  • What are the main parts of a computer system?
  • How are instructions stored and executed on the computer?
  • How is information stored on the computer?
  • How does information travel across multiple computers?
  • What’s the difference between the Internet and the World Wide Web?

Experimenting with sound

Sound is converted from analog waves into digital files so that it can be stored, manipulated, and played on computers. Students should play with changing the sampling rate to observe the differences in sound quality and file size.

Creating projects using multiple technologies

By this point, students have experience with multiple programming languages, tools, and technologies. This is a great time for them to design their own creative projects. They should be responsible for setting their own goals, evaluating processes, and reflecting on their results. They should use resources responsibly and safely, and respect copyright.

Practicing digital literacy

Students should continue practicing digital literacy, that is, using technology safely, responsibly, and securely. For example, they should know how to protect their online identity by using strong passwords and anti-virus software, how to be safe when visiting websites and opening emails, and what to do when they come across inappropriate content.

Coding Curriculums: Part 4

December 29, 2015 by wendy

Computer Strands
Computing strands in A Guide for Secondary Teachers.

We’ve seen from the National Curriculum in England and their guide for primary teachers that computing consists of three main strands:

  1. Computer Science – How computers can be programmed to solve problems
  2. Information Technology – How computers work and how to use them
  3. Digital Literacy – How to use technology critically, responsibly, and safely

The guide for secondary teachers suggests that in key stage 3, children from ages 11 to 14 should shift their focus towards computer science, but that doesn’t necessarily mean more coding. Computer science is primarily about computational thinking:

  • Breaking down problems into smaller pieces
  • Recognizing and generalizing patterns
  • Abstracting details
  • Designing algorithms

Strategies for computational thinking can be demonstrated through unplugged activities without computers.

Model real-world problems

Truly understanding a problem means that you can model it in different ways. Ask your students to create representations of real-world, physical systems. For example, they could model the solar system, draw a map, or create storyboards that describe a process. Afterwards, ask them to consider how closely their models match real life and how their models can be used to make predictions.

Design algorithms

An algorithm is a precise list of instructions that solve a problem. You can design an algorithm in many ways, such as writing the steps down in English or drawing a flowchart. Have your students design algorithms to solve a specific problem and have them compare their solutions in terms of complexity and efficiency. They should see that multiple algorithms may solve the same problem, and that there are trade-offs with each solution, that is, there is no one right answer.

Study searching and sorting algorithms

Bubble Sort Visualization
Bubble Sort Visualization from VisuAlgo

Searching and sorting algorithms are well understood in computer science and reflect key aspects of computational thinking, such as pattern generalization and abstraction. Have your students execute linear search and binary search algorithms. For example, they could search for a specific card in a deck of cards or for a letter in a set of alphabet tiles, and then record each step using pencil and paper. To study sorting algorithms, ask your students to try different sorting algorithms on the same set of objects. In both cases, ask your students to compare the algorithms they tried in terms of complexity and efficiency.

Binary arithmetic

Binary arithmetic is another way to illustrate algorithms. Have your students convert binary numbers to decimal numbers and vice versa. Through this exercise, students learn that numbers can be represented in different ways as well as terminology, such as bit, byte, and nibble. You can also demonstrate how computers use numbers to store information. For example, a number can describe the colour of a pixel in an image. Have your students create bitmap images using squares to represent pixels and numbers to represent colours like colouring by numbers.

Computational thinking with computers

Even though many concepts in key stage 3 can be taught through unplugged activities, students should still have hands-on experience with programming and various technologies. In our next post, we’ll discuss what students in key stage 3 should learn when they have access to a computer.

Coding Curriculums: Part 3

November 18, 2015 by wendy

Learning Outcomes for Key Stages 1 and 2
Learning outcomes in computer science (CS), information technology (IT), and digital literacy (DL) for key stages 1 and 2 in A Guide for Primary Teachers.

In our last post, we dove into the National Curriculum in England and their guide for primary teachers, and we looked at how teachers working with children between ages 5 and 7 can introduce coding in their classrooms. This week, we move beyond key stage 1 and into key stage 2 to see what concepts and skills should be taught in classrooms with children between ages 7 and 11.

Reading and writing more complex programs

At this point, students use logical reasoning to not only predict the behaviour of simple programs, but also explain how they work and detect and fix errors. They also progress from writing simple programs to writing more advanced programs that accomplish specific goals. They need to break down their programs into smaller parts and use higher-level concepts such as conditionals, loops, and variables. For example, to build a game in Scratch, they need to create the background, sprites, animations, and sounds. They also need to use conditionals to implement the rules of the game and variables to track points.

Controlling physical systems

MaKey MaKey Product Photo: Play Doh Mario
MaKey MaKey Product Photo: Play Doh Mario by jayahimsa is licensed under CC by 2.0

Key stage 1 introduces the idea that computers are everywhere. They’re embedded in devices that exist in our homes, in our cars, and even outside. To provide further insight into this idea, students should have the opportunity to experiment with programming sensors, switches, motors, and lights. For example, students can use Scratch to control the motors included in the LEGO Education WeDo Construction Set. Another option is to connect the MaKey MaKey to a computer and use it as the controller for their Scratch projects.

Understanding computer networks

We use computer networks, such as the Internet, everyday, and so it’s important for students to understand how they work.

  • How are computers connected to each other?
  • How do they send information back and forth?
  • What do computer networks allow us to do?

When we use the Internet, we often use search engines to find information.

  • How do we use search engines effectively to find what we want?
  • Why are some pages ranked higher than others?
  • How do we know which sources are credible?

Putting it all together

Finally, students need to be able to combine their new skills and knowledge. They should use the Internet with a variety of software and digital devices, such as cameras and audio recorders, to create projects that accomplish specific goals. Most importantly, they need to understand how to be a responsible digital citizen, that is, how to stay safe online, and how to respect others and other people’s work.

Coding for secondary teachers

Next time, we’ll start looking at the guide for secondary teachers with a focus on children between ages 11 and 14 in key stage 3.

Coding Curriculums: Part 2

October 22, 2015 by wendy

CoderDojo Linz
CoderDojo Linz by Rainer Stropek is licensed under CC by 2.0

In the first part of this series, we began to explore the National Curriculum in England, which outlines students’ learning objectives in computing across four key stages from ages 5 to 16. This week, we take a closer look at the guide for primary teachers, and we focus on how teachers working with students between ages 5 and 7 can introduce coding in their classrooms.

Building the foundation

Key stage 1 builds the foundation for students. It is important for them to realize that we interact with computers all the time, not only at school, but also at home with our appliances, in our car, and outside when we cross the street. They should be aware that computers store information digitally as files, and they should be able to save, organize, manipulate, and retrieve files effectively.

Introducing coding

In terms of coding, students first need to understand that computers need precise and unambiguous instructions. They should have the opportunity to design their own algorithms or programs, sequences of instructions that accomplish a task. In most cases, their first attempts will have mistakes or bugs. Debugging, or fixing these mistakes in their programs, can be a chance for students to collaborate. In addition to creating programs, students should also predict the behaviour of existing programs to develop their logical reasoning.

Here are some tools that students can use to create their first programs:

  • Bee-Bot
  • Dash and Dot
  • KIBO
  • Kodable
  • ScratchJr
  • Sphero

Being safe

Finally, students will most likely be using the Internet. It is important to review with them how to use technology safely and respectfully, why they should keep personal information private, and where they can go for help and support.

Planning lessons

The guide suggests four different approaches for planning lessons.

  • Structure lessons around themes, such as computer science, information technology, and digital literacy.
  • Use a project-based approach that integrates topics from other subjects.
  • Adapt from existing lesson plans.
  • Use a student-centred approach in which students choose from a set of projects or design their own projects based on an overall topic.

Beyond key stage 1

In part 3 of this series, we’ll continue to explore the National Curriculum in England and their guide for primary teachers, and we’ll focus on the main elements of key stage 2.

Coding Curriculums: Part 1

October 14, 2015 by wendy

Students at Dimmitt Middle School learning to code
Students at Dimmitt Middle School by Jay Inslee is licensed under CC by-nd 2.0

In August, the CBC published an article entitled, Back to school: Canada lagging in push to teach kids computer coding, which discusses the international trend of making computer science a mandatory subject for all students. Educators in England and the US are teaching children not only how to use computers, but also how computers work. If Canada were to follow, then we should take advantage of the work that has already been done.

Over the next few weeks, we’ll explore coding curriculums that educators are already using today. This week, we’ll take a brief look at the National curriculum in England, which consists of four key stages.

Key stage 1: Ages 5 to 7

In this first stage, students are introduced to algorithms. They come up with lists of instructions and break down familiar routines, which can even be done without a computer. Eventually, they write and debug simple programs of their own, and use logical reasoning to predict the behaviour of programs.

Key stage 2: Ages 7 to 11

Students write more complex programs by incorporating concepts such as variables and loops. They also learn about computer networks, like the Internet. They explore how the Internet works and how they can use it effectively and responsibly.

Key stage 3: Ages 11 to 14

In key stage 3, students use at least two programming languages and experiment with concepts such as data structures and Boolean logic. They understand how computers are built, how they communicate, and how they store information. Students also have the opportunity to build creative projects that combine multiple technologies.

Key stage 4: Ages 14 to 16

Lastly in stage 4, students study an aspect of computer science in depth to help them progress to a higher level of education or professional career. They learn how to develop their capabilities and knowledge in computer science, and how to apply their skills in critical thinking, problem solving, and design.

Coding for primary teachers

Next week, we’ll take a closer look at the guide for primary teachers, which aims to help teachers, who work with children ages 5 to 11, get started with introducing coding in their classrooms.