This course will provide a comprehensive introduction to human-computer interaction and the design and development of user interfaces, covering basic human cognition, methods for need-finding and prototyping, user-centered design, empirical and analytical methods for conducting usability evaluations, and principles for visual, information, interaction, and community design.
Computers, and more specifically, the software that runs on them, have become increasingly integral to the fabric of modern society. From finance, to transportation, to entertainment, computer applications increasingly dictate our daily lives. Because of this, the importance of seamless interactions between software and its users is greater than ever before. Given these stakes, as engineers it is important we study how to create effective user interfaces that are designed well.
However, this notion of "good design" can be difficult to effectively pin down. This course has two main philosophical objectives:
1) Explore the different ways in which we can define "good design" and the most effective ways for users to interact with software.
2) Provide an understanding of the software engineering tools and practices that are available to achieve "good design" in a variety of settings.