Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ncar!boulder!ccncsu!handel.ColoState.EDU!jacksonr From: jacksonr@handel.ColoState.EDU (robert marsh jackson) Newsgroups: comp.software-eng Subject: Rhetoric and Software Engineering Message-ID: <1886@ccncsu.ColoState.EDU> Date: 11 May 89 23:59:45 GMT Sender: news@ccncsu.ColoState.EDU Reply-To: jacksonr@handel.ColoState.EDU (robert marsh jackson) Organization: Colorado State University, Ft. Collins CO 80523 Lines: 75 Is there a relationship between Eloquent Rhetoric and Computer Science? "Eloquent rhetoric: The theory and practice of the reasoned orchestration of symbols used in the process of adjusting ideas to people and adjusting people to ideas." - Irvine. I have just finished a survey course which followed rhetoric from its roots in ancient Greece to the present. At the end of the semester, we dis- cussed some of the areas in which rhetoric might be applied. One area dis- cussed was computers. Initially, I scoffed at the idea as being absurd be- cause I felt that computer science needed to be more of an engineering disci- pline. The concept stuck in my mind, so I attempted to follow it to its logical end. I came to the conclusion that I might be wrong about the rela- tionship between rhetoric and computer science. First is a modern definition of eloquent rhetoric, which is written above. Starting with the first part, "The theory and practice of the reasoned orches- tration of symbols...," if variables and operators are symbols (compiler theory) and programming is (hopefully) reasoned orchestration of those sym- bols then we might be on the right track. Looking at the next part, "used in the process of adjusting ideas to people and adjusting people to ideas," if we let the "people" be computers and the "ideas" be programs, then the fit be- comes closer. This second part also relates well to the research of user interfaces as well as programming languages. I was still not convinced that I was on the right track, so I applied another test. When Aristotle first showed Eloquent Rhetoric to be an "art," he showed a "natural order" for creating rhetoric. This "natural order" was refined by the great Roman philosopher Cicero in the five great arts of Rheto- ric. 1) Inventio: Finding out all that can be found out about a subject. This is the investigation stage of a software engineering project. 2) Dispositio: Finding out how the information can be put together in a logical format. This maps well to the specification stage of a software engineering project. 3) Elocutio: Fitting the information into language. This is analogous to writing syntactically (and semantically) correct code in a computer language. 4) Memoria: Memory. Internal and external documentation and modularization. 5) Actio: Style. User interface, speed, ease of use, ease of modification, correctness. As you can see, the five great arts of Rhetoric seem to fit well with creating computer programs on a high level. What about on a lower level? Let me use the same analogy that I have used in my tutoring over the years and compare an essay/paragraph with a procedure. An essay/paragraph should be limited to ONE idea; so should a procedure. The essay/paragraph and procedure have similar structures: essay/paragraph procedure ------------------------------------------------------------------ Introduction Initialization code Body Main body of code Conclusion Exit code Hopefully, showing how the working definition, high and low levels of eloquent rhetoric and computer science are similar has given some food for thought. If the comparisons are valid, what are the implications to computer science/software engineering? 1) We will have two thousand years of theory to back up/refute software engineering practices. 2) Computer science may be classified better as a rhetorical science than a engineering discipline. What are your opinions? Bob Jackson.