Skip to the content.
This is the CSE340-W20 final website.


We have had to update the planned assessment structure for the class due to COVID-19. We’ve made changes to the Undo assignment and the weighting of class participation up until this point. In both cases, things that were changed are marked as crossed out if they have been replaced.

Week 1: What’s in an Interface

Monday 1/6: Why take this course? What is HCI?
Learning Goals Relevance of class to all of CS
Accessible Markdown for Introduction to course
Wednesday 1/8: What is a toolkit?
Learning Goals Toolkit User Types; Basic structure of a user interfaces; How this looks in Android; Introduction of Doodle Assignment
Accessible Markdown for Interface Toolkits
Thursday, 1/9: Setting Up Doodle
Learning Goals Android project structure; learn about Doodle + GitGrade

Preparation for Lab

Day Of

Accessible Markdown for GitGrade
Accessible Markdown for Dev-Demo
Accessible Markdown for Doodle

Supporting Material Java Refresher; Git; 331’s Git resource

Friday, 1/10: Drawing on the Screen
Learning Goals How does Android support drawing on the screen; Drawing abstractions; clipping and other transformations
Accessible Markdown for Drawing Components & Animation

Week 2: Output it to me

Monday, 1/13: Drawing Interfaces: Component Hierarchies
Learning Goals Role of interactor in drawing on the screen; how to use animation to move interactors
Accessible Markdown for Drawing the interface
Wednesday, 1/15: Properties of People I: Visual Perception
Learning Goals Design implications of people’s visual capabilities
Accessible Markdown for Properties of People I: Vision
Thursday, 1/16: Get Help with Doodle
Learning Goals Support for Creative Work on Doodle; Discussion of and practice evaluating (toy example)
Accessible Markdown for Debugging, Peer Evaluation and Animation
Friday 1/17: Introduction to Layout
Learning Goals Relating layout to the interactor hierarchy
Accessible Markdown for Layout

Week 3: Include Everybody

Monday, 1/20: HOLIDAY
Tuesday, 1/21
Reading Due Layouts (Overview) and Building a Responsive UI
Wednesday, 1/22: Layout: Implementation and theory
Learning Goal Under the hood: How is layout accomplished?
Accessible Markdown for Layout in Android
Thursday, 1/23: Support on Layout
Learning Goals Work through constraint based layout
Accessible Markdown for Layout
Friday, 1/24: Guest Lecture (Tracy Tran): Accessibility
Learning Goals Learn about the history of accessibility, why it is important, and what problems exist
Accessible Markdown for Accessibility

Week 4: Input it to me!

Monday, 1/27: Guest Lecture (Venkatesh Potluri & Anne Ross): Android Accessibility
Learning Goals Learn about how to make Android apps accessible
Accessible Markdown for Accessibility in Practice
Wednesday, 1/29: Event Handling I: Where Events Come from
Learning Goals Basics of event handling including event types and listeners;
Accessible Markdown for Event Handling I: Model View Controller, Input Devices and Events
Thursday, 1/30: Finish Layout & Start Accessibility
Learning Goals Use the Accessibility Checker
Accessible Markdown for Layout and Accessibility
Friday 1/31: Event Handling II: Where Events Go
Learning Goals How events are dispatched to interactors, importance of interactor hierarchy
Accessible Markdown for Event Handling II: Delivery of Events in the Interactor Hierarchy

Week 5: React to me!

Monday, 2/3: Event Handling III: How Interactors use Events
Learn how to handle input; Create a non-rectangular interactor
Optional Reading: Custom View Components
Learning Goals Essential Geometry and Essential Behavior: How to properly implement a finite state machine in an interactor; Implementation Strategies for Interactors to Handle Events
Accessible Markdown for Essential Behavior and the use of finite state machines to implement it
Wednesday, 2/5: State Machine Implementation & Redraw
Midterm covers everything through Monday 2/3
Accessible Markdown for Summary of Toolkit Architecture
Accessible Markdown for Review Slides Touching on Key Concepts from Prior Weeks
Thursday, 2/6: Implementing Interactors
Learning Goals Get comfortable with finite state machines’ implementation in interactors
Accessible Markdown for Midterm Review and State Machines
Friday, 2/7: Midterm
Assigned AS3 (Color Picker Assigned):

Week 6: Beyond Touch: The Larger World

Monday, 2/10: Context Awareness
Learning Goals Assumptions about phone use and examples of context aware applications
Accessible Markdown for The Sensing Phone
Wednesday, 2/12: Physical Computing
Learning Goals Learn a little about 3D Printing and extending phones for sensing
Accessible Markdown for Physical Computing
Thursday, 2/13: Bundling + Color Picker help
Learning Goals What’re bundles? What do they do? Let’s find out!
Accessible Markdown for How to use Bundle
Friday, 2/14: Properties of People II: Motor Behavior
Learning Goals Learn the theory driving good interactor design; Motor behavior basics and implications for design including Fitts’ law and Guiard’s theory of bimanual input
Accessible Markdown for Properties of People II: Motor Control

Week 7: Design Principles

Monday, 2/17: HOLIDAY
Tuesday, 2/18
Due AS3 (Color Picker):
Wednesday, 2/19: Predicting and Evaluating Interactor Efficiency
Learning Goals Apply design tips we’ve discussed to comparing the efficiency of different variations on interactors; Learn about wide variety of solutions for selection; Learn about Qualitative and Quantitative ways of testing theories
Accessible Markdown for Predicting and Evaluating Interactor Efficiency
Thursday, 2/20: Designing Menus
Learning Goals Help with Menus Assignment; Revisiting key concepts
Accessible Markdown for Getting started with Menus
Friday, 2/21: Application Design Principals
Learning Goals Mental models, gulf of execution, gulf of evaluation
Accessible Markdown for Application Design Principals

Week 8: Understand Me

Monday, 2/24: Studying People
Learning Goals Understand concepts in data pipeline in an applied fashion including what is our hypothesis, how this translates into study design and method, considerations when interacting with users, data collection cleaning and analysis, some statistical methods, and how we draw conclusions
Accessible Markdown for Quantitative Study Design/Running
Wednesday, 2/26: Using data to influence people
Learning Goals Data analysis and how charts and statistics can be used and misused
Accessible Markdown for Analyzing Data
Thursday, 2/27 Exploring your data: Come to lab with your data
Learning Goals Evaluating Human Subjects Experiments
Accessible Markdown for Menus Data Analysis
Friday, 2/28: Friday, 3/7: Reasoning from Data
Learning Goals Principals of and Problems with Behavior Change
Accessible Markdown for Behavior Change with Mobile Devices

Week 9: Undo it for me

Monday, 3/2: Undo
Learning Goals Theory and implementation of Undo
Accessible Markdown for Undo
Wednesday, 3/4: Machine Learning
Learning Goals Using Machine Learning in Interactive Systems
Accessible Markdown for Mobile Machine Learning
Thursday, 3/5: Work on Undo
Slides Undo Lab
Accessible Markdown for Undo Lab

Section Handout Undo Practice Question

Accessible Markdown for Undo Practice Question

Section Handout Solution

Accessible Markdown for Solution
Friday, 3/6: Guest Lecture: Implementing Secure & Private Mobile Apps
Learning Goals Implementing Secure & Private Mobile Apps
Accessible Markdown for Secure Android Application Development

Week 10: Assess Me

Monday, 3/9: Interaction Programming in Web Development
Learning Goals See how Web Development follows many of the same Interaction Programming principles we’ve been learning all quarter!
Accessible Markdown for Interaction Programming in Web Development
Wednesday, 3/11: Heuristic Evaluation
Learning Goals Learn about a quick way to get feedback on the quality of your application, particularly good for focused tasks on screens.
Accessible Markdown for Heuristic Evaluation
Thursday, 3/12: Heuristic Eval of Undo App
Learning Goals Execute a Heuristic Eval (start in Lab)
Accessible Markdown for Heuristic Evaluation
Friday 3/13: Cancelled. Instruction Ends
Cancelled due to COVID-19 related events
Final Exam: Cancelled
Cancelled due to COVID-19 related events