Integration Of Real World Teaming Into A Programming Course

Historically, teaming experiences for engineering students has primarily been found in first year engineering courses, design courses, and laboratory courses. Occasionally, other types of engineering courses integrate teaming as a part of some of the course projects. In this paper, we are reporting our findings of integrating teaming into a programming course. This study examines team projects and team interaction in a seniorlevel programming class. The course project spanned the entire semester and is divided into four stages. The students have different project team members in different stages and each team includes 3 to 4 students. The students have to use their own code based from the previous stages. This course involved object-oriented programming covering both C++ and Java with an emphasis on their similarities and differences. Students could choose the languages for their projects, and may change languages for different stages. The project implemented extensions of the popular computer game Tetris ® . The extensions included: (1) allowing pieces of 5, 6, or 7 squares per piece, (2) developing algorithms to automatically rotate and place pieces, and (3) competing against other teams' algorithms through a network. This study gave students opportunities to handle team changes that are common in the workplace due to various business conditions. The changes require robust designs in their programs and clear documentation. Moreover, the instructor encouraged students to use Java for the first stage by giving two small-scale programming exercises in Java. In the second stage, students were encouraged to use C++ (with Qt library for GUI) because Qt has an open-source Tetris ® program. This study seeks to develop a model for integrating teaming 3,4,5,6,7 in programming courses. To assess the effectiveness of the model, we administered a survey and conducted a small group analysis with the students in the course.