ACT-CMS Lesson Portal

Foundational Symbolic Mathematics

Students will learn foundational skills for performing symbolic mathematical manipulations in Python.

Programming Skill: Beginner
Primary Course: Foundational Module
Also for: General Chemistry, Physical Chemistry, Materials Science
Format: Multi-Part Module
Authors: Prof. Dom Sirianni
Estimated Time: 4-6 hours
Piloted with: Undergraduate Upper Division
Students Tested: 50
python symbolic-math symbolic-calculus visualizing-math-functions

Overview

Physical chemistry describes chemical phenomena in the language of mathematics at a level of conceptual and theoretical rigor beyond that which many undergraduate chemistry students are typically unaccustomed. This means that for students of physical chemistry, they must develop a wide variety of mathematical skills "on the job," while leaving enough intellectual bandwidth to learn the physical chemistry concepts themselves. For many students this is an enormously challenging proposition, which contributes to physical chemistry's reputation as one of (if not the) most difficult courses taught on any college campus. While mathematical rigor is the cost of doing business in physical chemistry, being able to perform every requisite mathematical transformation by hand does not have to be a learning objective for the course. To make the study of physical chemistry more mathematically accessible for undergraduate chemistry students, the goal of this Module is to help students develop the cyberinfrastructure (CI) skills necessary to use Python as a symbolic and numerical mathematics engine for solving physical chemistry problems.

Scientific Learning Objectives

  • Define mathematical variables and expressions using SymPy
  • Manipulate algebraic expressions to solve for a single variable
  • Substitute numerical values and units into algebraic expressions
  • Apply symbolic algebra techniques in Python to solve general chemistry problems
  • Perform symbolic calculus operations using the SymPy library
  • Perform numerical quadrature for definite integration using the SciPy library

Cyberinfrastructure Learning Objectives

  • Using SymPy to symbolically perform mathematical transformations in a chemical context
  • Using NumPy/SciPy to perform numerical mathematics operations
  • Using SymPy/SciPy to perform symbolic and numerical calculus operations in Python

Prerequisites

Scientific Prerequisites:

  • General chemistry
  • College-level algebra
  • Precalculus
  • Calculus 1

Programming Prerequisites:

  • Basic Python syntax (variables, loops, functions)

Lesson Sequence:

This is Part 2 of 2 in the Python Foundations for Molecular Scientists path.

Complete these lessons first:

Course Materials

Lesson 1: Introduction to Symbolic Algebra in Python

Introduces students to the foundational skills of using SymPy for symbolic algebra manipulations to solve chemical problems.

Lesson 2: Essentials of Calculus in Python

Introduces students to the essential skills for performing calculus operations in Python.

Student Repository

Complete Student Materials

Download or clone the complete repository with all notebooks, datasets, and supporting files.

View Repository Launch on ChemCompute

Instructor Materials

Complete Instructor Package

Solutions for all notebooks, teaching notes, assessment rubrics, and additional examples.

Instructor Resources

Requires instructor verification. Request access if you don't have permission.

Instructor Notes

Additional context for instructors using this lesson:

• This module is meant to introduce the cyberinfrastructure skills for symbolic & numerical math in Python, rather than teaching the mathematics or chemistry itself.
• Students are assumed to have basic experience with Python syntax, and any new syntactic elements are introduced at the moment they become relevant.
• Three student versions are provided for each lesson, which are designed for different teaching modalities (asynchronous, guided-inquiry, and live-coding)

Platform Requirements