profile pic

Alex G

- Research Program Mentor

PhD Doctor of Philosophy candidate


ML for software engineering, automatic code generation, interpreting neural networks

Project ideas

Project ideas are meant to help inspire student thinking about their own project. Students are in the driver seat of their research and are free to use any or none of the ideas shared by their mentors.

Generating Code Skeletons from Natural Language

Consider a developer who is designing a classroom management application in an object-oriented language. First, they will decide which classes they need: students, assignments, teachers, etc. Then, for each class, they need to come up with its attributes and methods: a “student” class contains a “name” field, a “turn in assignment” method, etc. Mapping out these classes, attributes, and methods is a tedious and error-prone process. Web developers often spend hours or days creating these class diagrams, and the goal of this project is to automate that. The goal of this project is to let users specify a text description of an application and automatically synthesize these class diagrams from that description. Eventually, our synthesized class diagram will provide users with a complete set of classes, attributes, and methods, though our system currently only synthesizes classes and attributes. To generate an initial set of classes, we use NLP techniques to extract relevant noun phrases from the text description. By asking GPT-3 questions about these initial classes (such as “What does a student have?”), we are able to synthesize the fields of each class and recursively generate more classes.

Coding skills

Python, OCaml

Interested in working with expert mentors like Alex?

Apply now