1 / 29

HCI of Programming: An Introduction

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

cathal
Télécharger la présentation

HCI of Programming: An Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    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. 210. [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. Samuray, and D. J. Gilmore, Eds. San Diego, Calif.: Academic Press, 1990, ch. 2.3, pp. 139156. [Myers 2004] B. A. Myers, J. F. Pane, and A. Ko, Natural programming languages and environments, Commun. ACM, vol. 47, no. 9, pp. 4752, 2004.

More Related