Teaching

Teaching Philosophy

Here is a brief statement of my philosophy and values when it comes to teaching.

Expository Notes

Here are some expository math notes along with code. These may contain typos.

Talks

  • Lattice-based Cryptography in Rust, Jan. 13, 2025. [slides]
  • Lattice-based Cryptography: ring-LWE, Jan. 28, 2025. [slides]
  • Lattice-based Cryptography Presentation [ring-lwe, module-lwe], with Zaiku Group. Jan 31, 2025. [live recording]
  • Quantum Computing Basics, Feb. 22, 2025. [slides]

Code Examples

Here is some code I've written that may be useful for learning various topics:

  • Cryptography Basics: Python code examples for basic cryptographic algorithms including ECC, FHE Concrete, LLL algorithm, NTRU, NTT, ML-KEM, ring-LWE, module-LWE.
  • Shor's Algorithm: Qiskit implementation of Shor's algorithm for integer factorization.
  • Physics-Informed Neural Networks (PINNs): PyTorch implementation of PINNs for solving differential equations such as the heat equation and Black-Scholes for options pricing.
  • Financial Modeling: Python code for various financial models including ARIMA, CAPM, ETS, GARCH, basic ML, portfolio optimization, XGBoost, simple Black-Scholes, credit default swaps, options pricing.
  • SIGINT: Python code for signal intelligence analysis and processing. Also available via PyPI as sigint-examples.
  • Optimization: Python code for various optimization algorithms in cvxpy and Gurobi including control, least squares, linear programs, MILP, portfolio optimization, and quadratic programs.
  • AES Block Cipher Modes: C code for implementing AES block cipher modes following NIST SP800-38X standards.
  • Post-quantum Cryptography: Implementations of ring-LWE, module-LWE, NTT, and ML-KEM in pure Rust, in accordance with NIST FIPS-203. Published to Crates.io as ntt, ring-lwe, module-lwe, mlkem-fips203.
  • Neuroimage Analysis: MATLAB code for analyzing open-source fMRI data including using DTI (diffusion tensor imaging) techniques.
  • Natural Language Processing: Python code for various NLP tasks including sentence classification, text summarization, sentiment analysis, keyword extraction, hate speech detection, next word prediction, spam detection, text classification, spelling correction, named entity recognition, and topic modeling.
  • Machine Learning: Python code for various ML tasks including MNIST classification, a Kaggle competition solution using XGBoost, t-SNE maps of SAMHSA mental health data, rank minimizing regularization techniques, and basic geometric deep learning examples.

Courses Taught

Math courses I taught at Boston University as a teaching fellow (TF) from 2013 - 2019:

Course Number Term Role
Calculus for the Life and Social SciencesMA 121Fall 2013TF
Calculus for the Life and Social SciencesMA 121Spring 2014TF
Calculus IIMA 124Summer 2014Instructor
Calculus IMA 123Fall 2014TF
Calculus IIMA 124Spring 2015TF
Calculus IIMA 124Summer 2015Instructor
Calculus IIMA 124Fall 2015TF
Multivariate CalculusMA 225Spring 2016TF
Linear AlgebraMA 242Summer 2016Instructor
Multivariate CalculusMA 225Fall 2016TF
Multivariate CalculusMA 225Spring 2017TF
Multivariate CalculusMA 225Summer 2017Instructor
Multivariate CalculusMA 225Fall 2017TF
Multivariate CalculusMA 225Spring 2018TF
Calculus for the Life and Social SciencesMA 121Fall 2018TF
Differential EquationsMA 226Spring 2019TF