Empowering Users

One of the key features of computers is InvitedInvited ResearchResearch Overview:Overview: programmability

Perform the specific actions desired

End-User Programming But only if know how Spreadsheets enable people to define their own computations Brad Myers, Andrew Ko, and Margaret Burnett Invented late 1970’s Human Computer School of Elec. Engr. One of the key reasons InteractionInteraction InstituteInstitute & & ComputerComputer ScienceScience personal computers became Carnegie Mellon Univ. Oregon State Univ. popular for business How to generalize to other areas? Copyright © 2006 – Brad A. Myers Copyright © 2006 - Brad A. Myers, CMU 2

Malleability is Key Today Definitions

Hottest new thing on the web is end-user ““Program”Program” authoring ‘‘A‘‘A setset ofof statementsstatements thatthat cancan bebe submittedsubmitted asas aa unit to some computer system and used to Blogs direct the behavior of that system’’ Flickr – Oxford Dictionary of Computing

MySpace ““Programming”Programming” Key is personalization ‘‘The‘‘The processprocess ofof transformingtransforming aa mentalmental planplan ofof desired actions for a computer into a End users shape the artifact representation that can be understood by the Raises expectations for the level of computer’’ – Jean-Michel Hoc and Anh Nguyen-Xuan personalization, customization generally

Copyright © 2006 - Brad A. Myers, CMU 3 Copyright © 2006 - Brad A. Myers, CMU 4

Definitions, cont. Definitions, cont.

““ProfessionalProfessional ProgrammerProgrammer”” ““End-UserEnd-User ProgrammerProgrammer””(EUP) (EUP)

Someone whose primary job function is to write People who write programs, but not as their or maintain software primary job function

Typically have significant training in Instead, they must write programs in support of programming (e.g., BS in CS) achieving their main goal, which is something else ““NoviceNovice ProgrammerProgrammer”” Covers a wide range of programming expertise Someone who is learning to be a professional programmer Business executives and secretaries Physicists

Copyright © 2006 - Brad A. Myers, CMU 5 Copyright © 2006 - Brad A. Myers, CMU 6

1 Examples of EUP Other Names

Accounting (spreadsheets) Analysts using MatLab Also called “End User Development” (EUD) Creating a web page As in European Commission’s Recording Macros in Word Automating office tasks Business software (SAP programming) Some “Domain-Specificic Languages”Languages” (DSL) (DSL) “Programming” VCRs, Microwaves Often created for end-user programmers Scientific research Visual (Graphical) Programs Authoring educational software Sometimes created for EUP Creating email filters Musicians configuring synthesizers “Scripting” languages, “Macros” Mashups Rapid Application Development (RAD)

EntertainmentCopyright (e.g., © 2006behaviors - Brad A. Myers, in CMU The Sims) 7 Copyright © 2006 - Brad A. Myers, CMU 8

How Many Today? Languages Being Used

Number of Programmers, by Language Most people who , at Work, 2006 For the 12 millions self-

write programs described programmers 4,000,000 3,500,000 100,000,000 todaytoday areare not 90,000,000 Caveats: 3,000,000 professional Probably outdated 2,500,000 75,000,000 programmers Doesn’ count the programmers 2,000,000 50,000,000 spreadsheet 1,500,000 50,000,000 programmers 50,000,000 1,000,000 (based(based onon datadata fromfrom USUS 1,000,000 Cobol SAP, etc. Bureau of Labor Statistics) 120,000 ..Net (C#) is rising 25,000,000 0 12,000,000 hi sic p alk 3,000,000 Java C++ 0 ual Ba Smallt Programmers Programmers Users Spreadsheets Professional Vis land's Del

Described r

and DBs Bo Self-

Copyright © 2006 - Brad A. Myers, CMU 9 Copyright © 2006 - Brad A. Myers, CMU 10

History Allen Newell and Stuart Card, 1985:

Long History: “Millions for but hardly a penny for Original HCI! understanding human use.

1973 “Psychology of Programming” Now, programming languages are obviously

“Software Psychology” symmetrical, the computer on one side, the programmer on the other. In an appropriate science Ben Shneiderman book, 1980 programmer on the other. In an appropriate science of computer languages, one would expect that half the “Empirical Studies of Programming” (ESP) effort would be on the computer side, understanding Workshops from 1986 through 1999 how to translate the languages into executable form, “Psychology of Programming” “Psychology of Programming” and half on the human side, understanding how to Psychology of Programming Interest Group (PPIG) design languages that are easy or productive to use.... thth design languages that are easy or productive to use.... fromfrom 19871987 andand PPIG’06PPIG’06 == 1818 workshop The human and computer parts of programming But mostly focused on novice or languageslanguages havehave developeddeveloped inin radicalradical asymmetry.”asymmetry.” professional Copyright © 2006 - Brad A. Myers, CMU 11 Copyright © 2006 - Brad A. Myers, CMU 12

2 Renewed Interest Recently Consequences of Lack of Attention

Lots of errors attributed toto End-UserEnd-User ProgrammingProgramming of spreadsheets: Significant numbers of papers at Columbia Housing Authority admitted to overpaying by CHI, VL/HCC, ICSE, UIST and many $118,387 due to a spreadsheet data-entry error other conferences! (February(February 22,22, 2006)2006) New York Times, Oct 30th, 2003 - $1.2 Billion New book from Springer Spreadsheet Error at Fannie Mae Areas like End-User Software TransAlta Corp. took $24 million charge to earnings due toto cut-and-pastecut-and-paste errorerror inin anan ExcelExcel spreadsheetspreadsheet (June(June Engineering (EUSE) 3rd, 2003) End-users are and will program Auditor, major accounting firm:

How to make their software more reliable? “...in“...in 66 yearsyears work,work, checkingchecking literallyliterally hundredshundreds ofof business-critical models, ... my team have never failedfailed EUSES – NSF funded consortium toto findfind errors.”errors.” 3 papers and a workshop at CHI’06 …. (many more!)

This overview! See http://eusesconsortium.org/euperrors/ This overview!Copyright ☺ © 2006 - Brad A. Myers, CMU 13 Copyright © 2006 - Brad A. Myers, CMU 14

Consequences, 2 Why is Programming Difficult? Also, errors in: Web pages Some difficulty may be intrinsic to Email filtering rules programming From the WEUSE II workshop: Problem solving Clinical customization package used by medical personnel reports the need for better reuse and Precise specification of algorithms debugging support How much difficulty can be attributed to SysAdmins need better testabilitylity ofof databasedatabase andand otherother sorts of scripts usability problems?

IssuesIssues withwith reusereuse ofof MATLABMATLAB applicationsapplications Programming languages are a kind of user Difficulty of learninglearning interfaceinterface Potentially millions of peoplele whowho trytry toto learnlearn HTML,HTML, Most language designs do not emphasize Flash, Visual Basic, Javascript, spreadsheets, etc., but give up because of one or two insurmountable errors usability Copyright © 2006 - Brad A. Myers, CMU 15 Copyright © 2006 - Brad A. Myers, CMU 16

Evidence That Difficult Hello World!

End User Programming is still research goal class HelloWorldApp { Researchers have tried many approaches public static void main(String[] args) { Surveyed next System.out.println("Hello World!"); Many commercial attempts have moved } away from addressing end users }

E.g., Visual Basic & Flash Increasing language complexity and features 3 kinds of parentheses and 9 special words! Compared to click and type: “Hello World”

Copyright © 2006 - Brad A. Myers, CMU 17 Copyright © 2006 - Brad A. Myers, CMU 18

3 Goal: Gentle Slope Systems Outline WideWide Java WallsWalls Visual Basic NOTE: Not Comprehensive Director (v6) Empirical studies of programming HyperCard Novices, professionals, EUP Swing C Programming Approaches: C or C# Programming Difficulty Visual Programming of Programming by Example Use xCmds Simpler Textual Languages Lingo HyperTalk Better Environments Basic Goal LowLow Email Recent: Focus on Reliability ThresholdThreshold Filters HighHigh End-User Software Engineering (EUSE) Program Complexity and Sophistication CeilingCeiling End-User Software Engineering (EUSE) Copyright © 2006 - Brad A. Myers, CMU 19 Copyright © 2006 - Brad A. Myers, CMU 20

Empirical Studies of Programming Techniques for Studies

Many observations and intuition based on teaching Studies of why programming difficult to learn Green & Petre’s “Cognitive Dimensions” [1996] Identified collections of issues with languages 13 criteria for evaluating programming systems Mostly relevant to EUP Mostly relevant to EUP E.g., “Viscosity” – how hard to change Survey: [Pane 1996] “Consistency”,“Consistency”, “Premature“Premature Commitment”,Commitment”, etc.etc. Low-cost analytical tool that cancan avertavert aa lotlot ofof problemsproblems at design time

Very influential in a number of language/environment design efforts “Natural Programming” approach [Myers, Pane, Ko]

See how people thinkthink about a task

Design a tool to support thethe wayway theythey areare thinkingthinking

Evaluate how well the tool works with user studies Copyright © 2006 - Brad A. Myers, CMU 21 Copyright © 2006 - Brad A. Myers, CMU 22

Empirical Studies of Programming, cont. Empirical Studies of Programmers, cont.

Inappropriate formatting hinders reading (e.g., Many Syntax Problems observed highlighting keywords instead of content words) E.g., if (a = 0) Small typos easily missed wrong programs

Incorrect indentation code is in a control structure [du Boulay1989a]. Baecker, R.M. and Syntax, idioms, strategies for programming & Marcus, A., Human debugging FactorsFactors andand TypographyTypography forfor MoreMore ReadableReadable Wrong words: STOP doesn’t mean halt & Programs,, ACMACM Press,Press, exit (Logo) [Kurland 1989] Addison-Wesley, 1990 Copyright © 2006 - Brad A. Myers, CMU 23 Copyright © 2006 - Brad A. Myers, CMU 24

4 Empirical Studies of Programmers, cont. More studies, cont.

Many studies about the differences between Incremental testing important to understanding novices and experts Rapid test, revise cycle with good feedback Spreadsheets provide immediate feedback E.g., experts know more “schemas” or “plans” Appropriate metaphor important and how to put them together [Soloway] Appropriate metaphor important “von“von NeumannNeumann machine”machine” model model hashas nono physicalphysical worldworld E.g., Running-Total-Loop Plan (sum up a set of counterpart, which is an important stumbling block for numbers); Dirty-Bit Flag Plan (a flag is set if some novices [du Boulay] data needs to be rewritten out to disk) E.g., variables as “box”, but can’t hold more than one value Novices do not know debugging strategies Value still in J after I = J [Putnam 1989, Sleeman 1988]

Spreadsheet metaphor works better [Lewis 1987]

Copyright © 2006 - Brad A. Myers, CMU 25 Copyright © 2006 - Brad A. Myers, CMU 26

More Recent Empirical Studies Examples of Results [Pane]

Rule-based style [Pane[Pane andand Myers,Myers, 2000]:2000]: howhow peoplepeople expressexpress algorithmsalgorithms Rule-based style “If PacMan hits the wall, he stops.”

Set operations instead of iterations Usually Pacman moves like this. “When PacMan eats all of the dots, he goes to the next level.”

“And”,“And”, “Or”,“Or”, “Not”“Not” don’t don’t matchmatch computercomputer interpretationinterpretation Now let's say we add a wall. …men and women, …(not an apple ) or pear Most arithmetic used natural language style Pacman moves like this. “When PacMan eats a big dot, the score goes up 100.”

Operations suggest data asas lists,lists, notnot arraysarrays Not like this. Not like this. People don’t make space before inserting Do this: Write a statement that summarizes how I Objects normally moving (as the computer) should move Pacman in relation “If PacMan hits a wall, he stops.” to the presence or absence of other things. soso objectsobjects rememberremember theirtheir ownown statestate Copyright © 2006 - Brad A. Myers, CMU 27 Copyright © 2006 - Brad A. Myers, CMU 28

Barriers in Novice use of VB Outline

Studied 40 novices using Visual Basic.NET Empirical studies of programming

[Ko & Myers 2004] Novices, professionals, EUP

Analyzed 74 barriers that were not able to Approaches:

overcome Visual Programming

Design – inherently hard algorithm, e.g., sorting Programming by Example

Selection – can’t find how to do it Simpler Textual Languages

Use – can’t figure out how it is used Better Environments

Coordination – how to use 2 things together Coordination – how to use 2 things together Recent: Focus on Reliability Understanding – what just happened? End-User Software Engineering (EUSE)

Copyright © 2006 - Brad A. Myers, CMU 29 Copyright © 2006 - Brad A. Myers, CMU 30

5 Visual Programming Examples of Visual Programming

Flowcharts and Data flow Harness human visual system Earliest: Grail [Ellis, 1969]

Should be more “natural” Pict [Glinert 1984] Prograph [Pietrzykowski 84] Avoid syntax LabView [National Instruments, 1986] People were already using graphical Lego Mindstorms [1998] notations Apple’s Automator Spreadsheet systems Flowcharts and Data flow, State-Transition Diagrams, Wiring Diagrams, Petri nets, etc. Forms3 Before and after pictures Use these directly Agentsheets [Repenning 91]

Kidsim/Cocoa/Stagecast CreatorCreator [Smith[Smith 94]94]

Studies of VP – Green & Petre Copyright © 2006 - Brad A. Myers, CMU 31 Studies of VP Copyright– Green © 2006 & - BradPetre A. Myers, CMU 32

Pict Prograph

Innovative data-flow [Glinert 1984] Innovative data-flow formatformat Flowchart Flowchart 1983 Only 4 variables TGS Prograph, Inc “Pictorius”“Pictorius” Animate execution

Copyright © 2006 - Brad A. Myers, CMU 33 Copyright © 2006 - Brad A. Myers, CMU 34

National Instruments Labview Lego Mindstorms

1986 1998 “Nxt” version coming fall’06 And today “Powered“Powered byby LabView”LabView”

Copyright © 2006 - Brad A. Myers, CMU 35 Copyright © 2006 - Brad A. Myers, CMU 36

6 Apple’s Automator Spreadsheet Systems

2005 Leverage power and success of spreadsheets for other domains Sequence of operations E.g., Forms3 Transform data Burnett, 1991 No control structures More general code for formulas

Graphics in cells

Copyright © 2006 - Brad A. Myers, CMU 37 Copyright © 2006 - Brad A. Myers, CMU 38

Agentsheets KidSim/Cocoa/Stagecast Creator

[Repenning 91] [Smith, Cypher

Agentsheets.com & Spohrer, 94] Before and after Stagecast ‘97 pictures as rules Before and after pictures

Copyright © 2006 - Brad A. Myers, CMU 39 Copyright © 2006 - Brad A. Myers, CMU 40

Studies of VP Outline

Claims that VP would be better due to 2-D more Empirical studies of programming “natural” and no syntax Novices, professionals, EUP Formal studies show some benefits for novices Approaches: But: Visual Programming Not a panacea: every notation has advantages and disadvantages Programming by Example

Graphical programs are no better for understanding Simpler Textual Languages thanthan texttext [Green[Green 91,91, 92][Moher92][Moher 1993]1993] Better Environments Visual programs are usually veryry difficultdifficult toto editedit (“high(“high viscosity”) [Green 96] Recent: Focus on Reliability

Take more space than text End-User Software Engineering (EUSE)

Copyright © 2006 - Brad A. Myers, CMU 41 Copyright © 2006 - Brad A. Myers, CMU 42

7 Programming by Example Pygmalion

Create program by performing the steps by [Smith 77] example Show the computer Assumes user knows how to do the problem concretely Avoids problems of abstraction thethe desireddesired stepssteps [Cypher[Cypher 93], 93], [Lieberman[Lieberman 2001]2001] Pygmalion [Smith 77] Smallstar [Halbert 81, 84] Peridot [Myers 86] Comic strip: Chimera [Kurlander 92] Pursuit [Modugno 93] Gamut [McDaniel 96]

Copyright © 2006 - Brad A. Myers, CMU 43 Copyright © 2006 - Brad A. Myers, CMU 44

SmallStar Peridot

Halbert 81,84 [Myers 86]

By example in Show behavior of simulation of the controls (widgets) Star by example

Property sheets Leverage power for data of Direct generalizations Manipulation

Directly build dynamic parts of interface

Inferred constraints and mouse behaviors

Copyright © 2006 - Brad A. Myers, CMU 45 Copyright © 2006 - Brad A. Myers, CMU 46

As a “Comic Strip” Gamut

Chimera [Kurlander 1988] [McDaniel[McDaniel 96]96] InferredInferred complexcomplex Pursuit [Modugno 1993] behaviors

“Do“Do Something”Something” and “Stop That”

Various kinds of hints

Copyright © 2006 - Brad A. Myers, CMU 47 Copyright © 2006 - Brad A. Myers, CMU 48

8 Gamut Video Gamut Video Evaluation of PBE

Systems often need examples of different cases

People are not good at giving good examples

Sometimes by example is harder than expressing desired result: sorted, A AND B

Need a way to represent code for confirmation, understanding, editing

If can understand code, why not just write it

Copyright © 2006 - Brad A. Myers, CMU 49 Copyright © 2006 - Brad A. Myers, CMU 50

Outline Simpler Textual Languages

Empirical studies of programming Basic (1963)

Novices, professionals, EUP Logo (1966)

Approaches: Pascal (1970) Visual Programming Hypertalk (1987) Programming by Example Hands (2002) Simpler Textual Languages Chickenfoot (2005) Better Environments

Recent: Focus on Reliability

End-User Software Engineering (EUSE)

Copyright © 2006 - Brad A. Myers, CMU 51 Copyright © 2006 - Brad A. Myers, CMU 52

Basic Logo

Designed in 1963, by Created in 1966 at BBN by John George Kemeny and Created in 1966 at BBN by Thomas Eugene Kurtz at Wally Feurzeig and Dartmouth College

Beginner's All-purpose Like Lisp without Symbolic Instruction Code parentheses To allow students not in First turtle was physical science fields to use computers science fields to use computers device with wheels and a Timesharing and then personal computers pen (Microsoft’s first product, in 1975)

Copyright © 2006 - Brad A. Myers, CMU 53 Copyright © 2006 - Brad A. Myers, CMU 54

9 Pascal HyperTalk

Created in 1987 for Apple’s HyperCard by Bill Created in 1970 by Niklaus Wirth to teach Atkinson structured programming Targeted at EUP Programmers were called “authors” and programs called “scripting” Event-based programming model HyperTalk designed to be similar to English Studies inconclusive on whether this helps Lots of problems with consistency Evolved into AppleScript

Copyright © 2006 - Brad A. Myers, CMU 55 Copyright © 2006 - Brad A. Myers, CMU 56

HANDS Video HANDS

PhD of John Pane, 2002

Designed based on studies

Properties:

All data visible on cards

Metaphor of agent (Handy thethe dog)dog) operatingoperating onon cardscards

Natural language style for code

Domain-specific operations, like movement in a direction

All operations can operate on single items or sets of items

Sets can be dynamically constructed and used

“Set“Set allall beesbees directiondirection toto 90”90” Copyright © 2006 - Brad A. Myers, CMU 57 Copyright © 2006 - Brad A. Myers, CMU 58

Chickenfoot Outline

[Bolin, 2005] Empirical studies of programming

EUP for the web Novices, professionals, EUP

Automating repetitive Approaches:

operations Visual Programming Integrating multiple Programming by Example web sites Simpler Textual Languages Transforming a web site's appearance Better Environments Simpler version of JavaScript Recent: Focus on Reliability Adds pattern-matching to find parts of web page End-User Software Engineering (EUSE)

Copyright © 2006 - Brad A. Myers, CMU 59 Copyright © 2006 - Brad A. Myers, CMU 60

10 Better Environments Better Support in the Environment

Integrated development environment (IDE) Original: Cornell Program Synthesizer, 1981

Help with creating, maintaining, debugging Structured Editing

code MacGnome, 1988

Somewhat independent of the particular Alice, 2002 languagelanguage HyperCard, 1987

Director, 1988

Visual Basic, 1991

WhyLine, 2004

Copyright © 2006 - Brad A. Myers, CMU 61 Copyright © 2006 - Brad A. Myers, CMU 62

MacGnome Alice

[Miller,[Miller, 1988]1988] Alice 2 [Pausch] (2002) Structured editing Drag-and-drop program parts But could edit as plain text for flexibility Drag-and-drop program parts Also added data and code visualization Pop-up menus for parameters

Dramatic impact on learning and attitude

Copyright © 2006 - Brad A. Myers, CMU 63 Copyright © 2006 - Brad A. Myers, CMU 64

Alice Movie Structured Editing Studies

Studies show such editors can help novices construct correct programs

Acquiring language syntax is a barrier to novices, especially for children

But, make it very difficult to edit programs after created

E.g., re-organizing code, re-using arbitrary-size pieces

Copyright © 2006 - Brad A. Myers, CMU 65 Copyright © 2006 - Brad A. Myers, CMU 66

11 HyperCard Visual Basic

Atkinson (1987) tried to make user’s first Microsoft, first released, 1991

experience with the tool effective (“low 1997, VB5 Debuts – replaces Word Basic, Excel threshold”) Basic, etc. Metaphor of designing cards 2002, VB.NET Debuts

Background, foreground objects For scripting, connecting components,

Change cards in-place database access, etc.

Now familiar from WWW and PowerPoint Interactive tool for placing widgets Programmed in HyperTalk (discussed (controls) such as buttons (= “Interface earlier) Builder”) Successfully enabled significant EUP Event-based version of the Basic language

Copyright © 2006 - Brad A. Myers, CMU 67 Copyright © 2006 - Brad A. Myers, CMU 68

Visual Basic Picture Director

VB.Net MacroMedia (now Adobe) 1988

Most people now use Flash

Scripting language (“Lingo”) for animations, with IDE

Metaphor of a timeline “Score”, for when animations start and stop

Awkward for user-driven interactions

Copyright © 2006 - Brad A. Myers, CMU 69 Copyright © 2006 - Brad A. Myers, CMU 70

Director Picture WhyLine

Debugging tool [Ko & Myers, 2004] Surprising lack of support forfor debugging,debugging, eveneven inin EUPEUP toolstools Observation from studies: All of the observed debugging problems could be addressed by “Why” questions 32% were “why did”; 68% were “Why didn’t” Allow directly asking these questions in the UI Searches code and execution history for answers “Why“Why didn’t”didn’t” questions questions areare answerableanswerable becausebecause onlyonly askask about what was plausible to have happened. Answers use: Text message Visualization of the time line (“(“WhyLine”),WhyLine”), and Copyright © 2006 - Brad A. Myers, CMU 71 Highlighting ofCopyright code © and 2006 -data Brad A. Myers, CMU 72

12 WhyLine video Review of Results of User Study

Subjects with WhyLine got 40% more tasks completed

3.20 vs. 2.25, (p<.02)

In matched situations, subjects with the WhyLine debugged about 8 times faster

Average: 20 seconds vs. 155.7 seconds, (p<.02)

Copyright © 2006 - Brad A. Myers, CMU 73 Copyright © 2006 - Brad A. Myers, CMU 74

Outline End-User Software Engineering

InitiativeInitiative toto makemake softwaresoftware createdcreated byby endend usersusers moremore Empirical studies of programming reliablereliable andand correctcorrect Motivation: Novices, professionals, EUP Spreadsheet errors Approaches: Difficulty of debugging Bring “Software Engineering” principles to end users Visual Programming But not necessarily SE methods

Programming by Example EUP will not follow strict processes, etc.

Founded by Burnett, et. al. ~2002 Simpler Textual Languages Founded by Burnett, et. al. ~2002 NSF ITR 2003-2007 Better Environments End Users Shaping Effective Software = EUSES consortium. www.eusesconsortium.org Recent: Focus on Reliability Workshops on EUSE (WEUSE 1 at ICSE’05, End-User Software Engineering (EUSE) WEUSE II at CHI’06) Connections: Researchers + Industry Copyright © 2006 - Brad A. Myers, CMU 75 Copyright © 2006 - Brad A. Myers, CMU 76

EUSE Examples, 1 EUSE Examples, 2

WYSIWYT [Burnett 1997] UCheck [Abraham 2004] What you see is what you test Infers units based from layout and headers

Identifies formulas that try to combine incompatibleincompatible unitsunits

User can enter assertions

System can figure out more assertions There’s got to be something wrong with the formula!

Copyright © 2006 - Brad A. Myers, CMU 77 Copyright © 2006 - Brad A. Myers, CMU 78

13 Conclusions

Increasing need to automate our systems

IncreaseIncrease productivityproductivity Control our complex world End-User Author interesting behaviors Programming still too hard for most people Programming How can it be made easier? IsIs therethere aa wayway toto avoidavoid oror toto makemake understandableunderstandable Brad Myers, Andrew Ko, and Margaret Burnett abstraction, iteration, conditions, recursion and other Brad Myers, Andrew Ko, and Margaret Burnett concepts?

Will (AI) help? Will Artificial Intelligence (AI) help? Funded by NSF Reduce need for programming? Still enormous opportunities for research and new ideasideas Copyright © 2006 - Brad A. Myers, CMU 79 Copyright © 2006 – Brad A. Myers

14