Quick Links  

Courses and Presentations

Design Patterns and Languages
Designing Visual Experiences
Cross-Product Design
Trade-offs in UI Design


  Reactor provides academic and corporate training and tutorials on a variety of topics in software design. Content can be custom-tailored tmeet your training requirements and can even be conducted in the context of product development work in which your team may already be engaged. The length of each topic can be varied tsuit the needs of your audience. Most of the following topics have been presented in formats ranging from 90-minute talks to 2-day hands-on seminars.  
Past Events  

1- and 2- Day Tutorials or Workshops


BayCHI (SF Bay Area Chapter)
TorCHI (Toronto Chapter)
CHIfoo (Portland Chapter)
BuckCHI (Columbus, OH Chapter)

Greater Boston Area Chapter, ACM
Western NY Chapter HFS

NN Group UE2004 Las Vegas
NN Group UE2004 Amsterdam
NN Group UE2005 Boston
NN Group UE2005 London

User Interface Engineering UI1996
User Interface Engineering UI2003

Design Automation Conference 1998
X Technical Conference, 1993

Niveau Informatik (Copenhagen)

Mayo Clinic
IBM Canada
M&I Data Systems
Northwestern Mutual Life
State Farm Insurance
Jet Propulsion Laboratory

Kommunedata (Denmark)

U. of California, Berkeley Extension
UCLA Engineering Extension
Ohio State University

U. of Tampere (Finland)

  Design Patterns and Pattern Languages  

This tutorial surveys existing work with design patterns--proven solutions to commonly encountered design problems described in a general form that captures an essential design insight. For user interface designers, design patterns offer a valuable problem solving and communication tool. Experienced interface designers depend on a vast repository of knowledge about "what works" in a given situation. Design patterns allow such knowledge to be captured in a standardized form that makes it more accessible to new team members, less experienced designers, or non-specialists such as writers, marketers, or managers. Individual design patterns are collected into pattern languages--structural and conceptual frameworks that organize and link related patterns--to help designers generate high quality solutions.

In this tutorial, participants will review the scope and content of existing pattern languages and learn how they can borrow or extend these patterns to meet their needs. They'll also learn about the qualities that make a design pattern useful and practice creating and using patterns and pattern languages specific to their individual problem domains.


  • Origins and philosophy of design patterns
  • Structure and presentation of pattern content
  • Familiar design patterns from everyday experience
  • Well-defined patterns in user interface design

Patterns in user interface design

  • Patterns can be defined for any level of design activity
  • Patterns always depend on other patterns
  • Patterns must work together to be useful
  • Creating your own patterns

From patterns to pattern languages

  • Introduction to pattern languages
  • Survey of existing pattern languages (strengths, weaknesses)
  • Working with multiple pattern languages
  • Creating your own pattern language

Practicalities for working with patterns

  • The evolutionary life cycle of a design pattern
  • Representing structure in pattern languages
  • Developing your own domain-specific pattern language
  • Creating and maintaining the pattern repository
  • Patterns all around us

This full-day tutorial combines a lecture format with an exercise and discussion component that lets participants work in teams to develop and critique design patterns and pattern languages relevant to their own problem domains.

This tutorial assumes some familiarity with principles of interactive design and the design conventions embodied in familiar hardware and software products, but no knowledge of design patterns or pattern languages is required. The material will be most valuable to participants who actually design interactive products, but people in other roles can also benefit by seeing how design patterns can guide their own work.


Designing VIsual Experiences: Communication-Oriented Techniques for Web Sites and Applications

This tutorial provides an introduction to communication-oriented visual design. Participants will learn how visual language can be used to organize and clarify a visual display. Basic principles of traditional graphic design are supplemented and extended with insights from experimental psychology, systems engineering, filmmaking, animation, and philosophy to give you new ways of thinking about visual communication in software design. Participants will learn how to exploit the perceptual and emotional qualities of visual stimuli to shape the user's experience of any display. They will learn how to match the visual qualities of the user experience to the functional requirements of a particular application domain in ways that help the audience understand the information being communicated as efficiently and reliably as possible.

This tutorial is not primarily about how to make things "pretty." The focus is on how to organize information coherently and consistently so that relationships between elements can be recognized and used to efficiently retrieve information from the display. Participants will have an opportunity to develop a basic fluency in visual language through simple exercises and demonstrations. Application of these principles will enhance both the functionality and the aesthetic appeal of any visual display.


  • Defining design
  • Fitness to purpose as the central criterion for success
  • Elegant solutions depend on a simplicity born of genuine insight into the underlying problem

Visual coding

  • Characteristics of early visual processing
  • Static and dynamic visual variables
  • Non-visual co-variables
  • Selecting the right visual for particular tasks

Visual structure

  • Perceptual organization
  • Creating perceptual hierarchies
  • Using structure, position, and alignment to guide the eye and express or reinforce (or counteract) relationships
  • Organizing displays for selective information retrieval

Visual representation

  • Meaning and representation
  • Appropriate points of view
  • Abstract and graphical power
  • Simplification through progressive refinement

Visual systems

  • Grid systems for programmatic design
  • Scale and modularity
  • Rule and the power of repetition
  • Solving problems systematically

The tutorial combines a lecture format with several brief exercise and discussion segments in which participants solve simple problems that illustrate the material being covered. Each section covers general design principles (what to do and why), specific practical techniques (how to do it), and common errors to avoid, all of which are supported by real-world examples.

This introductory-level tutorial assumes no prior knowledge of visual design and requires no"artistic ability" on the participant's part. The course is specifically targeted at people without formal design training, but will appeal to anyone practicing, managing, critiquing, or explaining software design, regardless of their disciplinary background and formal job title.


Cross-Product Design: Achieving Common Look and Feel
across a Set of Related Applications and Web Sites

This tutorial describes the qualities of successful design systems-designs that address multiple products or components that work together to produce a common user experience. We introduce the concept of cross-product design as the best way to create coherent design systems. The material is divided evenly between the problems of designing for multiple products and the problem of organizing and coordinating the work of multiple product teams.

Participants will learn (1) how to recognize an effective software system, (2) how to develop systematic, globally optimized conceptual, presentation, and interaction designs for interactive software, and (3) how to more effectively support systematic cross-product design efforts in real world product development organizations. Topics we cover include:

Creating Cross-Product Designs

  • Introduction: what is common look and feel?
  • Benefits of common look and feel for system design
  • History of common look and feel
  • Cross-product design primer

Delivering Cross-Product Implementations

  • Organizing product teams
  • Prioritizing cross-product features
  • Synchronizing development across products
  • Measuring progress toward convergence
  • Incentives for Cross-Product Commitment

The tutorial combines a lecture format with brief exercise and discussion segments in which participants analyze and develop solutions for a simple design problem, then work together to unify their individual solutions into a coherent cross-product design. Participants will also diagram their individual organizations and processes, and identify ways in which either or both might be improved to promote better cross-product results.

This is an intermediate-level tutorial that will be most beneficial for practitioners with at least some exposure t"real world" product development in commercial software organizations. It's appropriate for anyone involved in the design, development, or management of cross-product software systems or (in particular) the individual applications or Web pages being created within those systems. The first half of the material will be most relevant to designers, but the second half will be valuable to the whole organization.


Presentations and Short Talks

Trade-Offs in User Interface Design

All design (and all engineering) disciplines require practitioners to make trade-offs on a daily basis. We can never satisfy all of the wide range of constraints that comes into play in any non-trivial design problem and still do things just the way we want to for each constituent element. Instead, we make compromises, sacrifices, and concessions to necessity in order to produce a integrated solution in which the parts mesh smoothly and complement each other perfectly to produce the best possible result.

  • What is a trade-off?
  • Global vs. Local Optimization
  • Trade-offs in Everday Life
  • Trade-offs in Product Development
  • Classic Trade-offs in User Centered Design
  • Dealing with Multi-way Tradeo-offs

This material is currently available in a 90-minute short talk format, but it could be expanded fairly easily into a full day tutorial at the introductory level. All designers have experience in dealing with trade-offs (though the topic it is often weakly articulated and only poorly understood) but many of the people they interact with do not. Management, in particular, seems well-positioned to benefit from this material.

    Copyright 2006 Experience Design Reactor, All rights reserved.