Daniel Ashbrook, PhD

7GUIs benchmarks for GUI programming 📔

The tasks were selected in the original thesis (see Comparison of Object-Oriented and Functional Programming for GUI Development in Zotero) based on the criteria of being smll, self-contained, and reflecting typical GUI programming challenges. The benchmark criteria are usability with respect to the source code (not the final app!).

The 7 tasks

  1. Counter: click a button, increment the counter. Challenge: Understanding the basic ideas of a language/toolkit.
  2. Temperature converter: bidrectional Celsius/Fahrenheit. Challenge: Understanding the basic ideas of a language/toolkit.
  3. Flight booker: constraints between one-way/return flight dates and enabled date pickers. Challenge: Constraints.
  4. Timer: progress bar timer advances, slider live-changes length of timer. Challenges: concurrency, competing user/signal interactions, responsiveness.
  5. CRUD: display list of people names, create new, update existing, delete existing, live filter. Challenges: separating the domain and presentation logic, managing mutation, building a non-trivial layout.
  6. Circle drawer: click to make a circle; click in a circle to adjust diameter with slider; also undo/redo. Challenges: undo/redo, custom drawing, dialog control.
  7. Cells: mini spreadsheet with formulas. Challenges: change propagation, widget customization, implementing a more authentic/involved GUI application.

Cognitive Dimensions evaluation criteria

A subset of the full list of 14:

Reference

  1. https://eugenkiss.github.io/7guis/