User Interface Software & Technology

Download Report

Transcript User Interface Software & Technology

CS 4470 Intro to User Interface Software
CS 6456 Principles of UI Software
Fall 2004
Jeff Pierce
Agenda
Introductions
Me
you
Class overview
Syllabus
Policies
Individual / collaborative work
Introductions
Instructor
Jeff Pierce
HCI
– Mobile computing
– PIEs
– Adaptive Interfaces
– 3D UIs
Introductions
TA
James Eagan
HCI
Info Viz
Now, it’s your turn
Name (pronunciation if non-obvious)
Major, Year
Interests
Why UI SW
What is this class about?
Organizing principles of UI software
Practice in UI implementation
Part 1: Traditional 2-dimensional GUI
Part 2: Advanced topics
What this class is NOT about
User-centered design
That is 4750/6750.
Basic Course Info
“Prerequisite”: CS 4750/6750
Remedial background:
DFAB & Norman books (from 6750)
Web materials
General info (books/readings, exams, homework)
Related classes
syllabus (thematic organization)
Will be updated
Will contain some lecture slides
Grading
Different criteria for ugrad vs. grad.
Everyone (1st half of semester)
4 individual homework assignments (4 x 10%)
Exam 1 (20%)
Undergrads (2nd half of semester)
2 individual homework assignments (2 x 10%)
Final exam (20%)
Grads
Research project (40%)
Writing, implementation, presentation
Programming
Homework assignments are in Jython / Java
Java use is required
Jython is recommended as a layer on top of Java
Late policy
Project work is more flexible
You will choose programming env.
What you turn in must compile and run.
Important note
There will be minimal Jython / Java
training in class.
If you are not comfortable with Java
programming:
1) Learn
2) Drop course
Motivation (4750/6750)
Most systems are built for a user.
Good “user interfaces” are critical for
software survival and economics.
Designing for users is important and
difficult, and requires iteration.
Motivation for developers
It is necessary to have tools for:
rapid prototyping (quick feedback)
iterative development (rapid response)
of (semi-) functional systems.
As we move “off the desktop” the tools
we need to develop change.
What is the User Interface?
Since mid-40s
Display
Keyboard
Since late ’60s
pointing device
WIMP/GUI
Since early ’90s
An extension of our physical environment
Programmer’s Perspective
The “UI” is typically viewed as one component
of the overall system
The part that “deals with the user”
Separate from the “functional core” or
“application”
UI
App
Software Engineering the UI
Separation of concerns
UI from app
Isolate changes
Leads to more modular implementation
Will see other specific examples
Sometimes a conflict
Rapid feedback / performance
Basic parts of the UI
Input
UI
Core
Output
App
Interface
App
Understanding “traditional” GUI
Output & Input
Technology and programming models
Interaction models and architectures
Toolkits and programming environments
Advanced topics …
Multiscale input and output
Large surfaces, handheld, wearable
“Natural” interaction types
Audio, video, pen
Sensing-based interfaces
Recognition, context-awareness
Paper technologies
Intelligent environments
Requests?
Next Time
UIST Videos