I spoke at BSides Tampa 2021 digital conference today on the topic of Building a Crypto-Cracking Coder Kid!

There’s a treasure hunt that runs through it–so I am linking the slides here in case anyone wants to go back through it to solve it. DM me on Twitter at @eat_math_love with what the flag says, and if you are one of the first to solve it, I will send you a copy of Backdoors and Breaches from Black Hills Information Security.

Here are a series of videos I did in my trusty ol’ Zoom Room about rational functions. The PDFs I use in my sharescreens are my own creations, with the exception of the artworks on them, which are complements of google images and meme makers. They used to be Promethean slides, which is why they sometimes look a bit skewed. Each video is one lesson in a unit on rational functions that I would normally teach in a classroom full of students. So what’s missing here is the other voices–it feels strange for me to just babble on without interruption. I encourage my students to interrupt me with questions, and they do, constantly. These lessons are normally much more of a dialogue than a lecture.

When we had to go to remote schooling due to COVID-19, the expectations for what we would be able to teach were dramatically scaled back. All the stuff I had been doing in person was not going to work in a virtual setting. I had to let go of my expectations for how the year would go, and try to look at this new development in a different light. I had to think not about what we were not going to be able to cover in the remaining time, but about what opportunities this new set-up would provide us. So I asked myself:

What have I always wanted to teach, but never “had time for” in the course of a normal, busy school year?

Programming, that’s what.

I used the program linked above to teach my students about variables. Not just the ones we use in Algebra where you discover their hidden secrets through an eldritch process of logical steps. I mean, we did those as well, obviously. But I wanted them to experience the other kind, that can be used to store data, act as a counter, and help control flow with boolean checks.

We also went over how to create conditional statements. If we set a variable to increment, then we can use an if-else statement (Sometimes nested) to have our sprites carry out different actions under different conditions.

At any rate, this project was one of my pre-algebra students’ favorites. They came up with such funny and creative projects, and in addition to coding these, they also had to practice creating and solving their own algebra equations.

I first got into scratch for the Harvard intro to computer science course on edX. I will link the project I did for that class in the sidebar Scratch menu.

The ability to see mathematical patterns is one of the four main strands upon which IB Middle Years Programme students are assessed. This pattern-finding activity is one of my favorites, because it encourages them to extend their thinking past what they’ve been taught and to take risks by trying out their ideas.

First, I make sure that they’re all comfortable with the formula for the volume of a rectangular prism, as well as the formulas for the areas of circles and triangles. The goal here is to get them to see that all volume formulas for prisms (and cylinders) have the same basic setup: you find the area of its base, and then you multiply that by the height.

This may seem obvious to people who already have this content in their mental databases. But let me assure you–it is NOT obvious to most students to whom I assign this task. What task? Well, this one:

1) So you know how to find the volume of a rectangular prism. Go ahead and tell me how you do that.

2) Now you’re going to use what you know about finding the volume of rectangular prisms and apply it to a cylinder. How would you find the volume of this cylinder? Please use a combination of math and writing to explain.

For rectangular prisms, some of the students just plug in the numbers and multiply. No matter how many times I may have emphasized that volume is the area of the base times the height. (I sometimes explain this as the number of rooms on the ground floor of a building times the number of stories it has is the total number of rooms–in other words, its volume.)

But they often don’t consider this. They have a system that works! Multiply those three numbers and they get it right! Why worry about the other stuff? So when they hit that cylinder question, many of them freak out–where is the third number?

This is where it’s important to have built into your classroom culture a feeling that it is not only okay to struggle, but that the struggle IS THE LEARNING. Students must understand that they aren’t expected to know this off the top of their heads. This isn’t regurgitation, and it isn’t even practice of a new skill. This is creating knowledge for yourself in a way that makes sense to you.

So. How do they know if their idea for the formula for volume of a cylinder is correct?

They don’t–yet. They write down their idea for what it might be, they do their calculations using their formula, and then I give them this task:

4) The volume of the cylinder below is about 502.4 cm^{3}. Use this to test your formula. Does it work? If not, revise it. You may use a calculator for this section, but must show your work.

Giving students the answer allows them to try out their idea. If the formula they created doesn’t work–and they test it more than once to make sure it isn’t just a typo on their calculator–then they know that they need to go back to the drawing board and re-examine their thinking.

That’s a lot for 11-13-year-olds to handle sometimes, so it’s important at this stage to be their cheerleader. If by this point in the year they have heard you chant “Fail Forward!” and “FAIL=First Attempt In Learning!” then they are far less likely to put their head down on their desk and give up. I also bolster them with pointed questions.

“Notice how I shaded the base of that rectangular prism? Maybe that’s a hint.” or “How are a rectangular prism and a cylinder the same? What measurements do they both have?”

Eventually, everyone catches on. And the light in their eyes when they realize that they just taught themselves the formula for the volume of a cylinder is priceless. They not only see that their perseverance paid off, but they also learn to trust in the process of thinking, trying, revising, trying again. They learn that they are more capable than they previously thought.

Then, once their confidence is a little built up, I hit them with this:

5) Now, apply what you know to a new situation. How would you find the volume of this triangular prism? Use a combination of math and writing to explain.

This one is tricky, because the “base” isn’t on the bottom. But it’s also great, because there are two ways students can visualize this to get to the right answer: they can either think in the same way as the previous two about how the area of the base (now a triangle) times the height is the volume. Or they can think, “Hey, this is just half a rectangular prism, so I’m going to take that formula and cut it in half.” Either way shows good critical thinking. I let them test their formula, of course:

7) The volume of this triangular prism is 173.25 cm^{3}. Use this to test your formula. Does it work? If not, revise it. You should use a calculator for this section, but you must show your work.

Same deal as before. But the additional difficulty is that they have to understand that b isn’t the AREA of the base. And h isn’t the height of the full prism, just of the base. More opportunities to force them to really think about their moves, here.

Finally, we want to tie it all together. I ask them to write me a little paragraph:

8) How are all the formulas for volume the same?

This one can be tricky even for those students who understood the math. Every now and then, they think that the answer is too easy, and it couldn’t possibly be the answer. However they handle it, I will usually look over their work as they hand it in, and return it if they don’t quite have a clear statement about their thinking.

To round out this lesson/exploration/assessment, I usually have the students share their own experience with each other. Lots of pride and relief all around, as well as an opportunity to see these equations through a different thought process.

And that’s it! This is one of my favorite power lessons, because it hits so many learning goals, not just in terms of math content, but in terms of emotional regulation and critical thinking. It takes a lot of stick-to-it-ness to get through this lesson, and I always emphasize to my students that they’re amazing for being the latest class to prove how awesome they are by honing the fine steel of their minds in the forges of struggle.

I learned something about myself last year. I really love to code.

So in my free time, I’m teaching myself to code in Java by taking a class through Coursera. It’s offered by Princeton, and is called “Computer Science: Programming with a Purpose.”

It’s great, and I’ve learned so much already it’s just nuts. It started, as it always does, with “Hello, World.”

Which had me spitting and sputtering in disbelief about how complicated that damn program was in Java compared to how easy it is in Python (which I am teaching myself through a book by No Starch Press called Crash Course Python). I resented every single bracket I had to type, and every single baffling turn of phrase and random punctuation mark.

But after a while, I started to feel a wee bit impressed with myself.

I am such a n00b at this stuff still, but the things I have managed to accomplish have made me really proud. I wrote a program to create a minesweeper grid. I wrote a program to draw the borders of every country in the world. I wrote a program recently (and this one made me tear my hair out for a week) that used bottom-up dynamic programming to return the coefficient T(n,k) of the ^{(n+k)} power of the trinomial expansion (1 + x + x^{2})^{n}.

I’ve written programs that take .wav files and mix them, concatenate them, reverse them. I’ve written a program that calculates the Shannon entropy of a large stream of random data. And that’s just scratching the surface.

I like coding in Java so much now that it’s taken over as my main hobby. My poor novel, which I just finished plotting out, is starting to play second fiddle. I may even take more classes in Java specifically after this one, to just keep the language fresh and keep expanding my skills.

…Or maybe I’ll go back to Python, and see how much faster I can learn it now.

I am a person of many interests. I teach math, and have strong opinions about how it should be done. I am interested in information security, and attend conferences. I like soldering. I like computer science, and have taken up coding in my spare time. Recently, I have become interested in networking, and have decided to start doing some reading about it.

I plan to use this space to share what I am learning in networking. I also plan to use this space to share some of the math lessons I am particularly proud of, as well as some of the programs I write as I teach myself to code.