- 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
Recordings for the lectures can be found on Panopto through Canvas.
Week 1: What’s in an Interface
- Monday 3/27: Introductions. Let’s build an interface!
- Learning Goals Course introductions; Basic structure of a user interfaces; How this looks in Android; Toolkit User Types
Slides
Required
- Watch the video and read section 4.1 The CS Field Guide to Human Computer Interaction Introduction
- Read the syllabus
- Install Android Studio
- Create a basic Android Application
- Android Basics: Follow this tutorial
- Continue with the tutorial to also run your app either on an emulator or on an Android Device.
Supporting Materials
- Framework vs. Toolkit vs. Library Definitions
- Wednesday 3/29: Syllabus, Finish creating our first app
- Learning Goals Syllabus review, Basic structure of a user interfaces; How this looks in Android; Toolkit Types; Developer Roles
- Finish: Building your first android app
- Start: Drawing on the Screen
Required
- Read Minimum bounding boxes and play with Bounding boxes in coordinate geometry
- View the documentation for
- Basic Painting with Views
Assigned
-
Due Thursday 3/30
- Preparation for Lab Follow the instructions to setup your software ahead of lab
-
Assigned (Due Friday 3/31)
- Fill out the First Day Survey (linked in our welcome post on Ed)
- Wednesday Warmup, question, and exit tickets
-
Assigned (Due Friday 4/8)
- AS1 Doodle
- Thursday 3/31: Setting Up Doodle
- Learning Goals Android project structure; Our development environment (Git/Ed Lessons), Doodle
Supporting Materials
- Friday 3/31: , 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: Transformations & Animation
Supporting Materials
- 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/2 Practice Quiz 1
Week 2: Layout
- Monday 4/3: Transformations and Animations,
- Learning Goals Review drawing, cover animation, motivate layout
- Hint o’ Layout 1: Intro to Layout
- Wednesday 4/5: Layout I: Introduction to Layout
- Learning Goals Relating layout to the interactor hierarchy
- Finish Transformations & Animation
Required Readings:
- Spot the Heron case study code
Supporting Materials
Assigned AS2 Layout
- Thursday 4/6: Debugging, Peer Evaluation, Doodle Help
- Learning Goals Review different Android layout types and additional layout practice.
- Friday 4/7 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?
Supporting Materials
Assigned
- AS1 Doodle peer reviews released
Due
- Today
- AS1 Doodle code
- Sunday 4/9
- Peer evaluation of Doodle
- Practice Quiz 2
Week 3: Theory & Security
- Monday 4/10: Layout III: Layout Implementation and Theory
- Learning Goals Under the hood: How is layout accomplished?
Required Readings:
- Watch: Measure Layout Draw
- Wednesday 4/12: Properties of People I: Visual Perception
- Learning Goals Design implications of people’s visual capabilities
Supporting Materials
- 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
Due AS2 Layout part 1-2
- Thursday 4/13: Support on Layout
- Learning Goals Work through constraint based layout
Section Excericse Repo
Reading
- Friday 4/14: Implementing Secure & Private Mobile Apps
- Learning Goals Implementing Secure & Private Mobile Apps
Slides
- Quickly finish Properties of People 1: Vision
Required Readings
Supporting Materials
- Android Security Tips
- Cryptography
- Permissions
- Exploring intent-based Android security vulnerabilities on Google Play
Due Sunday 4/16 Practice Quiz 3
Week 4: Accessibility
- Monday 4/17: Inclusive Design
- Learning Goals Learn about the history of accessibility, why it is important, and what problems exist
- Finish Security
Required Readings
Supporting Materials
- Wednesday 4/19: Getting Android Accessibility Right
- Learning Goals Learn about how to make Android apps accessible
- Finish Designing for Accessibility
Required Readings
- Accessibility in Android Tutorial
- Test your app’s accessibility
- Android Accessibility Tutorial: Getting Started
Supporting Materials
- Android Accessibility Guides
- Advanced Accessibility Concerns
- Talkback cheat sheet
- Resolving Common Talkback issues
Assigned: AS3 Accessibility
- Thursday 4/20: Finish Layout & Start Accessibility
- Learning Goals Use the Accessibility Checker
Slides Layout and Accessibility
Section Excericse Repo
Due AS2 Layout part 3-5 (code + reflection)
- Friday 4/21: Event Handling I: Where Events Come from
- Learning Goals Basics of event handling including event types and listeners (callbacks)
- Finish Android Accessibility
Supporting Materials
Due Sunday 4/23 Practice Quiz 4
Week 5: Interaction
- Monday 4/24: Event Handling II: Where Events Go
- Learning Goals How events are dispatched to interactors, importance of interactor hierarchy
Supporting Materials
- Wednesday 4/26: 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
- Maybe start Event Handling IV: Essential Behavior and the use of finite state machines to implement it
Supporting Materials
- Counter
- Custom View Components
- Propositional Production Systems
- Informational only: Original PPS paper
- Thursday 4/27: Event Handling Review and Practice
- Learning Goals Get comfortable with concepts related to Event Handling
Slides
Section Excericse Repo
Due: AS3 Accessibility
- Friday 4/28: Designing Menus
- Learning Goals Introduce the Menus assignment
Supporting Materials
- Counter
- Events: Bubbling vs capturing
- 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 4/30 Practice Quiz 5
Week 6: Designing from Data
- Monday 5/1: 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;
- Finish Getting started with Menus
Supporting Materials
- Wednesday 5/3: Evaluating Interactions
- Learning Goals Apply design tips we’ve discussed to comparing the efficiency of different variations on interactors;
Slides
Supporting Materials
- Usability Testing Of Mobile Applications: A Step-By-Step Guide
- Some Social Scientist Are Tired of Asking for Permission
Due Wed AS4 Menus Video Checkpoint
- Thursday 5/4:Sample Menu Data Analysis
- Learning Goals Evaluating Human Subjects Experiments
Slides Menus Data Analysis
- Friday 5/5: 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
Supporting Materials
- TikTok vs Spotify data set
- 23sp Sample data
- Older OpenSecrets.org data set on internet privacy resolution demo: tinyurl.com/cse340-22sp-ip-data
Due Friday 5/5 AS4 Menus Code
Due Sunday 5/7 Practice Quiz 6
Week 7: Understanding Users
- Monday 5/8: Application Design Principles
- Learning Goals Understanding how interaction takes place at the application level
Slides
Supporting Materials
- Wednesday 5/10: Undo
- Learning Goals Theory and implementation of Undo
Slides
Assigned AS5 Undo
- Thursday 5/11: Work on Undo
- Learning Goals Help getting started on Undo
Slides
Due AS4 Menus Testing and Report
- Friday 5/12: Behavior and persuasion
- Learning Goals Principles of and Problems with Behavior Change
Slides
Supporting Materials
- Dopamine, Smartphones & You: A battle for your time
- Science of Persuasion
- Everything We Know About Facebook’s Secret Mood-Manipulation Experiment
Due Sunday 5/14 Practice Quiz 7
Week 8: Sensing
- Monday 5/15: The Whole Toolkit Review & Intents
-
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.
- Explore Intent as a way to transition from one Activity to another
Slides
Supporting Materials
- Wednesday 5/17: Sensing
- Learning Goals Using Location Services
Slides
Supporting Materials
- Info 448 on Sensors
- Android Sensors
- Thursday 5/18: Sensing Part I
- Learning Goals
Slides
Due AS5 Undo Code and Video
- Friday 5/19: Sensing part II Location
- Learning Goals How to implement location services on your device; how to integrate a map
Slides
Supporting Materials
- Mapbox
- Android Location
Assigned Final Project
Due Sunday 5/21
- Practice Quiz 8
- AS5 Undo Reflection
Week 9: Final Project
- Monday 5/22: Implicit Sensing and Machine Learning, work time
- Learning Goals Exploring the implications of implicit data on a phone, and how we access and analyze it.
Slides
Supporting Materials
- Wednesday 5/24: 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
Supporting Materials
Due Final project design - extra point opportunity
- Thursday 5/25: Review, Work on Final Project
- Learning Goals Make progess on the final project; share and critique designs.
Due Final Project Design Document
Slides
Due Final project design document
- Friday 5/26: 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
Supporting Materials
- What is Flutter? up to “try it”
- The “aggressive composability” Inside Flutter
Week 10: Making connections
- Monday 5/29: Memorial Day
- No Class
Due Practice Quiz 9
- Wednesday 5/31: SUS Testing, Work time
- Learning Goals Define System Usability Scale Testing and apply it to our final project
Slides SUS testing
Required Readings
- Thursday 6/1: Reviewing course content
- Learning Goals Course Review, In class: finish up Final Project
Slides Final Lab
- Friday 6/2: Work day
- Learning Goals In class, work on Final Project, fill out course evals
Due Saturday 6/3
Due Sunday 6/4
- Final Project SUS testing
- Practice Quiz 10
- Monday 6/5:
-
Due
- Final Project Reflection
- Final Project Video