hi everyone, some announcements - o i've graded hw 4, will grade hw5/6 tomorrow, mail 4/5/6 on wednesday o i've decided to change hw9. my reason for this is that while the material is very nice, the questions in the book don't really capture the essence of the material. (the questions are more about implementating small applications, not so much about notation.) instead of questions 1, 3, 8, and 18 from the chapter, i'd like you to read the material and write a summary of what you learned. (1-3 paragraphs per section.) o i'll be out of the country for a few weeks, leaving july 17. my contact information will be on my web page, and i'll be checking email. i'll grade the last two submissions remotely, will email grades back. hw 7/8 is due sunday july 23 at 11:59pm. chapter 7 is about performance. in my opinion, most undergraduate classes stress performance far too much - perhaps because it's more quantiative, and therefore has more academic respectability. POP makes the point early in chapter 7 that the first principle of optimization is DON'T. if it's good enough, the only reason to boost performance is to show how clever you are (and invariably you'll fall flat on your facing doing so - performance tuning can introduce all sorts of nasty corner-case bugs, takes much longer than you expected, etc.) one interesting aspect of the performance optimizations that POP talks about is that they go beyond the usual big-Oh data structure and algorithms theory, and also includes a detailed discussion of "tuning" - this includes things like cacheing, special purpose allocation, precomputing results, etc. chapter 8 is about portability. there are many ways in which a program can fail to be portable, some of which are obivous (assumptions about word length), whereas others are a lot more subtle, e.g., the memory footprint and the organization of a struct/object in memory is a function of the compiler, and writing out these objects in raw byte order can be disastrous. more generally, it's easy to forget that a lot of your code calls library functions, many of which are not guaranteed to exist. chapter 8 is fairly short, and if you really want to learn about portability, the best book i have come across is "write portable code" by brian hook (no starch press). i've seen it at borders as well as barnes and noble, so check it out the next time you're there. cheers, adnan