Human-computer interaction is an emerging field of study at present, due to the proliferation of large number of consumer electronic products. The key issue in this field is to make the products usable to lay-persons. In order to do that, we need to take care of the (creative) design aspects (the look-and-feel of the interface) and also the system design aspect (both software and hardware). The field is interdisciplinary with inputs required from various other fields. However, the computer science and engineering plays the central role in the design of such systems (as per SIGCHI of ACM). In this course, we will introduce the engineering and computational issues in the design of human-computer interfaces for laypersons. The topics covered in the course includes the engineering life cycles for design of interactive systems, computational design framework (as part of the life cycle), components of the framework including the computational models of users and systems, and evaluation of such systems (with or without users).