Class Announcements 1 week left until project presentations!

Slides:



Advertisements
Similar presentations
implementation support
Advertisements

Midterm Several high 90s Average: 91% = A-. Project – Evaluation Plan See doc Exercise: plan for your evaluation now in- class!
A graphical user interface (GUI) is a pictorial interface to a program. A good GUI can make programs easier to use by providing them with a consistent.
UQI120S2 Human Computer Interaction Designing and building GUIs We made the point that the final product should fit the cognitive makeup of the user. We.
Software Engineering Issues for Ubiquitous Computing Author: Gregory D. Abowd, Georgia Institute of Technology CSCI 599 Week 4 Paper 3 September
Graphical User Interface (GUI) Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
SIMS 202 Information Organization and Retrieval Prof. Marti Hearst and Prof. Ray Larson UC Berkeley SIMS Tues/Thurs 9:30-11:00am Fall 2000.
Stanford hci group / cs376 research topics in human-computer interaction I/O Toolkits Scott Klemmer 29 November 2005.
Stanford hci group / cs376 research topics in human-computer interaction UI Software Tools Scott Klemmer 27 October 2005.
User Interface Design Chapter 11. Objectives  Understand several fundamental user interface (UI) design principles.  Understand the process of UI design.
Software design and development Marcus Hunt. Application and limits of procedural programming Procedural programming is a powerful language, typically.
Human Computer Interaction Implementation Support.
Introduction to Java Swing “We are the sultans of swing” – Mark Knopfler.
Peter Andreae Computer Science Victoria University of Wellington Copyright: Peter Andreae, Victoria University of Wellington Java Programs COMP 102 #3.
MVC pattern and implementation in java
Electronic Visualization Laboratory, University of Illinois at Chicago PAVIS Pervasive Adaptive Visualization and Interaction Service Javid Alimohideen.
Software Tools.  It accomplishes an important task  (for better and for worse) You don’t have to make it yourself, and it abstracts a set of knowledge.
Towards a Unified Interaction Framework for Ubicomp User Interfaces Jason I. Hong Scott Lederer Mark W. Newman G r o u p f o r User Interface Research.
Software Construction Lecture 10 Frameworks
Most modern operating systems incorporate these five components.
Gary MarsdenSlide 1University of Cape Town Human-Computer Interaction - 3 Programmer Support Gary Marsden ( ) July 2002.
Stanford hci group / cs376 u Scott Klemmer · 30 November 2006 UI Software Tools.
1 Implementation support chapter 8 programming tools –levels of services for programmers windowing systems –core support for separate and simultaneous.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
User Interfaces for Post-Desktop Environments Jan Borchers Stanford Interactivity Lab Advanced Systems Development Lab.
IStuff Mobile: Rapidly Prototyping New Mobile Phone Interfaces for Ubiquitous Computing Rafael Ballagas, Faraz Memon, Ren´e Reiners, Jan Borchers Media.
Automated GUI testing How to test an interactive application automatically?
Frameworks CompSci 230 S Software Construction.
An Architecture to Support Context-Aware Applications
Intermediary Translation Map A-> 2,3 C->1 1->B 2->B A iStuff Input Component 1 Application C iStuff Input Component B iStuff Input Component 2 Application.
Stanford hci group / cs147 u 04 December 2007 Software Tools Scott Klemmer tas: Marcello Bastea-Forte, Joel Brandt, Neil Patel,
Stanford hci group / cs376 u Jeffrey Heer · 26 May 2009 User Interface Toolkits.
1 Lecture 5: Interactive Tools: Prototypers (HyperCard, Director, Visual Basic), Interface Builders Brad Myers Advanced User Interface Software.
Post-Desktop User Interfaces iStuff and the Search for the Great Unified Input Theory Jan Borchers Stanford University CS547, Oct 17, 2002.
© Peter Andreae Java Programs COMP 102 # T1 Peter Andreae Computer Science Victoria University of Wellington.
Procedural programming Procedural programming is where you specify the steps required. You do this by making the program in steps. Procedural programming.
Toolkits and Languages CSE 490JL Section Dec 1 st & 3 rd 2004 Richard C. Davis & Kate Everitt.
Iterative Design and Evaluation of Event Architecture for Pen-and-Paper Interfaces HCI Group Stanford University Ron B. Yeh Andreas Paepcke Scott R. Klemmer.
Papier-Mache: Toolkit Support for Tangible Input HCI Group University of California Scott R. Klemmer Jack Li James Lin DUB Group University of Washington.
CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I.
Computers and Programming
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
CSC 222: Object-Oriented Programming
Development Environment
Support for the Development of Interactive Systems
Clocks, I/O devices, Thin Clients, and Power Management
CompSci 230 S Software Construction
Visual Basic Code & No.: CS 218
Introduction to Event-Driven Programming
Avraham Leff James T. Rayfield IBM T.J. Watson Research Center
Goals Give student some idea what this class is about
Java Look-and-Feel Design Guidelines
Java Beans Sagun Dhakhwa.
Review: Java GUI Programming
Prototyping.
Understand Windows Forms Applications and Console-based Applications
Lesson 1: Buttons and Events – 12/18
Operating Systems and Systems Programming
Chapter 2 Visual Basic Interface
Multimodal Interfaces
User Interface Software Look under the hood
The structure of Interactive Software
Vision-based Interaction
Hands-on Introduction to Visual Basic .NET
Building Graphical User Interface with Swing a short introduction
An Introduction to Software Architecture
The Basic Usage and The Event Handling in Glade.
I/O Toolkits Scott Klemmer · 16 November 2006.
ACM programming contest
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

Class Announcements 1 week left until project presentations! Tuesday, Dec. 7th 1pm – 3:30 pm Room is Gates B12 (in the basement) Feel free to invite guests, there will be plenty of space 30 November 2004 I/O Toolkits

Presentation Format (A Guide) 8 min + 4 min (questions and changeover) Tell A Story Intro Benefits Contextual Inquiry Paper/Lo-Fi/First Prototype User Test / Redesign Final Prototype Show a Demo May be Videotaped =) 30 November 2004 I/O Toolkits

Merrie Ringel 30 November 2004 I/O Toolkits Merrie Ringel 30 November 2004

What are Interface Toolkits? Goal: make it easier to develop user interfaces by providing application developers with reusable components that accomplish common input and output needs Toolkits have a well-planned architecture and API & provide a library 30 November 2004 I/O Toolkits

Example: Java Swing GUI toolkit with a widget set and an API 30 November 2004 I/O Toolkits

Example: M$ Interface Builder Can specify widget placement and basic properties with a visual editor Programmer writes code for widget callbacks and complex behaviors 30 November 2004 I/O Toolkits

Why use toolkits? Code reuse saves programmer time 50% of code is for the GUI [Myers & Rosson, CHI ’92] Consistent look & feel across apps Easier to modify and iterate the UI Make UI development accessible to more people Non-artists Non-programmers??? 30 November 2004 I/O Toolkits

Drawbacks Can be limiting – developers are likely to make the kinds of UIs that the toolkit makes easy Traditional GUI toolkits are problematic for non-WIMP user interfaces such as: Groupware Physical UIs 30 November 2004 I/O Toolkits

DiamondSpin Toolkit Toolkit for tabletop user interfaces [Shen, Vernier, Forlines, Ringel] CHI ’04 30 November 2004 I/O Toolkits

Tabletop UI Needs Multi-user support Identity-aware widgets Multiple menus Public and personal spaces Resolving conflicting actions Arbitrary orientation of UI elements Techniques to control orientation and layout Rotation sensitive components 30 November 2004 I/O Toolkits

30 November 2004 I/O Toolkits

DiamondSpin Video 30 November 2004 I/O Toolkits

iStuff Toolkit Physical UI components for ubiquitous computing environments (multiple users, devices, and applications) [Ballagas, Ringel, Stone, Borchers], CHI ‘03 30 November 2004 I/O Toolkits

iStuff Design iStuff components PatchPanel Device + proxy (“smarts” are in the proxy) PatchPanel Translate between iStuff events and application-specific events Run-time retargetable events Address dimension mismatches 30 November 2004 I/O Toolkits

30 November 2004 I/O Toolkits

iStuff Video 30 November 2004 I/O Toolkits

Evaluating Toolkits Ease of use Depth, Breadth, and Extensibility A toolkit’s API is a user interface, too! [Klemmer et al., 2004] evaluated the API of Papier-Mache Depth, Breadth, and Extensibility Systems issues Speed Portability 30 November 2004 I/O Toolkits

Current Research Challenges Complex design space e.g., Do we have to update the toolkit every time someone creates a new sensor or actuator? Ambiguous input Speech, gestures, computer vision, etc. aren’t recognized as accurately as mouse clicks. Should the toolkit handle the recognition? 30 November 2004 I/O Toolkits

Summary I/O Toolkits provide reusable interface components to simplify UI development Toolkit trap: it’s tempting to only make UIs that the toolkit makes easy, instead of making what’s best for a specific app Toolkit types: WIMP (Garnet, Swing, Motif, etc) Speciality (Phidgets, iStuff, Papier-Mache, DiamondSpin, GroupKit, Peripheral Displays Toolkit, etc) 30 November 2004 I/O Toolkits