TEALS Intro CS Banner

Introduction to Computer Science with Microsoft MakeCode Arcade

The Introduction to Computer Science with MakeCode Arcade curriculum is a full academic year course designed to be taught for introductory programming classes in High School. The curriculum is free and uses web-based technology and tools that can be accessed across platforms and devices.

The Introduction to Computer Science with MakeCode Arcade curriculum was adapted from the original TEALS Introduction to Computer Science curriculum and built with Microsoft MakeCode Arcade as its core teaching platform using a game-based learning approach to engage a diversity of students. The original TEALS course has been successfully implemented in hundreds of high schools.

The course explores a variety of basic computational thinking and programming concepts through a project-based learning framework. Every unit culminates in a comprehensive project and roughly 75% of student time is spent building projects and practicing the skills they are learning.

The Introduction to Computer Science with MakeCode Arcade curriculum is designed as a course meeting daily for 55-minute periods. The curriculum includes approximately 75 days of material for each semester. Each semester is divided into a series of units which successively introduces new concepts and reinforces those learned previously. The first semester teaches programming using visual drag-and-drop Blocks and the second semester uses either JavaScript or Python. It is possible to teach Semester 1 and Semester 2 independently.

Course Outline

Semester 1

  • Unit 0 Beginnings – Students learn about the course, the classroom environment, algorithms, and the MakeCode Arcade environment.
  • Unit 1 Sprites – Students learn the basics of the core entity in MakeCode Arcade: the sprite.
  • Unit 2 Event handlers and variables – Students learn about the event handlers available in MakeCode Arcade. Students are also introduced to variables, strings, and decision structures.
  • Unit 3 Loops and arrays – Students learn about definite and indefinite loops and their application to arrays. Students are introduced to searching within an array as well as frame-based animation.
  • Unit 4 Functions – Students learn to write functions as a problem-solving technique and to encourage code reuse.
  • Unit 5 Tile maps and platform games – In this optional unit, students learn about tile maps and their myriad uses, including in platform games.
  • Unit 6 Capstone project – Students work in teams to create complex projects. Students also create marketing materials for their projects.

Coordinates Lab example

Semester 2

  • Unit 0 A return to Blocks – In this optional unit, students revisit the core concepts that they learned in the Blocks environment. This unit is intended for sessions that do not immediately follow a Blocks session.
  • Unit 1 Introducing JavaScript and Python – Students transition to a text language, either Static Typescript (a.k.a. JavaScript) or Static Typed Python (simply called Python in the course materials). Variables and event handlers are revisited from the text language perspective.
  • Unit 2 Core programming concepts – Students revisit core topics from Units 2 and 3 in the Blocks course, extending their skills where appropriate. Students work with variables, decision structures, loops, arrays, and animations.
  • Unit 3 Functions – Students implement functions in their text language. They will also learn how to play simple melodies in JavaScript and Python.
  • Unit 4 Introduction to object-oriented programming – Students learn very basic object-oriented programming and design techniques, focusing on subclasses that inherit from the Sprite class.
  • Unit 5 Tile maps and platformers – In this optional unit, students create projects that leverage tile maps, including platform games.
  • Unit 6 Advanced graphics – In this optional unit, students work with advanced graphics techniques, including parallax and mini maps.
  • Unit 7 Capstone project – Students work in teams to create complex projects. Students also create marketing materials for their projects.

PyJs Lab example

Course Materials

The course materials include:

  • Daily Lesson plans in the form of:
    • Instructor guide word document
    • Student guide word document
  • PowerPoint slide decks for classroom lectures with talking points in the Notes section
  • Student projects, labs and activities include Bell Ringers (with solutions where appropriate)

Access Course Materials

You must be a verified educator to download the course materials. Please create a GitHub Educator account, see the instructions here (https://makecode.com/github-teacher-verification).

Download the course materials: https://aka.ms/TEALSintroCS