My instructorship and teaching assistentship experience include

- Instructor
- Introduction to MATLAB and Mathematica (Spring 2015)
- Introductory programing, data analysis and visualization on MATLAB and Mathematica for undergraduates and graduates, including basic numerical methods, object oriented programing, functional programing and UI design.
- Teaching assistent
- Discrete Differential Geometry (Caltech CS177, Fall 2013, Fall 2014, Fall 2016, Winter 2017)
- Instructor: Peter Schröder.
- Introduction to differential geometry, its discrete analogous and implementations. The theory includes curve and surface theory, exterior calculus, Hodge theory, connections on vector bundles, as well as discrete exterior calculus and finite element methods. The applications and implementations range from vector field design, conformal maps, fluid dynamics, electromagnetism, to elasticity. We use Houdini (free apprentice license) as the computation and visualization tool.
- Stochastic Processes (Caltech ACM/EE116, Fall 2013, Fall 2015, Fall 2016)
- Instructor: Houman Owhadi, Konstantin Zuev
- Kolmogorov's probability theory, limits of random variables, with applications to branching process, Poisson process, Gaussian process and brownian motion.
- Complex Analysis, ODE and PDE (Caltech ACM95/100, Winter 2014, Spring 2014, Winter 2017, Spring 2017)
- Instructor: Dan Meiron
- Computational Mathematics (Caltech ACM106, Winter 2015)
- Instructor: Qin Li
- Current Research in Computer Graphics/Data Visualization (Caltech CS176, Winter 2014)
- Instructor: Mathieu Desbrun, Peter Schröder, Santiago Lombeyda

Houdini is a 3D animation software by SideFX that is broadly used in filming industry. Its built-in shader language (VEX), geometric data structures, and its integration with Python (where one can call numerical linear algebra library such as SciPy) makes it a powerful tool for scientific computing and geometry processing. Moreover Houdini comes with industry standard renderer allowing stunning visualization. Its free apprentice license if fully functional, with only a few limitations in the resolution of rendering preventing commercial uses. Houdini has become a frequently used software for not only research demonstration, but also for teaching and generating illustrations for lectures and talks.

Discrete differential geometry. With prerequisite only in linear algebra and multivariate calculus, this course takes students over the following material. Through the course students are literate in differential geometry and have strong numerical skill in, for example, solving PDEs on surfaces.

- Geometry of curves and surfaces, including general framed curve theory, curvatures of surfaces and their discrete theories. For implementation, students learn how to generate parallel frame for space curves, and compute different notions of discrete curvatures and normals on discrete surfaces.
- Exterior calculus, discrete exterior calculus (DEC) and basic finite element methods. Students are able to build the sparse matrices in DEC and use them to solve Poisson equations, heat equations and wave equations on surfaces. Examples also include electromagnetism and geometric problems such as minimal surfaces.
- Hodge theory and basic algebraic topology (including relative cohomology for boundary conditions). Students are able to compute Hodge decompositions on surfaces, and find homology generators through cotree-tree algorithm based on the Morse homology theory.
- Conformal parametrization on surfaces and complex geometry.
- Connections on tangent bundle and complex line bundles. Students are able to find almost-everywhere flat connections for tangent bundles over surfaces with user selected singularities with Poincaré index.

Lecture notes for selected chapters: