- Week 1: What’s in an Interface
- Week 2: Layout
- Week 3: Theory & Security
- Week 4: Accessibility
- Week 5: Interaction
- Week 6: Review and Sensing
- Week 7: Designing From Data
- Week 8: Understanding Users
- Week 9: Undo
- Week 10: Web & Flutter
Week 1: What’s in an Interface
- Monday 3/29: 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 3/31
- Fill out the Location and Technology Survey (linked in our welcome post on Ed)
- Practice Quiz 0: Syllabus and Drawing (based on readings for Wednesday 3/31)
- Wednesday 3/31: Syllabus, Drawing on the Screen, StackOverflow study
- Learning Goals Syllabus review, Continue creating our first App, Introduction to Stako
Required Readings
- Read the syllabus
- Read about Basic Painting with Views
- Read about Minimum bounding boxes and play with Bounding boxes in coordinate geometry
- Look at the documentation for ImageView; Canvas and Paint. You’ll need to look up specific methods for Practice Quiz 0
Assigned AS1 Doodle
- Thursday, 4/1: Setting Up Doodle
- Learning Goals Android project structure; Our development environment (Git/GitGrade), Doodle
Preparation for Lab Follow the instructions to setup your software ahead of lab
- Friday, 4/2: Transformations and 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 Sun 4/4 Practice Quiz 1
Week 2: Layout
- Monday, 4/5: Practice Quiz Review, Animations, Begin Layout
- Learning Goals Review drawing and animation, motivate layout
- Wednesday, 4/7: Layout I: Introduction to Layout
- Learning Goals Relating layout to the interactor hierarchy
Worksheet (for class) Layout 1
Optional Readings
Assigned AS2 Layout
- Thursday, 4/8: Debugging, Peer Evaluation, Doodle Help
- Learning Goals Review different Android layout types and additional layout practice.
Resources
Due (10pm) AS1 Doodle code
- Friday, 4/9 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
Optional Readings
Assigned Sat 4/10 AS1 Doodle peer reviews released;
Due Sun 4/11
- Peer evaluation of Doodle
- Practice Quiz 2
- Doodle Reflection
Week 3: Theory & Security
- Monday, 4/12: Layout III: Implementation and Theory
- Learning Goals Under the hood: How is layout accomplished?
Optional Readings
- Wednesday, 4/14: 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
- Thursday, 4/15: Support on Layout
- Learning Goals Work through constraint based layout
Reading
- Friday, 4/16: Implementing Secure & Private Mobile Apps
- Learning Goals Implementing Secure & Private Mobile Apps
Slides Security
Optional Readings
Due Fri 4/16 at 10pm AS2 Layout part 1-2 (for pixel tests)
Due Sun 4/18 Practice Quiz 3
Week 4: Accessibility
- Monday, 4/19: Getting Accessibility Right
- Learning Goals Learn about the history of accessibility, why it is important, and what problems exist
Required Readings
Optional Readings
- Wednesday, 4/21: Getting Android Accessibility Right
- Learning Goals Learn about how to make Android apps accessible
Required Readings
Optional Readings
Assigned: AS3 Accessibility
- Thursday, 4/22: Finish Layout & Start Accessibility
- Learning Goals Use the Accessibility Checker
Slides Layout and Accessibility
Due AS2 Layout part 3-5 (code + reflection)
- Friday, 4/23: 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 Sun 4/25 Practice Quiz 4
Week 5: Interaction
- Monday 4/26: Event Handling II: Where Events Go
- Learning Goals How events are dispatched to interactors, importance of interactor hierarchy
Supplemental Files:
Optional Readings
- Wednesday, 4/28: Event Handling III: Making Interactors use Events
- Learning Goals Implementation Strategies for Interactors to Handle Events
Supplemental Files:
- Thursday, 4/29: Event Handling Review and Practice
- Learning Goals Get comfortable with concepts related to Event Handling
Slides Event Handling
Due: AS3 Accessibility
- Friday, 4/30: Event Handling IV: Essential Geometry
- Learning Goals How to create areate a non-rectangular interactor: Essential Geometry and Essential Behavior, how to properly implement a finite state machine in an interactor; ColorPicker intro
Optional Readings
- Custom View Components
- Propositional Production Systems
- Informational only: Original PPS paper
Assigned AS4 Color Picker Due Sun 5/2 Practice Quiz 5
Week 6: Review and Sensing
- Monday, 5/3: The Whole Toolkit Architecture Part I - Input
- Learning Goals Review how the toolkit responds to input and process output as a complete cycle.
- Wednesday, 5/5: The Whole Toolkit Architecture Part 2 - Output
- Learning Goals Review how the toolkit responds to input and process output as a complete cycle.
Optional Readings
- Thursday, 5/6: Bundling + Color Picker help
- Learning Goals What’re bundles? What do they do? Let’s find out!
Slides How to use Bundle
Due AS4 Color Picker video check point
- Friday, 5/7: Implicit Sensing and Machine Learning
- Learning Goals Exploring the implications of implicit data on a phone, and how we access and analyze it.
Slides Sensing and Reacting to the User
Optional Readings
Due Sun 5/9 Practice Quiz 6
Week 7: Designing From Data
- Monday, 5/10:Predicting and Evaluating Interactor Efficiency
- Learning Goals Learn the theory driving good interactor design; Motor behavior basics and implications for design including Fitts’ law; Apply design tips we’ve discussed to comparing the efficiency of different variations on interactors;
Slides
Optional Readings
- Wednesday, 5/12: Designing Menus
- Learning Goals Help with Menus Assignment; Revisiting key concepts
Slides Getting started with Menus
Assigned AS5 Menus
- Thursday, 5/13: Designing Menus
- Learning Goals Help with Menus Assignment; Revisiting key concepts
Slides Getting started with Menus
Due AS4 Color Picker code and reflection
- Friday, 5/14: Behavior and persuasion
- Learning Goals Principals of and Problems with Behavior Change
Slides Behavior Change with Mobile Devices
Optional Readings
Due Sun 5/16 Practice Quiz 7
Week 8: Understanding Users
- Monday, 5/17: Studying People I
- Learning Goals Learn about wide variety of solutions for selection; Learn about Qualitative and Quantitative ways of testing theories
Slides
Optional Readings
- Wednesday, 5/19: Studying People II
- Learning Goals Understand concepts in data pipeline in an applied fashion including what is our hypothesis, how this translates into study design and method, considerations when interacting with users, data collection cleaning and analysis, some statistical methods, and how we draw conclusions; Data analysis and how charts and statistics can be used and misused
Slides Analyzing Data
Assigned AS5 Menus part 5-6
- Thursday, 5/20: Sample Menu Data Analysis
- Learning Goals Evaluating Human Subjects Experiments
Slides Menus Data Analysis
Due AS5 Menus part 1-4
- Friday, 5/21: Application Design Principals
- Learning Goals Understanding how interaction takes place at the application level
Optional Readings
Due Sun 5/23 Practice Quiz 8
Week 9: Undo
- Monday, 5/24: Lab in The Wild (Nigini Oliveira - Guest lecture)
- Learning Goals Contrasting a large remote survey based study and a game study.
-
Slides Lab in the Wild
- Wednesday, 5/26: Undo
- Learning Goals Theory and implementation of Undo
Slides Undo
Assigned AS6 Undo
- Thursday, 5/27: Work on Undo
- Slides Getting started with Undo
Due AS5 Menus part 5-6
- Friday, 5/28: Physical Computing
- Learning Goals Learn a little about 3D Printing and extending phones for sensing
Slides Physical Computing
Optional Readings/Watchings
- Lisa Harouni Ted Talk: A Primer on 3D Printing
- Powder Printing
- Liquid Printing
Due Sun 5/30 Practice Quiz 9
Week 10: Web & Flutter
- Monday, 5/31: Memorial Day
- No Lecture
- Wednesday, 6/2: 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, 6/3: Reviewing course content
- Learning Goals Course Review, finish up Undo
Slides Final Lab
- Friday 6/4: 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
- Monday 6/7: Due date for final reflection
- Due Undo