This course will discuss how to create and refine interaction designs that ensure a quality user interface. It covers the theory behind good user interface design and develops the skills needed to design, implement, and evaluate your own user interface. The course emphasizes the agile and user-centered design process and covers the complete design process cycle. Requirement gathering: the course will discuss the importance of the user and task analysis and the techniques to perform the analysis. Design: Usability has several dimensions. Learnability, efficiency, and safety are the three dimensions that we highlight in this course. The course will discuss the design principles to make the user interface easy to learn, efficient to use, and less error-prone. Prototyping: The design ideas or different design alternatives need to be quickly presented in front of the target users for validation. The course will discuss the techniques for rapidly prototyping user interfaces, including paper prototyping, computer prototyping, and web-based framework with model-view-controller software architectural pattern. Evaluation: Evaluation is an integral part of the user-centered design process. The course will discuss the techniques for evaluating and measuring the interface usability, including heuristic evaluation and formative evaluation. The setting for this course is mobile and web applications.