Harry Cheng

President Obama earlier this year announced a new initiative, “Computer Science for All,” to empower a generation of American students with the computing skills they need to thrive in a digital economy. I believe we can take this a step further by employing computer science to help students do better at math – particularly algebra, which is often referred to as a “gatekeeper” that determines whether a student succeeds in high school and beyond.

My colleagues and I at UC Davis have been conducting extensive research for more than 10 years on how to use computing – solving a problem by designing and writing a computer program – to engage students and help them learn science, technology, engineering and math (STEM) subjects. We are now at a tipping point where we have the tools and opportunity to enable all of California’s schools to integrate computer science into their math and science curriculums.

I believe all K-12 schools should provide computer science education for all students in each grade level. But even more urgently, we can use computer science to address the achievement gap in math that schools are still struggling to close. Algebra is often a key stumbling block for students, with research showing that nearly half of California students repeated Algebra I under the old state math standards.

Teaching math with computer programming – either as part of a standard math course or as an elective  can give mathematical concepts context and relevance while still requiring the same amount of rigor as traditional mathematics instruction. For example, the following exercise asks students to write a computer program to solve an algebraic problem:

Write a program for a yogurt shop to process the sale of frozen yogurt. The sale price for frozen yogurt is $0.39 per ounce. The sales tax is 8.25 percent.

In a traditional math classroom this would have been a simpler challenge, asking the student to only calculate the cost for one specific amount of yogurt. But by integrating computer programming we can further students’ logical and critical thinking skills by developing their ability to identify variable components abstractly, pay attention to the precision of integer and decimal numbers in a program, develop a mathematical model, and create algorithms with patterns. Students also learn to critique the reasoning of others and help each other during the program development for collaborative learning. Not only is this exercise aligned with the state’s Common Core standards, it can help make math feel more relevant as students gain a sense of accomplishment for having successfully written a computer program.

This is just one example of how computer programming can be integrated to enhance math instruction. At the UC Davis Center for Integrated Computing and STEM Education’s C-STEM program, we use computer programming with algorithmic design and robotics to engage students in hands-on learning of math and computer science. With funding from the National Science Foundation and the California Department of Education, through our collaborative research with K-12 partners, we have developed innovative educational computing and robotics technology tools that are available to schools and students for no cost. Our C-STEM curriculum can be integrated into a school’s math program for a month, a semester, a year, or multiple years – or schools can offer computer and robotics classes as electives.

More than 200 schools in California have officially adopted and used the C-STEM curriculum in their classroom teaching, and the results have shown promise in closing the math achievement gap for schools with a large percentage of student subgroups that have historically lagged behind. For example, Hillcrest High School in Alvord Unified School District in Riverside just completed its first full year of using our integrated C-STEM computer programming and math curriculum. Many students in Hillcrest come from low-income families with parents who have not completed their high school education. The school reported pass rates of 94 percent for students using this curriculum compared to a schoolwide average pass rate of 61 percent on the same math examination for the Integrated Math 2 courses. Based on this success and to accommodate student interest, the school has moved from offering one class of the course to offering seven classes of C-STEM Integrated Mathematics this year.

And schools don’t need to go out and recruit computer science majors to teach these courses! Even teachers with no prior computer programming experience can quickly integrate computing into their classroom instruction after just a brief professional development training.

Teaching math with computer programming presents an unprecedented opportunity to improve the success of all students, regardless of their race, gender, family background, income, or geographic location. Algebraic and computational thinking can reinforce each other. It is a cost-effective way to close the math achievement gap and at the same time provide computer science education for all students without adding teachers or new courses.

•••

Harry H. Cheng is a Professor in the Department of Mechanical and Aerospace Engineering at the University of California, Davis, and Director of the UC Davis Center for Integrated Computing and STEM Education (C-STEM).

The opinions expressed in this commentary represent those of the author. EdSource welcomes commentaries representing diverse points of view. If you would like to submit a commentary, please review our guidelines and contact us.

To get more reports like this one, click here to sign up for EdSource’s no-cost daily email on latest developments in education.

Share Article

Comments (9)

Leave a Comment

Your email address will not be published. Required fields are marked * *

Comments Policy

We welcome your comments. All comments are moderated for civility, relevance and other considerations. Click here for EdSource's Comments Policy.

  1. Teresa Sicat 2 months ago2 months ago

    I started using the C-STEM curriculum and teaching Robotics in 2017 to Middle school students and seeing their excitement and engagement in the lesson every time they work with robots inspires me to learn more about this program so I can do and teach more to my students. Last year, with our school district's permission, I integrated the C-STEM curriculum into my Algebra 1 class. My students were much engaged and were able to … Read More

    I started using the C-STEM curriculum and teaching Robotics in 2017 to Middle school students and seeing their excitement and engagement in the lesson every time they work with robots inspires me to learn more about this program so I can do and teach more to my students. Last year, with our school district’s permission, I integrated the C-STEM curriculum into my Algebra 1 class. My students were much engaged and were able to solve Math and real-life problems through robotics challenges. Through computer programming and robotics, my students see the connections between mathematical concepts to real-life situations, and these helped them understand the Math concept, and develop their critical thinking skills and perseverance in solving math problems.

  2. Chris Gunnoo 4 years ago4 years ago

    I am recently thinking of how to use arduino programming in c+ with k12 experiments in chemistry, physics and maths. This can revolutionize teaching. Students can see the application of maths in real time situations

  3. Judy Tan 7 years ago7 years ago

    I have been working with C-STEM for 3 years now. I have integrated the C-STEM curriculum in my math classes. My students are engaged and became better problem solvers. Before integrating the C-STEM curriculum into my Algebra 2 classes, my students were having trouble understanding the concept of domain and range. Through writing codes to generate correct graphs to functions, rational equations, and piece-wise functions, my students mastered the concept of domain and range and … Read More

    I have been working with C-STEM for 3 years now. I have integrated the C-STEM curriculum in my math classes. My students are engaged and became better problem solvers. Before integrating the C-STEM curriculum into my Algebra 2 classes, my students were having trouble understanding the concept of domain and range. Through writing codes to generate correct graphs to functions, rational equations, and piece-wise functions, my students mastered the concept of domain and range and they are able to clearly explain the meaning of domain and range to others. Through robotics, my students had a better understanding of many mathematical concepts and are able to make real life representations to math problems.
    Many of my students continue onto programming and robotic classes.

  4. Adam Ko 7 years ago7 years ago

    I teach math at High Tech High, a project-based school in San Diego, and C-STEM aligns with our school's values of providing rigorous, meaningful and relevant projects for students to access knowledge and take the project as far as they can. I have been using the C-STEM curriculum for two school years, and it has engaged and challenged my students in such meaningful ways. Dr. Cheng and the C-STEM team at UC-Davis have … Read More

    I teach math at High Tech High, a project-based school in San Diego, and C-STEM aligns with our school’s values of providing rigorous, meaningful and relevant projects for students to access knowledge and take the project as far as they can.

    I have been using the C-STEM curriculum for two school years, and it has engaged and challenged my students in such meaningful ways. Dr. Cheng and the C-STEM team at UC-Davis have put together a top notch and relevant curriculum that has brought my math class alive. Students who aren’t usually engaged in ordinary math work are now poring over code to make sure their program runs just right or to ensure their robot goes exactly where they want it.

    On a personal note, Dr. Cheng and his staff at C-STEM have been so great to work with because of their willingness to help troubleshoot, give ideas and provide support for this new initiative.

  5. Anthony Villanueva 7 years ago7 years ago

    This year is my first year implementing CSTEM into my High School Integrated Math 1 class. It was an experiment and I was not sure how programing would fit into teaching mathematics, but it fit right in. Students were immediately engaged with creating programs that would solve and calculate problems for themselves. As a result they were motivated in learning the mathematics necessary to make a generalization that could be programed.
    This is Powerful.

  6. Clay Dagler 7 years ago7 years ago

    I have been fortunate enough to work with Dr. Cheng over the last four years of my teaching career. During this time I have taught the UC Davis C-STEM high school mathematics class to English Language Learners, at risk students, and honor students. I can say that my students' engagement and understanding improved for all the classes I taught using this curriculum. The highlight of my day is watching my students use programming and … Read More

    I have been fortunate enough to work with Dr. Cheng over the last four years of my teaching career. During this time I have taught the UC Davis C-STEM high school mathematics class to English Language Learners, at risk students, and honor students. I can say that my students’ engagement and understanding improved for all the classes I taught using this curriculum. The highlight of my day is watching my students use programming and robotics to gain a deeper understanding of the mathematics they are learning.

  7. Naomi 7 years ago7 years ago

    I have been using the C-STEM software that Dr. Cheng is speaking about now for 2 years in my math classroom. The first year I was not able to integrate much, but this year I was able to do quite a bit, especially with my Stratigic class, which is a class for our Math 1 students who struggle and need a second class. This is where I saw the largest benefit from introducing … Read More

    I have been using the C-STEM software that Dr. Cheng is speaking about now for 2 years in my math classroom. The first year I was not able to integrate much, but this year I was able to do quite a bit, especially with my Stratigic class, which is a class for our Math 1 students who struggle and need a second class. This is where I saw the largest benefit from introducing programming and robotics into the math class. The students in this class are allowed to graduate out of this class at the semester mark if they have a B or higher in their main Math 1 class. The previous year I had 26% of my students that graduated out of this class. This year, 49%. These kids are the ones who most had written off. I have many more success stories, but bottom line is, it works.

  8. Doug Obrigawitch 7 years ago7 years ago

    Paul, you make some very valid points, however, having taught both AP Computer Science and mathematics for a number of years, I believe that Dr. Cheng's curriculum serves as a needed gateway to more rigorous computer science education. I've had a number of students take AP Computer Science, and, like most California high schools, it was our only computer science course. The students simply did not know what they … Read More

    Paul, you make some very valid points, however, having taught both AP Computer Science and mathematics for a number of years, I believe that Dr. Cheng’s curriculum serves as a needed gateway to more rigorous computer science education.
    I’ve had a number of students take AP Computer Science, and, like most California high schools, it was our only computer science course. The students simply did not know what they were getting into. As you point out, they were unprepared for the rigor and precision that computer science entails. Many of these students exited their one and only computer science course with a bad taste in their mouths. The beauty of the UC Davis C-STEM curriculum, is that it allows regular algebra 1 students to use both computer coding and robotics as an outlet for their mathematics, while also exposing them to both. They can then decide whether or not to pursue more coding classes.
    I enjoy teaching the C-STEM algebra curriculum because I enjoy watching beginning algebra students write code for such things as solving the quadratic formula. In doing this, the students can stop focusing on the tedium of manually substituting numbers for variables, and start focusing on the big picture. I’ve never had students more willing to solve projectile motion problems, and I believe it is for the reason stated above. The first time students run a robot lab, they develop an almost immediate understanding of both abstract use of variables and object-oriented programming. Now, whenever students ask, “When are we ever going to use this?”, the answer is often, “During your next robotics lab.”
    Many, if not most schools in California pat themselves on the back when they can get their students to do “The Hour of Code” just one time a year. Well, Its high time we moved beyond the “Hour of Code” and incorporate more coding into our curriculum. The twenty-first century is 1/6 over, so lets at least get the later stages of the twentieth century into our schools. I find that most mathematics teachers have been hard-pressed to provide outlets for their students learning beyond pencil and paper. Thus, the UC Davis C-STEM curriculum has been a godsend to me. I used to spend hours trying to develop just one coding lesson for my mathematics students, but now I have a ready-made curriculum and I am free to teach coding to my heart’s content, while also providing my students the opportunity to interweave algebra, computer coding, and robotics.

  9. Paul 7 years ago7 years ago

    Dr. Cheng, as a computer scientist and a one-time K-12 teacher, I agree completely about the benefits of teaching math through computer science. Emmanuel Schanzer's http://www.bootstrapworld.org/ is similar to your initiative. He uses programming to teach algebraic concepts, including the notions of a variable and an unknown. His templating approach, which at its core is like the CPM (College Preparatory Math, not the old programming language) "game" in which students infer functions from tables-of-values, works brilliantly … Read More

    Dr. Cheng, as a computer scientist and a one-time K-12 teacher, I agree completely about the benefits of teaching math through computer science.

    Emmanuel Schanzer’s http://www.bootstrapworld.org/ is similar to your initiative. He uses programming to teach algebraic concepts, including the notions of a variable and an unknown. His templating approach, which at its core is like the CPM (College Preparatory Math, not the old programming language) “game” in which students infer functions from tables-of-values, works brilliantly for young minds.

    I differ with you on the question of who should deliver such a curriculum. A teacher with no knowledge of computer science (this means most teachers in the US) could present the material, but would be unable to see the big picture — unable to inculcate our discipline’s habits of thought. Knowledge of first-order logic, Boolean algebra, number bases other than 10, and programming language concepts such expressivity and computability, would be beneficial in working with students at all levels. For work with older students, knowledge of sophisticated data structures and algorithms, software development methodologies, and systems integration, would be beneficial.

    I taught the Bootstrap curriculum to 5th- through 7th-graders in a private summer school. I also taught base-2 arithmetic to some of my public school 6th-graders, just to get them thinking. Adults, not children, are the barrier! Years ago when I was interviewing for the math/computer position at a relatively good public middle school in the Bay Area, the principal told me, “We don’t do programming here.” I worked in several districts — some lousy, but one with a good reputation — where there was one computer in each classroom, for the teacher’s use only.

    What computer instruction there is in California’s public K-12 schools is mostly about applications (a Web browser, a word processor, and perhaps a drawing program or a spreadsheet for older students). Here and there there is a little “programming” (distinct from computer science instruction; see Fabian Pascal on the difference between following an ad-hoc, vendor-specific, “cookbook” approach and acquiring generally-applicable foundational knowledge). A handful of prestigious high schools offer courses to prepare seniors for the Advanced Placement computer science exams — rather late in the game given the beneficial habits of thought that computer science education engenders.

    Another problem is that California didn’t have a computer science credential until this year. There was a flurry of regulatory activity two years ago because the Commission on Teacher Credentialing and the State Board of Education were embarrassed. They hadn’t revised the (soft) “computer concepts and applications” supplemental authorization since its creation in the 1990s!

    Now there is a (solid) supplementary authorization in computer science, but no one to fill the ranks. As a somewhat traditional computer practitioner, I make $20,000 to $25,000 LESS than what those with knowledge of the latest fad programming languages, “frameworks” and “development stacks” make. Even so, I’d be hard-pressed to give up my $140,00 position and return to the classroom at $43,000 (typical California district) to $52,000 (San Francisco). Aside from the comedy of having to get a roommate at age 41, I would miss the professional discretion that I have today. Teaching is about doing exactly what college of education faculty, school district administrators, school principals, and parents tell you to do.