President Obama recently called to expand access to computer science education in American schools. As the educational community focuses on this challenge, the relationship between math education and computer science is undoubtedly moving into the spotlight. This relationship can be a controversial subject.
Part of this debate springs from differing ideas of what constitutes a "strong background in mathematics." For some, it's getting a PhD in mathematics. For others, it's being able to solve multistep equations mentally.
4 Reasons Why Math Matters for Computer Science
But there’s another way of identifying a strong math background: having the capacity for abstract reasoning, critical thought, and logical deduction -- a mathematical way of thinking. In this regard, a strong background in mathematics is imperative to succeeding in computer science.
1. Math teaches understanding and communication through abstract language.
Computer programming has its own languages, which are very abstract. Using syntax, one must represent specific processes, commands, and visuals through punctuation, symbols, and single words. To someone with no experience thinking or communicating in abstract languages, learning a programming language can be terrifying.
However, abstract programming languages are very similar to the mathematical language that students learn in math class. From simple equalities to complex mathematical representations, learning mathematics teaches students the art of reading, comprehending, formulating thoughts, and communicating with abstract language.
Of course, mathematical language and computer programming languages aren't exactly the same. But experience using any abstract language gives beginning computer scientists an advantage.
2. Math teaches how to work with algorithms.
Algorithm is among the most bandied-about terms in the technology scene. In short, an algorithm is an abstraction of some process into a form in which the process can be repeated, implemented in different ways, and applied to new problems.
The word may be used more frequently in computer science, but most students first use algorithms in mathematics. For example, consider an equation like 5 + x = 7. Students learn to find an unknown summand by subtracting the known summand from the sum. This is an algorithm -- one that students quickly learn to apply to new problems and implement in different ways.
3. Math teaches students how to analyze their work.
In a day's worth of programming, any computer scientist is guaranteed to make a mistake. As such, programmers must know how to assess a problem, analyze their work, and fix errors.
Math is one of the few subjects where students analyze their own work in this way. A student might answer a math question (How much do the puppy and kitten weigh together?), realize that their answer is unreasonable (231 pounds), and analyze their own process to understand their mistake and how to fix it (maybe they forgot to convert from ounces to pounds). Math, in short, prepares students for fixing bugs.
4. General skills aside, computer science still involves a lot of math.
In addition to general skills important for computer science, the facts and figures of math are essential. As computer programming interacts more with our world, the importance of accurately modeling that world through mathematics grows.
For example, to build a self-driving car, the equations used to program its turns, acceleration, and acceptable distance from other cars must be spot-on.
Becoming a computer scientist requires a fair amount of mathematical knowledge and skill. Even more importantly, success in computer science requires the ability to think mathematically. So why is it necessary to talk about how math helps prepare budding computer scientists for their academic careers?
A More Effective Approach to Math Education
A strong math background develops all of the skills mentioned above. Unfortunately, as it's currently taught in the U.S., math education doesn't always develop a strong math background in its students. Many math classes focus on the rote memorization of formulas. These classes neglect building the critical thinking and logical reasoning that help students in future math classes and computer science careers.
Math education has started to see some promising movement in developing students' ability to think as opposed to memorize. For example, Reasoning Mind creates math education software that leads students through a comprehensive math curriculum and adapts to their individual strengths and weaknesses. Its lessons help them develop the thinking skills necessary to reason through simple problems before challenging them to tackle tougher ones, building their critical thinking and problem-solving skills.
Another good example is Oracle Academy, a free program that enables students to build fundamental computer science skills through engaging learning opportunities, including hackathons, student workshops, and even a global weather station project. Using a project-based learning approach, Oracle Academy's curriculum moves students away from rote memorization and engages them to become critical thinkers and problem solvers.
Eureka Math is another helpful resource with a comprehensive suite of math curricula. Its mission is ensuring that students receive a content-rich education by connecting math to the real world in a way that helps build student confidence.
Further, educational nonprofit Destination Imagination offers lessons in the fields of STEM (science, technology, engineering, and mathematics) to teach students creative processes and empower them with skills needed to succeed in school, their careers, and beyond.
All too often, students are allowed to back away from math without understanding why math matters. We want our students growing up to become the next leaders in computer science and STEM careers in general. But we need to recognize that as long as we're short-changing our students on their mathematical educations, we're missing an important part of the equation.