Each week you can expect to find an assignment like this one on the cs146a home web page, telling you what you should read over the course of the following week. Occasionally we will be organized enough to predict the readings a few days beyond the next Friday. Numbered readings, such as "reading #2," refer to materials we are distributing.
Before each class you are expected to submit a written report. The report is a very short essay (no more then one page) addressing a topic given on the previous week's assignment sheet. In class you should be prepared to talk about the whole paper, not just the particular point of the writing assignment.
Please check the cs146a FAQ for report submitting instructions.
Read the following sections from Simon, "The Architecture of Complexity" (reading
#2).
* Introduction through page 471.
You may skip the sections on "Problem Solving as Natural Selection" and "The Sources of Selectivity" on pages 472 and 473.
* Read from "On Empires and Empire Building" (page 473) to "Conclusion: The Evolutionary Explanation of Hierarchy" (page 473)
The section titled "Nearly Decomposable Systems" (end of page 473 to beginning of 477) is optional.
* Skim from "The Description of Complexity" to the end of the paper, trying discover Simon's point, without necessarily reading every paragraph in detail. Skimming to find the main ideas (and deciding when skimming is appropriate) is a talent worth acquiring!
At first read, this paper appears to have very little to do with computer systems. As you are reading it, try to figure out why it was assigned. It may help to notice that it was written in 1962 and to know that Herbert Simon is one of the founding figures in artificial intelligence, a winner of the Turing Award, a recipient of the Nobel Prize in Economics, and a co-founder of the School of Computer Science at Carnegie Mellon University. Simon contends that hierarchy is a principal organizing force in social, biological, and physical systems.
For your report
identify and describe two examples of the use of
hierarchy in any of the computer systems you are familiar with, and explain
how hierarchy provides
significant leverage, advantage or a disadvantage.
Read from S&K, Chapter 1 "Systems", chapters 1A, 1B and 1C.
To help you to do a better job on the written reports read
Gopen and Swan, "The Science of Scientific Writing" (reading #3).
Read the Leveson paper (reading #4) and write a one-page reading report that addresses the question on "The passing of time with critical computer systems":
The Therac incidents took place between 1985-1987. Since then many changes have taken place. For example:
- User friendly GUIs have replaced dumb terminals.
- Better debugging tools and QA strategies exist.
- Government regulations have improved.
- Well defined libraries facilitate code reuse.
- etc.
Now, 20 years later, even more life critical systems are interfaced with computers. If the Therac-25 were developed today, do you think it might be possible for such a disaster to still occur? Discuss the fundamental causes that plagued the Therac-25 and are still relevant today as well as new challenges that have come about with the passing of time.
Please check the cs146a FAQ for report submitting instructions.
After reading Leveson's paper you may be flabbergasted by how badly the Therac-25 systems were designed. Our very last reading this year (#20, Lampson's "Hints for computer system design") has a number of suggestions that often lead to better systems. If you have time and energy left, browse through this thoughtful paper. You might want to ask yourself which hints the designers of Therac-25 violated. Don't worry if you do not fully understand this paper yet (or if you only have time to skim it); we will read it at the end of the term.
System aphorism of the week
There is no such thing as a small change in a large system.
cs146a Handout 1, issued 01/08/07