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

Week 1: What’s in an Interface

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

Wednesday 1/5: Syllabus, Finish creating our first app
Learning Goals Syllabus review, Continue creating our first App

Slides

Accessible Markdown for Syllabus
Accessible Markdown for Drawing on the Screen

Required Readings

Assigned

Thursday, 1/6: 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

Accessible Markdown for Java Refresher
Accessible Markdown for Advanced Java
Accessible Markdown for Git in 340
Friday, 1/7: , 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 Principals

Slides

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

Optional Readings:

Due Sunday 1/9 Practice Quiz 1

Week 2: Layout

Monday, 1/10: 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, 1/12: 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

Optional Readings

Assigned (Maybe) AS2 Layout

Due AS1 Doodle code

Thursday, 1/13: 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

Friday, 1/14 Layout II: Layout in Practice, Layout III: 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? 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:

Optional Readings

For Layout II

For Layout III

Assigned AS1 Doodle peer reviews released;

Due Sunday 1/16

Week 3: Theory & Security

Monday, 1/17: Martin Luther King Day
No Lecture
Wednesday, 1/19: 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

Optional Readings

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

Slides Layout

Accessible Markdown for Layout

Reading

Due Thursday 1/20 at 10pm AS2 Layout part 1-2 \

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

Slides

Accessible Markdown for Storage
Accessible Markdown for Security

Required Readings

Optional Readings

Due Sunday 1/23 Practice Quiz 3

Week 4: Accessibility

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

Slides

Designing for Accessibility

Accessible Markdown for Designing for Accessibility

Required Readings

Optional Readings

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

Slides

Accessible Markdown for Android Accessibility

Required Readings

Optional Readings

Assigned: AS3 Accessibility

Thursday, 1/27: 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, 1/28: 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 Sunday 1/30 Practice Quiz 4

Week 5: Interaction

Monday 1/31: 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

Supplemental Files:

Optional Readings

Wednesday, 2/2: 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 III: Reacting to Events in Android
Accessible Markdown for Event Handling IV: Essential Behavior and the use of finite state machines to implement it

Supplemental Files:

Optional Readings

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

Assigned AS4 Menus

Due Sunday 2/6 Practice Quiz 5

Week 6: Designing from Data

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

Optional Readings

Due Tuesday 11:59pm AS4 Menus Video Checkpoint

Wednesday, 2/9: 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

Optional Readings

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

Slides Menus Data Analysis

Accessible Markdown for Menus Data Analysis
Friday, 2/11: 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 (lock still Saturday)

Due Sunday 2/13 Practice Quiz 6

Week 7: Understanding Users

Monday, 2/14: 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

Wednesday, 2/16: Undo
Learning Goals Theory and implementation of Undo

Slides

Accessible Markdown for Undo

Assigned AS5 Undo

Due AS4 Menus Testing and Report

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

Slides

Accessible Markdown for Getting started with Undo
Friday, 2/18: Behavior and persuasion
Learning Goals Principals of and Problems with Behavior Change

Slides

Accessible Markdown for Behavior Change with Mobile Devices

Optional Readings

Due Sunday 2/20 Practice Quiz 7

Week 8: Sensing

Monday, 2/21: Presidents’ Day
No Lecture
Wednesday, 2/23: 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

Optional Readings

Thursday, 2/24: Sensing
Learning Goals

Slides

Accessible Markdown for Getting started with Sensing

Due AS5 Undo Code and Video

Friday, 2/25: Sensing
Learning Goals Using Location Services

Slides

Accessible Markdown for Getting started on the final project
Accessible Markdown for Sensing in practice

Optional Readings

Assigned Final Project

Due Sunday 2/27

Week 9: Final Project

Monday, 2/28: Location
Learning Goals How to implement location services on your device; how to integrate a map

Slides

Accessible Markdown for Location, Location, Location

Optional Readings

Wednesday, 3/2: 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
Thursday, 3/3: Review, Work on Final Project
Learning Goals Make progess on the final project; share and critique designs.

Slides

Due AS5

Friday, 3/4:
Learning Goals Work in class on final project

Due Sunday 3/6 Practice Quiz 9

Week 10: Making connections

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

Wednesday, 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!

Slides Interaction Programming in Web Development

Accessible Markdown for Interaction Programming in Web Development

Required Readings

Optional Readings

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

Slides Final Lab

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

Due Friday 3/11 Final project code

Sunday 3/13:

Due Final Project SUS testing

Thursday 3/17:

Due Final Project Reflection