1. Communication Genres:Integrating Communication into theSoftware Engineering Curriculum Michael Carter MladenVouk NCSU Gerald C. Gannod Janet E. Burge Paul V. Anderson Miami University Mark E. Hoffmann Quinnipiac University This work was funded by NSF CPATH-II Award CCF-0939122. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
3. Overheard at the watercooler “Teaching communication skills is important, but what am I going to take out of the curriculum to fit this in?” “I am not trained to teach communication” 3
4. Introduction and Motivation Gap between expectations of employers and communication abilities of new graduates Socials norms within the organization Patterns consistent with the tasks associated with the community of practice 4
5. Our Claim No such thing as effective communication in general, only effective communication in particular situations 5
6. Contributions Application of genre as a way of teaching apprenticeship tasks (situated) to increase ability to communicate effectively 6
7. Project Developing communication course outcomes and assignments for 6 courses: CS1, CS2, Data Structures, Software Engineering, Databases, Capstone/Senior Design Participants from 14 institutions with Miami and NCSU as lead 7 http://cpath.csi.muohio.edu
8. Apprenticeship Legitimate Peripheral Participation Lave and Wegner describe learners as participants of a community of practice Students move from the periphery toward the center by engaging in situated learning We use genre to identify apprenticeship tasks that increase students ability to communicate effectively in technical (SE) careers 8
9. Genre Genre is derived from a French word for category or type Typically used for types of art Literature Movies Music In communication Categories of communication that have developed in response to often-repeated situations 9
10. Genre and Patterns Similar to the notion of a design pattern Reusable form or template that can be applied to commonly recurring situations Patterns and Genre share two foundational assumptions: Situations recur in recognizable ways With experience we learn certain reusable types of behaviors to solve problems or communicate appropriately 10
11. Example Client has a problem to be solved, software engineer must learn about the problem or domain Response: software requirements or specification (the genre) Set of expectations and norms have been developed that define conventions a communicator calls upon to create requirements Activities: writing, reading, speaking, teaming 11
12. Common Genre in SE Definition of an SE problem Program Requirements Design Document Code and comments for software Developer Guide User Guide Test Plan Test Report Technical Report Bug Report Installation and Maintenance Document 12
13. Genres of SE SE Communication Genre different from Communication Media Media = Email, PowerPoint, etc. 13
14. SE Genres Analyzed by Writing/Speaking Writing and/or Speaking Modes Definition of a SE problem Test plan Test report Technical report Writing-only mode Program requirements Design document Code and comments for software Developer guide User guide 14
15. SE Genres analyzed by Reading Read program requirements To determine what is known and what needs to be known to generate a design To inspect and correct requirements To validate requirements and meeting user needs To revise requirements so that they better meet the user’s needs To translate them into a design 15
16. SE Genres analyzed by Reading Read a design To ensure the design accomplishes the requirements To revise the design so that it better accomplishes the requirements To translate the design into code 16
17. SE Genres analyzed by Reading Read code and comments To find errors in syntax and semantics To correct errors in syntax and semantics To determine what a program is supposed to do To revise a program so that it better accomplishes its goals To modify a program for different uses To ensure the program conforms to system requirements and design To continue writing a program begun by someone else 17
18. Applying Genre in the Classroom Show instructors what genres to include in a syllabus Begin with technical outcomes and identify relevant genre Begin with technical assignments and embed them in workplace scenarios 18
19. Applying Genre in the Classroom Genre can also be used create coherent sequences of learning activities Students given a problem definition (reading) and asked to create program requirements (writing) Requirements revised to better meet user needs (reading and writing) Create design document 19
20. Applying Genre to the SE Curriculum Two guiding principles: Legitimate peripheral participation should occur at all levels in the curriculum Growth not defined by the genres, but by complexity of the tasks and the level of expectations of performance Capstone is the culminating experience in the legitimate peripheral participation model Lower division courses should aim to incorporate genres of capstone to move students from the periphery 20
21. Applying Genre to the SE Curriculum Complexity typically requires… …longer responses …more complicated responses …multiple responses …greater degree of independence on the part of students …more students to contribute to the completion of a project …multiple modes of communication (speaking, reading, writing) 21
22. Conclusions Legitimate peripheral participation as the way of moving students from novice toward expertise Communication genres provide recurring situations and typical responses within the SE community of practice Technical assignments provide the link between communication and technology in the SE curriculum 22