Madeline Endres

PhD Candidate, Full CV (Updated as of February 2022)

Computer Science and Engineering

University of Michigan


I am a forth-year computer science PhD student at the University of Michigan where I am advised by Westley Weimer. Broadly, my research is at the intersection of software engineering and human factors where I am interested in exploring creativity, communication, and cognition. On the cognition side, I use neuroimaging and transfer-training-based experiments to study connections between natural language, spatial reasoning, and software engineering. As for communication, I have helped build and evaluate tools that automatically provide debugging hints for novices. I am also interested in how humans can best communicate scientific results, both of automatic patches and in other mediums such as Jupyter Notebooks. Finally, with respect to creativity, I am interested in understanding the diversity of human thought as expressed through programming. When I'm not working on research, I enjoy cooking, reading, traveling, hiking, and having long, overwrought conversations about moral philosophy, history, and astrophysics. I also play cello, and I'm always up for improvising and swapping music recommendations!

Academic Highlights

Cognitive Basis of Programming

In this area of work, I use a variety of techniques, including programming tests, psychological assessments, and medical imaging to better understand the factors behind programming expertise with the ultimate goal of helping novices become experts faster.

Indicative Papers: Relating Reading, Visualization, and Coding for New Programmers: A Neuroimaging Study

Ongoing Projects: Using VR to teach spatial reasoning for novice programmers, and investigating cognitive causality in programming more directly using TMS

Programming and Mind Altering Substances

For this line of work, I investigate both the perceptions and effects of mind-altering substance use on both programming ability and general user interface interactions. I am interested in how this substance use can impact and shape programming culture, conflict between software company policy and developer preferred behavior, and impacts on productivity or creativity.

Indicative Papers: Hashing It Out: A Survey of Programmers' Cannabis Usage, Perception, and Motivation

Ongoing Projects: Deeper qualitative analysis, an observational study on cannabis use while programming, and an exploration of cannabis use's effect on UI interactions.

Communication of Scientific Results

Coming soon

Automatic Program Repair for Novices

Around a third of all novice Python programs contain a call to standard input. These inputs can be surprisingly complex and can contain bugs. However, modern programming hint generators usually consider only the source code when identifying and fixing errors. With this work, I aim to understand input structures and and fix erroneous inputs for unique novice programs.

Indicative Papers

  • InFix: A tool for automatically repairing erroneous inputs for novice Python programs.
  • Peer-Reviewed Publications

    For a separation between conference/journal papers and workshop papers see my CV

  • Madeline Endres, Westley Weimer, Amir Kamil: Making a Gamble: Recruiting SE Participants on a Budget: To appear in the 1st Workshop on Recruiting Participants for Empirical Software Engineering (ROPES@ICSE), 2022.

  • Priscila Santiesteban, Madeline Endres, Westley Weimer: An Analysis of Sex Differences in Computing Teaching Evaluations: To appear in the 3rd Workshop on Gender Equality, Diversity, and Inclusion in Software Engineering (GE@ICSE), 2022. [ DataSet (to appear before May)|

  • Annie Li, Madeline Endres, Westley Weimer: Debugging with Stack Overflow: Web Search Behavior in Novice and Expert Programmers: To appear in the proceedings of the International Conference on Software Engineering — Software Engineering Education and Training (ICSE-SEET), 2022. [ Stimuli and Analysis|

  • Madeline Endres, Kevin Boehnke, Westley Weimer: Hashing It Out: A Survey of Programmers' Cannabis Usage, Perception, and Motivation: To appear in the proceedings of the International Conference on Software Engineering (ICSE), 2022. [ Stimuli and Data|

  • Madeline Endres, Madison Fransher, Priti Shah, Westley Weimer: To Read or To Rotate? Comparing the Effects of Technical Reading Training and Spatial Skills Training on Novice Programming Ability: Foundations of Software Engineering (ESEC/FSE), 2021. [ Replication Package]

  • Madeline Endres, Zachary Karas, Xiaosu Hu, Ioulia Kovelman, Westley Weimer: Relating Reading, Visualization, and Coding for New Programmers: A Neuroimaging Study: International Conference on Software Engineering (ICSE), 2021. [ Stimuli and Data|  Slide Deck|  Conference Talk]

  • Madeline Endres, Westley Weimer, Amir Kamil: An Analysis of Iterative and Recursive Problem Performance: Special Interest Group on Computer Science Education (SIGCSE), 2021. [ Stimuli and Data|  Conference Talk]

  • Georgios Sakkas, Madeline Endres, Benjamin Cosman, Westley Weimer, Ranjit Jhala: Type Error Feedback via Analytic Program Repair: Conference on Programming Language Design and Implementation (PLDI), 2020.

  • Benjamin Cosman, Madeline Endres, Georgios Sakkas, Leon Medvinsky, Yao-Yuan Yang, Ranjit Jhala, Kamalika Chaudhuri, Westley Weimer: PABLO: Helping Novices Debug Python Code Through Data-Driven Fault Localization: Special Interest Group on Computer Science Education (SIGCSE), 2020.

  • Madeline Endres, Georgios Sakkas, Benjamin Cosman, Ranjit Jhala, Westley Weimer: InFix: Automatically Repairing Novice Program Inputs: Automated Software Engineering (ASE), 2019. [ Slide Deck|  Code Repository |  Stimuli and Data]
  • Posters and Presentations

  • Automatically Repairing Input Data for Novice Programs: IPIT Student talks, Ann Arbor Michigan, 2019. [ Slide Deck]
  • Computer Science Courses: Design Experience

    University of Michigan

    Computer Science Courses: TA Experience

    University of Michigan

    Other Teaching Experience

    • 2909 Bob and Betty Beyster Building
      Computer Science and Engineering
      University of Michigan
      2260 Hayward Street
      Ann Arbor, MI 48109-2121