announcements
Download
Skip this Video
Download Presentation
Announcements

Loading in 2 Seconds...

play fullscreen
1 / 42

Announcements - PowerPoint PPT Presentation


  • 71 Views
  • Uploaded on

Announcements. Design Jam schedule Project – Evaluation due Fri July 30 th 11:59pm Paper presentations Paper/System presentations. Takers? Tue: Eisenberg et al.’s “Apatite: A New Interface for Exploring APIs” www.cs.cmu.edu/~NatProg/papers/p1331-eisenberg-apatite-CHI.pdf

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Announcements' - kent


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
announcements
Announcements
  • Design Jam schedule
  • Project – Evaluation due Fri July 30th 11:59pm
  • Paper presentations
  • Paper/System presentations. Takers?
    • Tue: Eisenberg et al.’s “Apatite: A New Interface for Exploring APIs”

www.cs.cmu.edu/~NatProg/papers/p1331-eisenberg-apatite-CHI.pdf

    • Tue: Daughtry et al.’s: “API usability: Report on Special Interest Group at CHI”

http://john.daughtryhome.com/publications/DAUGHTRY_FAROOQ_MYERS_STYLOS_SEN_2009.pdf

cognitive dimensions
Cognitive Dimensions
  • Analytical technique to evaluates visual programming languages (VPLs)
  • VPLs
    • let users create programs by manipulating program elements graphically rather than by specifying them textually
  • Examples?
yahoo pipes
Yahoo!Pipes
  • http://pipes.yahoo.com/pipes/
dimensions outline
Dimensions Outline
  • Abstraction Gradient: What are the minimum and maximum levels of abstraction? Can fragments be encapsulated?
  • Closeness of mapping: What ‘programming games’ need to be learned?
  • Consistency: When some of the language has been learnt, how much of the rest can be inferred?
  • Diffuseness: How many symbols or graphic entities are required to express a meaning?
  • Error-proneness: Does the design of the notation induce ‘careless mistakes’?
dimensions outline1
Dimensions Outline
  • Hard mental operations: Are there places where the user needs to resort to fingers or pencilled annotation to keep track of what’s happening?
  • Hidden dependencies: Is every dependency overtly indicated in both directions? Is the indication perceptual or only symbolic?
  • Premature commitment: Do programmers have to make decisions before they have the information they need?
  • Progressive evaluation: Can a partially-complete program be executed to obtain feedback on “How am I doing”?
dimensions outline2
Dimensions Outline
  • Role-expressiveness: Can the reader see how each component of a program relates to the whole?
  • Secondary notation: Can programmers use layout, colour, or other cues to convey extra meaning, above and beyond the ‘official’ semantics of the language?
  • Viscosity: How much effort is required to perform a single change?
  • Visibility: Is every part of the code simultaneously visible (assuming a large enough display), or is it at least possible to juxtapose any two parts side-by-side at will? If the code is dispersed, is it at least possible to know in what order to read it?
dimensions outline3
Dimensions Outline

Abstraction Gradient: What are the minimum and maximum levels of abstraction? Can fragments be encapsulated?

  • Closeness of mapping: What ‘programming games’ need to be learned?
  • Consistency: When some of the language has been learnt, how much of the rest can be inferred?
  • Diffuseness: How many symbols or graphic entities are required to express a meaning?
  • Error-proneness: Does the design of the notation induce ‘careless mistakes’?
abstraction gradient
Abstraction Gradient
  • Abstraction Gradient: What are the minimum and maximum levels of abstraction? Can fragments be encapsulated?
  • An abstraction is
    • a grouping of elements to be treated as one entity
  • Examples?
    • Functions, classes, types, control abstraction like loops, conditionals, …
  • Abstraction-hating (e.g., flowcharts)
    • Only contain decision boxes and action boxes; you can’t have other abstractions
  • Abstraction-tolerant (e.g., C)
    • Can be used exactly as they come, but also allowing new abstractions of several kinds to be created
  • Abstraction-hungry (e.g., SmallTalk, C#)
    • To start writing a program, you first modify the class hierarchy
    • Every program requires a new abstraction
    • The novice programmer cannot simply map problem entities onto domain entities.
abstraction gradient cont d
Abstraction Gradient (cont’d)
  • Finding the right balance is not easy
  • Downsides of abstractions:
    • Hard for novices
    • Delayed gratification
  • Upsides:
    • Right abstractions increase comprehensiveness of a language
    • Closer map to the problem
dimensions outline4
Dimensions Outline
  • Abstraction Gradient: What are the minimum and maximum levels of abstraction? Can fragments be encapsulated?

 Closeness of mapping: What ‘programming games’ need to be learned?

  • Consistency: When some of the language has been learnt, how much of the rest can be inferred?
  • Diffuseness: How many symbols or graphic entities are required to express a meaning?
  • Error-proneness: Does the design of the notation induce ‘careless mistakes’?
closeness of mapping
Closeness of mapping
  • Mapping = mapping between a problem world and a program world
  • Close mapping is good
but how close
But how close?
  • An example
    • Java/C# (general purpose) vs. spreadsheet (domain specific – maps directly to the problem)
dimensions outline5
Dimensions Outline
  • Abstraction Gradient: What are the minimum and maximum levels of abstraction? Can fragments be encapsulated?
  • Closeness of mapping: What ‘programming games’ need to be learned?

 Consistency: When some of the language has been learnt, how much of the rest can be inferred?

  • Diffuseness: How many symbols or graphic entities are required to express a meaning?
  • Error-proneness: Does the design of the notation induce ‘careless mistakes’?
consistency
Consistency
  • Consistency = ?
  • = when a person knows some of the language structure, how much of the rest can be successfully guessed?
dimensions outline6
Dimensions Outline
  • Abstraction Gradient: What are the minimum and maximum levels of abstraction? Can fragments be encapsulated?
  • Closeness of mapping: What ‘programming games’ need to be learned?
  • Consistency: When some of the language has been learnt, how much of the rest can be inferred?

 Diffuseness: How many symbols or graphic entities are required to express a meaning?

  • Error-proneness: Does the design of the notation induce ‘careless mistakes’?
diffuseness terseness
Diffuseness/Terseness
  • = How many symbols or graphic entities are required to express a meaning?
  • Esp. an issue w/ VPLs b’c of real estate
  • Too diffuse:
    • more material to be looked at  smaller the proportion can be held in working memory  greater the disruption
  • Too terse:
    • Different programs hardly differ visually  difficult to look and tell
dimensions outline7
Dimensions Outline
  • Abstraction Gradient: What are the minimum and maximum levels of abstraction? Can fragments be encapsulated?
  • Closeness of mapping: What ‘programming games’ need to be learned?
  • Consistency: When some of the language has been learnt, how much of the rest can be inferred?
  • Diffuseness: How many symbols or graphic entities are required to express a meaning?
  •  Error-proneness: Does the design of the notation induce ‘careless mistakes’?
error proneness
Error-proneness
  • = Does the design of the notation induce ‘careless mistakes’?
  • Examples of preventing errors:
    • Type systems
    • Program won’t pass compiler if it uses uninitialized variables
    • Auto-complete instead of having to type every word
dimensions outline8
Dimensions Outline

 Hard mental operations: Are there places where the user needs to resort to fingers or pencilled annotation to keep track of what’s happening?

  • Hidden dependencies: Is every dependency overtly indicated in both directions? Is the indication perceptual or only symbolic?
  • Premature commitment: Do programmers have to make decisions before they have the information they need?
  • Progressive evaluation: Can a partially-complete program be executed to obtain feedback on “How am I doing”?
hard mental operation
Hard mental operation
  •  Are there places where the user needs to resort to fingers or pencilled annotation to keep track of what’s happening?
  • Consider the following sentence:

Unless it is not the case that the lawn-mower is not in the shed, or if it is the case that the oil is not in the tool-box and the key is not on its hook, you will not need to cut the grass....

hard mental operation cont d
Hard mental operation (cont’d)
  • A broad-brush test for hard mental operaion is:
    • if I fit two or three of these constructs together, does it get incomprehensible?
    • is there a way in some other language of making it comprehensible? (Or is it just a really hard idea to grasp?)

If the answer is Yes to both, then it counts.

dimensions outline9
Dimensions Outline
  • Hard mental operations: Are there places where the user needs to resort to fingers or pencilled annotation to keep track of what’s happening?

 Hidden dependencies: Is every dependency overtly indicated in both directions? Is the indication perceptual or only symbolic?

  • Premature commitment: Do programmers have to make decisions before they have the information they need?
  • Progressive evaluation: Can a partially-complete program be executed to obtain feedback on “How am I doing”?
hidden dependencies
Hidden dependencies
  • Is every dependency overtly indicated in both directions? Is the indication perceptual or only symbolic?
  • Dependency
    • relationship between two or more things
  • Bad examples:
    • a function surreptitiously altered the value of a global variable
    • formula in a cell tells which other cells it takes its value from, but does not tell which other cells take their value from it
    • GOTOs (absence of come-from)
dimensions outline10
Dimensions Outline
  • Hard mental operations: Are there places where the user needs to resort to fingers or pencilled annotation to keep track of what’s happening?
  • Hidden dependencies: Is every dependency overtly indicated in both directions? Is the indication perceptual or only symbolic?

 Premature commitment: Do programmers have to make decisions before they have the information they need?

  • Progressive evaluation: Can a partially-complete program be executed to obtain feedback on “How am I doing”?
premature commitment
Premature commitment
  • Do programmers have to make decisions before they have the information they need?
  • An example:
    • Forced to choose what features to have when first installing a piece of software
  • When does this problem arise?
    • the notation contains many internal dependencies
    • the medium or working environment constrains the order of doing things, and
    • the order is inappropriate
dimensions outline11
Dimensions Outline
  • Hard mental operations: Are there places where the user needs to resort to fingers or pencilled annotation to keep track of what’s happening?
  • Hidden dependencies: Is every dependency overtly indicated in both directions? Is the indication perceptual or only symbolic?
  • Premature commitment: Do programmers have to make decisions before they have the information they need?

 Progressive evaluation: Can a partially-complete program be executed to obtain feedback on “How am I doing”?

progressive evaluation
Progressive evaluation
  • Can a partially-complete program be executed to obtain feedback on “How am I doing”?
  • Novices need to evaluate their own problem-solving progress at frequent intervals
  • Experts can usually live without it if they have to, but even they prefer to have it
dimensions outline12
Dimensions Outline

 Role-expressiveness: Can the reader see how each component of a program relates to the whole?

  • Secondary notation: Can programmers use layout, colour, or other cues to convey extra meaning, above and beyond the ‘official’ semantics of the language?
  • Viscosity: How much effort is required to perform a single change?
  • Visibility: Is every part of the code simultaneously visible (assuming a large enough display), or is it at least possible to juxtapose any two parts side-by-side at will? If the code is dispersed, is it at least possible to know in what order to read it?
role expressiveness
Role-expressiveness
  • Can the reader see how each component of a program relates to the whole?
  • RE describes how easy it is to answer the question ‘what is this bit for?’
  • How to enhance RE?
    • By use of meaningful identifiers
    • By well-structured modularity
    • By the use of secondary notation (doesn’t contribute to the running of the program, e.g., comments) to signal functionally-related groupings
dimensions outline13
Dimensions Outline
  • Role-expressiveness: Can the reader see how each component of a program relates to the whole?

 Secondary notation: Can programmers use layout, colour, or other cues to convey extra meaning, above and beyond the ‘official’ semantics of the language?

  • Viscosity: How much effort is required to perform a single change?
  • Visibility: Is every part of the code simultaneously visible (assuming a large enough display), or is it at least possible to juxtapose any two parts side-by-side at will? If the code is dispersed, is it at least possible to know in what order to read it?
secondary notation
Secondary notation
  • Can programmers use layout, color, or other cues to convey extra meaning, above and beyond the ‘official’ semantics of the language?
  • SN is carries extra information by other means than formal syntax
find examples of secondary notations from this
Find examples of secondary notations from this
  • Indenting
  • Commenting
  • choice of naming conventions
  • grouping of related statements
dimensions outline14
Dimensions Outline
  • Role-expressiveness: Can the reader see how each component of a program relates to the whole?
  • Secondary notation: Can programmers use layout, colour, or other cues to convey extra meaning, above and beyond the ‘official’ semantics of the language?

 Viscosity: How much effort is required to perform a single change?

  • Visibility: Is every part of the code simultaneously visible (assuming a large enough display), or is it at least possible to juxtapose any two parts side-by-side at will? If the code is dispersed, is it at least possible to know in what order to read it?
viscosity resistance to local change
Viscosity: resistance to local change
  • The ‘viscosity’ of a fluid is its resistance to local change.
  • V here means how much effort is required to perform a single change?
  • Why viscosity matter?
    • changes and revisions infest the whole course of programming activity, from specifying to designing to coding
dimensions outline15
Dimensions Outline
  • Role-expressiveness: Can the reader see how each component of a program relates to the whole?
  • Secondary notation: Can programmers use layout, colour, or other cues to convey extra meaning, above and beyond the ‘official’ semantics of the language?
  • Viscosity: How much effort is required to perform a single change?
  • Visibility: Is every part of the code simultaneously visible (assuming a large enough display), or is it at least possible to juxtapose any two parts side-by-side at will? If the code is dispersed, is it at least possible to know in what order to read it?
dimensions outline16
Dimensions Outline
  • Role-expressiveness: Can the reader see how each component of a program relates to the whole?
  • Secondary notation: Can programmers use layout, colour, or other cues to convey extra meaning, above and beyond the ‘official’ semantics of the language?
  • Viscosity: How much effort is required to perform a single change?

 Visibility: Is every part of the code simultaneously visible (assuming a large enough display), or is it at least possible to juxtapose any two parts side-by-side at will? If the code is dispersed, is it at least possible to know in what order to read it?

visibility
Visibility
  • Is every part of the code simultaneously visible (assuming a large enough display), or is it at least possible to juxtapose any two parts side-by-side at will? If the code is dispersed, is it at least possible to know in what order to read it?
  • Related to visibility is juxtaposability, the ability to see any two portions of the program on screen side-by-side at the same time.
  • A bad example:
    • Spreadsheets, with their two layers (data and formulae), have asymmetric visibility.
in class activity
In-class activity
  • Pick three of dimensions and evaluate Yahoo!Pipes using them (http://pipes.yahoo.com/pipes/)
  • 10 minutes: register for a Yahoo! Account if you don’t have one, and play with a couple of pipes programs
  • 15 minutes: go through the interface and write down the problems you find for each dimension.
ad