This document discusses the history of paradigms in human-computer interaction (HCI). It describes several paradigm shifts in interactive system design including: from batch processing to time-sharing and interactive computing; from text-based to graphical displays and direct manipulation; from mainframes to personal computing; and from desktop computers to ubiquitous computing using sensors and context awareness. Understanding these paradigm shifts provides frameworks for developing usable interactive systems and measuring their usability.