Among software professionals, the quality of team communication is acknowledged as a key factor in the success or failure of software projects. Successful communication in the workplace is a creative process requiring more than technical mastery of standard genres. Developers must make strategic communication decisions, and they must be agile — flexible, proactive, and creative — in these decisions.
The Agile Communicators project, supported by the NSF IUSE program, seeks to promote creative, strategic communication among Computer Science students through the practices of inquiry, critique and reflection. Our approach constitutes a cognitive apprenticeship that engages students in authentic software settings and articulates processes that are traditionally left implicit. Over two years, we have enriched the communication environment in our early Computer Science courses in two ways: by actively engaging and encouraging students to articulate their questions, ideas, and concerns; and by enhancing the means by which instructors communicate with students. Our preliminary results indicate improvement in student performance and a clearer understanding of the place of communication in the lives of computing professionals.
Student practice and reflection on communication as part of the problem-solving process have been integrated into introductory programming courses. Programming lab assignments include as deliverables not only the final result of functional code but also intermediate guided inquiry exercises where students articulate the steps of their analysis and design. Students complete lab assignments through pair programming and reflect on the progress of their communication skills with their partners over the sequence of assignments. In a later team software project course, students consider more sophisticated communication scenarios. Early in the team software course, we expose the students to real communication challenges that others have faced – the experiences of earlier student teams, and the experiences of professionals. Through a pattern approach, students inquire into the design choices of written and oral communication acts in real software projects. Later, during their project development, we ask them to reflect on the communication challenges they are facing, and to observe the communication choices that fellow teams have made.
Instructor communication to students has been enhanced through automated just-in-time feedback. In the introductory programming courses, the WebTA tool provides tight instructor-tailored commentary on student code, essentially providing a virtual TA experience even when instructors are unavailable. WebTA not only reports on automated test results but also analyzes and critiques style and design, searching for positive patterns and negative antipatterns specified by the instructor. The tool serves not as a substitute for direct student-instructor communication, but rather as an augmentation to that interaction. In a similar vein, the introductory Computer Science course on discrete mathematics now involves lab exercises using the Alloy language and analyzer. The feedback provided by Alloy has the potential to eliminate common misconceptions among students when wrestling with mathematical language constructs in logic and relational algebra. Compared to a traditional approach where students simply submit written answers to homework problems, students working on Alloy problems get immediate critique of the syntactic and semantic quality of their responses.
Are you a researcher? Would you like to cite this paper?
Visit the ASEE document repository at
for more tools and easy citations.