Tomáš Petříček, 309 (3rd floor)
petricek@d3s.mff.cuni.cz
https://tomasp.net | @tomaspetricek
Lectures: Monday 12:20, S7
https://d3s.mff.cuni.cz/teaching/nprg075
None of the things
we talked about?
Popular \(\neq\) Good
The index has its flaws
Still, a reason to think!
Enthusiastic community?
Good tooling?
Clean idea?
Practicality?
Need to talk about
less exact things!
High-level rules, characteristics or principles
Developed by experts, based on reviews and experience
Useful for evaluation, classifying, analysis,
new design
Coding at the computer prohibitively expensive
Write program, punch on cards, submit & wait
A few day feedback cycle!
Planning and coding of problems for an electronic computing instrument (Goldstine, von
Neumann, 1948)
(Tanimoto, 1990)
Level 1
Flowchart that exists independently of a program
Level 4
Continuous processing with immediate dynamic change of behaviour
Variety of dimensions
For a given activity
Activities
Generic activities
involving notations
Each has different notational needs
Variety of dimensions
For a given activity
Dimensions
Characteristic
of the notation
Human-computer interaction analysis perspective
Two ways of specifying email filters
Visual rule editor vs.
scripting language
Adding new condition
Viscosity
Not all additions possible
Abstraction
Condition format is fixed
Hard mental operations
Everything is simple & clear
Adding new condition
Viscosity
Edit text for any change
Abstraction
Possible via a script
Hard mental operations Understanding code is hard
Contrast with text for addition (writing code)
Premature commit
Diffuseness / verbosity
Abstraction
Error-proneness
Integrated and complete set of
tools sufficient for creating,
modifying, and executing programs
Notations for structuring programs
and data, facilities for running and
debugging programs, and interfaces
for performing all of these tasks.
Based on analysis of past and modern systems
Capture their key characteristics
Describe a range of possible values
Descriptive, not prescriptive
Interaction
Feedback Loops
Modes of interaction
Abstraction Construction
Notation
Notational Structure
Surface/Internal
Primary/Secondary
Expression Geography
Uniformity
Error Handling
Error Detection
Error Response
Conceptual Structure
Integrity/Openness
Composability
Convenience
Commonality
Customizability
Staging
Externalizability
Additive Authoring
Self-Sustainability
(Others)
Degrees of Automation
Learnability & Sociability
Both idea generation
and evaluation
Depends on the
kind of heuristic
Categorical allows questioning
Ordinal allows for
degree comparison
Heuristic evaluation of programming systems
Tomáš Petříček, 309 (3rd floor)
petricek@d3s.mff.cuni.cz
https://tomasp.net | @tomaspetricek
https://d3s.mff.cuni.cz/teaching/nprg075
Live visual programming
Language adoption & Heuristics
Cognitive, technical & memory models
A bit of history