- 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 1/3: 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
Optional Readings
- 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.
Due Wednesday 1/5
- Fill out the First Day Survey (linked in our welcome post on Ed)
- Day 2 Preparation: Syllabus and Drawing Readings
- Wednesday 1/5: 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, 1/6: Setting Up Doodle
- Learning Goals Android project structure; Our development environment (Git/Ed Lessons), Doodle
Supporting Materials
- 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
Optional Readings:
- 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 1/9 Practice Quiz 1
Week 2: Layout
- Monday, 1/10: Transformations and Animations
- Learning Goals Review drawing, cover animation, motivate layout
- Hint o’ Layout 1: Intro to Layout
- Wednesday, 1/12: Layout I: Introduction to Layout
- Learning Goals Relating layout to the interactor hierarchy
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.
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?
Required Readings:
- Spot the Heron case study code
Optional Readings
For Layout II
For Layout III
- Watch: Measure Layout Draw
Assigned AS1 Doodle peer reviews released;
Due Sunday 1/16
- Practice Quiz 2
- Peer evaluation of Doodle
- Doodle Reflection
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
Optional Readings
- 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
- Thursday, 1/20: Support on Layout
- Learning Goals Work through constraint based 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
Required Readings
Optional Readings
- Android Security Tips
- Cryptography
- Permissions
- Exploring intent-based Android security vulnerabilities on Google Play
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
Required Readings
Optional Readings
- Wednesday, 1/26: 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
Optional Readings
- Android Accessibility Guides
- Advanced Accessibility Concerns
- Talkback cheat sheet
- Resolving Common Talkback issues
Assigned: AS3 Accessibility
- Thursday, 1/27: Finish Layout & Start Accessibility
- Learning Goals Use the Accessibility Checker
Slides 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)
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
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
Supplemental Files:
Optional Readings
- Custom View Components
- Propositional Production Systems
- Informational only: Original PPS paper
- Thursday, 2/3: Event Handling Review and Practice
- Learning Goals Get comfortable with concepts related to Event Handling
Slides
Due: AS3 Accessibility
- Friday, 2/4: Designing Menus
- Learning Goals Introduce the Menus assignment
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;
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
Optional Readings
- Usability Testing Of Mobile Applications: A Step-By-Step Guide
- Some Social Scientist Are Tired of Asking for Permission
- Thursday, 2/10:Sample Menu Data Analysis
- Learning Goals Evaluating Human Subjects Experiments
Slides 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
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
Optional Readings
- Wednesday, 2/16: Undo
- Learning Goals Theory and implementation of Undo
Slides
Assigned AS5 Undo
Due AS4 Menus Testing and Report
- Thursday, 2/17: Work on Undo
- Learning Goals Help getting started on Undo
Slides
- Friday, 2/18: Behavior and persuasion
- Learning Goals Principals of and Problems with Behavior Change
Slides
Optional Readings
- Dopamine, Smartphones & You: A battle for your time
- Science of Persuasion
- Everything We Know About Facebook’s Secret Mood-Manipulation Experiment
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
Optional Readings
- Thursday, 2/24: Sensing
- Learning Goals
Slides
Due AS5 Undo Code and Video
- Friday, 2/25: Sensing
- Learning Goals Using Location Services
Slides
Optional Readings
- Info 448 on Sensors
- Android Sensors
Assigned Final Project
Due Sunday 2/27
- Practice Quiz 8
- AS5 Undo Reflection
Week 9: Final Project
- Monday, 2/28: Location
- Learning Goals How to implement location services on your device; how to integrate a map
Slides
Optional Readings
- Mapbox
- Android Location
- 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
- Thursday, 3/3: Review, Work on Final Project
- Learning Goals Make progess on the final project; share and critique designs.
Slides
Due AS5
- Final Project Design Document
- Final Project Application shell
- 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
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
Required Readings
Optional Readings
- Thursday, 3/10: Reviewing course content
- Learning Goals Course Review, finish up Final Project
Slides 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
- What is Flutter? up to “try it”
- The “aggressive composability” Inside Flutter
Due Friday 3/11 Final project code
- Sunday 3/13:
-
Due Final Project SUS testing
- Thursday 3/17:
-
Due Final Project Reflection