This course is devoted to the process of design and evaluation of interactive systems. This part will combine teaching fundamental knowledge with teaching some applied skills that will help students in a variety of different careers - from interactive designer, software developer to usability engineer. A smaller part of the course will present a concise overview of human-computer interfaces. The goal of this part is to make students aware about a range of interfaces that can be a target of your design efforts right now and to prepare to face the new generation of interfaces. The course also provides a brief overview of human information processing issues in the context of interactive system design and a small practical section on developing several kinds of interfaces with Java programming language.