# Active learning for boolean algebra

I've been thinking about active learning, and I am inspired by Heather's answer to my earlier boolean algebra curriculum review. This may also be a good question for math teachers who have experience teaching algebra. How do you avoid lecturing, and get the kids doing a lot of activity, even when there is so much material to cover?

So, here is my actual question: What are techniques to get at boolean algebra using active learning?

The activity that occurred to me was categorical logic puzzles where you're given a list of hints and have to figure out a set of facts using a grid.

These puzzles are solved by breaking the hints down into boolean expressions and then filling in the grid.

The hints are things like:

• Ada owns a computer but does not wear a green hat.
• The person who wears a blue hat does not own a horse.
• The owner of the boat either has a black or white hat.

Which you have to break down into boolean expressions:

• Ada.ownsComputer = true; Ada.wearsGreenHat = false;
• BlueHat.ownsHorse = false;
• Boat.wearsGreenHat = false; Boat.wearsBlueHat = false;

You have to understand the implicit relationships of the hints: if you know somebody wears a green hat, then you know they don't wear a blue hat.

You could even go a step further and have students create their own puzzles.

• Funny, I never thought of these puzzles like this, programmatically. I Always thought of them in terms of compound arrays. Or reference functions. More Ada.eliminateHat(Green) and Boat.secureHat(Blue). Commented Jul 19, 2017 at 7:01

Build logic gates out of dominoes.

Start off by showing this video from Numberphile in whole or in part. In it is a demonstration of how to use dominoes to model logical operations of a computer. It begins with a simulation of an AND gate and writes out its corresponding truth table. This is followed by the same process with XOR, which then allows for the construction of a half adder and in conclusion a full adder. (You may also share this video with students, which contains an elaborate, 10000-domino construction. Per the YouTube description, "The result was a Domino Computer capable of automatically adding numbers. It can take any two four-digit binary numbers and return the five-digit binary sum.")

Then challenge students to build elementary logic gates themselves (you might need a lot of dominoes, but I bet it would be worth it in the long run). You could start by having them come up with designs for AND, OR, NAND, NOT, XOR, etc. on their own. Depending on how this goes, consider using this resource to help guide the design of gates in dominoes.

After students create these gates, consider giving them longer Boolean expressions to model and solve using dominoes. This would also be a clever way of showing how DeMorgan's Law works.

The level of complexity knows almost no bounds with this approach. I could see some students, especially those with a love for computer science, who would thrive doing a hands-on, constructive activity like this.

• Perhaps useful to know: Matt's Dominoes For Education system is still running. His 10.000 dominoes are free for schools to use as long as they pay shipping from the last school. Commented Jul 19, 2017 at 7:04
• The nand, not, and nor gates are impossible with dominoes. How would you have a gate that starts toppling its output if there is no input? Where would it get power? How would it know when to do this? (it is late in the circuit, so topples the output, but then as the logic ripples through has to un-topple it. I like the rest of the answer though. Commented Jul 20, 2017 at 21:48
• After reading the comments, I was thinking that if you have XOR, you can make not, because (a XOR 1) = (NOT a). But after watching the video, I see the problem. For the domino XOR gate to work, you have to knock down the two inputs simultaneously. So for a NOT gate to work, someone would have to be standing over the machine knocking down a domino every time the NOT gate was about to be hit in the circuit. This defeats the purpose of an automatic computer. Commented Sep 28, 2017 at 15:01

I used a card game activity to review Boolean expressions in a CS1 context. You may be able to adapt to involve more abstract propositions and more complex operators.

tl;dr Students play a card game in small groups. They choose proposition and operator cards from their hands to create true or false statements.

Proposition cards have text like:

• No one is on their cell phone
• I speak Spanish
• x % 2 == 1;
• ((Teacher)) once did ((funny thing))

Have fun personalizing to your class :)

Operator cards have text like:

• AND (&&)
• OR (||)
• NOT (!)

Here is a version of the rules:

Each white card has a statement (in English or in code) that is either true or false. Each colored card has one of three logical operators: AND, OR or NOT.

The game is played as follows.

1. Each player starts with 6 cards, 3 white and 3 colored.
2. Someone picks a random int for the value of x.
3. When it is your turn,

• Flip a coin to determine whether you are trying to make an expression that evaluates to true (heads) or false (tails).
• If you can make such a logical expression using at least 3 of your cards, put down the expression in front of you and draw new cards to replace those you put down.
• Otherwise, trade in one of your cards for a card of the same color.
4. The first person to put down at least 12 cards wins!

I found this game in some old PLTL CS materials: http://www.pltlcs.org/sigcse10/ --> Sample PLTL Sessions materials > Logic

Peer Instruction materials exist for Discrete Math, for instance Cynthia Lee's Peer Instruction questions from Stanford. You may be able to adapt some of the questions to fit your needs for a HS course.

To your first point, I find Peer Instruction to be an excellent balance of lecture and active learning. There is direct content delivery, but it is short, and punctuated by active Peer Instruction questions that get students talking and allow the instructor to know that the students are actually thinking :)

For the introductory lesson. We use this to introduce selection (if statements), and a little bit of boolean logic.

• “Stand up if you have got brown hair.”
• “Sit down.” look around “Stand up if you have blue eyes.”
• With out asking them to sit down “Stand up if you …”
• Address why some people are still standing, are they correct [yes], or are the seated people correct [no]. Why? [because I did not ask them to sit].
• “stand up if you have brown hair or you are …” (this is where we start to cover boolean logic, I have only done and, or, not).

In another lesson you could add xor, nand, nor. I would also start using other techniques at or after this stage.

I like these ideas for building logic circuits. Some of them are already covered in other answers, but not all.

• Dominoes — as in peters answer
• People ( I would love to see some ideas on this, as I suspect it to be very powerful)
• Electronic — logic gates
• Discrete Electronics — e.g. the mega processor is made of just discrete transistors, resistors, leds, and other discrete components (no integrated circuits).
• Hydraulics
• Pneumatics:

I once played with a pneumatic piston and switch set, and managed to implement many simple digital and logic devices. These included Astable multi-vibrator (an oscillator), mono-stable multi-virbartor (a device that does not want to stay on/off), and, or, nand, nor.

The set included indicator lights (Not lights but colours that where pushed up against a frosted cover, to make them visible); Switches (that would allow air to flow); pistons, and pipes. The closes to this that I have seen since is minecraft.

It was at around this time that I realised that the distinction between electronics, mechanics, and software, was false. It is all informatics (sometimes hardware, sometimes software).

Another fun exercise is implementing and and or using only nand gates (or nor gates). This proves that nand is universal. You can demonstrate that nor is universal then ask them to show that nand is (or vice versa).

## Guess who

This game is about guessing which person the other player has. You get to ask a question to which the other player must answer yes or no. The best strategy is to ask a question that will eliminate exactly half of the remaining cards (an opportunity to also teach binary search). The game is designed to make it impossible to ask any simple question that will achieve this goal.

Therefore you must ask compound logic questions, such as “Is this person wearing any thing on their head, that is a hat or glasses or a bow“ or even “Is this person female or (wearing a hat xor wearing glasses) or got a beard.“

For each board you will need two players, and at least two judges/watchers.