You are on page 1of 26

INTRODUCTION TO COMPUTER SCIENCE

Course overview guide

makecode.microbit.org
CONTENTS
Contributors......................................................................................................................................................................................................................... 2
About the curriculum authors................................................................................................................................................................................... 2
A note from the authors............................................................................................................................................................................................. 2
Overview................................................................................................................................................................................................................................ 3
Course summary............................................................................................................................................................................................................ 3
About micro:bit.............................................................................................................................................................................................................. 3
About block coding and Microsoft MakeCode.................................................................................................................................................. 4
Audience........................................................................................................................................................................................................................... 4
Learning goals................................................................................................................................................................................................................ 4
CSTA K-12 Computer Science standards, revised 2017................................................................................................................................... 4
Bill of instructional materials.......................................................................................................................................................................................... 6
Technical and material requirements.......................................................................................................................................................................... 7
Hardware and devices.................................................................................................................................................................................................. 7
Software for all devices............................................................................................................................................................................................... 8
Additional materials...................................................................................................................................................................................................... 8
Course delivery.................................................................................................................................................................................................................... 9
Activity summary........................................................................................................................................................................................................... 9
Unit structure, summary, and sequencing......................................................................................................................................................... 10
Assessment summary................................................................................................................................................................................................ 14
Required educator preparation.................................................................................................................................................................................. 15
Care and safety tips for the micro:bit.................................................................................................................................................................. 15
Preparing to teach the course................................................................................................................................................................................ 15
Optional device preparation................................................................................................................................................................................... 22
Recommended resources......................................................................................................................................................................................... 22
Glossary............................................................................................................................................................................................................................... 23

Introduction to Computer Science: Course overview guide | 1


CONTRIBUTORS
Sponsored and published by Microsoft, this curriculum content was authored by Douglas Kiang and Mary Kiang. The
course materials were produced by Prime 8 Consulting for Microsoft MakeCode.

About the curriculum authors


Douglas Kiang is a speaker, teacher, and workshop presenter with twenty-seven
years of teaching experience in independent schools at every grade level. He
currently teaches high school computer science at Punahou School in Honolulu,
Hawaii. Douglas holds a master’s degree in Technology, Innovation, and Education
from Harvard and is a Microsoft Innovative Educator.
You can follow him on Twitter at @dkiang.

Mary Kiang has been teaching for over twenty-five years at elementary, middle, and
high school levels. She also developed curriculum in the Education Department of the
Museum of Science in Boston. She currently teaches 6th grade Math/Science at
Punahou School. Mary is a former programmer for Houghton Mifflin and Dun &
Bradstreet and holds a Master’s degree in Elementary Education from Simmons
College. Mary is the founder of GO Code!, an organization that supports girls and
young women in exploring coding and STEM.

A note from the authors


When we first started teaching computer science, we discovered two important things. We found that existing curriculum
for beginners focused mostly on solving math problems or constructing geometric shapes and that there was a certain
type of student that signed up for computer science classes and these students were almost always boys. We wondered
whether a different approach to teaching the basics of computer programming would be more engaging and also attract
a larger variety of different types of students, both boys and girls.
We decided to focus on what knowing how to program allowed you to do and create. Ultimately all programs are created
to solve a problem or serve a purpose. The problem may be local or global, the purpose may be anything from helping
doctors treat patients to pure entertainment. By starting with interesting problems the students wanted to solve, they
were much more engaged in learning to code. They saw coding skills as an important part of building creative solutions.
With this approach, we found that not only did we get more girls taking the course, we also got a more diverse group of
boys. Opportunities for collaboration increased, and all the students got to see where their talents and skills meshed with
others’ interests and experiences, to make a whole that was greater than the sum of its parts.
We are now at the point where a third of the students taking computer science are girls, and more importantly, students
are coming out of the course not only with an understanding of code, but also knowing how to read through
professionally written code, and take an idea from brainstorming through prototyping to build something that matters.

Introduction to Computer Science: Course overview guide | 2


OVERVIEW
Course summary
This twelve-unit course provides an introduction to coding and computer science by way of making and design, using the
revolutionary new micro:bit microcontroller board, and Microsoft’s easy and powerful MakeCode block-based coding
environment. The course is a project-based curriculum, with a maker philosophy at its core, that provides a context for
learning coding and computer science concepts through the act of making physical objects.
The course is comprised of twelve units with each focusing on specific computer science concepts and programming skills.
Each unit includes three lessons that combine unplugged activities to introduce the concepts, guided or “birdhouse”
activities to gain hands-on coding experience, self-directed independent projects to apply their new skills in creative ways,
and assessments to test their knowledge and skill development. Teaching all twelve units and their included lessons will
total approximately 22-30 hours of educator instruction/facilitation time and approximately 16-27 hours of student
independent project-based activity time.
When students complete this course they will have a good understanding of more than ten computer science concepts
that can serve as the foundation for future study. They will develop powerful design skills that they can use in future
projects of all types, whether they are designing 3D printed prototypes or creating apps that serve a real world purpose.
Educators without a computer science background or who have never taught computer science before are encouraged to
incorporate this course into their curriculum, regardless of their subject area, and should feel free to customize the
curriculum to meet individual school or district resources and timeframe.

About micro:bit
The BBC micro:bit is a handheld, programmable micro-computer with a 5x5 display of 25 LEDs, Bluetooth and sensors that
can be programmed by anyone. It can be coded from any web browser in Blocks, JavaScript, Python, Scratch and more; no
software required. It provides an easy and fun introduction to programming and making—switch on, program it to do
something fun—wear it, customize it. With the ability to connect to and interact with sensors, displays, and other devices,
Introduction to Computer Science: Course overview guide | 3
it can be used for all sorts of cool creations, from robots to musical instruments—the possibilities are endless. Micro:bit is
widely used in schools around the world, from Finland and Iceland to Singapore and Sri Lanka.

About block coding and Microsoft MakeCode


In 1975, Seymour Papert of the MIT Media Lab created a beginners' programming language called LOGO. He developed it
based on research that showed that playing with blocks of code was a particularly effective way to teach programming
concepts. Papert coined the term "constructionism" to describe the way that learners construct new knowledge by
building on established knowledge. The blocks in MakeCode are themselves models for the way that new learning
happens through the application of concepts in an open-ended learning environment. Block-based programming
languages such as Scratch and MakeCode build on Papert’s research and are a great way for students to start learning
about coding concepts without having to worry about syntax.

Audience
This course targets students ages 11-14, and can also engage more advanced students at ages 9 and 10. It is designed to
accommodate participants without any coding experience.

Learning goals
By the end of this course, students will be able to:
 Describe and apply the following programming concepts:
 Algorithms
 Variables
 Conditionals
 Iteration
 Coordinate grid system
 Booleans
 Bits, bytes, and binary
 Radio
 Arrays
 Synthesize the concepts in new, creative ways through self-directed coding projects.

CSTA K-12 Computer Science standards, revised 2017


The following table lists all CSTA 2017-revised standards addressed in the course. For more detailed information about the
standards addressed in each unit, please see the Standards alignment guide.

Identifier Standard

1B-AP-09 Create programs that use variables to store and modify data.

1B-AP-10 Create programs that include sequences, events, loops, and conditionals.

1B-AP-11 Decompose (break down) problems into smaller, manageable subproblems to facilitate the program
development process.

1B-AP-12 Modify, remix, or incorporate portions of an existing program into one's own work, to develop something
new or add more advanced features.

1B-AP-13 Use an iterative process to plan the development of a program by including others' perspectives and
considering user preferences.

Introduction to Computer Science: Course overview guide | 4


1B-AP-15 Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended.

1B-AP-16 Take on varying roles, with teacher guidance, when collaborating with peers during the design,
implementation, and review stages of program development.

1B-AP-17 Describe choices made during program development using code comments, presentations, and
demonstrations.

1B-CS-01 Describe how internal and external parts of computing devices function to form a system.

1B-CS-02 Model how computer hardware and software work together as a system to accomplish tasks.

1B-IC-20 Seek diverse perspectives for the purpose of improving computational artifacts.

1B-NI-04 Model how information is broken down into smaller pieces, transmitted as packets through multiple
devices over networks and the Internet, and reassembled at the destination.

2-AP-10 Use flowcharts and/or pseudocode to address complex problems as algorithms.

2-AP-11 Create clearly named variables that represent different data types and perform operations on their values.

2-AP-12 Design and iteratively develop programs that combine control structures, including nested loops and
compound conditionals.

2-AP-13 Decompose problems and subproblems into parts to facilitate the design, implementation, and review of
programs.

2-AP-15 Seek and incorporate feedback from team members and users to refine a solution that meets user needs.

2-AP-17 Systematically test and refine programs using a range of test cases.

2-AP-19 Document programs in order to make them easier to follow, test, and debug.

2-CS-01 Recommend improvements to the design of computing devices, based on an analysis of how users
interact with the devices.

2-CS-02 Design projects that combine hardware and software components to collect and exchange data.

2-DA-07 Represent data using multiple encoding schemes.

3A-AP-13 Create prototypes that use algorithms to solve computational problems by leveraging prior student
knowledge and personal interests.

3A-AP-14 Use lists to simplify solutions, generalizing computational problems instead of repeatedly using simple
variables.

3A-AP-16 Design and iteratively develop computational artifacts for practical intent, personal expression, or to
address a societal issue by using events to initiate instructions.

BILL OF INSTRUCTIONAL MATERIALS


In addition to this overview guide, the following instructional materials are included with this course.
Introduction to Computer Science: Course overview guide | 5
Document type Description

Educator preparation video (1) A video that provides an overview of the course, materials, and required
preparation to get ready to teach the course.

Unit quick-start videos (12) Each unit includes a short, high level introduction to the featured computer science
concept, key preparation, and activities for that unit.

Educator guides (12) A guide is provided for each unit and should be used for preparation and as a
reference while delivering content. They include:
 A high-level overview of the unit and associated lessons, learning
goals, and addressed computer science standards.
 Required educator preparation tasks, skills to complete the
activities, and resources to master the covered concepts and skills.
 Lesson plans, outlines, suggested tasks for before the lesson and
any additional materials needed, lesson details with activity instructions
and screenshot, and post-lesson assessments and tasks.

Unit presentations (12) Each unit is supported by its own PowerPoint presentation to provide structure and
guide the students through the lessons of that unit.

Student workbook (12) Each unit includes a workbook that aligns to the unit structure and includes:
 Overview, objectives and activities map
 Coding activity steps and tips
 Challenge and extension activities
 Assessment rubrics
 Glossary of terms

Assessment guide (1) To communicate expectations and support the educator in evaluating student
work and final projects, assessment materials are provided for the course, as well
as each unit and its associated lessons:
 Formative and summative assessment answer keys and printer-
friendly versions to distribute to your students
 Project scoring rubrics

Standards alignment guide (1) Summarizes the CSTA K-12 computer science standards addressed in the course
and throughout each unit and associated lessons.

Curriculum overview (1) A stylish, easy-to-read booklet to promote the course to stakeholders, such as
school district administrators and government partners.

Introduction to Computer Science: Course overview guide | 6


TECHNICAL AND MATERIAL REQUIREMENTS
Hardware and devices
The educator and each student will need:
 Computer, laptop, or tablet with an
internet connection, modern browser, and USB
port
 micro:bit
 Micro-USB cable
 Battery pack (with two AAA batteries)
Note: For technical and compliance information, see
microbit.org/guide/hardware.

To allow the project design aspects of the micro:bit, these accessories are recommended but optional:
 Alligator/crocodile clip cables
 Headphone/earbuds (for audio)
 Croc clip to headphone jack adapter
 Micro servo motor 9g SG90 (for movement)
 Croc clip to male connector (for connecting to Servo motor)
 Copper tape
Crocodile clip to headphone
Alligator/crocodile clips: jack adapter: Micro servo motor:

Purchasing recommendations
 The micro:bit and many accessories can be purchased from resellers found at microbit.org/resellers. Look
for the micro:bit Go Kit, which includes a micro-USB cable and battery pack with a micro:bit.
 A variety of accessories can be purchased from kitronik.co.uk/microbit/bbc-micro-bit-accessories.html ,
e.g., different crocodile clips, adapters, and servo motors, etc.
 Copper tape is inexpensive and super useful in all sorts of maker activities so it’s worth it to invest in a few
rolls to keep on hand for micro:bit projects. You can purchase copper tape at sparkfun.com/products/10561 and
adafruit.com/product/1128.
 Many accessories are also available at hardware stores or Amazon.com.
Note:
 If you have a limited number of the accessories, consider having students work in groups on projects
incorporating sound and motion.
 If the accessories are not available to purchase or borrow, delete the sound and motion expectation from
applicable projects, and modify the scoring rubrics accordingly.
Introduction to Computer Science: Course overview guide | 7
Software for all devices
No special software is required—All coding can be completed in the online version of the MakeCode editor at
makecode.microbit.org.
Note: A free MakeCode for micro:bit Windows 10 app is also available, if your school devices use the Windows 10
operating system. It will download MakeCode programs directly to the micro:bit without having to drag and drop your
program files to the USB drive. This is optional software is found at aka.ms/microbitapp.

Additional materials
To complete the projects, an assortment of arts and
crafts supplies are needed throughout the course,
such as:
 Pizza boxes/scrap cardboard
 Colored construction paper
 Scissors
 Colored duct tape
 Foil
 Glue
 Tape
 Pipe cleaners
 Stickers/adhesives
 Feathers, beads, etc.
 Tongue depressors/popsicle sticks
 String
 Colored markers/pencils

Purchasing suggestions
Many of these supplies can be purchased from discount stores, crafting stores, hardware stores, and Amazon.com.

Introduction to Computer Science: Course overview guide | 8


COURSE DELIVERY
Activity summary
Most units include four types of activities that complement each other by reinforcing the concepts, skills, and
opportunities for creativity at different levels. (Units 6 and 12 don’t introduce new concepts or have a guided activity.) The
following table indicates the level of reinforcement for each type of activity.

Concept understanding Skills development Creativity

Overview Medium/high Low Low

Unplugged activity High Medium Low

Guided or “birdhouse” activity Low High Medium

Independent Project Medium Low High

The following table explains each type of activity.

Type of Description
activity

Overview Each unit starts with an overview to introduce the learning goals and presents an overview of that unit’s
topic. Some units have a specific activity that can help introduce the topic to students in a fun way.

Unplugged An unplugged activity doesn’t require a technology. It’s a chance to get students up and moving
activity around, and is designed to be a fun introduction to the computer science concept covered in that unit.
Unplugged activities are an important way to demonstrate new concepts in a tangible, often kinesthetic,
way. Since so many computer-based topics are abstract, unplugged activities are very effective at
fostering understanding that students will then demonstrate in later activities.

Guided or These coding activities provide step-by-step instructions building a program that demonstrates the
“birdhouse” unit’s topic, and every student makes the same thing. Like the birdhouses you may have made in school
activity wood shop, they introduce new skills and provide an easy way to assess student work because you
already know what it’s supposed to look like at the end. By the time students finish the activity, they will
have written code that they can use in a different project of their own design. Most “birdhouse”
activities include optional modifications, or mods, without instructions to challenge and extend
student’s learning. Feel free to suggest your own mods (or encourage your students to come up with
their own ideas!

Independent After presenting the concept in an unplugged fashion, then walking students through a demonstration
Project activity, it’s time to challenge students to apply those new skills and concept knowledge in a unique
context and provide lots of opportunity for creativity. Students will be working on their projects in a
“collaboratively independent” way, which means each student is responsible for turning in his or her
own project, but are encouraged to work together and help each other while doing so. Some form of
reflection is an important part of documenting the learning that has taken place, and it’s a great idea to
share out the projects and reflections, either at an event or on a blog.
There are a series of project mods that students can do to extend the project they have created. These
are useful for students who already have some experience with coding or who want an extra challenge.

Introduction to Computer Science: Course overview guide | 9


Unit structure, summary, and sequencing
All units are structured as three lessons. Each lesson is intended to be broken into as many class sessions as needed to
complete the activities. The following table summarizes the types of activities and approximate length of the lessons.

Lesson Included activities Approximate length

A Overview and unplugged activity 45-60 minutes

B Guided “birdhouse” activity 60-75 minutes


(In Units 6 and 12, the activity is the independent project.) (4-5 hours)

C Independent project 60-120 minutes


(In Units 6 and 12, the activity is a showcase of student projects.) (60-90 minutes)

The following table summarizes the units and lessons in the suggested teaching sequence.

Unit description Learning goals Associated lessons

Unit 1: Making with  Exercise creativity, engineering and Lesson A: The micro:bit is for
micro:bit resourcefulness by coming up with ideas for making
using simple household or classroom
An introduction to design Lesson B: Introduction to
materials to accommodate the micro:bit’s size
thinking and the micro:bit MakeCode
and weight as part of their micro:pet project.
as a component for a
Lesson C: micro:pet project
basic making activity.  Test and iterate using different materials
and sizes in order to create an optimal design
to house the micro:bit and battery pack.
 Become familiar with the MakeCode
programming environment.
 Learn how to download programs from the
computer to the micro:bit.
 Exercise communication and collaboration
and apply the design thinking process to
develop an understanding of a problem or
user need, and iteratively design an optimal
solution.
 Apply their understanding of the problem
in a creative way by making a “micro:pet”
creature for their partner.

Introduction to Computer Science: Course overview guide | 10


Unit description Learning goals Associated lessons

Unit 2: Algorithms  Understand the four components that Lesson A: What’s a computer and
make up a computer and their functions. what’s your function?
Introduces a conceptual
framework for thinking of  Understand that the micro:bit takes input, Lesson B: Happy face, sad face
a computing device as and after processing the input, produces
Lesson C: Fidget cube
something that uses code output.
to process one or more
 Learn the variety of different types of
inputs and send them to
information the micro:bit takes in as input.
an output(s).
 Apply this knowledge by creating a
micro:bit program that takes input and
produces an output.

Unit 3: Variables  Understand what variables are, and why Lesson A: Variables in daily life
and when to use them in a program.
Introduces the use of Lesson B: Make a game
variables to store data or  Learn how to create a variable, set the scorekeeper
the results of variable to an initial value, and change the
Lesson C: Everything counts
mathematical operations, value of the variable within a micro:bit
and the importance of program.
giving variables unique
 Learn how to create meaningful and
and meaningful names.
understandable variable names.
 Understand that a variable holds one value
at a time.
 Understand that when you update or
change the value held by a variable, the new
value replaces the previous value.
 Learn how to use the basic mathematical
blocks for adding, subtracting, multiplying,
and dividing variable values.
 Apply the above knowledge and skills to
create a unique program that uses variables as
an integral part of the project.

Unit 4: Conditionals  Understand what conditional statements Lesson A: Conditionals in daily life
are, and why and when to use them in a
Introduces the Logic Lesson B: Rock, paper, scissors
program.
blocks, such as ‘If…then’
Lesson C: Code a board game
and ‘If…then…else’, with a  Learn how to use the Logic blocks ‘If…then’
focus on practicing skills and ‘If…then…else’.
of creativity, problem-
 Practice using the Logic blocks so different
solving, and collaboration.
conditions yield specified outcomes.
 Demonstrate understanding and apply skill
by collaborating with classmates to create a
game that uses a micro:bit and a program that
correctly and effectively uses conditionals.

Introduction to Computer Science: Course overview guide | 11


Unit description Learning goals Associated lessons

Unit 5: Iteration  Understand the value of iteration in Lesson A: Understanding iteration


programming.
Introduces the concept of Lesson B: Coding with loops
iteration and loops to  Understand looping as a form of iteration.
Lesson C: Get loopy
program repeated
 Learn how and when to use the looping
sequences of code more
blocks ‘repeat’, ‘while’, and ‘for’.
efficiently.
 Apply the above knowledge and skills to
create a unique program that uses iteration
and looping as an integral part of the project.

Unit 6: Mini-project  Code a unique, original program, and Lesson A: Looking back so far
design and build a physical maker component
Provides a review of the Lesson B: Coding and making a
of the project that uses the micro:bit in some
concepts covered in the mini-project
way.
units 1-5, introduces an
Lesson C: Mini-project showcase
independent “mini-  Demonstrate the use of one of the
project,” and reinforces following concepts to illustrate what they
the important idea that know and show something new:
programming is a process
 Design Thinking
of patient problem-
 Input / Processing / Output
solving.
 Variables
 Conditional statements
 Iteration/loops

Unit 7: Coordinates  Understand that the 5 x 5 grid of LEDs on Lesson A: Understanding


the micro:bit represents a coordinate grid with coordinates
Introduces the use of
the origin (0,0) in the top left corner.
coordinates to store data Lesson B: Coding animations and
or the results of  Understand that the values of the x patterns
mathematical operations, coordinates range from 0 through 4 and
Lesson C: Screensaver or game
and gives students increase from left to right.
project
practice programming the
 Understand that the values of the y
LEDs of the micro:bit
coordinates range from 0 through 4 and
screen using coordinates.
increase from top to bottom.
 Learn how to refer to an individual LED by
its x and y coordinates.
 Learn how to plot (turn on) and unplot
(turn off) individual LEDs and how to toggle
between these two states.
 Learn how to check the current on or off
status of an individual LED, as well as check
and set the brightness level.
 Apply the above knowledge and skills to
create a unique program that uses
coordinates as an integral part of the project.

Introduction to Computer Science: Course overview guide | 12


Unit description Learning goals Associated lessons

Unit 8: Booleans  Understand what Booleans and Boolean Lesson A: Understanding Booleans
operators are, and why and when to use them
Introduces the use of the Lesson B: Coding a double coin
in a program.
Boolean data type to flipper
control the flow of a  Learn how to create a Boolean, set the
Lesson C: Project Boolean
program, keep track of Boolean to an initial value, and change the
state, and to include or value of the Boolean within a micro:bit
exclude certain conditions. program.
 Learn how to use the random true or false
block.
 Apply the above knowledge and skills to
create a unique program that uses Booleans
and Boolean operators as an integral part of
the program.

Unit 9: Bits, bytes, and  Understand what bits and bytes are and Lesson A: Understanding bits,
binary how they relate to computers and the way bytes, binary
information is processed and stored.
Introduces the concept of Lesson B: Code a binary
binary digits, base-2  Learn to count in base-2 (binary) and transmogrifier
notation, how data is translate numbers from base-10 (decimal) to
Lesson C: Make a binary cash
stored digitally, and how it binary and decimal.
register
can be read and accessed.
 Apply the above knowledge and skills to
create a unique program that uses binary
counting as an integral part of the program.

Unit 10: Radio  Understand how to use the Radio blocks to Lesson A: Understanding radio
communication send and receive data between micro:bits. communication
Introduces the radio  Understand the specific types of data that Lesson B: Explore the Radio
functionality of the can be sent over the radio. Toolbox
micro:bit to send and
 Work in pairs to apply the above Lesson C: Make a micro:bit radio
receive numeric and string
knowledge and skills to design a unique
data between micro:bits,
program using radio communication between
and the concept of pair
two micro:bits.
programming with the
project.

Introduction to Computer Science: Course overview guide | 13


Unit description Learning goals Associated lessons

Unit 11: Arrays  Understand what arrays are, how to create Lesson A: Understanding arrays
them, and learn common array operations,
Introduces the usefulness Lesson B: Coding with arrays
such as setting and getting values by index.
of arrays to store a
Lesson C: Make a micro:bit musical
collection of related data  Explain the steps they would take to sort a
instrument
types and retrieve the data series of numbers.
points in an ordered
 Recognize three common sorting
fashion, and common
algorithms.
algorithms for sorting
data.  Practice storing and retrieving values in
arrays.
 Demonstrate understanding and apply
skills by creating a musical instrument that
uses a micro:bit and a program that correctly
and effectively uses arrays to store data.

Unit 12: Independent final  Code a unique, original program, and Lesson A: Looking back
project design and build a physical maker component
Lesson B: Coding and making a
of the project that uses the micro:bit in some
Provides review of units 7- final project
way.
11, and tasks students to
Lesson C: Final project showcase
create an independent  Demonstrate the use of one of the
project that demonstrates following concepts to illustrate what they
the use of something they know and show something new:
have already learned,
 Coordinates
something they
 Booleans
researched for themselves,
 Bits, bytes, and binary
something they borrowed
 Radio communication
from somewhere else
 Arrays
(with citations), and
something completely
original, as well as
documentation of their
design, making, and
learning process.

Assessment summary
Learning assessment opportunities are provided for each unit and its associated lessons. For more details about the
assessment approach and printer-friendly versions, see the assessment guide.
 Course assessment: Final project
 Unit assessments: Quiz, project and reflection diary scoring rubric
 Lesson assessments: “Do now,” knowledge check questions, and exit ticket

Introduction to Computer Science: Course overview guide | 14


REQUIRED EDUCATOR PREPARATION
Care and safety tips for the micro:bit
Using the micro:bit is fun and simple. It was designed to be safe to use with youth. However, it’s an open board with all
the electrical parts on display. It’s been specifically designed this way but this does mean there’s a small risk that the parts
can be damaged and even overheat. However a little bit of care and caution will ensure you, your students, and your
micro:bits will stay fit and healthy.
 Follow these top tips, and review the more detailed tips at microbit.org/guide/safety-advice/:
 With the electronics accessible, it's important to avoid generating static electricity.
 Always keep the micro:bits in the anti-static bag when not using it.
 It's good practice for anyone using the micro:bit to earth themselves before handling it. You can
discharge any static you've built up by touching a metal object to 'earth' yourself. A chair or table leg
would be a good choice. No need to cling on to it for dear life - just a quick touch is all you need.
 Only handle the BBC micro:bit by its edges, avoid touching the components when the power is running,
and don’t place any metal objects across the printed circuits on the board (this can cause a short circuit, damaging
the micro:bit, and can cause risk of burn or fire)
 Only use the included battery pack and micro-USB cable to power the micro:bit. Please follow the power
at microbit.org/guide/safety-advice/#toc_4.
 Don’t keep damaged BBC micro:bits. If you find any faults or damage to a micro:bit, contact:
 The supplier it was purchased from immediately and replace the device with one of the spare
micro:bits supplied, or
 micro:bit support at support.microbit.org/support/home.
 Print, post in your classroom, and handout one of the safety guides to your students. Choose the one most
appropriate for your students.
 For older students, consider: microbit.org/guide/safety-guide-page/.
 For younger students, consider: microbit.org/guide/safety-guide-students/.
 Develop equipment safety procedures that includes expectations for students to treat the micro:bit with care and
respect while storing, distributing, and collecting the micro:bit and accessories. It’s recommended to post those
procedures for easy reference in your classroom.

Preparing to teach the course


Aim to meet the following learning objectives prior to leading the first unit.

Master the course materials


 Begin with a close review of this document.
 Watch the Educator preparation video.
 Review the Unit 1 materials in detail and look over the remaining units to get a sense of the course.
 Practice the presentations, unplugged activities, and coding activities for each unit ahead of time, using the coding
solution links as needed, and anticipate learning challenges and opportunities students can encounter.

Introduction to Computer Science: Course overview guide | 15


Understand core concepts and terms
This course introduces students to core computer science and coding concepts. Reviewing the instructional materials for
each unit (educator guide, presentation, and student workbook) and practicing the lesson activities will explain each unit’s
concepts. In addition:
 Reference the Glossary and Recommended resources sections of this document, as needed, as well as any unit-specific
resources provided in the educator guides.

Know your tools


Throughout the course, you and your students will use MakeCode editor in any modern browser on a computer, laptop, or
tablet. While you don’t need to be a master at coding, using MakeCode or the micro:bit, you do need to know enough to
present the content, learn with your students, and help students troubleshoot.
Get familiar with the layout, functionality, and coding in MakeCode
 From the home page of the MakeCode online editor, you can import a coding project (see instructions below), start a
new project, or scroll down the page to find various tutorials.

To import a program:

 Select the Import button on the right side of the screen, under the banner.
 You can import hex files or URLs; the course includes URLs for the coding solutions. In the Import window,
select Import URL…

Introduction to Computer Science: Course overview guide | 16


 The Copy or type the URL in the field (this one is used in Unit 1:
makecode.microbit.org/_amDYa3KdqU5w), and select Go ahead!

 This opens the imported project in a preview page. Select to open it in the MakeCode editor.

Introduction to Computer Science: Course overview guide | 17


 An open project looks like the image below. This is the view you and your students will be coding in throughout
the course.

There are three main areas of the MakeCode editor:


 Simulator - on the left side of the screen, you will see a virtual micro:bit that will show what your program
will look like running on a micro:bit. This is helpful for debugging, and instant feedback on program execution.
 Toolbox - in the middle of the screen, there are a number of different categories or Toolbox drawers,
each containing a collection of different blocks that can be dragged into the programming workspace on the
right.
 Workspace - on the right side of the screen is the programming workspace where you will create your
program. Programs are constructed by snapping blocks together in this area, like the program just uploaded. The
color of the blocks identifies their category. All of the blocks that make up the program above come from the
Basic Toolbox category, which is light blue.
 Start coding by selecting the Flashing Heart tutorial in the MakeCode editor or doing the first coding activity in Lesson
B of Unit 2, Algorithms.
 As you gain some experience coding in MakeCode, practice saving and publishing a MakeCode project.
It’s good practice to name your programs, which can be done a couple of ways:
 When you open a new project, the default project name is: Untitled and shows in the name field (along
the bottom of the editor to the right of the purple Download button). Enter the desired name.
 Alternatively, you can name the program when you exit a project. Select the Home button, then enter the
desired name, and select Done.

Introduction to Computer Science: Course overview guide | 18


 When you’ve imported a program, it will default to the published name. You can change the name as
desired.
You will then see the project listed in the My Projects area of the home page to access at another time. A named or
Untitled project is saved according to the login of whatever browser is being used. When you clear the cache of the
browser, the projects will be lost, unless you’ve saved them as a .hex file or published the project to get the URL.
Save a project as a .hex file:
 When you’re in an open project and select the Save button, the program will download as a .hex file to
your computer, to the location your browser is set to save downloads. This .hex file can then be shared with
others, who can import the .hex file into MakeCode.
Publish a project to get a sharing link:
 When you’re in an open project, select the Share button (in the top task bar to the right of the Home
button). In the Share Project window, select the purple Publish project button.

 You can then copy the sharing link. Only people with that link will be able open the published version.
There is also an option to get Embed code instead.

Important:
 The sharing link is case sensitive.
 Be sure to save or write down the link in a safe place (there is space in the student workbook), as it’s
not searchable to find later.
 If you lose the sharing link, you can publish the project again from the MakeCode editor to get a new
sharing link of the same program.

Get familiar with the basic functionality of the micro:bit and downloading a MakeCode program
These basic functions are introduced in Unit 1: Making with micro:bit and Unit 2: Algorithms. Instructions can also be
found in the unit educator guides.

Introduction to Computer Science: Course overview guide | 19


 The micro:bit is a microcontroller board. The main features used during the course are: programable LEDs,
programable buttons, connection pins, micro USB connector, and the battery connector. Read about these features at
microbit.org/guide/features/.

 Connect the micro:bit to a computer with the micro-USB cable to power the micro:bit and download MakeCode
programs to the micro:bit. Once connected, the micro:bit will show up on your computer like a USB flash drive. During
the unit coding activities, you and your students will work with your computer connected in this way to download and
test your code.

 Download a MakeCode program to the micro:bit - a MakeCode program will download as a .hex file. (A .hex file can
then be uploaded to the micro:bit, or shared with others to be imported to MakeCode.)
 Click the purple Download button in the lower left of the MakeCode
screen.
Note: Depending on your browser, the downloaded .hex file will either be in the
Downloads folder, or the browser will prompt you to save the file to a specific location. If you’re using the
MakeCode for micro:bit Windows 10 app, the file will automatically copy to the micro:bit upon clicking the purple
Download button.

Introduction to Computer Science: Course overview guide | 20


 To move the program to your micro:bit, drag the downloaded .hex file to the MICROBIT drive, as if you
were copying a file to a flash drive. See makecode.microbit.org/device/usb for more
detailed instructions to transfer the program with different browsers on Windows and
Mac computers.

 The program will copy over, and it will begin running on the micro:bit immediately. See
makecode.microbit.org/device/usb/troubleshoot for troubleshooting tips as needed.
The micro:bit will hold one program at a time. It is not necessary to delete files off the micro:bit before you copy
another onto the micro:bit; a new file will just replace the old one.
 You can also power the micro:bit with the battery pack via the white battery connector. During the unit projects, the
micro:bits will be connected in this way.

Get familiar with the sound and movement functionality of the micro:bit
In Unit 5, Iteration, sound and movement are introduced for the coding activities and project, and students may want to
use this functionality in subsequent unit projects. Practice this functionality before teaching Unit 5. While it might seem
daunting, it’s really just a few additional steps and hardware that are quite simple to master with a couple of practice
rounds. The unit educator guides include instructions and resources.
 Connect the micro:bit to speakers/headphones/earbuds for sound. Here are some options:
 Use crocodile clip to headphone jack adapters to connect the headphones directly to the micro:bit.
 Use Crocodile clips - To learn how, take the hack your headphones tutorial at
makecode.microbit.org/projects/hack-your-headphones.
 Use copper tape when you don’t have crocodile clips.
 Use foil when you don’t have crocodile clips or copper tape – To learn how, take the foil circuits tutorial at
makecode.microbit.org/device/foil-circuits.

Introduction to Computer Science: Course overview guide | 21


 Connect the micro:bit to a micro servo motor for movement:
 Use crocodile clips to connect the micro servo motor – To learn how, take the equipping a microservo
tutorial at makecode.microbit.org/device/servo.
 Then calibrate the angles of the servo by taking the servo calibrator tutorial at
makecode.microbit.org/projects/servo-calibrator.
Reminder:
 If you have a limited number of the accessories, consider having students work in groups on projects
incorporating sound and motion.
 If the accessories are not available to purchase or borrow, delete the sound and motion expectation from
applicable projects, and modify the scoring rubrics accordingly.

Optional device preparation


If you decide to use the MakeCode for micro:bit Windows 10 app, it’s recommended that you download the app from
aka.ms/microbitapp to all computer, laptops, or tablets before starting the course. Alternatively, you could lead students in
downloading the app in Lesson B of Unit 1: Making with micro:bit.

Recommended resources
If you would like additional support to your initial preparation, please review the following resources.
 Review the micro:bit quick start resources at microbit.org/guide/quick/.
 Go through some of the Tutorials or Projects at makecode.microbit.org/.
 Access the MakeCode reference documentation at makecode.microbit.org/reference
 Watch the “Behind the MakeCode Hardware” micro:bit videos at youtube.com/playlist?list=PLMMBk9hE-
SeqDYtw9pGNPsQ10V_EGMyGe.
 View project examples and share your students projects at: @microbit_edu and @MSMakeCode.

Introduction to Computer Science: Course overview guide | 22


GLOSSARY
The following table includes coding terms and definitions used in the course, listed alphabetically.

algorithm A set of (often repeated) steps used to solve a problem. The set of steps for doing long division of
numbers is an algorithm.

array A list or collection of similar things. An object in an array is referred to as an element or item in the
array. An individual element can be referenced by its index position in the array.

array length The total number of items in the array.

array sort The order of items in the array collection (i.e., by date, price, name, color, etc.)

array type The type of item being stored in the array (i.e., numbers, words, comics, coins, cards, etc.)

assign To set the value of a variable.

binary digit A number with only two possible values, 0 or 1.

bit A binary digit with two possible values, 0 or 1.

byte A sequence of binary digits made up of eight bits. It has 256 possible values from 00000000 through
11111111.

block A programming language found in coding editors—such as Microsoft MakeCode and Scratch—that
programming uses different colored and shaped blocks that connect together in specific order to allow beginners
to learn about coding concepts without having to worry about syntax.

Boolean A data type that can be either true or false. A Boolean condition is a condition that evaluates to
either true or false.

computer A set of instructions that a computer can follow. Also called “code.” Apps and games are examples of
program computer programs.

conditional Also known as an IF THEN or IF THEN ELSE statement. The part of a computer program or code that
statement tells a computer when to perform an action.

coordinate(s) A coordinate represents a position or location. Coordinates tell a computer program where an action
should take place by providing the location for the action. On the micro:bit, the coordinates are
represented on a 5 x 5 LED grid. Also see, coordinate pair, x coordinate, and y coordinate.

coordinate
The combination of the x and y coordinates represented as (x,y).
pair

debug The process of correcting errors within a program. i.e. The process of removing “bugs” from a
program.

declare To create a variable. Also see initialize.

element An individual item in an array.

Introduction to Computer Science: Course overview guide | 23


event Something that happens outside a program (like a screen tap or mouse click) that the program can
respond to.

event handler Part of a program that runs when a specific event happens (it “handles” the event). In MakeCode, an
event handler block looks like a square with a gap in the middle and usually starts with the word “on.”

for loop A programming construct that allows for a block of code to be executed a specified number of times.

function A self-contained set of instructions for performing a specific task within a computer program. Most
objects have multiple functions associated with them.

Gigabyte (GB) 1,073,741,824 bytes or 230 bytes.

index A numerical value that corresponds to a unique element in an array. Index values start at zero, so the
first element in an array has an index value of 0.

infinite loop A programming construct that allows for a block of code to be executed without ever stopping.

initialize To set the value of a variable for the first time.

inputs How a computer takes in information from the world. For example: keyboard, mouse, touchscreen,
camera, microphone, game controller, scanner.

iteration To repeat. Programs use iteration to repeat a set of instructions.

JavaScript A text-based programming language designed for the web. JavaScript is one of the most popular
programming languages in the world. For more information on MakeCode’s implementation of
JavaScript, see makecode.com/language.

Kilobyte (KB) 1,024 bytes or 210 bytes.

loop In general, a programming construct that allows for a block of code to be repeated multiple times.
See for loop, infinite loop, iteration, and nested loop.

loop counter The variable used in a for loop to determine the number of times the loop will execute.

Megabyte 1,048, 576 bytes or 220 bytes.


(MB)

memory How a computer stores data. Data stored in random access memory (RAM) is lost when the
computer is turned off. Data stored in “storage” (also known as “hard drive”) remains when a
computer is turned off.

Microsoft A coding editor in Code Connection that lets you code with two programming languages: Block or
MakeCode JavaScript.

nested loop A programming construct that uses a loop within another loop.

number A variable type that holds numerical data.

object A fundamental building block for any computer program, designed to hold data and allow for
manipulation of that data through functions and properties.

origin The location on a coordinate grid where the axes meet and both the x and the y values are zero (0,0).

Introduction to Computer Science: Course overview guide | 24


outputs How a computer displays or communicates information. For example: monitor/screen,
headphones/speakers, printer.

parameter Data passed to a function.

processor A chip inside a computer that processes and transforms information/data.

program See computer program.

prototype A rough draft, sketch or working model of your idea. The purpose of prototyping is to gather more
feedback to help you in your final design. 

pseudocode A detailed outline or rough draft of a program. Pseudocode is a mix of natural language and code.

radio The use of electromagnetic waves to send messages through the air. A radio communication system
requires a transmitter to send messages, and a receiver to receive messages.

random access Data stored in this area of a computer is lost when a computer is turned off. Can be thought of as the
memory computer’s short-term memory. Also known as RAM.

recursion A special form of iteration in which a function calls itself during its execution. This enables the
function to repeat itself several times, outputting the result at the end of each iteration.

sprite A variable type that represents a single dot (or lit LED) on the micro:bit screen and holds two
separate values for the row and column the dot (or lit LED) is currently in.

storage Data stored in this area of a computer remains when a computer is turned off. Can be thought of as
the computer’s long-term memory. Also known as the computer’s hard drive.

string A variable type that holds a sequence of alphanumeric characters and/or symbols.

Terabyte (TB) 1,099,511,627,776 bytes or 240 bytes.

user input The information or data given to the computer by the user, typically with a keyboard, mouse, or other
input device that is used in the program.

variable A container for data. Every variable has a name that is used to reference the data that it contains.
Every variable also has a variable type.

variable type The type of data that a variable can contain. Examples of variable types are number and string.

variable scope The part of a program where a variable can be read. For example, a variable declared in one function
is said to be a local variable and cannot be read from other functions. However, variables can be
declared with a global scope, making them readable in all functions of a program.

x coordinate On the micro:bit, the x coordinate is a measure of the how many units a point is horizontally from the
origin and increases in value from left to right on the 5 x 5 LED grid.

y coordinate On the micro:bit, the y coordinate is a measure of the how many units a point is vertically from the
origin and increases in value from top to bottom on the 5 x 5 LED grid.

Introduction to Computer Science: Course overview guide | 25

You might also like