As an advocate of computer science, I like to integrate coding and computational thinking into my math classes. One way that I’ve done this recently is by integrating technical computing software into my Honors Pre-Calculus classes.

Technical computing software is used in academia and industry to model processes, carry out computations, analyze data, and more. These products work with equations and expressions symbolically as well as numerically, making them powerful for taking investigations in the math classroom to another level. One popular free product is GeoGebra; products that require paid licenses include Mathematica and Maple. Each of these softwares has its own language, or syntax, in which to create and execute commands. Learning such a language is much like learning how to write a computer program. However, in technical computing software, a “program” does not have to be more than one line. To start, students can learn to write and execute single commands to solve or analyze problems symbolically or numerically. As their skill increases, they can learn to write groups of commands that depend on output from previous commands to solve a problem. Interested students can write full-blown programs to model processes or carry out computations.

It takes a few class periods for students to learn the basics of the software’s syntax. Once they know the basics, additional commands and functions can be introduced at any time. Once students were familiar with the software, I created in-class investigations and assignments that required them to use it. Overall, my students have responded positively and I have been very happy with the outcome. Here are a few things that I have learned since I started using the software with my students:

- Take the time to learn the software yourself.

You certainly don’t need to be an expert, but you want to be knowledgeable enough to know how to help students troubleshoot. Give yourself time to work through your lessons so you can try to predict any issues or questions that students may have. At the same time, you don’t need to know everything. It is perfectly acceptable to say, “I don’t know why that happened. Let’s try to figure that out together.” - Give students time to get used to the software’s syntax.

Before using technical computing software, many of my students did not have experience in computer programming or in following a structured syntax. There is a learning curve to the syntax of any technical computing software, and some students initially resisted. The more they worked with commands, however, the more they adjusted to the language’s syntax. My students’ ability to troubleshoot their own and each other’s commands improved quickly. - Create a few quick-reference documents.

When it became clear that we were using the same commands frequently, I made some quick-reference documents for my students to remind of them of the syntax of each command. My reference documents included information on:- Converting exact values to decimal answers.
- Commands for simplifying, factoring, and solving equations of various forms.
- Commands to plot equations and control various features of the graph, like grid lines, scale, tick marks, line thickness and graph color.
- Creating custom functions.

- Don’t force students to memorize commands.

One of the first questions my students asked was if they had to memorize the commands they were learning. I reassured them that I would always allow them to use their reference documents or the software help menus. In fact, I admitted that for more than 15 years of using such software, I regularly consulted the documentation to recall the syntax of various commands. I explained that learning how to search, read, and interpret the documentation and apply it to a specific situation is an important skill to develop. - Use the software regularly.

At one point, several weeks went by where we did not use the software. During this time, many students forgot some of the most basic concepts about the language’s syntax. Lesson learned: keep the skills alive by using the software frequently. One of my colleagues asks his students to use technical computing software to check their answers to a few homework problems throughout the week. This is an easy, low-stakes way to keep their skills fresh. - Use the software in creative ways or with computationally messy problems.

Instead of a traditional paper-and-pencil chapter test, I gave my students a take-home assessment that asked them to use the technical computing software to create graphs and solve equations. The majority of the test questions focused on their analysis of those graphs and equations to demonstrate their understanding of the material. Because I did not want the assessment to feel like a test on how to use the software, I encouraged students to use our reference documents and the help menus. They were also able to work with a partner. Admittedly, I spent quite a bit of time outside of class helping students to troubleshoot their syntax. But this was time well spent because students were working to internalize the syntax. - Use the output of the software to enhance discussions about math.

When using technical computing software to graph transformations of y=sin(x), we had fantastic discussions about order of operations, the importance of parenthesis, and the contents of the argument of a trigonometric function. I thought we had cleared up these questions when we used other graphing software, but a new crop of questions appeared when graphing with the technical computing software. When using technical computing software to solve trigonometric equations of the quadratic form, we compared our by-hand answers to the software’s exact answers and decimal approximations. We discovered that the software was finding both real and complex roots, and my students were excited when they realized they had worked with real and complex roots quadratics in Algebra II. - Once students get comfortable with the syntax, ask them to write “mini programs.”

The strength of technical computing software is in working with a group of related commands that build upon each other. “Mini programs” can be as simple as creating custom functions and variables and watching what happens to a solution or a graph when variables are changed. Last year, as part of a study of the science and math of sound, I asked my students to create and play a song in the software. They created the equation for each musical note and put the notes together — with timing — in a way that played a familiar song. With technical computing software, the possibilities to give students an open-ended way to show their understanding are endless. - Give students time to explore other features.

I tell my students that we will barely scratch the surface of what technical computing software is capable of. When we have extra time, or for an “Hour of Code” activity, I give them some time to discover and play around with other features in the software. Some technical computing software packages have “cool” geolocating and image processing features which my students love to explore. The hidden benefit is that they are strengthening their computational thinking while they play.

Here are some resources that I have found helpful as I worked with various packages:

- GeoGebra Resources: Learn how to use GeoGebra’s CAS (Computer Algebra System) with an online quick start tutorial.
- Mathematica Resources: An online book to learn the Wolfram Language and video resources for using Mathematica in the classroom.
- Maple Resources: helpful videos, manuals and resources to help teachers learn Maple and integrate it into their math classes, and lessons created by high school teachers.

Technical computing software is a great platform to integrate computer science and computational thinking in a math classroom. I hope you give it a try!

For more, see:

- Mathematical Discourse: A Matter of Sharing and Questioning
- Helping Students Love to Learn Math Through Science
- Why “I’ll Never Use This” Doesn’t Apply to 21st-Century Math Skills

*Stay in-the-know with all things EdTech and innovations in learning by **signing up to receive the weekly Smart Update**.*