A Collaborative Undergraduate Course for Pen-based Computing using Tablet PCs

Pen-based technology provides new means for interfacing with digital computers. At Purdue University, we have been developing courses that allows computer science undergraduates to explore non-traditional human-computer interfaces, to implement complex working systems, and to give them hands-on experience in developing team projects. After the first two years, we have successfully implemented a multitude of pen-based applications, across a wide-range of areas. In this paper, we present a summary of the course organization, projects, evaluations, and future directions. 1. Problem Statement and Context We are interested in developing novel interfaces to digital computing technology. Currently keyboard and computer mice are the dominant input devices. Pen-based technology provides a much more intuitive and natural interface to computer applications. To foment the development of novel applications and to create the appropriate mindset, we wish to expose undergraduate students to such non-traditional human-computer interaction methods early in their education. Such intuitive and interesting applications will both attract students to Computer Science and expose the public to the benefits of modern non-traditional human-computer interfaces. A major challenge for enabling such courses during undergraduate studies includes providing foundations, in terms of software, hardware, and teaching paradigms. Such foundations enable the rapid prototyping of novel applications, permitting students to quickly focus on the application at hand rather than the low-level details. Moreover, a course must be stimulating and challenging so that it entices participation and encourages applications spanning a wide variety of areas. 2. Solution Employed Over the past two years, we have been developing a course offered each semester at Purdue University Computer Science Department for developing novel pen-based applications. During each semester, students are individually given a Tablet PC and, optionally, some additional hardware. Under the guidance of the instructor, a general topic is chosen for the semester and the students self-organize into several 2 to 3 person teams. The fall semester focuses on networking and system applications (Rodriguez-Rivera) while the spring semester focuses on more graphically-based applications (Aliaga). The students hold public demonstrations at the end of the semester to showcase their projects. Diversity amongst the applications is strongly encouraged and the organization supports significant freedom. Each semester lecture topics are based on proposed projects. During the beginning of the semester, lectures include a general overview of a pre-chosen general topic for the semester and students produce a project design document. The design document includes individual and team milestones and deadlines. Subsequently, lectures cover supportive material relevant to the semester projects. During additional weekly meetings each student must present their individual milestones and the team must present group milestones. Students also provide written evaluations of the milestone presentations of their peers. The course promotes the use of good software engineering tools (e.g., source control, regular meetings, design descriptions, etc.). This enables students to work tightly together and to experience,