A collection of learning modules on computing for engineering and science students
Project lead: Prof. Lorena A. Barba
Professor Barba developed a two-course series in engineering computations at the George Washington University (courses MAE-1117 and MAE-2117). The materials for those courses are written in a modular fashion, and consist of five self-contained modules that can be individually adopted by other instructors.
The course modules are also presented as online mini-courses in the GW SEAS Open edX platform at: http://openedx.seas.gwu.edu
This first module in Engineering Computations (EngComp1) creates a foundation with Python programming, for complete beginners. You learn to handle core data types (strings, lists) and also n-dimensional arrays. The first three lessons have essentially no mathematics, to focus on the programming patterns. The fourth lesson deals with creating and operating on arrays. The final lesson is a worked example of linear regression with real data.
The target audience is first-year engineering students, but the course would be equally useful to students in any science or technology field.
This learning module builds from a foundation in Python programming to develop data practices and computational problem-solving. You learn to handle data programmatically, reading data from files, cleaning and organizing data, and performing exploratory data analysis. You will use real data, learn to make pretty data visualizations, and gain insight from data.
The target audience is first- or second-year science and engineering students, but only high-school-level mathematics background is assumed.
This module builds from a foundation in Python programming to develop modeling and simulation practices, and computational problem-solving. You learn to capture motion from images and videos, to compute velocity and acceleration from position data, to obtain velocity and position from accelerometer data, and to study differential models of mechanical vibrations.
The target audience is second-year science and engineering students, with some background in calculus and ordinary differential equations.
This module applies Python and core numerical libraries (NumPy, SymPy, Matplotlib) to explore the foundations of linear algebra, with a geometrical and practical approach. You learn to view matrices as linear transformations of vectors, and develop intuition about their role in linear systems of equations. Playing with transformations, you understand eigenvalues and eigenvectors, and discover matrix decomposition. We use Python to compute all the eigenthings and apply them to population models in ecology, Markov Chains, and the Google Page Rank algorithm. You learn about singular-value decomposition and its application to image compression, least squares problems, and linear regression.
The target audience is second-year science and engineering students, with minimal background in linear algebra through a first college course or even high-school mathematics.
This module is a preamble to digital signal processing. Learners will manipulate complex numbers using Python, explore information in wave form, programmatically and through visualization, and apply Fourier analysis on wave-like data.
A step-by-step introduction to deep learning (a.k.a. neural network) models, aimed at scientists and engineers having a background in calculus and linear algebra.