CSC 300, Turner Spring 2006 Sample essay questions and format suggestions for Midterm. Open book and notes. Since not every student has a laptop computer to use, no laptops will be allowed. You must print or write legibly so that I can easily understand what you write. You will be given a number of True/False questions designed to demonstrate your comprehension of the assigned readings and class discussions. Here is a sample: SAMPLE TRUE OR FALSE. (Comment if necessary) 1. A dialectic is the result of argument, counter argument and reformulation of the argument in an ongoing process aiming at some consistent form of truth. 2. One form of the "categorical imperative" is "never treat another human being merely as a means but always as an end." 3. Software Engineering is not a licensed profession anywhere in the United States. 4. The ACM/IEEE Software Engineering Code of Ethics (SE Code) requires us to obey the law at all times. 5. Weyuker believes that software test oracles don't exist. 6. Hamlet supports the old adage that, "testing can reveal the presence of bugs, but never their absence." 7. David Parnas encourages software designers to lie about the actual process used to develop software. 8. "Trans-Scientific" questions are those that may be raised by scientific work, but cannot be answered by the scientific method. 9. The SE Code requires software developers to ensure that important tradeoffs are available to and accepted by the public. 10. A software process description could be critical to a case of programming negligence. Short Answer. Short answers must be clear and simple. 11. a. What is "untestable" software? b. What does Weyuker recommend developers do when they deal with "untestable" software. 12. Does the answer to 11 suggest some way to define "adequate testing" ("inadequate testing?") under the SE Code? 13. a. What is software "reliability"? b. Give two reasons why basic reliability models fail for software (explain). 14. a. Define Deontology. b. Define Rule-Utilitarianism. c. Give a case where these ethical standards yield different results. Essays. When applicable, I suggest a format similar to that explained in class and mandated for your papers. SAMPLE ESSAY: (This essay asks for specific work and the format of the answer should follow that in some rational way.) A. Suppose you write a paper extending Weyuker's analysis in her paper, "On Testing NonTestable Programs." You show that testing of software still isn't anywhere near an exact science and that we have no objective measure for the "strength" or "thoroughness" of testing. You admit that we can get a bug list that clearly helps avoid certain problems, but that is the only certain result of testing. The IEEE asks you to write some guidelines regarding the Software Engineering Code of Ethics section 3.11. You'll write guidelines involving adequacy of test documentation and you'll give very brief justification for each guideline. ANOTHER ESSAY, with a more open format. B. You graduate from Cal Poly (after receiving an "A" in your CSC 300 class!) That high grade gets you an interview with UnderCover Systems where they claim to value ethics highly. They offer you a job (and you have no other offers) at a salary that will enable you to pay for some critical surgery for your mother that she could not otherwise pay for. UnderCover Systems hires you and only gives you the job title after you have signed your Nondisclosure agreement. They hire you as an "information retrievel operative" where you will write programs designed to connect to networked PC's and gather data which will be sent back to a special database without the PC owner's knowledge or consent. You quickly speak to your manager regarding the dubious ethics of the job title and he responds, "it's OK, we only apply these techniques to potential terrorists. The U.S. government funds us, so we're in the clear!" "If we don't find these terrorists before they strike us," he continues, "we'll be responsible for the horrors they may cause!" He tells you to get back to work and do your job or you may lose your job due to the lack of progress you're making. Suggestions: a. Start with any simple facts you will rely on in writing your answer. The facts should be given without judgment. Citations should be given if you know them (even roughly). b. Name the question (issue) you will address - grounded in those facts. The question should be natural to ask after someone reads the facts. (At some level, consider what rules or ethical principles will come into play, you might even write them down as applicable to the issue in a list. These may suggest some of the arguments you'll need to cover.) c. Consider varying arguments regarding possible positions or answers to your question. Here you may include readings you've done (cite as best as you can) and you may even cite class discussions (do this sincerely, to the best of your recollection). You will be graded on your ability to cover the major alternative arguments made by others on this question. The arguments should be made sincerely and in their strongest light. You should not reveal your own position when covering the arguments of others. d. Analyze and write your answer to the question. This should incorporate the rules, ethics, and arguments you've found. It may include your arguments for the most rational position on the question, or you may argue for a new position. Remember that basic rational argument will apply general principles and rules to specific facts, with a resulting conclusion that is defensible. In your analysis, you'd be wise to admit any weaknesses and explain how your conclusion still holds up. You will be graded wholistically, but the most credit comes from your analysis: criticizing and synthesizing other arguments, making your own position in a clear and consistent manner. Note: I also suggest a very simple outline before you begin to write your answer. Since the exam is of limited time, you should allocate that time carefully.