As the Information Technology (IT) professionals of the future, learners of programming need to master skills with regard to learning together and sharing knowledge. The research question that will serve to focus this paper is: "How can we integrate cooperative group work meaningfully into the teaching and learning of programming skills?" In answer, this paper presents a new model for cooperative learning environments in IT classrooms that emphasizes the importance of structuring cooperative groups for effectiveness. Learning from the past, we base the model on literature and previous research done by the authors. Appropriate implementation of the model requires the basic elements of positive interdependence, individual accountability, promotive interaction, interpersonal and small-group skills, and group processing.