Professional Documents
Culture Documents
CS349 User Interfaces: Syllabus
CS349 User Interfaces: Syllabus
CS349 User Interfaces: Syllabus
Syllabus
Red Room
October 1974
2
Another Way to Think About This
§ This is what a user-interface looked like before the early 1980s:
3 CS 349 - Syllabus
4
5
6 CS 349 - Syllabus
Today?
7 CS 349 - Syllabus
2015
e s 2010 iPad
rf ac
e
Int 2005
r
U se iPhone
al 2000
hic
ap iPod
Gr 1995
WWW
1990
c es
fa
er 1985
Int
l
ona Macintosh
a ti 1980
rs IBM PC
ve
Co
n 1975 Apple II
1970 Intel 4004 Microprocessor
s ARPANET
fa ce 1965
r
te
In 1960
h
tc
Ba
1955
1950
Where they found the applications Built them App store, www
that ran on the computer
10 CS 349 - Syllabus
Definition: User Interface
§ A user interface is the place where a person expresses intention to an
artifact, and the artifact presents feedback to the person.
express intention
presents feedback
person artifact
§ A jet?
14 CS 349 - Syllabus
15
List of Topics
§ Syllabus (introduction, motivation), Basic § Design principles (useful vs. usable, Norman, gulf
evaluation/execution, metaphor, feedback)
Concepts (user interfaces, interaction)
§ Design process (UCD, prototyping)
§ Multiple windows (BWS, Windows Mgr, X
§ History (interaction up to WIMP interfaces)
examples) § Touch interfaces (Input, Interaction problems, DM
§ Java: advanced (interfaces, listeners, canvas, on WIMP/touch, gestural, mobile)
drawing) § Touchless interfaces (gestural/speech design and
§ Events (event capture, event loop, dispatch) w. problems)
Java dispatch examples § Android: advanced (intents, activities, mvc,
§ 2D graphics (shape models, mouse interaction, graphics)
selection) § Users: perception and cognition (cognetics,
§ MVC (rationale, demos, widgets) memory, bias)
§ Accessibility (impairments, curb-cut, legal
§ Widgets (physical vs. logical input, consistency,
obligations)
toolkits)
§ Input (types of input, keyboards, positional input,
§ Layout (Dynamic/Responsive, Layout absolute/relative, direct/indirect)
Managers, Composite/Strategy DP) § Input performance (KLM, Fitt’s Law, Steering
§ Visual perception (temporal/spatial resolution, Law)
color, displays) § HCI research, methodology
§ Users: visual design (gestalt principles,
structure)
§ Responsiveness (perception, UI feedback, Java
UI threads, Web async calls)
§ Undo/Redo; Cut/Paste
16
CS349 People
§ Instructors:
- Jeff Avery & Ed Lank [Office hours by appointment]
§ Instructional Assistant:
- Jingjie (Vincent) Zheng
§ Teaching Assistants:
- Reza Saputra
- Terence Dickson
- Qi Feng (Edmund) Liu
- Shaishav Siddhpuria
- Alex Williams
17 CS 349 - Syllabus
Website, Schedule, Textbook
§ Web Site: www.student.cs.uwaterloo.ca/~cs349/
redirects to http://student.cs.uwaterloo.ca/~cs349/w16/about.html
§ Schedule on website
- lecture topics & slides, assignment & midterm dates, tutorials, sample code
§ Textbooks - useful but not required!
18 CS 349 - Syllabus
Lectures
§ Mon, Wed 11:30-12:50 MC 2054 Ed Lank
§ Tues, Thurs 08:30-09:50 PHY 150 Jeff Avery
§ Tues, Thurs 01:00-02:20 MC 4063 Jeff Avery
§ Tues, Thurs 02:30-03:50 MC 4041 Jeff Avery
During lectures:
§ Participate by asking and answering questions
§ Try and limit computer use for anything other than taking notes.
We’ll attempt to keep all lecture sections in-sync; if you miss your
scheduled lecture, you have three other chances to catch it!
19 CS 349 - Syllabus
Getting Help Outside of Lectures
§ Office Hours
- Jeff & Ed: by appointment
- TAs: to be determined
§ Piazza for Q&A
- Please enroll with a meaningful name
- Search before you post
- Use a meaningful title for every post
- Answer questions, but don’t be too explicit
- Build one collaborative answer rather than many follow-ups
20 CS 349 - Syllabus
Assignments
Assignments meant to provide meaningful, engaging experiences in
constructing interfaces… while giving you the opportunity to create
applications you will want to share with others.
§ You will build both desktop and mobile applications.
- We use Java 8 and Android for assignments.
- We’ll post material online to help you learn SVN and Java. You are
expected to cover this material on your own time!
§ There’s lots of room for creativity in assignments
- Typically have a component for going above and beyond the spec
- Marking is inherently subjective
21 CS 349 - Syllabus
Assignments
22 CS 349 - Syllabus
Assignment Policies
§ Due dates: 5:00pm on the date in schedule
- Late assignments are NOT accepted!
§ Submission is via Subversion (SVN) source code repository
- Enrolled students will receive an email with username/password
§ You should NOT be doing general Internet searches for more specific
solutions.
23 CS 349 - Syllabus
Grading
§ Assignments: 40%
- 10%, 10%, 10%, 10%
- A0 is a 1% bonus if you complete it on time
§ Midterm: 20%
- Friday Feb 12 @ 6:30 PM – 8:00 PM (location TBD)
§ Final: 40%
- Scheduled by the Registrar’s Office
§ To pass the course, you must pass the weighted exam average and the
weighted assignment average
- In other words, if you fail the assignments, you fail the course, regardless
of how well you do on the exams.
24 CS 349 - Syllabus
NOTE: Midterm exam is
on Friday, February 12,
6:30 – 8:00pm!!!
CS 349 - Syllabus
25
26
Next Steps
§ Explore the web site
§ Get signed up for Piazza
§ Start A0
- Install Java 8 JDK
- Install SVN client
- Get the world’s simplest Java program running
- Check it into SVN (once you receive your account details!)
27 CS 349 - Syllabus
Questions?
28 CS 349 - Syllabus
Definition: User Interface
§ A user interface is the place where a person expresses intention to an
artifact, and the artifact presents feedback to the person.
express intention
presents feedback
person artifact
mental
model system
model
present feedback
express intention
mental
model system
model
perceive present
express translate
present
View
perceive notify
mental system
model Model model
express
change
Controller
translate
30
20 draw widget
10 present
View value changed
perceive notify
express
change
mouse movement
Controller change temp to 20°
translate
mouse
Event: "An observable occurrence,
events Event: "A message to notify
phenomenon, or an extraordinary
occurrence" an application that something
happened"
34 CS 349 - Basic Concepts
Speech Temperature Control
text to
speech
“Temperature is present
18 degrees.” View
perceive notify
value changed
express
change
“Set temperature to
20° degrees.” Controller change temp to 20°
translate
speech
recognition
41 CS 349 - Syllabus
2015
e s 2010 iPad
rfac
e
Int 2005
r
U se iPhone
c al 2000
phi iPod
a
Gr 1995
1990 Linux 1.0
c es
fa
ter 1985
l In
na Macintosh
it o 1980
AT&T UNIX System V
s a
er BSD 4.2 + X Windows
onv 1975
C Apple II
1970 Intel 4004 Microprocessor
Early Unix (PDP)
s
ac
e 1965
rf
te
In 1960
tch
B a
1955
1950
present X Server
Output notify
perceive
huh…?
X Client Model
express
X Server change
translate Input
Controller
§ Xlib functions:
- connection operations: e.g. XOpenDisplay, XCloseDisplay, …
- connection operation requests: e.g. XCreateWindow, XCreateGC,…
- connection information requests: e.g. XGetWindowProperty, …
- local event queue operations: e.g. XNextEvent, XPeekEvent, …
- local data operations: e.g. XLookupKeysym, XParseGeometry, XSetRegion,
XCreateImage, XSaveContext, …
§ Xlib data types:
- e.g. Display, Window, GC, XSizeHints, XWhitePixel, XBlackPixel, etc.
52 CS 349 - Syllabus
Evolution of GUI Programming
§ Much of the XWindows architecture was influenced by its time period
- Larger server machines and low-cost client displays because computation was
expensive
§ As computation got cheaper, certain aspects of program behavior could be
assumed:
- Software runs on the client computer
- OS handles display rendering and has device drivers to coordinate with specific
hardware.
§ Over time, in a multi-OS world, even this restriction became a burden
- Services could be abstracted even farther from the underlying architectures,
and programs could run on virtual machines (e.g. JVM, .NET VM, etc.)
- Write once for a generic ‘virtual’ architecture, run the program on the virtual
machine.
- Any platform for which the ‘VM’ is implemented could execute the same
program.
53 CS 349 - Syllabus
Next Day: Windowing Systems and Event Loops
54 CS 349 - Syllabus