- Week 1: What’s in an Interface
- Week 2: Layout
- Week 3: Theory & Security
- Week 4: Accessibility
- Week 5: Interaction
- Week 6: Designing from Data
- Week 7: Understanding Users
- Week 8: Sensing
- Week 9: Final Project
- Week 10: Making connections
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;
Required Reading
- Watch the video and read section 4.1 The CS Field Guide to Human Computer Interaction Introduction
Additional Resources
- Android Basics: Follow this tutorial to create an Android Application.
- Continue with the tutorial to also run your app either on an emulator or on an Android Device.
- Framework vs. Toolkit vs. Library Definitions
Due Wednesday 3/30
- Fill out the First Day Survey (linked in our welcome post on Ed)
- Day 2 Preparation: Syllabus and Drawing Readings
- Wednesday 3/30: Syllabus, Finish creating our first app
- Learning Goals Syllabus review, Continue creating our first App
- Possibly start Drawing on the Screen
Required Readings
- Read the syllabus
- Read Basic Painting with Views
- Read Minimum bounding boxes and play with Bounding boxes in coordinate geometry
- Look at the documentation for ImageView; Canvas and Paint.
Assigned
- AS1 Doodle
- Preparation for Lab Follow the instructions to setup your software ahead of lab
- Thursday, 3/31: Setting Up Doodle
- Learning Goals Android project structure; Our development environment (Git/Ed Lessons), 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
- Possibly start: Transformations & Animation
Additional Resources:
- A beginners guide to implement Android Animations — Part 1
- Smashing Magazine’s article on animation’s uses on mobile devices
- Read/watch Google’s guidelines on using motion in interface design
Due Sunday 4/3 Practice Quiz 1
Week 2: Layout
- Monday, 4/4: Transformations and Animations
- Learning Goals Review drawing, cover animation, motivate layout
- Hint o’ Layout 1: Intro to Layout
- Wednesday, 4/6: Layout I: Introduction to Layout
- Learning Goals Relating layout to the interactor hierarchy
Additional Resources
Assigned AS2 Layout
- Thursday, 4/7: Debugging, Peer Evaluation, Doodle Help
- Learning Goals Review different Android layout types and additional layout practice.
- 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?
Required Readings:
- Spot the Heron case study code
Additional Resources
For Layout II
Assigned AS1 Doodle peer reviews released
Due
- Today
- AS1 Doodle code
- Sunday 4/10
- Peer evaluation of Doodle
- Practice Quiz 2
Week 3: Theory & Security
- Monday, 4/11: Layout III: Layout Implementation and Theory
- Learning Goals Under the hood: How is layout accomplished?
Required Readings:
- Watch: Measure Layout Draw
- Wednesday, 4/13: Properties of People I: Visual Perception
- Learning Goals Design implications of people’s visual capabilities
Additional Resources
- 5 Visual-Design Principles in UX
- Visual Design Basics
- Gestalt Principles
- Theresa-Marie Rhyne - SIGGRAPH University Applying Color Theory to Digital Media and Visualization - at least the first 11 minutes or so
- Laws of UX
- HSL tool
- Thursday, 4/14: Support on Layout
- Learning Goals Work through constraint based 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
Required Readings
Additional Resources
- Android Security Tips
- Cryptography
- Permissions
- Exploring intent-based Android security vulnerabilities on Google Play
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
- Finish Security
Required Readings
Additional Resources
- Wednesday, 4/20: Getting Android Accessibility Right
- Learning Goals Learn about how to make Android apps accessible
Required Readings
- Accessibility in Android Tutorial
- Test your app’s accessibility
- Android Accessibility Tutorial: Getting Started
Additional Resources
- Android Accessibility Guides
- Advanced Accessibility Concerns
- Talkback cheat sheet
- Resolving Common Talkback issues
Assigned: AS3 Accessibility
- Thursday, 4/21: Finish Layout & Start Accessibility
- Learning Goals Use the Accessibility Checker
Slides 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)
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
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
Supplemental Files:
Additional Resources
- Custom View Components
- Propositional Production Systems
- Informational only: Original PPS paper
- Thursday, 4/28: Event Handling Review and Practice
- Learning Goals Get comfortable with concepts related to Event Handling
Slides
Due: AS3 Accessibility
- Friday, 4/29: Designing Menus
- Learning Goals Introduce the Menus assignment
Additional Resources
- Android Touch System — Part 1: Touch Functions and the View Hierarchy
- Android Touch System — Part 2: Common Touch Event Scenarios
- Android Touch System — Part 3: MotionEvent Listeners
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;
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
Additional Resources
- Usability Testing Of Mobile Applications: A Step-By-Step Guide
- Some Social Scientist Are Tired of Asking for Permission
- Thursday, 5/5:Sample Menu Data Analysis
- Learning Goals Evaluating Human Subjects Experiments
Slides 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
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
Additional Resources
- Wednesday, 5/11: Undo
- Learning Goals Theory and implementation of Undo
Slides
Assigned AS5 Undo
- Thursday, 5/12: Work on Undo
- Learning Goals Help getting started on Undo
Slides
Due AS4 Menus Testing and Report
- Friday, 5/13: Behavior and persuasion
- Learning Goals Principles of and Problems with Behavior Change
Slides
Additional Resources
- Dopamine, Smartphones & You: A battle for your time
- Science of Persuasion
- Everything We Know About Facebook’s Secret Mood-Manipulation Experiment
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
Additional Resources
- Wednesday, 5/18: Sensing
- Learning Goals Using Location Services
Slides
Additional Resources
- Info 448 on Sensors
- Android Sensors
- Thursday, 5/19: Sensing
- Learning Goals
Slides
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
Additional Resources
- Mapbox
- Android Location
Assigned Final Project
Due Sunday 5/21
- Practice Quiz 8
- AS5 Undo Reflection
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
- 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
- Friday, 5/27: System Usabilty Scale Testing
- Learning Goals Define System Usability Scale Testing and apply it to our final project
Slides 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
Required Readings
Additional Resources
- Thursday, 6/2: Reviewing course content
- Learning Goals Course Review, finish up Final Project
Slides 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
- What is Flutter? up to “try it”
- The “aggressive composability” Inside Flutter
- Sunday 6/5:
-
Due Final Project SUS testing
- Wednesday 6/8:
-
Due
- Final Project Reflection
- Final Project Video