Wednesday, September 17, 2014

Computer Science Day 2 - Binary Numbers

Alright! I'm keeping up with my commitment!

Man, I feel so much better about how Day 2 has gone in the classrooms I've entered. We're getting into some pretty heavy stuff, but the kids are handling themselves really well.

We began today's lesson by reviewing the challenge I gave to each class: to create their own interactive computer program. We talked about our "Need to Know"s again and connected the day's lesson to our need to know how computers work.

I started with another Google Slides presentation, but it was much more limited than Day 1's. It basically helped me stay on track and cover what I knew we needed to learn. I told students how, at their most basic level, computers decode messages by determining if various circuits are powered or not: if a circuit is powered, it's the equivalent of a 1; if not, it's a 0. We talked about how EVERYTHING a computer does is translated into and out of binary. The videos they watch, the games they play, the music they listen to, is all being process and translated into and out of binary.

Next, we reviewed some real Kindergarten-type stuff: counting. How does our number system work? How many numerals do we use (in EVERY class so far, kids disagree on whether we use nine numerals or ten - even after counting on our fingers the numerals we use!)? What are our place values worth? We connect to work they've done previously on exponents, expanded form, and place value to really explicitly talk about how our counting system works.

Then, we start in on binary. I used CS Unplugged's dot cards from their "Count the Dots" session by having five volunteers come up to the front. We talk about how if you can see a person's dots, they're a 1; if you can't, they're a 0. Everyone hides their dots and we state that the number they're showing is zero (00000). Then, we have the student furthest to the right flip his/her card and count the dots. We see one dot, so we're showing the quantity 1 (00001). Then, we hit the quantity 2, and kids start to go "huh?" We have the next student over flip his/her card, count the dots and see 3 (00011), so we have the first student flip to be blank. Now this is showing 2, but we write it as 00010. Kids take a moment to wonder why we don't write 00020, since there are two dots on the card. I reiterate that "2" doesn't exist in binary! If you can see a person's dots, they're ON and a 1. If you can't, they're OFF and a 0. We keep pushing through and counting up and students start to catch the pattern and figure it out.

In every class, I've been really proud of how student stick with it; there are, inevitably, a couple of students who tune out, but most of them are intrigued and curious. And I continue to emphasize that they are pattern detectives - when they struggle, that means they're learning more and should keep at it. If they search for patterns, things will start to make more sense.

We continue counting up, with a student recording the numbers in binary on the board to track our thinking. Students start to see that the person with the one-dot card flips EVERY time, the person with the two-dot card flips every TWO times, the four-dot card flips every FOUR times, etc. They see that you always try to add one as far right as you can, and that sometimes that triggers chain reactions.

Once we complete this work, I reiterate that EVERYTHING a computer processes is in binary - colors correspond to binary codes; letters correspond to binary codes; pixels on their screen correspond to binary codes; audio tones correspond to binary, EVERYTHING! At this point, they're pretty hooked.

I pass out a set of dot cards for each student, and then we hop on Socrative. I hadn't used it much before, but MAN IS IT AWESOME! I took 5 minutes to make a quick short-answer quiz for the students to practice translated numbers into and out of binary, and the payoff is huge. I'm able to quick see who gets it, even with short answers! Because I only expect them to put in a number, Socrative will detect if they've put in that exact number and automatically indicate whether they're right or wrong. It just takes a few moments to go through the results and figure out how students did.

My favorite part of using Socrative, though, is the discussion we can have about the different answers students submit. I put up on the whiteboard all the different responses I received, and ask students to pick what they think is the right answer and justify it with clear reasoning. Some student disagree, so we gather several arguments before I reveal who is actually correct and why. Then, here's the big learning moment: as a class, we figure out what the thought process was of students who got other wrong answers. We investigate what flaws and mistakes they made in solving the problems, get them out in the open, and learn from them. This is huge: kids love to try to figure out how to get wrong answers, and MOST of the time the whole class learns from those mistakes and gets better. In one class, for example, the percent of the class who got the answer correct on four consecutive problems went from 75%, to 85.7%, to 92.9%, to 100%. Now, if that's not powerful, I don't know what is!

In most classes, we only got about halfway through the presentation; I can't wait to go back into classrooms and finish! We'll review binary again, finish our conversions and go back over why we're learning this in the first place, and then start to send secret binary messages to decode with each other.

No comments: