## Teaching

I love to teach. I have worked with all ages from elementary children through retirees. I have run afterschool programs, professional development workshops, mentored at hackathons, and taught university classes. Most often, I teach about programming or electronics prototyping. When possible, I teach about human-centered design and building technology that makes an impact on a disadvantaged, disabled, or disenfranchised person or population. You can see videos of my teaching style on MIT's OpenCourseWare platform.

## Semester-long subjects I have co-taught at MIT

3.a01 - Making in Materials Science and Engineering

Freshmen seminar covering the fundamentals of rapid prototyping and offering students the opportunity to form small teams and design something that can bring a concept from materials science to life in a tangible and relatable way for the general public.

3.001 - Introduction to Materials Science and Engineering

Provides a broad introduction to topics in materials science and the curricula in the Department of Materials Science and Engineering's core subjects. Emphasizes conceptual and visual examples of materials phenomena and engineering. Preference to sophomores in fall and freshmen in spring.

3.016 - Computational Methods for Materials Science and Engineering

Computational and analytical techniques necessary for materials science and engineering topics, such as material structure, symmetry, and thermodynamics, materials response to applied fields, mechanics and physics of solids and soft materials. Presents mathematical concepts and materials-related problem solving skills alongside symbolic programming techniques. Symbolic algebraic computational methods, programming, and visualization techniques; topics include linear algebra, quadratic forms, tensor operations, symmetry operations, calculus of several variables, eigensystems, systems of ordinary and partial differential equations, beam theory, resonance phenomena, special functions, numerical solutions, statistical analysis, Fourier analysis, and random walks.

3.017 - Modeling, Problem-Solving, Computing, and Visualization

Covers development and design of models for materials processes and structure-property relations. Emphasizes techniques for solving equations from models or simulating their behavior. Assesses methods for visualizing solutions and aesthetics of the graphical presentation of results. Topics include symmetry and structure, classical and statistical thermodynamics, solid state physics, mechanics, phase transformations and kinetics, statistics and presentation of data.

6.a01 - Computing the Freshmen Year

Freshmen seminar covering the fundamentals of using computer programming to augment and explore topics covered in the first-year curriculum. Physics topics include trajectories, energy, momentum, rotations, and other topics covered in 8.01. Mathematical topics include vector calculus, differentiation, integration, differential equations, and linear algebra. Chemistry topics include chemical properties and reactions, simulating ideal gases and solids, and computational thermodynamics. Biology topics include visualizing and simulating complex systems. Humanity topics include computational linguistics, quantitative literature analysis, historical data explorations, and . All topics are covered through the design of algorithms and visualizations that bring a new perspective to the subject matter.

6.811 - Principles and Practices of Assistive Technology

Students work closely with people with disabilities to develop assistive and adaptive technologies that help them live more independently. Covers design methods and problem-solving strategies; human factors; human-machine interfaces; community perspectives; social and ethical aspects; and assistive technology for motor, cognitive, perceptual, and age-related impairments. Prior knowledge of one or more of the following areas useful: software; electronics; human-computer interaction; cognitive science; mechanical engineering; control; or MIT hobby shop, MIT PSC, or other relevant independent project experience.

Fundamentals of Scientific Programming

This seminar will cover the core skills relevant for a scientist or engineer who would like to use computer programming to perform mathematical calculations and visualize the result. The seminar will be taught using the scientific computing software Mathematica to solve problems by programming in Wolfram Language. The first week of the seminar is structured as a sequence of a short lecture on a core topic followed by small group and a public discussion about the questions that arose during the group work. The second week of the seminar is dedicated to students selecting, solving, and presenting on an open-ended topic of interest that can be approached using the skills covered in the seminar. Topics covered include: finding symbolic solutions to problems in algebra and calculus, solving differential equations symbolically and numerically, vector and matrix manipulation, and basic frameworks for simulating physical processes.

## Semester-long subjects to which I have contributed at MIT

In my role as computational curriculum advisor to the Department of Materials Science and Engineering at MIT I have been able to become deeply involved in helping support the following classes to include more computation and visualization into the curriculum.

3.012 - Fundamentals of Materials Science and Engineering

**Course Description:**

Describes the fundamentals of structure and energetics that underpin materials science. Presents thermodynamic concepts and the laws governing equilibrium properties, and the connections between thermodynamic concepts and materials phenomena, such as phase transformations, multiphase equilibria, and chemical reactions. Introduces computerized thermodynamics. Structure of noncrystalline, crystalline, and liquid-crystalline states. Symmetry and tensor properties of materials. Point, line, and surface imperfections in materials. Diffraction and structure determination.

**Contributions:**

I worked with the lead faculty to create a new assignment that had students reverse engineer the phase diagram for a binary system in order to explore the computational relationship between Gibbs free energy and phase diagrams. Students were asked to model a binary system in a computational thermodynamics software that is commonly used in industry, approximate the system using simple models that fit to the data, and program those models into a software that would compute a similar phase diagram to the one generated by the industrial software.

3.014 - Materials Laboratory

**Course Description:**

Experimental exploration of the connections between structure, properties, processing, and performance of materials. Hands-on experience with materials characterization techniques and instrumentation. Covers methodology of technical communication (written and oral) with a view to integrate experimental design, execution, and analysis. Concurrent enrollment in 3.012 and 3.014 strongly recommended.

**Contributions:**

Worked to ensure students were being held accountable for quantitative analysis and error propagation within their final project presentations. Built out digital simulation tools used to augment the experimental equipment and illuminate the concepts being taught.

3.022 - Microstructural Evolution in Materials

**Course Description:**

Covers microstructures, defects, and structural evolution in all classes of materials. Topics include solution kinetics, interface stability, dislocations and point defects, diffusion, surface energetics, grains and grain boundaries, grain growth, nucleation and precipitation, and electrochemical reactions. Lectures illustrate a range of examples and applications based on metals, ceramics, electronic materials, polymers, and biomedical materials. Explores the evolution of microstructure through experiments involving optical and electron microscopy, calorimetry, electrochemical characterization, surface roughness measurements, and other characterization methods. Investigates structural transitions and structure-property relationships through practical materials examples.

**Contributions:**

Helped design and publish interactive graphical learning widgets to illustrate the concepts being explored in the course. These included a simulation of spinodal decompositions and coarsening.

**3.024 – Electronic, Optical, and Magnetic Properties of Materials**

**Course Description:**

Uses fundamental principles of quantum mechanics, solid state physics, electricity and magnetism to describe how the electronic, optical and magnetic properties of materials originate. Illustrates how these properties can be designed for particular applications, such as diodes, solar cells, optical fibers, and magnetic data storage. Involves experimentation using spectroscopy, resistivity, impedance and magnetometry measurements, behavior of light in waveguides, and other characterization methods. Uses practical examples to investigate structure-property relationships.

**Contributions:**

Worked with the lead faculty to develop an open-ended computational design challenge that had students work in small teams to model the band structures of a semiconductor in order to optimize the band gap for industrial applications. Supported online assessment through the automated analysis of data submissions.

3.044 - Materials Processing

**Course Description:**

Introduction to materials processing science, with emphasis on heat transfer, chemical diffusion, and fluid flow. Uses an engineering approach to analyze industrial-scale processes, with the goal of identifying and understanding physical limitations on scale and speed. Covers materials of all classes, including metals, polymers, electronic materials, and ceramics. Considers specific processes, such as melt-processing of metals and polymers, deposition technologies (liquid, vapor, and vacuum), colloid and slurry processing, viscous shape forming, and powder consolidation.

**Contributions:**

Worked with lead faculty to incorporate computational modeling into the class assignments, including visualizing fluid dynamics and solving for the temperature profile during steady-state heat transfer processes.

8.01 - Physics I: Classical Mechanics

**Course Description:**

Introduces classical mechanics. Space and time: straight-line kinematics; motion in a plane; forces and static equilibrium; particle dynamics, with force and conservation of momentum; relative inertial frames and non-inertial force; work, potential energy and conservation of energy; kinetic theory and the ideal gas; rigid bodies and rotational dynamics; vibrational motion; conservation of angular momentum; central force motions; fluid mechanics. Subject taught using the TEAL (Technology-Enabled Active Learning) format which features students working in groups of three, discussing concepts, solving problems, and doing table-top experiments with the aid of computer data acquisition and analysis.

**Contributions:**

Worked with lead faculty to bring computation into the curriculum through assignments and classroom teaching aids. Specifically, our goal is to have every student learn to compute and visualize the mechanics of solving physics problems, such as watching a rocket try to reach escape velocity through the drag of the atmosphere while burning fuel.

8.02 - Physics II: Electricity and Magnetism

**Course Description:**

Introduction to electromagnetism and electrostatics: electric charge, Coulomb's law, electric structure of matter; conductors and dielectrics. Concepts of electrostatic field and potential, electrostatic energy. Electric currents, magnetic fields and Ampere's law. Magnetic materials. Time-varying fields and Faraday's law of induction. Basic electric circuits. Electromagnetic waves and Maxwell's equations. Subject taught using the TEAL (Technology Enabled Active Learning) studio format which utilizes small group interaction and current technology to help students develop intuition about, and conceptual models of, physical phenomena.

**Contributions:**

Worked with lead faculty to bring computation into the curriculum through assignments and classroom teaching aids. Specifically, our goal is to have every student learn to compute and visualize electric and magnetic field lines in order to demystify the ephemeral nature of fields and waves.

## Short courses I have taught at MIT and elsewhere

MSE-641 (EPFL) - Methods of Modelling and Simulation for Materials Science

Intermediate programming in Mathematica. Computation and visualization of structures and structural relations, of mechanical properties of materials, of quantum mechanical properties and band structures. Computation of instabilities and phase transitions.

Graduate Seminar (Imperial) - Methods of Modelling and Simulation for Materials Science

Intermediate programming in Mathematica Computation and visualization of structures and structural relations, of mechanical properties of materials, of quantum mechanical properties and band structures. Computation of instabilities and phase transitions.

IAP (MIT) - Fundamentals of Scientific Programming with Wolfram Language

IAP (MIT) - Collaborative Design and Creative Expression using Arduino Microcontrollers

This is a 9-day hands-on workshop about collaboration, design, and electronics prototyping. No previous experience with computer programming or electronics is required. Beginning students will be taught everything they need to know and advanced students will be challenged to learn new skills. Participants will learn about microcontroller programming using Arduino, collaborative software development using GitHub, solderless electronics prototyping, electronic sensors, rapid prototyping, and small team management.

Published on MIT's OpenCourseWare platform

IAP (MIT) - Learn to Build Your Own Video Game with the Unity Game Engine and Microsoft Kinect

This is a 9-day hands-on workshop about designing, building, and publishing simple educational videogames. No previous experience with computer programming or videogame design is required; beginning students will be taught everything they need to know and advanced students will be challenged to learn new skills. Participants will learn about videogame creation using the Unity game engine, collaborative software development using GitHub, gesture handling using the Microsoft Kinect, 3D digital object creation, videogame design, and small team management.

IAP (MIT) - Wolfram Technologies for Research, Education, and Creativity

A series of lectures covering multiple topics in computing, including the basics of the Wolfram Language, Wolfram notebooks, computational science and engineering, machine learning, data science, and physical computing using Raspberry Pi computers.

IAP (MIT) - Algorithmic Art and Computational Design

Students will be introduced to the concept of algorithmic art through examples and hands-on activities. We will then introduce tools that can be used to generate art according to algorithms created by the participants. Topics covered will include the manipulation images and audio through classical processing techniques and machine learning.

## Summer schools I have taught and directed

- 2018 - Program Director - Wolfram Summer School
- 2018 - Program Director - Wolfram Summer Camp
- 2017 - Instructor - Wolfram Summer School
- 2016 - Instructor - Hermes School for Materials Simulation and Communication
- 2015 - Instructor - Wolfram Summer Camp

## Hackathons that I have judged, mentored, or advised

- 2016-17 - ATHack (MIT) - Advisor
- 2017 - HackPrinceton (Princeton) - Judge and Mentor
- 2016-17 - HackingArts (MIT) - Mentor and Exhibitor
- 2016 - World MakerFaire (New York) - Exhibitor

## Workshops I have run

- 2016 (Imperial College) - Computational Methods for Materials Science
- 2016 (EPFL) - Visualization and Computational Science
- 2015 (Webinar) - Authoring Accessible Scientific Graphics for Educating Blind Students
- 2014 (Empow Studios) - Robotics Faire for Children
- 2014 (Empow Studios) - A First Course on Raspberry Pi for Children

## Future courses that I would like to teach

Applied machine learning for software developers and creative technologists

This would be a class where we discuss the high level application of machine learning without getting into the details of how each algorithm is implemented. Students would learn the basics of what tasks a classifier or predictor can be used for and would be taught to curate sufficient data to deploy a proof-of-concept algorithm that solves a real world task.

Machine learning for executives

Executives will need to become competent in formulating tasks that can be accomplished through the applications of machine learning. In order to do this, they need to learn how and what machine learning can do. Students would discuss case studies, learn the big picture of machine learning, and be asked to formulate tasks that can be solved and the data needed to solve them.