290 likes | 438 Views
Using Computers. Approach: Acquire the skills?The best way to destroy an enemy is to make him a friend." - Abraham LincolnHow does a computer work?What can a computer do?How can I control a computer?. First Approach. The computer is a tool.Learn to use it!. Using Computers. Approach: Make the
E N D
1. HCI of Programming:An Introduction Presented by Christoph Neumann
CS 519: HCI
November 13, 2006
2. Using Computers Approach: Acquire the skills
“The best way to destroy an enemy is to make him a friend.” - Abraham Lincoln
How does a computer work?
What can a computer do?
How can I control a computer?
3. First Approach
The computer is a tool.
Learn to use it!
4. Using Computers Approach: Make the computer more like me
“Give me six hours to chop down a tree and I will spend the first four sharpening the axe.”- Abraham Lincoln
What do I need to do?
How do I work?
How can the computer support me?
5. Second Approach
The computer is a tool.
Make it more suitable to me!
6. Contrast Computer Centric:
Assist human to adapt to the computer. Human Centric:
Assist the computer to adapt to the human.
7. Contrast Both approaches involve
Computer as a tool
Learning to use a tool
Focus is different
Traditional: “This is how it is done. QED.”
HCC: “This is what I need to do. I just want to get work done.”
8. Programming HCI A programming system is a user interface
Notation
Environment
Questions
What can we create by programming?
What do we need when programming?
How can the computer support that activity?
9. What is Programming?
Who wants to take a shot at defining this?
Anyone?
(Hey you there in the back!)
10. A Definition of Programming
Creating a program
written in a programming language
11. Another Definition
“A procedure specification task by the means of a computer language” [Hoc 1990]
12. Another Definition
The use of “an abstract notation to define required behavior in different circumstances.” [Blackwell 2002]
13. Another Definition
“The process of transforming a mental plan in familiar terms into one compatible with the computer.” [Myers 2004]
14. Unified Definition The process of transforming a mental plan, in familiar terms, into an abstract notation that represents the plan in terms compatible with the computer.
15. Programming Process
16. Key Ideas
Human Side
Mental Model
Abstraction
Computer Side
Representable Model
Lingustic Notation
17. Nature of Programming Loss of direct manipulation
Poking, jabbing, manipulating real stuff
Affecting things “right now”
Use of abstraction
Managing “the future”
Controlling what will happen
Express this plan, process, strategy with notation
18. Programming Strategies If I do “X”, the computer will do “Y.”
How do I get the computer to do Y?
Why is the computer doing Z and not Y?
What does “X” mean the computer will do?
19. Example: Intelli-train
20. “Natural Programming” Approach Goal:A close “mapping” from problem to solution
Means
A more “natural” notation
Concrete domain
Programming strategy is more intuitive
21. Gaming Example: Character Control Problem: mapping physical movements to virtual movements
How do I get Mario to:
“jump”?
do a back flip?
Bounce off the wall, do a back flip and land on an evil goomba while spraying a chomping flower?
Could we write this sequence down?
22. Exciting Game Developments Depth of realism
Closeness of control
More intuitive input methods
23. Recent Example Head to head competition
Possible to play online
Soon to be released for XBOX
Future releases might add team play
Sounds pretty cool! Want to buy it?
24. Pong!
25. Problem With Experts Designers and “end users” of general purpose languages.
Not “end user” of “end user” languages
Experts “gut level reactions” are tainted (biased, non-objective, preferential, out-of-touch, etc.)
My wife has trouble with Mario, she does not want to play “Call of Duty”
26. Relevance of Games Example? Programming is hard
Finding strategies
Representing strategies
Understanding abstractions
How can we lower barriers for end users?
One approach: Lower abstraction
27. Lowering Abstraction Domain Specific
spreadsheets
“game like” microworlds worlds
More concrete syntax
programming by demonstration
tangible syntax
error-proof syntax
28. Some Tradeoffs Less abstraction = Less expressive
More direct manip. = More editing “spadework”
Higher visibility = More visual noise
(See “Cognitive Dimension” for a good discussion of tradeoffs. [Green 1998])
29. References [Blackwell 2002] A. Blackwell, “First steps in programming: a rationale for attention investment models,” in Human Centric Computing Languages and Environments, 2002. Proceedings. IEEE 2002 Symposia on, 2002, pp. 2–10.
[Green 1998] T. Green and A. Blackwell, “Cognitive dimensions of information artefacts: A tutorial,” Oct 1998, version 1.2. http://www.cl.cam.ac.uk/~afb21/CognitiveDimensions/CDtutorial.pdf
[Hoc 1990] J.-M. Hoc and A. Nguyen-Xuan, “Language semantics, mental models and analogy,” in Psychology of Programming, ser. Computers and People Series, J.-M. Hoc, T. R. G. Green, R. Samurçay, and D. J. Gilmore, Eds. San Diego, Calif.: Academic Press, 1990, ch. 2.3, pp. 139–156.
[Myers 2004] B. A. Myers, J. F. Pane, and A. Ko, “Natural programming languages and environments,” Commun. ACM, vol. 47, no. 9, pp. 47–52, 2004.