About me
Research
I'm currently collaborating on research on graph-based program slicing techniques for data provenance, e.g. linking dependencies between program outputs and inputs. This builds on our previous work which takes a trace-based approach to program slicing [λ].During my PhD, I investigated how algebraic effects and effect handlers can be used to improve the design of probabilistic programming languages. I used these techniques to implement a type-safe, modular framework for programmable inference [λ], and an embedding of probabilistic models as first-class citizens [λ].
Other projects I've led include the application of recursion schemes for implementing and training neural networks [λ]; in particular, I show how neural networks can be represented as fixed-points of recursive data structures, and forward and back propagation as folds and unfolds over these structures.
Papers, etc.
Effect Handlers for Programmable Inference (preprint, proceedings)
M.Nguyen, R.Perera, M.Wang, S.Ramsay
Haskell Symposium, 2023
Towards Type-driven Data Science in Idris (abstract, repository)
O.Kammar, K.Marek, M.Nguyen, M.Steuwer, J.Walters, R.Wright
Languages for Inference Workshop, 2023
Folding over Neural Networks (preprint, proceedings)
M.Nguyen, N.Wu
Mathematics of Program Construction, 2022
Modular Probabilistic Models via Algebraic Effects (preprint, proceedings, repository)
M.Nguyen, R.Perera, M.Weng, N.Wu
International Conference on Functional Programming, 2022
Linked visualisations via Galois dependencies (preprint, proceedings, repository)
R.Perera, M.Nguyen, T.Petricek, M.Weng
Principles Of Programming Languages, 2022
Composable, Modular Probabilistic Models (extended abstract, poster)
M.Nguyen, R.Perera, M.Weng
International Conference on Functional Programming (SRC), 2021
Composable, Modular Probabilistic Models (paper)
M.Nguyen, R.Perera, M.Weng
Implementation and Application of Functional Languages, 2021
Modelling Neural Networks with Recursion Schemes (dissertation, poster, repository)
M.Nguyen, N.Wu
Masters Dissertation @ University of Bristol, 2019
Talks
Effects and Effect Handlers for Probabilistic Programming
PhD Defence, Sep 2023
Effect Handlers for Programmable Inference
Haskell Symposium, Sep 2023 (video)
Tech Talk @ The Alan Turing Institute, May 2023
Modular Probabilistic Models via Algebraic Effects
International Conference on Functional Programming, Sep 2022 (video, slides)
Programming Languages Seminar @ University of Edinburgh, May 2022 (slides)
Tech Talk @ The Alan Turing Institute, Jan 2023
Folding over Neural Networks
Mathematics of Program Construction, Sep 2022
Composable, Modular Probabilistic Models
International Conference on Functional Programming (SRC), Sep 2021 (video, slides)
Implementation and Application of Functional Languages, Sep 2021 (video, slides)
Work + Studies
Sep 2023 - CurrentEPSRC Doctoral Prize Fellow in Programming Languages
hosted by Cristina David @ University of Bristol
Jun 2022 - Sep 2022
Research Intern: Dependently typed probabilistic programming for Idris2 (repositories)
supervised by Ohad Kammar @ University of Edinburgh
Jan 2020 - Sep 2023
PhD in Programming Languages
supervised by Meng Wang and Roly Perera @ University of Bristol
Sep 2016 - Oct 2020
MEng in Computer Science (first class)
dissertation supervised by Nicolas Wu @ University of Bristol
Teaching
2023Supervisor for a 2nd year CS student in their research internship, on "Typed Functional Programming Techniques for Probabilistic Programming" @ University of Bristol.
2020 - 2021
Supervisor for a 4th year CS student in their masters dissertation, on "Deep Learning Architectures As Pure Functions" @ University of Bristol.
2019 - Current
Seminars and guest lectures to the Programming Languages Research Group and CS undergraduates @ University of Bristol.
2017 - 2022
Teaching assistant for the Functional Programming, Language Engineering, and Advanced Topics in Programming Languages units @ University of Bristol.
Awards
2023 ESPRC Doctoral Prize Fellowship Award for the proposal "Robust, Reusable Computational Models via Typed Functional Programming"2021 1st Place in the ICFP ACM Student Research Competition
2019 Best Machine Learning Dissertation, Bloomberg Award, University of Bristol
2018 Best Third Year Group Project, Graphcore Award, University of Bristol
2017 Top Ten Achieving CS Students, Netcraft Award, University of Bristol