Research Opportunities


Team Members








Chris's Homepage


Research Partners

VEUPL is always seeking computer science educators, open-source software developers, and HCI researchers to collaborate with us. Please contact Chris Hundhausen if you are interested.

Undergraduate and Graduate Research Assistantships

VEUPL is always looking for qualified undergraduate and graduate students with interests in human-computer interaction and GUI programming, and funded positions do open up from time to time.

For an update on available positions, please contact me.

Student Projects

The VEUPL project page contains links to current projects. An even more recent description of recent projects can be found on the VEUPL wiki. Browse these pages to see if any projects might be of interest to you. In addition, below are suggestions for student projects that I would be interested in supervising. Please contact me if you are interested in any of these, or if you have ideas of your own.

  • Exploring alternative help systems for end user programming (10/7/04). Within an end-user programming environment, how can a user best overcome common programming barriers and become productive quickly? At least two alternative, and not necessarily mutually exclusive, forms of help might be provided to users. One form of help would be to provide lightweight, minimalist instruction in context. For example, if users are having trouble formulating a Boolean comparison, the system could bring up a window with some examples of valid Boolean comparisons. An alternative form of help would be a syntax helper that allows the user to formulate only syntactically valid statements. So, for example, when the system detects that a user is having trouble with a Boolean conditional, it could pop up a special helper dialog that enabled the user to formulate a syntatically correct Boolean statement by dialog box fill-in and/or direct manipulation.

    In this project, you'd begin by designing a minimalist help system and helper dialog for a few commands in the ALVIS end-user programming environment. You would then conduct an experimental study that compared the two alternatives, along with the combination of the two. The project would ultimately be able to make more general statements about the appropriateness of the different forms of help within an end user programming environment.

  • Exploring alternative user interface models for specifying hypothetical logic within a procedural, demonstrational end-user programming environment (8/2/04)—The ALVIS algorithm visualization system supports the specification of algorithmic procedures through programming by demonstration. In ALVIS, a script window, which displays the algorithm code being executed, is synchronized with the animation window, which displays the graphical animation resulting from the execution of that code up to the current editing insertion point. A key advantage of this synchronization is that ALVIS users are able to specify much of an algorithmic procedure by directly manipulating the graphical objects in the animation window.

    As one builds an algorithm, one often needs to specify conditional blocks of code through if-else and while statements. What if the current state of the program is such that a given conditional block of code won't be entered. For example, in the following code block:

    create variable foo
    set foo to 0
    if (foo = 0)
       delete foo
       set foo to 12

    the statement within the else block will not be executed, at least not in the initial execution. Assuming that we always want the editing point in the script view to be synchronized with the animation displayed in the animation view, how can one specify the else block? At least three possible solutions could be explored:
    • Execute the script as far as possible (up until the start of the else block), but then suspend execution and operate in a non-synchronized mode in which the user can type, but not use direct manipulation to specify the code.
    • Execute the script into the else block, but enter a new, "hypothetical" mode in which direct manipulation can be used to specify statements; however, that direct manipulation is on an animation window whose state reflects the program before the if statement's true block was executed.
    • Execute the script into the else block by artificially changing the program state such that the else block would be executed. In the above example, one would have to set foo to a non-zero value in order to enter the else block.

In this research project, you would set up three experimental versions of ALVIS that implement these three alternative models, and then carry out an empirical study in which you'd have users work through algorithm specification tasks. Using a variety of measures (e.g., errors, performance time, communication breakdowns), you'd compare and contrast the three alternative solutions.

  • Evaluating the Closeness of Mapping Hypothesis (6/30/04)—I have published a pilot study that explores the hypothesis that certain programming languages (e.g., Java, C, SALSA) are more compatible with certain algorithm description languages (e.g., pseudocode, visual examples, natural language) than others. The better the match between the algorithm description and the programming language, the faster and less error-prone are translations from the algorithm description to the programming language.The pilot study provides preliminary support for the hypothesis. A nice master's thesis would be to carry out the full experiment, possibly redesigning the framework to better tease apart the issues. Note: This project requires a solid background in experimental design, and will require that a psychologist sit on your committee.)

  • A Consensus Study of Algorithms Experts (6/30/04). According to sociocultural constructivist learning theory, learning entails increasingly central participation in a community of practice. Such participation might entail an ability to participate more actively in conversations about topics of interest, and an ability to read and write the representations used by the community of practice. My CAREER Award proposal outlines a methodology, based on Cultural Consensus Theory, for measuring one's "cultural" competence within the community of "algorithmaticians" based on"reading" and "writing" tasks involving graphical representations of algorithms. A nice master's thesis would involve further fleshing out the design of a consensus study, and then carrying it out on a group of expert algorithmaticians. This paper presented at the CSCL '99 conference can help you get started with this project; talk to me for more guidance.

  • Exploring a Studio-Based Approach to teaching Human-Computer Interaction (6/30/04). My CAREER Award research is exploring a studio-based approach to teaching an undergraduate course on computer algorithms and data structures. This approach seems perhaps even more fruitful in a course on human-computer interaction design. In addition to a weekly lecture, such a course could revolve around a weekly, 150-minute "design studio" that emphasizes conceptual user interface design activities. Pairs of students could interact with custom, sketch-based software (similaar to ALVIS) to construct low fidelity design prototypes that meet the requirements of given design problems. Each design problem would (a) focus on the development of an interface to a specific electronic device (e.g., a VCR) or software system (e.g., a ticket booking system) and (b) require students to apply the design processes and principles currently being explored in class. In "design crits" held at the end of each studio, select pairs of students would present their designs to the rest of the studio for feedback and discussion. A master's thesis on this topic would involve implementing the underlying sketch-based software, and testing it out within a pilot studio-based offering of CptS 443 (HCI).

  • Comprehensive Literature Review of Software Visualization Empirical Studies (6/3/2002)—I have published a meta-analysis of experimental studies of algorithm visualization effectiveness. I am interested in expanding this meta-analysis not only to non-experimental empirical studies, but also to empirical studies of software visualization, rather than just algorithm visualization. Software visualization encompasses the use of visual representations to aid in software design, engineering, and debugging. What empirical studies have examined software visualization in these contexts, and what have been the results?

  • Do proofs really help? (6/3/02)—Some software engineers tout formal proof techniques as an effective means of ensuring the correctness of software. This is actually an empirical question, testable through a comparative study of formal proofs versus alternative correctness-enhancing measures such as unit testing and debugging. An interesting research project would be to design and carry out such a comparison.

  • Design activities in computer science (6/13/02)—Computer science practice is filled with design activities. For example, computer scientists design algorithms, user interfaces, VLSI circuits, and object-oriented software. What do these design activities have in common? What is the role of collaboration and visualization in these design activities. This project entails conducting some field studies of various computer science design activities, with the goal of better understanding their similarities, differences, and how collaboration and visualization technologies might better support these activities.


Last modified by C. Hundhausen on Oct. 13, 2007