ENGR 660: Software Engineering II

Department of Computer and Information Science
The University of Mississippi


Course Development

The course was originally developed by Prof. Robert Roggio. After his departure, Prof. Conrad Cunningham redeveloped this course as seminar and taught it during the fall 1991 and fall 1992 semesters. This document contains some information from the syllabus for the 1992 class.

Prof. Pam Lawhead revived this course and taught it with a similar organization during the summer of 1995. For detailed information on the most recent course content and structure, contact Prof. Lawhead.


Course Organization

This class is a seminar focusing on selected topics in software engineering--special emphasis will be given to formal methods of software design. Although the class has no specific prerequisite, it is oriented toward graduate students with significant backgrounds in computer science, e.g., doctoral students. The class emphasizes development of skills and attitudes important for research and professional growth--library research, critical reading of technical articles, oral presentation and discussion of technical issues, and technical writing.

The source materials for the class include recent articles from the technical literature. (Students may be asked to bear some of the costs of photocopying articles.) There is not a required textbook. However, the instructor suggests that Mary-Claire van Leunen's A Handbook for Scholars (Revised Edition, Oxford University Press, 1992) and/or other books on English grammar and writing be used as references.

As a seminar, this is a "learn-by-doing" class. The students have the primary responsibility for preparation, presentation, and discussion of the technical material. We will study one or two papers each week. For each paper studied, one student will present an overview of the paper and lead a discussion of the paper and issues arising from it. The rest of the class will be expected to discuss the paper (intelligently). Each student will also be required to write one-page critiques of the papers discussed. In addition, there will be a project which will consist of writing a term paper or developing an annotated bibliography on a software engineering topic.

Written work will be "graded" based on content, organization, style, grammar, spelling, and format. A word processing program should be used for all written assignments.


Literacy and Critical Thinking

This section is a lightly edited excerpt from Professor Rob Kling's Introduction (Version H) to the course "Computerization and Society" at the University of California at Irvine, as posted to the Usenet bulletin board comp.edu on 30 September 1991.

Literacy is the ability to make full sense and productive use of the opportunities of written language in the culture in which one lives. For scientists and professionals, literacy includes the abilities to understand the nature and value of new approaches and to evaluate key controversies. There are numerous technological controversies in computer science, such as those about the choices of appropriate system designs, implementation strategies, programming languages, operating systems, and hardware platforms. And there are key social controversies about the nature of effective and safe computing practices (including education, regulation, and licensing). Most of these controversies are not resolved definitively in some distant city and then promulgated instantly throughout the land. They are the subject of ongoing debates in a variety of scholarly and professional publications and also within the kinds of organizations for which we work. And they may be temporarily resolved in a specific place by the kinds of choices made on very specific projects.

A key goal of reading is being able to evaluate information and conflicting or incomplete claims analytically. (We can also evaluate writings emotionally: "this article made me feel good," or "I found that article confusing.") Writings speak for the authors, and like other humans, authors can be prejudiced, ignorant of important facts or concepts, or mendacious--or wise, honest, knowledgeable, and reliable. Critical readers can carefully test readings for their logic and seek to identify strengths and weaknesses. (Critical readers also learn more and enjoy their reading more than passive readers.)

A text is any piece of writing that conveys a coherent meaning. Authors of novels, histories, essays, technical manuals, newspaper stories and textbooks often attempt to convey coherent meanings. To be concise, they assume that their readers have a certain knowledge of the world and knowledge of certain language systems.

Computer science students mostly study from textbooks written specially for college students. Textbooks are an unusual kind of document, since they are often extremely well organized when compared with other kinds of texts. They also tend to avoid controversy and distill the consensus about a topic into a coherent exposition, complete with definitions of key terms, numerous examples organized in increasing complexity, and specific exercises. Textbooks have special value because they can make complex ideas accessible. But they have significant limitations, because their authoritative format does not normally stimulate much critical thinking. A curriculum which is based primarily on textbooks can stifle students' interest and ability to think critically.

Computer science professors usually teach from textbooks (except, perhaps, in courses on very new topics for which there are no textbooks). This course is different. In this course students must read and understand diverse and conflicting texts, rather than an authoritative textbook written in one voice. This approach better represents how the world of discourse about lively topics is organized outside of the classroom (i.e., in the "real world"). But this approach requires a few different skills than most students have used in other computer science courses.

One key difference is the need to orient oneself to the framework of diverse writers who are not writing specially for college students. A writer for The Rolling Stone can expect the readers to understand "heavy metal" and "Vanilla Ice". A writer for Byte magazine or Communications of the ACM can expect the readers to understand "Unix" and "silicon chips". If someone is described as being "hard on a keyboard," it would mean something different to readers of these different magazines. Different publications aim at different audiences, encourage their authors to write with different concepts, and take some work to get oriented to. Computer science students must learn how to read them critically.

Critical thinking is a disposition, a way of approaching issues that we face and materials that we read. It is a disposition of reflective skepticism--the judicious suspension of assent and readiness to consider alternative explanations, not taking key ideas for granted when it might be reasonable to doubt them. It is frequently a challenge to conventional ways of thinking and to passively accepting every text you read as comparably authoritative. "Critical" does not imply that we must disagree. Critical means that we should examine the material analytically--for its strengths and weaknesses and relate it to other material or our own experiences.


Notes on Writing a Critique

Prof. Cunningham adapted this section from a paper submitted by Pamela B. Lawhead for this course in December 1991. Her paper was based, in part, on a lecture given by Dr. Evans Harrington, Professor Emeritus of English.

A critique is an analysis or review of a particular work. In this course a work critiqued is usually an article describing the results of a research project. The purpose of a critique in this environment is twofold. First, the critique should provide a general overview of the article itself, and, second, it should critically evaluate the research project and results described in the article. To evaluate an article critically does not necessarily mean that we should should "find fault with" the article. Critical evaluation involves, as its Greek roots. (The Greek root of the English word critique is krinein which means "to separate" or "to sift." suggest, the separation or sifting out of something; in this case the sifting involves separating that which has value from that which does not.) So, critical evaluation has both a positive and a negative aspect. In the critique it is the responsibility of the author to determine the positive and negative facets of the article and to evaluate both. In papers as short as the critiques written for this class, not all positive and negative aspects can be covered. The author should focus on one or two key ideas and develop them fully.

An effective technical paper usually has the following structure: first, "tell them what you are going to tell them," then "tell them," and finally, "tell them what you told them." The critiques written for this class are no different. A critique should begin with a paragraph that briefly presents the central points of the article under consideration. The opening paragraph should be written in careful, standard English and be clear, concise, and non-redundant. Its final sentence should provide a smooth transition into the critique that follows. (That is, "tell them what you are going to tell them.") The middle paragraphs should present a convincing evaluation of the positive and/or negative issues. If the evaluation is positive, the points presented should be defended; if it is negative, then arguments for the appropriate position should be set forth. (That is, "tell them.") Finally, the closing paragraph should summarize the appropriate points. It should present no new information. It should be strong and unambiguous. (That is, "tell them what you told them.")

In writing the paper it is important to avoid "buzzwords," jargon, and words that were coined in the discipline. The purpose of the paper is to illuminate the work being critiqued not to obscure it with disciplinary jargon. As we write, it is also important to remember where we are in the paper at all times--remembering not to draw conclusions in the opening paragraph, not to summarize the article during the evaluation, and not to introduce new ideas in the conclusion.


[ Cunningham's Home | Teaching ]
[ Department's Home | Courses | Undergraduate Courses | Graduate Courses ]


Send any comments or suggestions to Prof. Conrad Cunningham, cunningham@cs.olemiss.edu.
Last modified: 17 November 1995.