Good. Neither am I.
I wanted to make this clear are the beginning. I am a math teacher. I am not a computer programmer. My colleague and mentor for all things code, Dan Shuster (Twitter: @simicodesquad) will disagree. However, please indulge me while I elaborate on how I started teaching Math With Code.
Full disclosure, I did take a few computer programming classes in college. They were optional as I earned my degree in mathematics. I took a class in Modula-2 in 1993. I took a C++ course about 5 years later. But that little exposure does not make me a programmer.
The truth is, I am just not afraid of technology. I am the first in line to learn the new tech we are going to be mandated to use. I will dive deep into a program to figure out how it works and all of the secrets we are not told, like I am searching for hidden treasure. Then the teacher in me, helps others transition as we upgrade. The problem solver in me finds the errors before they become problems. This is just who I am.
Not Me!
This may be one of the reasons I was approached to teach a new hybrid Geometry and Computer Science course called Geometry with Computer Visualization and Simulation in Spring of 2016.
I knew when I agreed that Dan was already onboard. Dan helped me learn how to “program” Examview test questions to make dynamic tests years ago. But creating a variable x that has a range(2, 20) is not making a program. I reached out to Dan once again for programming advice. Aside from dabbling in Examview test questions, I had not programmed anything in over 20 years!
Programming in ExamView
Dan discovered that we would be the first teachers to attempt to teach this course. The programming projects for the student were not written yet. All we had was this Course Description. So, no pressure, right?
That was when Dan introduced me to Pencil Code. There was something almost magical about this site. The testing window is relatively large with a predefined graph grid. Pencils and Graph paper? This is a math program! I can do this!
But can I write a program from nothing? I have never created my own program before. To start with nothing, create a program and then teach kids how to do that. What was I getting myself into?
Fortunately, Pencil Code also has a lot of help in their online Guide. I started to play. I googled a lot of coding ideas. I started looking for the “buried treasures” and “unlocking the secrets” of Pencil Code. And I wrote this code to draw a Line.
SUCCESS!!!! I wrote a program! Ok, it was not much, but it was a start. A few months later, in the fall of 2016, that program became this for Geometry Parallel/Perpendicular Postulates and, eventually, became this program for Algebra 1 in the Fall of 2018, Linear Graphs.
Here is the real miracle. Bringing code to my classroom changed my entire teaching strategy. I am no longer the expert. I will freely admit that to my students. I know it sounds scary, but it is very liberating.
As teachers, we are trained in Socratic Questioning. To bring the knowledge out of the students. Ask them questions, wait for them to answer. Guide them to find the answers. That sounds great, in theory. In practice, it is a hard thing to do when you have long lasting silence in you classroom. Students are conditioned that you know the answer. Therefore, your great lesson plans can turn into waiting games and staring contests. At least, mine did. More often than I care to admit.
It is amazing how easy it is to say “I don’t know” when you really don’t know. We discovered a truly genuine learning experience. We learned how to write code together. Often, I had more questions than they did. And my students were excited to share the answers they found with me and other students as well.
As much as I wanted to be ahead of my students, I found myself asking students to help me write the code I was “teaching” them. It was not because of some awesome pedagogy theory, it was because I was lost and I needed help.
With today’s technology in the hands of students, they will find the knowledge they need. Between Google, YouTube, Khan Academy, Reddit and Discord they will find the answers they seek. If you ask, they will teach you.
I am three years into this journey. It has been an amazing challenge and a lot of fun discovering new things as I teach myself, learn with and from my students and we share how frustrating coding can be. Yes, the struggle is real. But the rewards are worth it.
Teaching coding showed me that I did not have to be an expert to allow my students to learn. I had to let go of that control. I teach all the math content I love so much, but I am also teaching students how much I enjoy overcoming challenges, discovering those hidden treasures and unlocking the secrets of things I do not know. I am modeling that lifelong learning can be fun and exciting. In my class, students learn how to learn.
I am not a programmer, yet. However, with the help of my students, someday I might be.
Jeramie has 19 years teaching experience. He currently teaches all three levels of MathWithCode, Algebra 1, Geometry and Algebra 2 as well as Video Game Design and credit recovery intervention. His teaching goal is to help students overcome their math phobias. His coding enthusiasm is sparked by seeing how to make math work on a conceptual level and then bringing that to life.
Twitter @mrosvhs