Picture of Margaret Burnett and Martin Erwig at a whiteboard.


The Software Engineering and Human-Computer Interaction group 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.

Photo of Margaret Burnett
Inclusivity means listening to all voices — creating a beautiful polyphonic sound. In this podcast, learn about Distinguished Professor Margaret Burnett’s mission to change the way software is designed to be more gender inclusive. Also, meet her former student Kyle Rector, now at University of Iowa, who designed software to help people with vision impairments learn yoga.

Sub Areas

  • End-User Software Engineering
  • Programming Tools, Environments, and Analysis
  • Human Factors in Software Engineering
  • Software Maintenance and Evolution

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


Photo of Julie A. Adams

Julie A. Adams
Distributed artificial intelligence; robotics; human-machine teaming; human-computer interaction; human-robot interaction

Photo of 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

Photo of Raffaele de Amicis

Raffaele de Amicis
Virtual & augmented reality; virtual engineering; GeoVisualization; geometric modelling; sketch- and gesture-based interaction; digital heritage

Photo of Martin Erwig

Martin Erwig
Language design and domain-specific languages; functional programming; visual languages; end-user software engineering

Photo of Christopher Hundhausen

Christopher D. Hundhausen
Design and evaluation of social learning environments, learning analytics environments, and pedagogical approaches

Photo of Minsuk Kahng

Minsuk Kahng
Human-centered AI; data visualization; interpretable machine learning; visual analytics for deep learning; human-computer interaction; databases; data mining

Photo of Heather Knight

Heather Knight
Human-robot interaction; non-verbal machine communications; non-anthropomorphic social robots

Photo of Anita Sarma

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

Affiliated Faculty

Photo of Glencora Borradaile

Glencora Borradaile
Counter-surveillance; human factors in digital security; graph algorithms; computational geometry