As computational systems have moved to become pervasive parts of our lives, it becomes even more important to consider how they can be best designed to be useful and useable by people (or "users"). But what is a "user", how do we understand what they want, and how can we design user interfaces that are effective and efficient for them?
This course covers the foundations of Human-Computer Interaction - the study of how computer systems can be designed to support the needs of the people who we intend to use them.
Course book, teaching format, workload, grading: See the syllabus
Prerequisites: This course is designed for 3rd year students. Students are expected to be aware as the most typical software engineering process models (e.g., agile and iterative development), and have ability to do small programming tasks related to one lecture and its weekly exercise (using Python).