APMTH 10: Computing with Python for Scientists and Engineers

Efthimios Kaxiras, Logan McCarty, and Georgios Neofotistos
APMTH 10    |      Fall 2024      |      Course Listing    |   Canvas Site
Tuesday & Thursday, 10:30 AM – 11:45 AM

This course is a systematic introduction to computing (with python and jupyter notebooks) for science and engineering applications. Applications are drawn from a broad range of disciplines, including physical, financial, and biological-epidemiological problems. The course consists of two parts: 1. Basics: essential elements of computing, including types of variables, lists, arrays, iteration and control flow (for, while loops, if statement), definition of functions, recursion, file handling and simple plots, plotting and visualization tools in higher dimensions. 2. Applications: development of computational skills for problem solving, including numerical and machine learning methods, and their use in deterministic and stochastic approaches; examples include numerical differentiation and integration, fitting of curves and error analysis, solution of simple differential equations, random numbers and stochastic sampling, and advanced methods like neural networks and simulated annealing for optimization in complex systems. Course work consists of attending lectures and labs, weekly homework assignments, a mid-term project and a final project; while work is developed collaboratively, coding assignments are submitted individually.

Recommended Prep: Mathematics 1b is a prerequisite, although it can be taken concurrently (particularly for sophomores). Some limited concepts from Mathematics 21a are used, but they can be learned during the course. The course provides an introduction to programming with a mathematical focus, using Python, and starts from the level of a complete beginner.