This study explores the use of the Python programming language as part of a curricular unit in a high school advanced placement (AP) statistics class. We are interested in how students use programming for mathematics content. For this study, we co-designed a 5-lesson unit with a high school AP statistics teacher during a summer curriculum workshop. The unit was then implemented in two 43-minute class periods for 1 week (n = 53 students). Each student used their own laptop and worked in groups of 3-4. The unit focused on descriptive statistics, measures of central tendency, and measures of variability. In the unit, students used Python to display and describe quantitative data sets, compare distributions of data, explain how outliers affect measures of center and spread, and develop a deeper understanding of standard deviation. Each lesson built off of one another, allowing students to explore the programming language with little instruction. Using real world datasets, students used programming to make claims about measures of central tendency and variability after adjusting bin width of histograms or removing and adding data points to the dataset.
Artifacts of student work were collected to analyze whether students understood the mathematics content covered. In addition, after each lesson, students were asked to summarize what they understood and discuss what they liked and disliked. This reflective measure helped us to analyze how students perceived programming as a method to understand mathematics. Our results suggested that students developed some mathematical thinking: they had an understanding of distributions in context (shape, center, spread, outliers) and could correctly identify what would happen to a distribution if a point is removed or added to the original dataset. Further, students reported that they learned content in the lessons but had difficulty understanding how the software worked. This led to some frustration when they would get minor syntax errors. However, they also reported that they enjoyed being exposed to manipulating a real-world data set and creating data visuals.
Taken together, our findings suggest that integrating programming in a high school mathematics class allowed students to engage in manipulating and visualizing real-world data without interfering with students’ understanding of mathematics content. Because many students take mathematics in high school, this study has implications for preparation of future engineers, particularly how to broaden participation beyond students who take computer science classes. Further, findings provide practical implications on how to implement programming languages such as Python as a way to integrate technology into the teaching and understanding of mathematics content.
Are you a researcher? Would you like to cite this paper?
Visit the ASEE document repository at
for more tools and easy citations.