A collection of handouts, worksheets and other documents to help teach Computer Science and Engineering concepts.

These materials primarily target middle-school students (6th - 8th grade), but most can be used without modification for younger or older students.

General Computer Science

Materials on general computer science topics.

How Computers Work

An activity for 3 students to act out the various parts of a computer: CPU, ALU/Memory and Display.

How the Internet Works

An activity for a group of students to act out the various parts of the internet: websites, routers, nameservers, ISPs and home computers.

Number Systems - Counting

Materials for teaching binary, octal, decimal and hexadecimal.

Octal counting

These worksheets introduce the students to a non-decimal number system (in this case, octal) by having them count objects in both octal and decimal.

Octal dots

This worksheet has the students take an octal number and draw that many dots. After finishing, they count the number of dots in decimal to check their answer.

Counting in octal

In this simple worksheet, the student counts from 0 to 77 in octal (which corresponds to 0 to 63 in decimal).

Counting in binary

In this worksheet, the student counts from 0 to 111111 in binary (which corresponds to 0 to 63 in decimal).

Counting in Hexadecimal

In this worksheet, the student counts from 0 to 63 (but in hexadecimal, so it's really 0 to 4F).

Number cards (Binary, Octal, Decimal, Hexadecimal)

Playing-card sized cards that can be used to compare the different number systems.

Number Systems - Converting

Materials for teaching converting between binary, octal, decimal and hexadecimal.

Converting from binary to decimal

Worksheet showing how to convert from binary to decimal.

Converting from decimal to binary

Worksheet showing how to convert from decimal to binary.

Converting from binary to octal

Worksheet showing how to convert from binary to octal.

Converting from binary to hexadecimal

Worksheet showing how to convert from binary to hexadecimal.

Converting between binary and hexadecimal

Worksheet to practice converting between binary and hexadecimal.

Binary Magic Tricks and Puzzles

Magic tricks and puzzles related to binary numbers.

Binary magic trick

A set of 6 cards for a simple magic trick where you guess the secret number chosen by a student. Understanding the trick requires knowledge of binary.

Perfect Card Shuffling (Binary)

Knowledge of binary numbers and the ability to perform 'perfect shuffles' can allow you to shuffle the top card down to any desired position in the deck.

Crossbin puzzles (Binary, Hexadecimal)

These are "crossword" puzzles where the clues are in hexadecimal and the answers are binary numbers. When the puzzle is complete, the grid forms a simple black & white image.

Encoding Data

How data is encoded for computers.

Encode/Decode a text message

Worksheets to encode/decode a text message.

Decode an ASCII-encoded text message

Decode a text message encoded using ASCII. You'll need to provide an ASCII chart for use with this sheet.

BMP encoding

How a simple BMP image is encoded.

Bitmaps (Binary, Hexadecimal)

Worksheets to encode black and white images as binary numbers.

Boolean Logic

(Worksheets AND TeacherNotes) for (Teaching OR Practice OR Homework)

Object Properties

Assign boolean properties to objects and then use those properties to select a subset of the objects.

Boolean Logic : Nethack

Review of basic boolean operations using examples from Nethack.

Venn Diagrams

Using Venn Diagrams to represent the boolean operations.

Boolean Operations to Venn Diagrams

Worksheets for converting boolean expressions into Venn Diagrams.

Venn Diagrams to Boolean Operations

Worksheets for converting Venn Diagrams into a boolean expression.

Transistors

Worksheets for use with wooden transistor tiles (free designs available for laser-cutting) to teach how logic gates are built from transistors.

nMOS, pMOS and CMOS Info

CMOS Inverter Info

How an invertor can be built from an nMOS and a pMOS transistor.

CMOS Inverter

Students build a inverter (NOT gate) using 1 set of transistor tiles.

CMOS NAND

Students build a NAND gate using 2 sets of transistor tiles.

CMOS NOR

Students build a NOR gate using 2 sets of transistor tiles.

CMOS Inverter (no tiles)

Same as CMOS Inverter but without the tile outlines.

CMOS NAND (no tiles)

Same as CMOS NAND but without the tile outlines.

CMOS NOR (no tiles)

Same as CMOS NOR but without the tile outlines.

Logic Gates

Gate Symbols

Logic Gates

Logic Gates - Test

Universal Gates - NAND

Lighten Up

Lighten Up (Answer Key)

Equivalent Circuits

Equivalent Circuits (Answer Key)

How To Add

How computers perform addition. Some of these worksheets are intended to be used with wooden logic gate tiles (free designs available for laser-cutting).

Single Digit Addition

Single-digit base-10 addition table. Reminder of what the students learned in elementary school.

Sum and Carry Tables

Traditional base-10 addition table broken into separate sum and carry tables.

Binary Addition Table

Binary equivalents for the base-10 addition tables.

Half Adder

Constructing a half-adder using logic gates.

Full Adder & Ripple Carry

Building a full adder from 2 half adders (with a ripple carry).

Full Adder Tiles

Tiles for building a full adder.

HTML

Support materials for teaching HTML.

HTML Tags

The most basic HTML tags: <b> and <i>.

Simple HTML Document

A simple (but complete) HTML document.

Common HTML Tags

A list of common HTML tags.

Fonts

Typeface and font characteristics.

HTML Colors

How HTML colors are encoded as hexadecimal RGB (red-green-blue) values.

JavaScript

Materials for learning how to program in JavaScript. Students create a simple platform-jumping game using the <canvas> tag (and a bunch of JavaScript, of course).

Adventures in JavaScript

An online "branching path book" that shows you how to write a canvas-based JavaScript game (a classic platform-jumping game) during the course of the adventure.

The Legend of JavaScript

This is a playable version of the game that the students will create in the Adventures in JavaScript activity.