Here I am, another “graduate” of the TTS Code Immersion course (Part-time, of course!). I still cannot believe it myself, but I can assure you my time and effort put into this course was well worth it and a blast to endure (even though it was stressful!). I have taken much away from this experience, with hopes of helping and inspiring others, particularly my own students.
I happen to be a teacher of mathematics, at the high school level. In all my years of teaching, I always enjoy getting to know my students and what they want to do with their lives after high school. To my surprise, I have a lot of students respond with: programming, coding, or even computer science as something they dream of pursuing. But when I tell them that those careers involve mathematics or mathematical reasoning, you should see their precious faces. They are blown away, and some of them are disheartened and discouraged. While I try to put their pieces back together, they ask me how much math is required, and I just don’t know what to say, so I wanted to find out for sure. What exactly is involved with learning programming languages, and how does it relate to math? Here are some things I picked up on…
1 - There’s a strong connection between math/coding languages and understanding how to think critically. This wasn’t surprising to me, but getting students to understand this fact is very difficult because they don’t see that critical thinking is developed over time. They expect to have learned a skill overnight, but math is hard. And I have learned that coding is hard. Both processes expect you to think with the end in mind. Such as thinking how you want your product to turn out, or what answer you would expect to get. What makes math and coding so difficult is the learning curve of the vocabulary, syntax, and the relationships involved with the different languages and how they work together.
2 - You need to have the ability to recognize patterns and know how to sequence steps (Order of Operations, anyone?). These are especially important because it’s the key to making your code or math problem work out. This goes along with working with the end in mind because you need to have a goal, an end result, that you’re working towards, so you when you are “finished” with what you’re working on, you can assess whether or not you have accomplished your goal.
3 - Recognizing errors, and learning how to fix them. I’ll be honest, this is a tough one and it still is the most difficult thing for me to do with coding. But I have overcome this challenge with math, so I can apply that knowledge to coding and overcome this difficult endeavor as well. I failed 7th grade math because I didn’t know how to fix my careless errors, and that affected my grade and understanding. I was able to turn that horrible situation around by taking my time and not rushing through, so I could not only understand the problem, but also the errors I was making. The same goes for coding, you have to take the time to analyze what is not working, and think about where it is in your code. This is not an easy task, but the more you work with it, the better you get at fixing errors.
4 - You learn by doing. I am convinced that it’s impossible to learn by just sitting there listening to a teacher. You have to engage yourself (ask questions), and go through the motions yourself (write stuff down/take notes), so you can learn how the concepts work. And you have to participate by attempting the homework. If you don’t attempt something yourself, then you won’t know where to start with getting help/asking questions.
Notice how none of these things I mentioned involve a deep understanding of any level of mathematics? That’s my point here to students. It’s not the math concepts that will help, but the processes you have learned and the work ethic you have established by doing what you can to understand the math you were taught. It’s useful in learning to code different languages. I will be able to use this understanding to help students know what they need to do to prepare themselves for a career of their choice. So, these tips might not necessarily just apply to coding careers, but other careers that need people to think critically and analyze situations/outcomes to make things better.