This paper describes an innovative approach to teaching about human-computer interaction to a large class of students in their third year of a Computer Science major. Because of the tight time constraints on the course and the student’s learning preferences and orientation, we have created a course which interweaves the learning of several programming tools for interface construction with the development of knowledge and skills in the design of user interfaces. We present the structure of the course, especially its most unusual aspects. We also describe our rationale for the course design, our evaluation of student learning and the response to the course. KEYWORDS HCI education, interface design, interface programming