Using Programming to Teach Mathematical Generalization

Making generalizations and writing general expressions is an essential skill in mathematics. Developing this skill and making it a “habit of mind” for the learner is an elusive goal for math educators, yet this skill is vital, not only in the classroom, but in society. There are several meanings attached to generalization in the literature. It can be seen as a process, going from naming a member of the group to describing all members of the group. For example, going from naming an odd integer as 1, 3, or 5 to describing all odd integers as 2k+1, where k is any integer. The expectation is that generalization skills will develop in the mathematics classroom. However, explicit methods for teaching generalization are rare. The CPR2 project examines the effectiveness of an explicit instructional strategy using computer programming to teach participants to write general expressions. The participants are in-service middle and high school teachers (and their students) participating in professional development sessions to improve mathematical reasoning.

Using Programming to Teach Mathematical Generalization

Making generalizations and writing general expressions is an essential skill in mathematics. Developing this skill and making it a “habit of mind” for the learner is an elusive goal for math educators, yet this skill is vital, not only in the classroom, but in society. There are several meanings attached to generalization in the literature. It can be seen as a process, going from naming a member of the group to describing all members of the group. For example, going from naming an odd integer as 1, 3, or 5 to describing all odd integers as 2k+1, where k is any integer. The expectation is that generalization skills will develop in the mathematics classroom. However, explicit methods for teaching generalization are rare. The CPR2 project examines the effectiveness of an explicit instructional strategy using computer programming to teach participants to write general expressions. The participants are in-service middle and high school teachers (and their students) participating in professional development sessions to improve mathematical reasoning.

1571 Views

Share Presentation

Cynthia Stenger

Presenter

May 15, 2017 | 11:10 a.m.

This project has been very rewarding! One thing folks might not see is that our instructional goal is to make generalizations and think about a math concept abstractly. We use the programming as an activity to push students to build the mental frameworks for generalization. Our teachers do learn to program and they do find a deeper level of understanding for the particular math concept in the lesson, but the overarching accomplishment is they learn, and learn to teach others, the skill of mathematical generalization.

Jayson Jackson

Co-Presenter

May 15, 2017 | 12:00 p.m.

What has been interesting is to listen to the discussions that the programming generates among the students. Deciding whether or not zero is an even number, for instance, is always provocative. However, when the students are encouraged to focus on what the program shows, they often quickly become convinced about their stance on the subject, because they can then think about it abstractly. These "ah-ha moments" make this project worth our investment.

Lien Diaz

Facilitator

May 15, 2017 | 04:14 p.m.

As a former mathematics teacher, this project is of very special interest to me. I have also experienced how students become convinced of a stance due to what a computer program shows. It's really cool!

Can you explain more on how improved mathematical reasoning is measured? It it through particular assessments (e.g., quiz, test, pre/post surveys)?

Also, one of the ways in which other projects and research efforts on improving student learning have incorporated requirements for students to "write' justifications or explanations regarding their conjectures. I understand that in this project students write logical arguments for their conjectures. I'm interested in learning more about this with this project. What do the logical arguments look like? Are they written explanations or are they simply in the form of expressions?

Jayson Jackson

Co-Presenter

May 19, 2017 | 06:50 a.m.

The "logical arguments" are really proofs in paragraph form. We call them logical arguments because "proofs" seem to have a negative connotation with students. The computer programs help the students to see general expressions of a concept rather than just numerous examples. For instance, when writing a computer program to generate even numbers, the students see that for a number to be even, it has to be in the form of 2*k, where k is any integer. The fact that an even number is not simply 2, 4, 6, 8, 10 ..., but is a number that is generally expressed as 2k. So, when the students conjecture that the sum of two even numbers must be even, they prove it by showing that their sum is 2 times some integer.

Neil Plotnick

Facilitator

May 15, 2017 | 05:30 p.m.

I like the idea of tying programming directly to algebraic problem solving. I have taught Python and many of my assignments had students write programs based on geometry and algebra formulas. For example, calculating the distance formula using X,Y variables or determining the volume of a right rectangular prism. To get correct results, students have to really "own" the formula. Are the students in this study learning in a dedicated math classroom or are these students in a CS classroom? How difficult was if for them to master how Python handles exponents and similar concepts (there is no square root button on the keyboard) with the Math libraries?

Cynthia Stenger

Presenter

May 17, 2017 | 10:57 a.m.

I could not agree more with your comment that "students have to really "own" the formula". We (the CPR2 research team) hold that the computer programming pushes students to move to the next level of abstraction. In APOS terms, " to interiorize the process and/or encapsulate the object."

We started in math classrooms and have spread to science and CS classes.

The students master Python quickly, although we do have to be mindful of syntax. Mastering programming syntax, as will as symbology for mathematical generalization and proof, are akin to learning a new language.

Neil Plotnick

Facilitator

May 18, 2017 | 11:06 p.m.

In the chemistry classroom at my school, I have shown the students some simple Python programs that I wrote to help with the study of the Ideal Gas Laws. There are some basic equations that lend themselves quite well to programming. The students were most impressed by the automated conversion program that would take one unit of measurement and print out the others. (Atmospheres, PSI, kilo Pascals, MM Mercury, TORR)

I was really excited to see this project! I have long thought that one way that CS/CT could enhance mathematical learning is in helping students to generalize their reasoning in a very explicit way. I particularly like the way you characterize the programming as a stepping stone to mathematical proof.

I work mostly in elementary mathematics. One key principle in our K-5 curriculum is that kids are encouraged to invent their own methods for adding and subtracting (and later, multiplying and dividing) before they are taught any particular algorithms. This idea can be a challenge for teachers, though, because it can be difficult to interpret students' descriptions of their thinking. I've wondered in programming their methods might serve to better help them check if they are generalizable, and also help teachers in interpret student thinking through examination of their computational artifacts.

Do you have any comments about this idea? Do the teachers in your study see benefits in programming for helping them to interpret student thinking?

Cynthia Stenger

Presenter

May 18, 2017 | 10:04 a.m.

Katie, it is great to have your feedback and questions, I have been inspired and motivated by your MSP blog for a couple of years now!

We are finding that explicit instructional strategies using CS/CT activities can improve the ability to generalize and abstract math and science concepts. In our CPR2 project, we teach learners to find general expressions in the code and to make conjectures about the relationships between the mathematical ideas. Then we teach them to write convincing arguments for some of the conjectures. We follow up with applications (robots, rockets, ...), hoping that applying the concepts in a different setting may cause them to "interiorize the action or encapsulate the process" for a higher level of abstraction.

Cathy Jones

May 16, 2017 | 10:32 a.m.

As the grant administrator, I've watched this project progress over the past 5 years. The teacher learning and confidence levels have grown. Teachers are leading students to become actively engaged in learning math and programming. The process is exciting.

I really like that students are using programs to explore a mathematical concepts and then finding general expressions to make conjectures about and write arguments. I'd love to hear how your teachers are helping the students use computational practices to communicate their thought processes, procedures and with their peers or how they are collaboratively working with peers on the programs.

Another question that interests me is, what kind of cross curricular work is happening with these teachers as they are helping the students with writing and other STEM type course work? Are the teachers talking and sharing writing practices? Do the language art teachers see better writing coming from students who are participating?