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

Week 1: What’s in an Interface

Monday 3/29: 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

Optional Readings

Due Wednesday 3/31

Wednesday 3/31: Syllabus, Drawing on the Screen, StackOverflow study
Learning Goals Syllabus review, Continue creating our first App, Introduction to Stako

Slides

Accessible Markdown for Syllabus

Required Readings

Assigned AS1 Doodle

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

Slides

Accessible Markdown for Getting Started With Android
Accessible Markdown for GitGrade
Accessible Markdown for Doodle

Preparation for Lab Follow the instructions to setup your software ahead of lab

Friday, 4/2: Transformations and 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 Principals

Slides

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

Optional Readings:

Due Sun 4/4 Practice Quiz 1

Week 2: Layout

Monday, 4/5: Practice Quiz Review, Animations, Begin Layout
Learning Goals Review drawing and animation, motivate layout

Slides Review

Accessible Markdown for Review
Wednesday, 4/7: 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

Worksheet (for class) Layout 1

Optional Readings

Assigned AS2 Layout

Thursday, 4/8: 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

Resources

Due (10pm) AS1 Doodle code

Friday, 4/9 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 Layout II: Layout in Practice

Accessible Markdown for Layout II: Layout in Practice

Required Readings:

Optional Readings

Assigned Sat 4/10 AS1 Doodle peer reviews released;

Due Sun 4/11

Week 3: Theory & Security

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

Slides

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

Optional Readings

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

Slides Properties of People 1: Vision

Accessible Markdown for Properties of People 1: Vision

Optional Readings

Thursday, 4/15: Support on Layout
Learning Goals Work through constraint based layout

Slides Layout

Accessible Markdown for Layout

Reading

Friday, 4/16: Implementing Secure & Private Mobile Apps
Learning Goals Implementing Secure & Private Mobile Apps

Slides Security

Accessible Markdown for Security

Optional Readings

Due Fri 4/16 at 10pm AS2 Layout part 1-2 (for pixel tests)
Due Sun 4/18 Practice Quiz 3

Week 4: Accessibility

Monday, 4/19: Getting Accessibility Right
Learning Goals Learn about the history of accessibility, why it is important, and what problems exist

Slides

Accessible Markdown for Designing for Accessibility
Accessible Markdown for Review

Required Readings

Optional Readings

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

Slides Android Accessibility

Accessible Markdown for Android Accessibility

Required Readings

Optional Readings

Assigned: AS3 Accessibility

Thursday, 4/22: 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/23: 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

Optional Readings: Android Architecture Patterns: Model-View Controller

Due Sun 4/25 Practice Quiz 4

Week 5: Interaction

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

Slides

Accessible Markdown for Event Handling II: Delivery of Events in the Interactor Hierarchy
Accessible Markdown for Review

Supplemental Files:

Optional Readings

Wednesday, 4/28: Event Handling III: Making Interactors use Events
Learning Goals Implementation Strategies for Interactors to Handle Events

Slides Event Handling III: Reacting to Events in Android

Accessible Markdown for Event Handling III: Reacting to Events in Android

Supplemental Files:

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

Slides Event Handling

Accessible Markdown for Event Handling

Due: AS3 Accessibility

Friday, 4/30: Event Handling IV: Essential Geometry
Learning Goals How to create areate a non-rectangular interactor: Essential Geometry and Essential Behavior, how to properly implement a finite state machine in an interactor; ColorPicker intro

Slides Essential Behavior and the use of finite state machines to implement it

Accessible Markdown for Essential Behavior and the use of finite state machines to implement it

Optional Readings

Assigned AS4 Color Picker Due Sun 5/2 Practice Quiz 5

Week 6: Review and Sensing

Monday, 5/3: The Whole Toolkit Architecture Part I - Input
Learning Goals Review how the toolkit responds to input and process output as a complete cycle.

Slides

Accessible Markdown for The Whole Toolkit Architecture Part I
Accessible Markdown for Practice Quiz Review
Wednesday, 5/5: The Whole Toolkit Architecture Part 2 - Output
Learning Goals Review how the toolkit responds to input and process output as a complete cycle.

Slides The Whole Toolkit Architecture Part II

Accessible Markdown for The Whole Toolkit Architecture Part II

Optional Readings

Thursday, 5/6: Bundling + Color Picker help
Learning Goals What’re bundles? What do they do? Let’s find out!

Slides How to use Bundle

Accessible Markdown for How to use Bundle

Due AS4 Color Picker video check point

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

Slides Sensing and Reacting to the User

Accessible Markdown for Sensing and Reacting to the User

Optional Readings

Due Sun 5/9 Practice Quiz 6

Week 7: Designing From Data

Monday, 5/10:Predicting and Evaluating Interactor Efficiency
Learning Goals Learn the theory driving good interactor design; Motor behavior basics and implications for design including Fitts’ law; 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 Practice Quiz Review

Optional Readings

Wednesday, 5/12: Designing Menus
Learning Goals Help with Menus Assignment; Revisiting key concepts

Slides Getting started with Menus

Accessible Markdown for Getting started with Menus

Assigned AS5 Menus

Thursday, 5/13: Designing Menus
Learning Goals Help with Menus Assignment; Revisiting key concepts

Slides Getting started with Menus

Accessible Markdown for Getting started with Menus

Due AS4 Color Picker code and reflection

Friday, 5/14: Behavior and persuasion
Learning Goals Principals of and Problems with Behavior Change

Slides Behavior Change with Mobile Devices

Accessible Markdown for Behavior Change with Mobile Devices

Optional Readings

Due Sun 5/16 Practice Quiz 7

Week 8: Understanding Users

Monday, 5/17: Studying People I
Learning Goals Learn about wide variety of solutions for selection; Learn about Qualitative and Quantitative ways of testing theories

Slides

Accessible Markdown for Designing Experiments
Accessible Markdown for Practice Quiz Review

Optional Readings

Wednesday, 5/19: Studying People II
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; Data analysis and how charts and statistics can be used and misused

Slides Analyzing Data

Accessible Markdown for Analyzing Data

Assigned AS5 Menus part 5-6

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

Slides Menus Data Analysis

Accessible Markdown for Menus Data Analysis

Due AS5 Menus part 1-4

Friday, 5/21: Application Design Principals
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

Optional Readings

Due Sun 5/23 Practice Quiz 8

Week 9: Undo

Monday, 5/24: Lab in The Wild (Nigini Oliveira - Guest lecture)
Learning Goals Contrasting a large remote survey based study and a game study.

Slides Lab in the Wild

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

Slides Undo

Accessible Markdown for Undo

Assigned AS6 Undo

Thursday, 5/27: Work on Undo
Slides Getting started with Undo
Accessible Markdown for Getting started with Undo

Due AS5 Menus part 5-6

Friday, 5/28: Physical Computing
Learning Goals Learn a little about 3D Printing and extending phones for sensing

Slides Physical Computing

Accessible Markdown for Physical Computing

Optional Readings/Watchings

Due Sun 5/30 Practice Quiz 9

Week 10: Web & Flutter

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

Optional Readings

Thursday, 6/3: Reviewing course content
Learning Goals Course Review, finish up Undo

Slides Final Lab

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

Optional Readings

Monday 6/7: Due date for final reflection
Due Undo