Automated Transformation of Computer Programs
Project Description
Software plays a central role in numerous aspects of human society. Current software development practices involve significant developer effort in all phases of the software life cycle. One big challenge here is how to move human knowledge across the boundaries of various software and computing platforms to serve different purposes. In this project, we will remedy this gap by developing automated techniques that analyze and transform computer programs across different languages and platforms. Potential domains to study include web applications, user interface implementations, and machine learning scripts.
Supervisor
SHEN, Jiasi
Quota
5
Course type
UROP1000
UROP1100
UROP2100
UROP3100
UROP3200
UROP4100
Applicant's Roles
Please first meet with Dr. Shen to discuss the project details before applying for this UROP project.

You will choose a target domain of computation to work on, look at relevant computer programs and identify patterns, and leverage these patterns to design algorithms for analyzing programs. If time allows, you will also implement and evaluate their algorithms. You are expected to meet weekly with the supervisor to discuss progress.
Applicant's Learning Objectives
This project is challenging and highly original. You will have the opportunities to propose theoretical ideas to open-ended questions and gain system-level programming experience. You will also learn skills for reasoning about computer programs.
Complexity of the project
Challenging