Skip to the content.
This is the Spring 2022 final website.

Week 1: What’s in an Interface

Monday 3/28: Let’s build an interface!
Learning Goals Basic structure of a user interfaces; How this looks in Android; Toolkit User Types;

Slides

Accessible Markdown for Introductions
Accessible Markdown for Building your first android app

Required Reading

Additional Resources

Due Wednesday 3/30

Wednesday 3/30: Syllabus, Finish creating our first app
Learning Goals Syllabus review, Continue creating our first App

Slides

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

Required Readings

Assigned

Thursday, 3/31: 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 Ed
Accessible Markdown for Doodle

Supporting Materials

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

Slides

Accessible Markdown for Drawing on the Screen
Accessible Markdown for Transformations & Animation

Additional Resources:

Due Sunday 4/3 Practice Quiz 1

Week 2: Layout

Monday, 4/4: 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
Wednesday, 4/6: 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

Additional Resources

Assigned AS2 Layout

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

Slides Final Doodle Requirements and Layout Review

Accessible Markdown for Final Doodle Requirements and Layout Review

Friday, 4/8 Layout II: Layout in Practice
Learning Goals How is layout accomplished? What is the difference between using XML vs creating Views and adding them to the parent?

Slides

Accessible Markdown for Layout II: Layout in Practice

Required Readings:

Additional Resources

For Layout II

Assigned AS1 Doodle peer reviews released

Due

Week 3: Theory & Security

Monday, 4/11: Layout III: Layout Implementation and Theory
Learning Goals Under the hood: How is layout accomplished?

Slides

Accessible Markdown for Review
Accessible Markdown for Layout III: Layout in Android

Required Readings:

Wednesday, 4/13: Properties of People I: Visual Perception
Learning Goals Design implications of people’s visual capabilities

Slides

Accessible Markdown for Properties of People 1: Vision

Additional Resources

Thursday, 4/14: 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, 4/15: Implementing Secure & Private Mobile Apps
Learning Goals Implementing Secure & Private Mobile Apps

Slides

Accessible Markdown for Storage
Accessible Markdown for Security

Required Readings

Additional Resources

Due Sunday 4/17 Practice Quiz 3

Week 4: Accessibility

Monday, 4/18: Getting Accessibility Right
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

Additional Resources

Wednesday, 4/20: Getting Android Accessibility Right
Learning Goals Learn about how to make Android apps accessible

Slides

Accessible Markdown for Android Accessibility

Required Readings

Additional Resources

Assigned: AS3 Accessibility

Thursday, 4/21: Finish Layout & Start Accessibility
Learning Goals Use the Accessibility Checker

Slides Layout and Accessibility

Accessible Markdown for Layout and Accessibility

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

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

Slides Event Handling I: Callbacks, Model View Controller, and Events

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

Supplemental Files: person.zip

Additional Resources: Android Architecture Patterns: Model-View Controller

Due Sunday 4/24 Practice Quiz 4

Week 5: Interaction

Monday 4/25: 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

Supplemental Files:

Additional Resources

Wednesday, 4/27: 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 I: Callbacks, Model View Controller, and Events
Accessible Markdown for Event Handling II: Delivery of Events in the Interactor Hierarchy
Accessible Markdown for Event Handling III: Reacting to Events in Android

Supplemental Files:

Additional Resources

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

Slides

Accessible Markdown for Event Handling

Due: AS3 Accessibility

Friday, 4/29: 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

Additional Resources

Assigned AS4 Menus

Due Sunday 5/1 Practice Quiz 5

Week 6: Designing from Data

Monday, 5/2: 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 Properties of People II: Motor Control

Additional Resources

Due Tuesday 11:59pm AS4 Menus Video Checkpoint

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

Slides

Accessible Markdown for Designing the Menus Experiment

Additional Resources

Thursday, 5/5:Sample Menu Data Analysis
Learning Goals Evaluating Human Subjects Experiments

Slides Menus Data Analysis

Accessible Markdown for Menus Data Analysis
Friday, 5/6: 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 Analyzing Data

Due AS4 Menus Code

Due Sunday 5/8 Practice Quiz 6

Week 7: Understanding Users

Monday, 5/9: Application Design Principles
Learning Goals Understanding how interaction takes place at the application level

Slides Application Design and Mental Models

Accessible Markdown for Application Design and Mental Models

Additional Resources

Wednesday, 5/11: Undo
Learning Goals Theory and implementation of Undo

Slides

Accessible Markdown for Undo

Assigned AS5 Undo

Thursday, 5/12: 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, 5/13: Behavior and persuasion
Learning Goals Principles of and Problems with Behavior Change

Slides

Accessible Markdown for Behavior Change with Mobile Devices

Additional Resources

Due Sunday 5/15 Practice Quiz 7

Week 8: Sensing

Monday, 5/16: 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

Additional Resources

Wednesday, 5/18: Sensing
Learning Goals Using Location Services

Slides

Accessible Markdown for Sensing and Reacting to the User
Accessible Markdown for Sensing in practice

Additional Resources

Thursday, 5/19: Sensing
Learning Goals

Slides

Accessible Markdown for Getting started with Sensing

Due AS5 Undo Code and Video

Friday, 5/20: Location
Learning Goals How to implement location services on your device; how to integrate a map

Slides

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

Additional Resources

Assigned Final Project

Due Sunday 5/21

Week 9: Final Project

Monday, 5/23: The Whole Toolkit Architecture
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
Wednesday, 5/25: Dark Patterns/Work in class on final project
Learning Goals Daniel Campos Zamora Guest Lecture. Discuss the impact of our design decisions - where do we assist users vs where do we hinder them.

Slides Dark Patterns

Thursday, 5/26: Review, Work on Final Project
Learning Goals Make progess on the final project; share and critique designs.

Slides

Accessible Markdown for Final project design review
Friday, 5/27: System Usabilty Scale Testing
Learning Goals Define System Usability Scale Testing and apply it to our final project

Slides SUS testing

Accessible Markdown for SUS testing

Required Readings

Due Friday 3/4 Final Project Design Document

Due Sunday 3/6 Practice Quiz 9

Week 10: Making connections

Monday, 5/30: Memorial Day
No Lecture
Wednesday, 6/1: 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

Additional Resources

Thursday, 6/2: Reviewing course content
Learning Goals Course Review, finish up Final Project

Slides Final Lab

Accessible Markdown for Final Lab
Friday 6/3: 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

Additional Resources

Due Final project code

Sunday 6/5:

Due Final Project SUS testing

Wednesday 6/8:

Due