• Occurrence Typing for Reticulated Python: Extend Reticulated Python, a gradually typed language for Python, with Occurrence Typing which allows Reticulated to type-check more programs compared to the initial type system. 
  • Redistricting using Active Contours: The problem of assigning district boundaries to ensure fairness and legality of boundaries is a very important problem, especially in the upcoming 2020 United States redistricting cycle. In this project, we examine existing computational redistricting methods and propose a new method that uses Chan-Vese active contours and K-Means clustering for drawing district boundaries. As compared to previous approaches, our method introduces more flexibility by redistricting based on a scoring function which can be specified by the user.
  • BSL Interpreter: Implements an evaluator for a small subset of Racket, called Beginning Student Language (BSL), written in Python.
  • CEK Machine: CEK style evaluator for a simple language, in Python syntax.
  • GADTs: Simple interpreter written in Haskel using GADTs.