StackOverflow for Programming Strategies

  • Sneha Iyer Aspiring Scientists' Summer Internship Program, 2019
  • Maryam Arab Department of Computer Science, Volgenau School of Engineering, George Mason University
  • Dr. Thomas Latoza Department of Computer Science, Volgenau School of Engineering, George Mason University


Programming Strategies are human-executable plans that developers use to solve challenging programming problems. A programming strategy describes a series of steps that developers can take in order to solve common programming problems and complete a task more successfully and effectively. This project is aimed at creating an online community to help developers write and share programming strategies more easily. Software developers face a number of challenges in writing down their programming strategies. For example, they must follow specific grammar so that the computer can understand their strategy. Thus, the goal of this project is to help developers do this successfully by returning error messages and feedback to the developer as they write programming strategies. We used a parser generator, called Nearley, to generate a parser based on the grammar. This enabled us to generate a representation of each Roboto strategy written by developers in a manner that enabled us to generate error messages. A second goal was to foster successful community interactions between developers, encouraging and supporting developers in writing down their strategies. To support this, we build a simple user interface for expressing strategies, enabling other developers to give comments on the strategies that the developer wrote. We also explored additional design considerations in how social mechanisms can best foster successful communities for sharing programming strategies.

Abstracts from the 2019 Aspiring Scientists' Summer Internship Program