This course provides an introduction to the field of Human-Computer Interaction (HCI) and an overview of software architectures used in modern graphical user interfaces. A variety of analysis and design methods are introduced (e.g. GOMS. heuristic evaluation, User-Centred Design and contextual design techniques). Visual programming topics include file manipulation, related data structures; exception handling and Graphical User Interfaces (event handling and models), and windows applications. Evaluations of user interfaces according to usability and accessibility standards will be covered. Throughout the course, the quality of design and the need for a professional and user-centered approach to interface development is emphasized.