Summary
Professor Joanna Klukowska introduces the Python programming language in her Quantitative Reasoning: Math and Computing course, where most students have no coding experience, to teach key mathematical concepts.
She is able to do this smoothly thanks to the open source Jupyter Notebook interactive web-based environment, a web application that enables her to combine math, computations, visualizations, and discussion of the results into a single document. Using this application, students who may have no computer science background at all can jump directly into programming activities without having to install software on their personal machines, which can sometimes take one or more class periods.
The first part of the course teaches students how to use the basic features of the Python programming language: operations with numbers and strings, variables, Boolean logic, control structures, loops and functions. The second part of the course focuses on the phenomena of growth and decay: geometric progressions, compound interest, exponentials and logarithms, as well as trigonometry, counting problems and probability. Students use Python to explore the mathematical concepts in course lab periods and homework assignments.
Example Activities
Exponential functions exploration:
The class discusses a lot of different functions that follow the concepts of exponential growth (ex, savings account growth, or population growth) or decay (ex, credit card payments). They use visualizations in Python to answer questions like: how does the size of each credit card payment affect the number of payments, or how does the interest rate affect overall amount of money that one pays back.
Art drawn with trigonometric functions:
The class also looks into the art produced by the mathematician/artist Hamid Naderi Yeganeh, Students are able to recreate some of his projects by implementing the trigonometric formulas in their own programs. Here is an example:
Learning Objectives
- introduce students to tools that can be used in their own work outside of the class setting
- gain an understanding of how the mathematical concepts relate to situations students face in everyday life and in their areas of study and specialization
- gain an understanding how the Python tools can be used to simplify calculations and provide visualizations that help in exploration and understanding of different concepts
Student Experience
This class requires students to:
- attend two lectures per week
- attend a recitation with hands-on practice with a newly learned concepts
- complete a weekly assignment usually started during the recitation and due one week later
Students learn the mathematical concepts by looking at examples from real life situations and from their different areas of study:
- simplified tax payment calculations
- student loan payments
- expected salary growth after graduation
- inflation
- population growth
- statistical analysis of literary texts
- children’s books readability levels
- mathematical patterns in visual arts
Technology Resources
- an account with NYU High Performance Computing in order to access the Jupyter notebooks for the class
- access to a computer with a browser and an Internet connection for course resources
Outcomes
The Jupyter Notebook environment has allowed both Klukowska and her students to focus their attention on the course activities rather than on the mechanics behind them. In Jupyter, Klukowska has a single place for the course content, mathematical calculations and formulas, and Python programming and visualizations. In the past she used separate documents for slides, separate files for programs and yet another medium for visualizations. Having all of them in a single document provides a sense of continuity that students generally prefer.
Students also benefit from the fact that Jupyter Notebooks are cloud hosted, meaning that they do not need to install any programs on their own machines. All they need to access course resources and do computation assignments is access to a computer with Internet connection (either their own machine or NYU lab machine). This has greatly reduced the problems students often have associated with installing the computational environment and transferring files between different computers.