Why I’m Teaching Computer Science in my Middle School Math Classes

By Amy Thorpe

For the very first time in my 12-year teaching career, my students will be learning computer science in our math classroom.  Coincidentally, I just learned how to code over the summer, and even though I’m new to this, I know for certain this is the best move I can make for my students.  As lifelong learners, we don’t have to be perfect or highly skilled at something to try it, enjoy it, and gain knowledge from it.  Educators that model growth mindsets for their students show that it’s okay if something doesn’t work out during an initial attempt.  

Time to Learn

I teach middle school math to a mixed-ability group at Gateway Preparatory Academy, a charter school that attracts students that come by choice, and students that don’t quite fit in with the traditional experiences of public school.  Some are students that have suffered the trauma of being bullied, some identify as LGBTQ+ and struggled to find common friend groups, others have had a lot of transitions and challenges at home, while even more have had negative experiences that have impacted their confidence as learners

My students are the main reason why I want to incorporate computer science into the classroom. Coding and computer science have a low floor that allows for lots of students at different levels to engage in a way that will create and accomplish challenging tasks without having to be masters at calculation. Coding is a much more obviously creative approach to the critical thinking skills I want to impart to my students. I want students to see there are so many ways that they can have fun being creative problem solvers, and there are so many STEM careers out there that they will find interesting and imaginative.

Kids Need Coding

While learning code through a teacher training hosted by code.org, I knew for certain that computer science and coding needed to be a daily part of our lesson.  I’ve only had limited experience coding in the past, but when I learned scratch, python, html, and javascript in a couple of different courses I participated in during this summer, I was surprised to see so much diversity in computer science!  There really is something for everyone, and I want to be sure my students know that, too.

Even though I don’t have a strong background in coding, I’m still making sure it’s a fundamental part of our lessons. I think it’s really valuable for students to see that I don’t have all of the answers and that they may get stuck in something that I am not able to quickly help them through.  I may not see why their code is not working, but with their help and a couple of other students, we can work together to break it apart and figure it out.  And if we can’t figure it out, that’s okay, we can start again.  I want to model for my students that as learners, we don’t have to have the right answers, we don’t have to get the answers right – right away. 

Where’s the Time?

One of the biggest questions to consider when incorporating computer science in a math class is how in the world can you find time and space within the current curriculum to fit this all in.  Well, our normal daily lesson involves choosing and solving rigorous tasks, and while there’s a couple of resources that I’ve used, ASA SOLVE (a non-profit that creates community, financial, and otherworld crises for students to solve), and CoderZ’s Amazon Cyber Robotics Challenge provides the most real-world, interesting and creative prompts that require students to use their individual level of computational thinking and problem-solving strategies to unpack and answer.  

Ready to go Curriculum

With both of these resources, the curriculum is already there, which is beneficial so that I’m not stuck in a time-intensive task to create something rigorous and engaging for my students.  Tasks are encapsulated in the CoderZ Amazon Cyber Robotic Challenge.  Within a timeframe, students can choose if they want to go in and just create and take it to the next level, or they can choose to just dabble, either way, it suits a variety of interests and skill levels.  I love it because it’s not something that I have to create on my own, I just have to provide the time and facilitate the work.  CoderZ’s dashboard allows me to see where students are at with their coding, the progress they’ve made, and the potential roadblocks they may have.  This viewpoint is powerful so that I can really know when they need assistance or just reassurance.  

Along with those resources, I also find space in the curriculum with my favorite unit, Data, Science and Society, provided by code.org.  I mean, how can we not talk about data as a way to explore what’s happening and what’s influencing something in our society and the outcomes we are seeing?  We look at data-based questions surrounding Covid-19, where there are so many sources to provide research and solve real-world investigatory questions using available data. We use google forms in the classroom to collect data based on student survey responses, and use those for project-based learning experiences, and see how we can tie those into our computer science tasks.

More Fun Less Demanding

Project-based learning is the way to go because I believe they are more ‘low floor high ceiling’ tasks, meaning students can come in at any level (low floor) and continue on in their growth to learn as much as they’d like (high ceiling).  Even if my students are novices in coding, they can still feel valued in their group by having some suggestions and contributions in their projects, being able to look at these ideas with fresh eyes. Group work supports more students in their learning growth than if they were to work alone and be responsible for only one piece of the project.

My students express that projects are more ‘fun’, aren’t as ‘demanding’, and yet, they’re still doing the “same kind” of math work, concepts, and math calculations the same as if they’re “working on worksheets”.  Project-based learning doesn’t differentiate really quickly who is fast at calculating and who is not there yet, which isn’t a good measure to see who is able to problem-solve and who is able to do the mathematics.  Coding also helps our student population to learn a practical skillset of decomposition- breaking down the large goal and aspirations they have into smaller steps.  

Problem-Solve Towards a Goal

Coding can teach our students that when you have a big problem or vision, and it is overwhelming, there are ways to break it down into smaller pieces that are more approachable.  When we teach coding, we provide students a skill set that helps them see how they can get to that big goal.  Let’s say the challenge is to move three robots to a certain point within a timeframe.  Students can either jump into it without preplanning or take time to plan it out and see what is needed from each piece and see what each robot needs to do to meet the challenge, then they can learn to refine their flowchart and pseudocode to a point where it will feel like a good first attempt.  

By being very hands-on, naturally creative, and providing the bigger picture, coding changes students’ perspective and helps those to thrive that haven’t had the chance to really thrive before.  With this methodology of learning, students that may often feel held back and are possibly bored could choose to work on their own and excel up to the level they wish, instead of sticking with the normal form of instruction where teachers teach to the middle of the class. 

Agency Over Learning

I have introduced coding to my summer math class and I’ve already seen the power that providing agency over learning is having on my different students.  I have one student, who expresses that he isn’t excited to be there, nor does he think he may return, already getting to the 8th challenge within the 30-minute timeframe I allotted for students to just dabble.  On the other hand, I have another student that approached the concepts with apprehension, and by our next session, I will have her paired up.  She may have barriers that a partnership can help unlock and provide her the confidence to believe in her ability to learn something new and to enjoy it and maybe even be good at it.

What am I Trying to do?

To me, I’m just trying to put out breadcrumbs for my students, and coding is one of the best breadcrumbs I’ve ever put out for them.  Students that are grabbing onto these computer science portions of our lesson are those that have already given up on themselves as mathematicians, which is so hard to see.  I’m teaching computer science in my math classroom to provide positive and empowering experiences to some of our students that are less confident, which will set them on an assured path throughout the rest of their school and future career.