Computer Science 482 teaches students to design user interfaces based on the capabilities of computer technology and the limitations of human factors. Students design user interfaces for a system and implement a prototype from a list of informal requirements. The project is developed over three assignments for credit by a design process based on current human-computer interaction principles.