Ian Oakley

Software Architectures for User Interfaces - Carnegie Mellon University 05-631

Spring 2009
This course is intended for those with advanced programming skills who want to do serious development of user interfaces. This course includes: an introduction to task analysis and functional design of the user interface; basic principles of computer graphics used in UI implementation; event handling and event dispatching models; screen update algorithms and multi-view architectures; input syntax formalisms and their transformation into programs; interactive geometry; architectures for advanced features such as cut/copy/paste, macros and groupware.The course is intended for computer science majors. It is project based and aims to give students experience with a range of upcoming technologies and user interface paradigms.


  • Desktop UIs
  • Web Technology
  • HCI Visions
  • Mobile, Pervasive & Sensors based UIs


  • 15% - Attendance/participation
  • 5% - Fitts’ law in Java (9 days)
  • 15% - Multi-touch in Processing (3 weeks)
  • 15% - Facebook app (3 weeks)
  • 20% - Activity recognition (3 weeks)
  • 30% - Student pitched project (7 weeks)

Textbook: No textbook

Class style: lectures + project


Programming Usable Interfaces - Carnegie Mellon University 05-630

Spring 2008
This course is a combination programming course and design studio, and is for those who want to express their interactive ideas in working prototypes. Students will learn how to use programming languages, how to design and implement effective GUI interfaces, and how to perform rapid, effective iterative user tests. The course will cover several prototyping tools and require a number of prototypes to be constructed in each. These will range from animated mockups through fully functional programs. The course will also cover usability testing of interactive prototypes. This course is intended for HCII Masters students who come to CMU with a minimal, but competent programming background. It is also appropriate for CMU HCI undergraduate "second majors" in HCII who have had an introductory programming course. Because this course has a design studio component, class attendance is mandatory.

You will :

  • Learn to express yourself in executable form
  • Learn the basics of what is hard and easy to rapidly prototype
  • Learn the basic terminology and approaches used by programmers, so you can work with them
  • Experience the frustration and joy of programming a working prototype
  • Design and conduct informal user tests of prototypes to find flaws with your interfaces


  • Introduction to user interface design
  • Input and output in computer systems
  • Special topics in user interfaces (e.g. international UIs, properties of people, animation)


  • 5% - Attendance/participation
  • 65% - Iterative design and implementation projects (7 projects total)
  • 10% - Midterm exam
  • 20% - Final exam

Textbook: Usability Engineering (Nielsen)

Textbook: The Design of Everyday Things (Norman)

Class style: lectures & studio


Human Factors - Carnegie Mellon University 05-813

Fall 2008, Fall 2009, Fall 2010, Fall 2011
This course uses theory and research from human factors, cognitive science,and social science to understand and design the interactions of humans withthe built world, tools, and technology. The course emphasizes current workin applied domains such as automotive design, house construction, medicalhuman factors, and design of information devices. The course also willemphasize not only individual human factors (e.g., visual response,anthropometry) but also the organizational arrangements that can amplifyor correct human factors problems.Through reading, discussion, and projects, you will learn about humanperceptual, cognitive, and physical processes that affect how peopleinteract with, and use, technology and tools. You will learn why we haveso many automobile accidents, voting irregularities, and injuries fromprescription medication. You will learn some tried and true solutions forhuman factors problems, and some of the many problems in human factors thatremain. You will also have gained experience in research in this field.


  • HF Methods
  • Human Information Processing
  • HF Design Approach
  • Application Domain Case Studies


  • 5% - Attendance/participation
  • 60% - 5 Analyses of case studies of real world accidents and incidents
  • 20% - Project (HF investigation and re-design of simple system)
  • 15% - Exam

Textbook: Intro to HF (Wickens)

Class style: lectures & practical exercises

Fieldtrip: Air Traffic Control Centre


Embodied Interaction

Fall 2008, Fall 2009, Fall 2010, Fall 2011
This class approachs interaction design from the perspective of phenomenology. It is concerned with humans as embodied actors interacting in the world in the absorbed and unreflective manner of everyday experience. This standpoint is of particular relevance to emerging HCI disciplines of tangible computing and social computing. The goal of this approach is to create interaction experiences for users which are seamlessly intertwined with the surrounding physical and social environment. This course will provide the theoretical background to embodied interaction, explore the domains in which its model is applicable and provide practical experience with the fundamentals of constructing such systems. It culminates with a substantial project exploring locationbased services and interaction.


  • Fundamentals of Embodied Interaction: Theory, Philosophy, Methods, Design
  • Physical Computing: Sensors, tangibles, social
  • Location Aware Services: Space/place, location aware services, urban computing


  • 5% - Attendance and participation
  • 10% - Literature review and critique
  • 15% - Term paper
  • 15% - Ethnomethodology
  • 20% - Physical computing project
  • 25% - Location aware services project
  • 10% - Exam

Textbook: Where the action is (Dourish)

Class style: lectures (first third) / project (last two thirds)