UROP Openings

Have a UROP opening you would like to submit?

Please fill out the form.

Submit your UROP opening

UROPs Needed To Run Programs Backwards! adsa




CSAIL: Computer Science and Artificial Intelligence Lab

Faculty Supervisor:

Armando Solar Lezama

Faculty email:


Apply by:

July 9th



Project Description

We are developing exciting algorithms to run complicated programs backwards, literally.  The goal is straightforward: to take a program (e.g. a rendering function which maps geometry to images), and construct an inverse program (e.g. which maps images to geometry). Executing a program backwards is non-trivial, so we apply a combination of semantic program analysis and machine learning to help. We have a number of possible projects for a UROP:(i) To invert bigger and more complex programs. As we've indicated, one application we're particularly interested in is vision as the inverse of 3D rendering.(ii) To extend the kinds of programs we can invert (e.g. to imperative or recursive programs; dynamical systems)(iii) To invert random variables for Bayesian inference(iv) To analyze the static and dynamic behavior of the forward function with machine learning to assist with its inversion. To apply, please email Zenna Tavares at zenna@mit.edu


The greater your skill set and interests overlap with the following set, the stronger we urge you to get in touch:{program analysis, (deep) machine learning, probabilistic inference, computer graphics, planning, reinforcement learning, constraint solving} Solid programming ability required, in any of Python, Julia and C++