Software Systems Spring 2008 For today, you should have: 1) read the sync in C handout from LBoS and answered the puzzle at the end of these notes. 2) read the handout from Raskin, "The Humane Interface" and the Wikipedia pages on Raskin and Archy Outline: 1) sync in C puzzle 2) use Archy to send me email. 3) project time. For next time you should: 1) work on your project 2) read Chapter 23 of the Cow Book 3) read the handout from Database System Implementation and answer the questions below. 4) do the next problem in the LBoS (Santa Claus) Project reports --------------- Please read the instructions before each iteration. Each report is meant to be a draft of the final report, so it should include all previous material. Please turn them in on time, in class, on paper. Next report April 24. Some notes on content: 1) Work on developing a natural voice. "Formal" writing doesn't mean you have to break out the big words, or speak 19th Century British English. 2) Justify modeling simplifications, but don't forget about them. 3) Active voice unless the agent is unknown or unspecified. Present tense unless it is very awkward. Reading Questions ----------------- Database System Implementation, pp 40-62 http://wb/ss/handouts/garcia00database.pdf There are more pages in this reading than usual, but at least on the first pass, you can skip the running Example and just read the main text. On a second pass, you might want to read the examples to test your understanding. There is a little database-specific vocabulary, so here are some definitions that might help. A "relation" is like a dictionary or hash table that maps keys to values. The keys are often unique identifiers of some kind, the values are often records. A "tuple" is a value stored in a relation, also called a record. For example, in Software Design we sometimes do a homework that involves processing a database on the reproductive histories of a large number of respondents. The database contains two relations, one for respondents and one for intervals. Each relation maps a unique identifier to a tuple, or record, that stores all the information about a given respondent or interval. 1) What is the primary performance assumption that underlies the design of database algorithms? 2) What work is done during the first phase of a multiway merge sort? 3) What work is done during the second phase? 4) During the second phase, why aren't the sublists merged pairwise? 5) Page 47 makes it sound like the two phases take the same amount of time, but in practice, which one do you think takes longer? 6) Page 48 makes an argument that two phases is enough to handle the biggest conceivable database. Do you buy it? 7) In Section 2.4.2, why is it important that the disks have independent heads? 8) In Section 2.4.3, would it make any sense to have two copies of the same data on the same disk? 9) What is the primary advantage of the elevator algorithm over FIFO? 10) What is the primary drawback of the elevator algorithm?