History for codework_workshop_wiki
Connecting Writing to Software at the Level of Design
added:
From center Tue Apr 1 17:55:45 -0400 2008
From: center
Date: Tue, 01 Apr 2008 17:55:45 -0400
Subject: Connecting Writing to Software at the Level of Design
Message-ID: <20080401175545-0400@clc.as.wvu.edu:8080>
This is Mary Shaw (my user id doesn’t seem to be working, so I’m posting from a generic account).
Much of the Codework discussion up to this point has been about the relation between program text (code) and English prose text. I would like to look at a different connection, between software system design and the organization of writings, specifically computer science research papers.
Graduate students in software engineering and other systems areas are usually excellent designers of software systems. They are often less good at designing research projects and interpreting the results of those projects. Many are downright inarticulate when it comes time to write papers that report and interpret their results.
For several years I have been trying to address the latter problems, first by analysis of research papers to identify the research paradigms – the research project designs – that guided the work being reported [cite] and later by teaching a course that helps Computer Science PhD students apply their software design knowledge to research papers [cite]. That course is the most relevant aspect of this effort to Codework, so I will focus on that course here.
WordWright: The Right Rite of Writing (see http://spoke.compose.cs.cmu.edu/write/)
Research papers are the customary means of reporting accomplishments to the research community. In a research paper, the author explains to an interested reader what he or she accomplished, and how, and why it matters. Research papers are designed artifacts as surely as other artifacts of computing. Like other designed objects, they are amenable to systematic development. Thus, a research paper should be as carefully designed as a program, and it is subject to similar design rules such as satisfaction of requirements (responding to the call for papers), orderly development of results (definition before use), type checking (agreement of number and tense, parallel structure in lists), and so on.
The key elements of the course are
• Treating a research paper as a designed artifact and helping students transfer their software design skills to the medium of the research paper
• Conducting the course largely as a series of writer’s workshops in which students discuss each others’ work
• Making explicit the common research paradigms of computer science, using them as plot outlines for the paper, and thereby helping students to understand that well-designed research projects yield results that are easier to write about.