Textbooks and Other Resources for CSC 300



Required Text:

  1. Johnson, Computer Ethics, 3rd Edition, Prentice-Hall, 2000.
  2. Petroski, To Engineer is Human, Vintage Books, 1992.
  3. Yourdon, Death March, Prentice-Hall, 1997.
Note that you are responsible to find copies of the textbooks, they have not been ordered by our bookstore.  Get them as soon as possible.  Check with me if you are in financial trouble and believe you must share books.  I'll assume everyone has access to each text at all times in some form.

Notice also that the textbooks are listed in order of relative importance.  I expect you'll read (and use) Johnson cover to cover and use it as a manual.  You will be expected to read the Petroski text in its entirety in the first week of class, on your own.  It is a thought-provoking view from the top regarding software requirements and specifications, good for higher level guidance.  The Yourdon text may not be referenced often during the course.  I expect that you will read it cover to cover by the end of the quarter (I recommend that you read it early, it is an easy, and often entertaining, read!)  It is a very funny but realistic view of a popular culture of software engineering that we'll often need to face and the book contains good advice for the resulting problems.  We'll often need examples of ethical dilemmas, and this text is full of them (then, you may want to consult the movie "Office Space" from time to time :-)

I do not teach "out of the text" and will assume you use the text to supplement (and contrast to) my lecture materiale.  I sometimes disagree with the text and I want to expose you to various viewpoints. 

Highly Recommended Materiale:

  1. Weinberg, The Psychology of Computer Programming, Dorset House1998.
  2. Parnas, "A Rational Design Process: How and Why to Fake It," (find the article from about 1986!)
  3. Brooks, "The Mythical Man-Month," (find the article or book!)
  4. Landaur, The Trouble with Computers, MIT Press, 1999
  5. Ludi, "A Student Survival Guide," (locally available)
  6. Here is a good pile of general references to help start you in research in this area engineering ethics bibliography.
    And more at Codes of Ethics.

Further materiale thoughts:

  1. Read the IEEE Code of Ethics and the IEEE/ACM Software Engineering Code of Ethics
  2. Read Cal Poly policies and rules regarding computing and review Cal Poly academic ethics policies.
  3. Review your textbooks briefly so that you know what they're about.
  4. Go look at the CPSR and EFF websites to see what they're about.
  5. While you're at it, go look for Microsoft's Code of Ethics and maybe Apple's code of ethics too.
  6. Check on your instructor's academic and industry "pedigree" and see if you can understand what makes him tick :-)
  7. Especially check on your instructor's research page for to see what he has written, just get a general idea.
Note that you are expected to do your own research.  Note also that while the web may sometimes be a good start, it is NOT sufficient in most every case and the indices of accuracy are missing (how do you know the web resource is correct??)  You'll need to get to know how to use paper resources in the library as well as web research in this course.  I expect that you will cite sources during talks, on exams, and for papers. Your citations to sources are critical to show me that you did the research and that you have not committed plagiarism (two good things!)