Transcript
Computers have revolutionized our daily lives, and yet the way we program computers has changed little in the last several decades.
But now, a team of researchers - representing nine leading U.S. computer science programs - is using a model of programming called "automated program synthesis," through which computers can generate pieces of code based on a user's intent, expressed using various non-code-based forms, such as examples, demonstrations or natural language commands.
The initiative, called ExCAPE, aims to change programming from a purely manual task to one in which a programmer and an automated program synthesis tool collaborate to generate software that meets its specification.
By removing the need for would-be programmers to learn esoteric programming languages, the method has the potential to significantly expand the number of people engaged in programming in a variety of disciplines, from personalized education to robotics.
Looking at the growing area of online learning, the ExCAPE team further recognized the role that program synthesis tools could play in generating automatic feedback for students - analyzing their solutions, grading their assignments, and providing meaningful explanations of their mistakes.
That's why the team created Automata Tutor, which has been used by more than 5,000 students from more than ten universities around the world. A team presented the results from the early deployment of Automata Tutor in the journal ACM Transactions on Computer-Human Interaction.
The group has created other tools, including AutoProf, which provides feedback on introductory programming assignments in computer languages, such as Python. Another tool, CPSgrader, automatically grades laboratory courses in cyber-physical systems and provides feedback.
The ExCAPE team's research has affected the commercial software world, too. Its notion of syntax-guided synthesis inspired Microsoft to create automated program synthesizers for its suite of software. For instance, the technology giant has developed a generic programming-by-example synthesizer called FlashMeta.
|