|
|
Rationale Successful software design and development requires not only good technical skills but also the ability to work well within a team. Typical computer science courses restrict students to working alone on focused well defined assignments. Most students have little opportunity to work with others and, when so required, encounter difficulties scheduling and working with others. From the onset, this course will stress the importance of teamwork and use TabletPC technology to enhance the environment for communication and collaboration. Students will gain experience with software development concepts, development tools and technology as well as social aspects of software development.
|
|
|
Implementation (pedagogy) The format of CS435: Software Design and Development will be changed from prescheduled lecture or lab meetings, to more of a studio approach. Class meetings will be held in wireless classrooms where we will be able to dynamically configure physical layouts to support the required activities. One class period will now be able to support multiple activities: lecture, individual, and group work and discussion. The course will be altered to place an earlier emphasis on the importance of teamwork. Technology (TabletPCs and software) to aid collaboration and communication will be introduced near the beginning of the semester. An important aspect will be the design of exercises to promote and underscore the value of communication and teamwork while teaching how to use the technology. Rather than expecting the students to just "figure out how to work in a group" on their own, help will be given during class to ease the transition from working individually towards working as a team. In order to emphasize active learning (see ref.), class length lectures will be de-emphasized and replaced with much smaller lectures coupled with discussions, examples and group activities motivated by project work. Implementation (technology) Students were assigned a TabletPC for their use throughout the semester. Each student was to bring their TabletPC to every class meeting. Projects and exercises using group work were enhanced by the use of TabletPCs. Class meetings contained a mix of short lecture, examples, project status discussions, and project work time. Students were instructed throughout the course on the value and practices of good teamwork. The class met 4 days a week. 1. Group install and familiarization - in groups, students prepared TabletPCs by installing and testing installations of software required for course. 2. Planning Game - initially with only simple office supplies, teams of students simulated the "Extreme Programming" planning game working in iterations to satisfy a customer by creating paper prototypes of a new application. This work was continued using TabletPCs to create a wiki presentation of their designs. 3. Working in pairs - students reviewed and marked-up sample code while helping each other become acquainted with development principles and practices and the software tools installed on their TabletPCs. 4. To enhance communication further - each pair shared information with a wiki and a source code repository as they developed a practice project (a peg puzzle game). This gave more in-depth experience with programming tools and development methodology while learning the value of teamwork. 5. Working for an external client - the class, first as smaller groups and then merging into a single team, iteratively developed an application for an external client (a robot navigation simulator). The class as a whole communicated with face-to-face conversations, white board, a project wiki, and source code repository.
|
|
|
Quick Facts Dept: Computer Science Courses Impacted: CS435: Software Design and Development (with plans to add TabletPC team exercises or projects to courses in Interaction Design, Game Programming, and Robotics) # Students Impacted: approx 30 per year (including activities beyond CS435) # Faculty Involved: at least 2 (PI and 1 other faculty acting as a client) Keywords: Software Development, Collaborative Work, Software Engineering
|
|
|
Contact Us Dr. Michael Wainer Department of Computer Science 1000 Faner Drive - Mail Code 4511 Southern Illinois University Carbondale Carbondale, IL 62901 [email protected]
|
|
|
Resources and References Using Tablet PC: A Guide for Educators, Microsoft Education, 2004. Patterns for Active Learning, J. Eckstein, J. Bergin, H. Sharp, (submitted to PLoP 2002). XP.BE - The XP Game, V. Peeters, P. van Cauwenberghe Xp123 - Exploring Extreme Programming, William Wake. CS435:Software Design and Development(Fall 2006), Michael Wainer "Tablet PCs and Robots: Technology as Platform and Motivator for Explorations in Collaboration", a paper describing the our use of technology to promote collaboration is being presented at CTS 2007 (International Symposium on Collaborative Technologies and Systems).
|
|
|
|
Impact on Teaching Computer Science students, often shy and accustomed to working alone, must learn social skills to work productively within diverse software development teams. Previously, tight schedules, inappropriate workspaces and the lack of instruction in team skills, left many students to find these skills outside of their coursework. This project actively addresses the social aspects students need to become responsible team members. Early exercises with the TabletPC will be used to coach the social aspects of teamwork as well as the technology. To promote easy and free communications, respect and humility will be stressed. TabletPCs will help promote group work by allowing the physical layout of classes to adjust to the work plan of the day. We expect students to increase the quantity and quality of team experiences as well as the familiarity with software that promotes teamwork (version control, wiki). Project logs, class observations and student retrospectives will be used to help assess attitudes and experiences.
|
|
|
Examples of student work The photo above shows Farhan, Joey and Marshall collaborating on the client's software. Examples of design sketches, code mark-ups, and a screen-shot of the client application are also shown.
|
|
|
Impact on Student Learning Computer Science students, often shy and accustomed to working alone, must learn social skills to work productively within diverse software development teams. Previously, tight schedules, inappropriate workspaces and the lack of instruction in team skills, left many students to find these skills outside of their coursework. This project actively addresses the social aspects students need to become responsible team members. Early exercises with the TabletPC will be used to coach the social aspects of teamwork as well as the technology. To promote easy and free communications, respect and humility will be stressed. TabletPCs will help promote group work by allowing the physical layout of classes to adjust to the work plan of the day. We expect students to increase the quantity and quality of team experiences as well as the familiarity with software that promotes teamwork (version control, wiki). Project logs, class observations and student retrospectives will be used to help assess attitudes and experiences. TabletPCs made possible an earlier introduction to collaborative software and allowed more time for supervised hands-on activities. In their retrospective comments, students realized first-hand the value of good communications and teamwork. They each experienced episodes when it worked well and when it could have been better. A typical reaction was a feeling of gratitude for getting this collaborative experience before they enter the professional world. Example quotes from student retrospectives follow: "Teamwork is best learned through experience and I think there is no better way of teaching it." "... I think this kind of process allows us to learn from one another and measure ourselves against our peers to see how we can become better programmers and contributors in future projects ... " "I enjoyed the format of this class very much. ... The TabletPCs were a critical part of this project and I shutter to think how it would have happened without their help."
|
|
|
Preliminary Observations Students behaved responsibly bringing their TabletPCs to class and keeping them safe and in good condition. The value of teamwork and collaboration was appreciated by all. Earlier introduction to collaborative software and more supervised hands-on activities were possible because of the TabletPCs. 1. The class layout could be dynamically reconfigured for lecture, group or individual work. 2. The highly portable nature of the TabletPCs was very valuable in allowing students to physically position themselves to work together (esp. Pair Programming). 3. Digital ink was a natural fit for code mark-ups and design sketches. Some students used their TabletPCs regularly to take notes in other classes. 4. Having students install specific software for this class seemed to help bond students to each other and the machines. 5. Development software is resource intensive and students wished for faster machines. 6. Ideally lockers should be made available for students to safely and conveniently store their machines. 7. It is challenging to pace class material to mesh "just-in-time" with project progress and to monitor details of student experiences. There is also a delicate balance between providing details and specifics and letting the students explore and resolve problems with less direction. 8. The approach to promote teamwork with TabletPCs is being explored for other CS courses. (HCI, Game Development, Robotics) Development on the software application begun by this class is being continued by the external client. One of its likely uses is for an annual high school outreach program which the Computer Science Department conducts. A publication based upon this work is also being prepared.
|
|
|