- 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
- Pre-class: Introduction and Syllabus review
- Learning Goals Course introductions and Syllabus information
Slides
- Recorded (video): Introductions
Required
- Watch the video and read section 4.1 The CS Field Guide to Human Computer Interaction Introduction
- Read the syllabus
- Install Android Studio
- Wednesday 1/4: Let’s build an interface!
- Learning Goals Basic structure of a user interfaces; How this looks in Android; Toolkit Types; Developer Roles
Required
- 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.
- Read Minimum bounding boxes and play with Bounding boxes in coordinate geometry
- View the documentation for
Supporting Materials
- Framework vs. Toolkit vs. Library Definitions
Assigned
-
Due Thursday 1/5
- Preparation for Lab Follow the instructions to setup your software ahead of lab
-
Assigned (Due Friday 1/6)
- Fill out the First Day Survey (linked in our welcome post on Ed)
- Wednesday Warmup, question, and exit tickets
-
Assigned (Due Friday 1/13)
- AS1 Doodle
- Thursday 1/5: Setting Up Doodle
- Learning Goals Android project structure; Our development environment (Git/Ed Lessons), Doodle
Supporting Materials
- Friday 1/6: , Drawing on the Screen, Animation
- Learning Goals How does Android support drawing on the screen; what is a pixel; bounding boxes and coordinate systems.
- Finish: Building your first android app
Supporting Materials
Due Sunday 1/8 Practice Quiz 1
Week 2: Layout
- Monday 1/9: Transformations and Animations,
- Learning Goals Review drawing, cover animation, motivate layout
- Hint o’ Layout 1: Intro to Layout
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
- Wednesday 1/11: Layout I: Introduction to Layout
- Learning Goals Relating layout to the interactor hierarchy
Supporting Materials
Assigned AS2 Layout
- Thursday 1/12: Debugging, Peer Evaluation, Doodle Help
- Learning Goals Review different Android layout types and additional layout practice.
- Friday 1/13 Layout II: Layout in Practice, Layout III: Layout Implementation and Theory
- 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
- Watch: Measure Layout Draw
Supporting Materials
For Layout II
Required Readings:
Assigned AS1 Doodle peer reviews released
Due
- Today
- AS1 Doodle code
- Sunday 1/15
- Peer evaluation of Doodle
- Practice Quiz 2
Week 3: Theory & Security
- Monday 1/16: MLK Day
- No Lecture
- Wednesday 1/18: 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
- Thursday 1/19: Support on Layout
- Learning Goals Work through constraint based layout
Section Excericse Repo
Reading
Due AS2 Layout part 1-2
- Friday 1/20: Implementing Secure & Private Mobile Apps
- Learning Goals Implementing Secure & Private Mobile Apps
Slides
Required Readings
Supporting Materials
- Android Security Tips
- Cryptography
- Permissions
- Exploring intent-based Android security vulnerabilities on Google Play
Due Sunday 1/22 Practice Quiz 3
Week 4: Accessibility
- Monday 1/23: 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 1/25: Getting Android Accessibility Right
- Learning Goals Learn about how to make Android apps accessible
- Finnish 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 1/26: 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 1/27: 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 1/29 Practice Quiz 4
Week 5: Interaction
- Monday 1/30: Event Handling II: Where Events Go
- Learning Goals How events are dispatched to interactors, importance of interactor hierarchy
Supporting Materials
- Wednesday 2/1: 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
Supporting Materials
- Counter
- Custom View Components
- Propositional Production Systems
- Informational only: Original PPS paper
- Thursday 2/2: Event Handling Review and Practice
- Learning Goals Get comfortable with concepts related to Event Handling
Slides
Section Excericse Repo
Due: AS3 Accessibility
- Friday 2/3: Designing Menus
- Learning Goals Introduce the Menus assignment
Supporting Materials
- Counter
- 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 2/5 Practice Quiz 5
Week 6: Designing from Data
- Monday 2/6: 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 2/8: 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 2/9:Sample Menu Data Analysis
- Learning Goals Evaluating Human Subjects Experiments
Slides Menus Data Analysis
- Friday 2/10: 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
- 23wi Sample data
- Older OpenSecrets.org data set on internet privacy resolution demo: tinyurl.com/cse340-22sp-ip-data
Due Saturday 2/11 AS4 Menus Code
Due Sunday 2/12 Practice Quiz 6
Week 7: Understanding Users
- Monday 2/13: Application Design Principles
- Learning Goals Understanding how interaction takes place at the application level
Slides
- Finish Analyzing Data
Supporting Materials
- Wednesday 2/15: Undo
- Learning Goals Theory and implementation of Undo
Slides
Assigned AS5 Undo
- Thursday 2/16: Work on Undo
- Learning Goals Help getting started on Undo
Slides
Due AS4 Menus Testing and Report
- Friday 2/17: 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 2/19 Practice Quiz 7
Week 8: Sensing
- Monday 5/20: Presidents’ Day
- No Lecture
- Wednesday 2/22: Sensing
- Learning Goals Using Location Services
Slides
Supporting Materials
- Info 448 on Sensors
- Android Sensors
- Thursday 2/23: Sensing Part I
- Learning Goals
Slides
Due AS5 Undo Code and Video
- Friday 2/24: 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 2/26 **
- Practice Quiz 8
- AS5 Undo Reflection
Week 9: Final Project
- Monday 2/27: Implicit Sensing and Machine Learning
- Learning Goals Exploring the implications of implicit data on a phone, and how we access and analyze it.
Slides
Supporting Materials
- Calm Tech, Then and Now
- The Coming Age of Calm Technology
- Guide to accuracy, precision, and recall
- Android Navigation
- Intent Activity Case Study
- Wednesday 3/1: The Whole Toolkit Architecture Part I
- 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/2: Review, Work on Final Project
- Learning Goals Make progess on the final project; share and critique designs.
Due Final Project Design Document
Slides
- Friday 3/3: The Whole Toolkit Architecture Part II
- 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
Due Sunday 3/5 Practice Quiz 9
Week 10: Making connections
- Monday 3/6:
- Learning Goals Define System Usability Scale Testing and apply it to our final project
Slides SUS testing
Required Readings
- Wednesday 3/8: 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
- Thursday 3/9: Reviewing course content
- Learning Goals Course Review, finish up Final Project
Slides Final Lab
- Friday 3/10: 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
Due Sunday 3/12 Practice Quiz 10
- Sunday 3/12:
-
Due Final Project SUS testing
- Monday 3/13:
-
Due
- Final Project Reflection
- Final Project Video