You are here

Software Engineering, Human-Computer Interaction, and Programming Languages

Burnett research group


The Software Engineering, Usability, and Programming Languages is a multi-perspective group focusing on a single problem: how to help people develop software that is effective and accurate. The people we are trying to help range from professional programmers to end users who use special-purpose tools to create their own software.

The approaches we use in conducting this research range from automated behind-the-scenes reasoning about the software being created, to human-computer-interaction methods for targeting software tools to the needs of the human programmers using it, to formal methods of reasoning precisely about the properties of software being developed, to language design to create the right kind of language for the kind of task the software is trying to address.

Our work is collaborative, spanning across department boundaries and beyond, with collaborators at IBM, Microsoft, and numerous other industrial and university researchers involved. In some of our research thrusts, such as end-user software engineering, we are regarded as international leaders.

Research Thrusts

Software Engineering and Human-Computer Interaction

  • End-user software engineering (end-user programming/debugging/testing/design)
  • Software errors and how to deal with them: debugging, software testing, formal modes of software
  • Programming tools, environments, and program analysis (testing, debugging, reuse, usability)
  • Open source software development (communities, infrastructure, usability)
  • Gender HCI in programming tools
  • Human aspects of programming and/or programming tools
  • Usability

Programming Languages

  • Domain-specific languages
  • Functional programming
  • Language design
  • Program analysis
  • Visual languages

Related Courses

  • CS 519: Special topics
  • CS 561: Software engineering
  • CS 562: Applied software engineering
  • CS 569: Special topics in software engineering
  • CS 581: Programming languages
  • CS 582: Object-oriented analysis and programming
  • CS 583: Functional programming
  • CS 584: Human factors of programming languages
  • CS 589: Special topics in programming languages

Software Downloads

The Topes Validation Toolkit helps find spreadsheet cells that might have text typos and transform data among different formats, saving you time and effort. It also includes an SDK for validating and reformatting data outside of spreadsheets. http://topedepot.info/



Margaret Burnett

Margaret Burnett
Human issues of programming & software engineering: end-user programming, end-user software engineering, information foraging theory as applied to programming, how gender issues relate to software

Martin Erwig

Martin Erwig
Language design and domain-specific languages; functional programming; visual languages; end-user programming (in particular, spreadsheets); end-user software engineering

Carlos Jensen

Carlos Jensen
Usability aspects of open source software development, distributed collaboration, and social aspects of joining open source projects; information overload; usable privacy and security

Anita Sarma

Anita Sarma
Coordination and collaboration in distributed teams; configuration management systems; software maintenance and evolution; software visualization

Eric Walkingshaw

Eric Walkingshaw  
Type systems; functional programming; visual languages; designing languages for domain experts who may not be professional programmers

Danny Dig

Danny Dig
Software engineering, in particular interactive program transformation, automated refactoring, concurrency and parallelism, object-oriented frameworks, software testing, and software evolution

Alex Groce

Alex Groce
Software engineering, particularly testing, model checking, code analysis, debugging, and error explanation

Cherri Pancake

Cherri M. Pancake
User requirements and usability engineering; user interface design; adapting advanced IT to the specialized needs of scientists and engineers; distributed research collaboration

Christopher Scaffidi

Christopher Scaffidi  
Intersection of software engineering and human-computer interaction, especially related to end-user programming and code reuse


Research Facilities


This lab is used by our faculty and students for group-based studies of users and other research activities requiring multiple people and set-up over time, such as collaborative software development and multi-session group brainstorming sessions. It features space to spread out, white board and wall space to hold notes over the long term, and about a dozen computers with special instrumentation that can be used to conduct group user studies.


This lab is used by our faculty and students for controlled studies of how individual or small groups of users interact with different types of tools. It includes a whiteboard, large display systems, a Tobii eye-tracking system, 3 remote controllable cameras, and heart-rate monitoring equipment.

Research Partners

Air Force Research Lab logo Aries Design logo IBM Research logo Cambridge University logo
Carnegie Mellon University logo City University London logo Drexel University logo Garmin logo
Intel Corporation logo Jet Propulsion Laboratory logo NASA logo National Instruments logo

Pennsylvania State University logo

Saturday Academy logo Tennessee State University logo U.S. Forest Service logo
University of Idaho logo University of Illinois at Urbana–Champaign logo University of Nebraska logo University of Oxford logo
University of Paderborn logo University of Toronto logo University of Utah logo University of Washington logo
Virginia Polytechnic Institute and State University logo      

Selected Projects

Adaptation-Based Programming
( Fern, Erwig, Nguyen)

  • Finding mixed strategies for combining deterministic programming and machine learning, leading to a new programming paradigm called "adaptation-based programming"
  • Developing a theoretical model for adaptation-based programming and designing a Java library to make the ideas widely usable
  • Application to game programming and network protocols

End-User Software Engineering
( Burnett, Erwig, Groce, Jensen, Law, Niess, Scaffidi, Wong)

  • Investigates ways to bring the benefits of rigorous software engineering methodologies to end-user programmers (such as spreadsheet users) who have no training or interest in software engineering.
  • This is an international consortium with 8 member institutions, with its home base as OSU. (The other institutions are: Cambridge University (UK), Carnegie Mellon University, Drexel University, IBM, Pennsylvania State University, University of Nebraska, University of Washington). Project Director: Christopher Scaffidi.
  • Funded by: multiple NSF grants.

End-User Debugging and Testing of Machine Learning
( Burnett, Groce, Wong)

  • Investigates how end users can problem solve about the way intelligent assistants are attempting to help them, how they can know how much to trust the assistant system, how they can guide the system to correct its flaws, and how the machine learning component can take the user's guidance into account effectively.
  • Funded by: NSF, Air Force Office of Scientific Research.

Gender HCI
( Burnett, Jensen)

  • Investigates whether there are gender differences that relate to software tools and development environments, and develops new features and software that account for these differences to make the tools better for everybody.
  • Funded by: multiple NSF grants, Microsoft Research.

Information Foraging Theory in Software Maintenance
( Burnett, Scaffidi)

  • Investigates an underlying theory as to how people perform software maintenance, and how software tools informed by that theory can improve people's ability to perform maintenance tasks such as debugging.
  • Funded by: Air Force Office of Scientific Research, IBM Research grants.

Open Source Joining and Social Dynamics
( Jensen)

  • Investigates the hurdles users of Open Source projects face when seeking to contribute to an open source project, including the learning hurdles, the tools available, and the social interactions that occur.
  • Investigates various mechanisms for increasing participation and success in open source project at the university level. This includes developing a custom project hosting site (http://beaversource.oregonstate.edu), and an open computer platform called the OSWALD (http://beaversource.oregonstate.edu/projects/cspfl).
  • Funded by: NSF