Welcome to CHME 212 Course#
Scientific computing leverages computers to support tasks such as data processing, simulations, and modeling. In chemical engineering, it plays a central role in:
Process modeling and simulation: Predicting reactor performance, separation processes, and heat and mass transfer
Process optimization: Maximizing yield, efficiency, or energy savings
Control and monitoring: Analyzing sensor data for real-time process control
Material and property prediction: Estimating thermodynamic, transport, or kinetic properties
Safety analysis: Simulating worst-case scenarios to design safer processes
Learning programming allows students to implement these models, analyze results, and extend their work to emerging areas such as machine learning, data-driven process optimization, and predictive modeling. No prior programming experience beyond first-year chemical engineering knowledge—including heat and mass balances, basic mathematics, and chemistry—is assumed. Python is particularly effective because it is:
Easy to learn and use, even for beginners
Versatile, supporting numerical computing, data analysis, visualization, and modeling
Extensible through libraries, such as NumPy, SciPy, matplotlib, pandas, and scikit-learn
Free and open-source, running on Windows, macOS, and Linux
Widely adopted in industry and research, making skills directly transferable, especially for machine learning applications
Learning Python equips students to perform traditional modeling tasks and extend their work to machine learning, predictive modeling, process optimization, and advanced data analysis, preparing them to tackle modern challenges in chemical engineering.

Basic Python
- Chapter 0: Introduction to Python & Jupyter Notebooks
- Chapter 1: Basic Python Math
- Chapter 2: Working with Text (Strings)
- Chapter 3: Boolean Logic
- Chapter 4: Python Collections - Lists, Tuples, and Dictionaries
- Chapter 5: Control Flow - Making Decisions in Code
- Chapter 6: File Input/Output
- Chapter 7. Functions/Modules/Packages
- Chapter 8: Programming Practices
- Chapter 9: Plotting & Visualization
Numerical Computation
- Chapter 10: Basic Array Methods
- Chapter 11: Linear Algebra & Matrices
- Supplementary Note: Matrix Rank
- Chapter 12: Polynomial Fitting & Interpolation
- Chapter 13: Statistics & Random Sampling & Distributions
- Chapter 14: Monte Carlo Simulation
- Chapter 15: Numerical Integration and Differentiation
- Chapter 16: Root Finding & Newton’s Method
- Chapter 17: Symbolic Mathematics with SymPy
- Chapter 18: Ordinary Differential Equations
Lab Exercises
- Lab 01: Python Fundamentals
- Lab 02: Booleans and Strings
- Lab 03: Control Flow, Loops, and Pseudocode
- Lab 04: File I/O and Python Functions
- Lab 05: File I/O and Plotting
- Lab 06: NumPy Arrays and Linear Algebra
- Lab 07: Polynomials
- Lab 08: Statistics & Random Sampling
- Lab 09: Monte Carlo Simulation
- Lab 10: Numerical Differentiation & Integration
- Lab 11: Root Finding