Good software systems should be engineered with user experience in mind. How can we design software systems that are at once useful, usable, and enjoyable to use?
This course addresses these challenges by integrating two disciplines: requirements engineering and interaction design. Students learn to combine user research, design-based ideation and validation, and requirements definition, within an agile software development process.
Students apply this knowledge during a semester-long project. Their goal is to envision and implement the first version of an innovative software system that could make a unique contribution to society. The system should address a real problem, satisfy real stakeholders' needs, and provide a superior user experience. Students collaborate closely with their stakeholders throughout the project for needs elicitation, design concepts validation, and usability testing.