Skip to the content.
This is the Winter 23 final website.

Recordings for the lectures can be found on Panopto through Canvas.

Week 1: What’s in an Interface

Pre-class: Introduction and Syllabus review
Learning Goals Course introductions and Syllabus information

Slides

Accessible Markdown for Introductions
Accessible Markdown for Syllabus

Required

Wednesday 1/4: Let’s build an interface!
Learning Goals Basic structure of a user interfaces; How this looks in Android; Toolkit Types; Developer Roles

Slides

Accessible Markdown for Building your first android app

Required

Supporting Materials

Assigned

Thursday 1/5: Setting Up Doodle
Learning Goals Android project structure; Our development environment (Git/Ed Lessons), Doodle

Slides

Accessible Markdown for Getting Started With Android
Accessible Markdown for Assignment Turn In and EdLessons
Accessible Markdown for Doodle

Supporting Materials

Friday 1/6: , Drawing on the Screen, Animation
Learning Goals How does Android support drawing on the screen; what is a pixel; bounding boxes and coordinate systems.

Slides

Accessible Markdown for Building your first android app
Accessible Markdown for Drawing on the Screen

Supporting Materials

Due Sunday 1/8 Practice Quiz 1

Week 2: Layout

Monday 1/9: Transformations and Animations,
Learning Goals Review drawing, cover animation, motivate layout

Slides

Accessible Markdown for Review
Accessible Markdown for Transformations & Animation
Accessible Markdown for Layout 1: Intro to Layout

Supporting Materials

Wednesday 1/11: Layout I: Introduction to Layout
Learning Goals Relating layout to the interactor hierarchy

Slides Layout 1: Intro to Layout

Accessible Markdown for Layout 1: Intro to Layout

Supporting Materials

Assigned AS2 Layout

Thursday 1/12: Debugging, Peer Evaluation, Doodle Help
Learning Goals Review different Android layout types and additional layout practice.

Slides

Accessible Markdown for Final Doodle Requirements and Layout Review
Accessible Markdown for Different Layout Types

Friday 1/13 Layout II: Layout in Practice, Layout III: Layout Implementation and Theory
Learning Goals How is layout accomplished? What is the difference between using XML vs creating Views and adding them to the parent? Under the hood: How is layout accomplished?

Slides

Accessible Markdown for Layout II: Layout in Practice
Accessible Markdown for Layout III: Layout in Android

Required Readings:

Supporting Materials

For Layout II

Required Readings:

Assigned AS1 Doodle peer reviews released

Due

Week 3: Theory & Security

Monday 1/16: MLK Day
No Lecture
Wednesday 1/18: Properties of People I: Visual Perception
Learning Goals Design implications of people’s visual capabilities

Slides

Accessible Markdown for Review
Accessible Markdown for Properties of People 1: Vision

Supporting Materials

Thursday 1/19: Support on Layout
Learning Goals Work through constraint based layout

Slides Layout

Accessible Markdown for Layout

Section Excericse Repo

Reading

Due AS2 Layout part 1-2

Friday 1/20: Implementing Secure & Private Mobile Apps
Learning Goals Implementing Secure & Private Mobile Apps

Slides

Accessible Markdown for Storage
Accessible Markdown for Security

Required Readings

Supporting Materials

Due Sunday 1/22 Practice Quiz 3

Week 4: Accessibility

Monday 1/23: Inclusive Design
Learning Goals Learn about the history of accessibility, why it is important, and what problems exist

Slides

Accessible Markdown for Security
Accessible Markdown for Designing for Accessibility

Required Readings

Supporting Materials

Wednesday 1/25: Getting Android Accessibility Right
Learning Goals Learn about how to make Android apps accessible

Slides

Accessible Markdown for Designing for Accessibility
Accessible Markdown for Android Accessibility

Required Readings

Supporting Materials

Assigned: AS3 Accessibility

Thursday 1/26: Finish Layout & Start Accessibility
Learning Goals Use the Accessibility Checker

Slides Layout and Accessibility

Accessible Markdown for Layout and Accessibility

Section Excericse Repo

Due AS2 Layout part 3-5 (code + reflection)

Friday 1/27: Event Handling I: Where Events Come from
Learning Goals Basics of event handling including event types and listeners (callbacks)

Slides

Accessible Markdown for Android Accessibility
Accessible Markdown for Event Handling I: Callbacks, Model View Controller, and Events

Supporting Materials

Due Sunday 1/29 Practice Quiz 4

Week 5: Interaction

Monday 1/30: Event Handling II: Where Events Go
Learning Goals How events are dispatched to interactors, importance of interactor hierarchy

Slides

Accessible Markdown for Event Handling I: Callbacks, Model View Controller, and Events
Accessible Markdown for Event Handling II: Delivery of Events in the Interactor Hierarchy

Supporting Materials

Wednesday 2/1: Event Handling III & IV: Interactors, Events, and Essential Geometry
Learning Goals Implementation Strategies for Interactors to Handle Events, How to create a non-rectangular interactor: Essential Geometry and Essential Behavior, how to properly implement a finite state machine in an interactor

Slides

Accessible Markdown for Event Handling II: Delivery of Events in the Interactor Hierarchy
Accessible Markdown for Event Handling III: Reacting to Events in Android
Accessible Markdown for Event Handling IV: Essential Behavior and the use of finite state machines to implement it

Supporting Materials

Thursday 2/2: Event Handling Review and Practice
Learning Goals Get comfortable with concepts related to Event Handling

Slides

Accessible Markdown for Event Handling

Section Excericse Repo

Due: AS3 Accessibility

Friday 2/3: Designing Menus
Learning Goals Introduce the Menus assignment

Slides

Accessible Markdown for Event Handling IV: Essential Behavior and the use of finite state machines to implement it
Accessible Markdown for Getting started with Menus

Supporting Materials

Assigned AS4 Menus

Due Sunday 2/5 Practice Quiz 5

Week 6: Designing from Data

Monday 2/6: Properties of People II: Motor
Learning Goals Predicting and Evaluating Interactor Efficiency - Learn the theory driving good interactor design; Motor behavior basics and implications for design including Fitts’ law;

Slides

Accessible Markdown for Getting started with Menus
Accessible Markdown for Properties of People II: Motor Control

Supporting Materials

Wednesday 2/8: Evaluating Interactions
Learning Goals Apply design tips we’ve discussed to comparing the efficiency of different variations on interactors;

Slides

Accessible Markdown for Properties of People II: Motor Control
Accessible Markdown for Designing the Menus Experiment

Supporting Materials

Due Wed AS4 Menus Video Checkpoint

Thursday 2/9:Sample Menu Data Analysis
Learning Goals Evaluating Human Subjects Experiments

Slides Menus Data Analysis

Accessible Markdown for Menus Data Analysis
Friday 2/10: Studying People
Learning Goals Learn about wide variety of solutions for selection; Learn about Qualitative and Quantitative ways of testing theories; Create a study design and method, including considerations when interacting with users, data collection cleaning and analysis, some statistical methods, and how we draw conclusions; Data analysis and how charts and tatistics can be used and misused

Slides

Accessible Markdown for Designing the Menus Experiment
Accessible Markdown for Analyzing Data

Supporting Materials

Due Saturday 2/11 AS4 Menus Code

Due Sunday 2/12 Practice Quiz 6

Week 7: Understanding Users

Monday 2/13: Application Design Principles
Learning Goals Understanding how interaction takes place at the application level

Slides

Accessible Markdown for Analyzing Data
Accessible Markdown for Application Design and Mental Models

Supporting Materials

Wednesday 2/15: Undo
Learning Goals Theory and implementation of Undo

Slides

Accessible Markdown for Undo

Assigned AS5 Undo

Thursday 2/16: Work on Undo
Learning Goals Help getting started on Undo

Slides

Accessible Markdown for Getting started with Undo

Due AS4 Menus Testing and Report

Friday 2/17: Behavior and persuasion
Learning Goals Principles of and Problems with Behavior Change

Slides

Accessible Markdown for Behavior Change with Mobile Devices

Supporting Materials

Due Sunday 2/19 Practice Quiz 7

Week 8: Sensing

Monday 5/20: Presidents’ Day
No Lecture
Wednesday 2/22: Sensing
Learning Goals Using Location Services

Slides

Accessible Markdown for Sensing in practice

Supporting Materials

Thursday 2/23: Sensing Part I
Learning Goals

Slides

Accessible Markdown for Getting started with Sensing

Due AS5 Undo Code and Video

Friday 2/24: Sensing part II Location
Learning Goals How to implement location services on your device; how to integrate a map

Slides

Accessible Markdown for Location, Location, Location
Accessible Markdown for Getting started on the final project

Supporting Materials

Assigned Final Project

**Due Sunday 2/26 **

Week 9: Final Project

Monday 2/27: Implicit Sensing and Machine Learning
Learning Goals Exploring the implications of implicit data on a phone, and how we access and analyze it.

Slides

Accessible Markdown for Sensing and Reacting to the User
Accessible Markdown for Activities and Intents, Revisited

Supporting Materials

Wednesday 3/1: The Whole Toolkit Architecture Part I
Learning Goals Recorded: Review how the toolkit responds to input and processes output as a complete cycle. How data can be stored in short term and longer term memory. In class: work on final project.

Slides

Accessible Markdown for The Whole Toolkit Architecture Part I - Input
Accessible Markdown for The Whole Toolkit Architecture Part II - Output
Accessible Markdown for The Whole Toolkit Architecture Part III - Storage
Thursday 3/2: Review, Work on Final Project
Learning Goals Make progess on the final project; share and critique designs.

Due Final Project Design Document

Slides

Accessible Markdown for Final project design review
Friday 3/3: The Whole Toolkit Architecture Part II
Learning Goals Recorded: Review how the toolkit responds to input and processes output as a complete cycle. How data can be stored in short term and longer term memory. In class: work on final project.

Slides

Accessible Markdown for The Whole Toolkit Architecture Part I - Input
Accessible Markdown for The Whole Toolkit Architecture Part II - Output
Accessible Markdown for The Whole Toolkit Architecture Part III - Storage

Due Sunday 3/5 Practice Quiz 9

Week 10: Making connections

Monday 3/6:
Learning Goals Define System Usability Scale Testing and apply it to our final project

Slides SUS testing

Accessible Markdown for SUS testing

Required Readings

Wednesday 3/8: 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!

Slides Interaction Programming in Web Development

Accessible Markdown for Interaction Programming in Web Development

Required Readings

Supporting Materials

Thursday 3/9: Reviewing course content
Learning Goals Course Review, finish up Final Project

Slides Final Lab

Accessible Markdown for Final Lab
Friday 3/10: Introduction to Flutter
Learning Goals See how Flutter follows many of the same Interaction Programming principles we’ve been learning all quarter!

Slides Interaction Programming in Flutter

Supporting Materials

Due Final project code

Due Sunday 3/12 Practice Quiz 10

Sunday 3/12:

Due Final Project SUS testing

Monday 3/13:

Due