Wednesday, September 29, 2004 About the text, exercises and other supplementary materials: 1. The essays in the book are meant to provide insights into what computers can be used for and introduce you to basic concepts. The material on the book web site is meant to supplement the text; you can find lots of information on the web site, but we will specifically assign any readings you're responsible for. 2. The exercises are designed to give you hands-on experience using powerful tools and provide you with a starting point for you to pursue your own projects. Keep the exercises around where you can easily access and refer back to them for basic syntax and the idiomatic applications you'll find in the solutions. 3. There is no single book that provides you with comprehensive coverage of all the tools that we explore in the exercises. If you really want to learn the intricacies of 'csh', 'sed', 'awk', 'grep' or any of the other tools, buy one of the Sams or O'Reilly books that focus on the particular tool you're interested in. 4. By far, the most important lesson you can pick up in terms of practical shell programming is to learn how to use 'info' and 'man' to find what you need when you need it. Another lesson (and one that every mathematician knows) is that when faced with a new problem try to reduce it to one that you already know how to solve. If you already know how to solve the 'powers' problem, then the 'primes' is a lot easier to solve. Many programmers like to share their code, and the web is full of short shell scripts that solve commonly encountered problems. Here's a simple example: type 'shell script palindrome' to Google and see if you can find a script to recognize palindromes. The exercise for Wednesday, September 29 will be the 'Building Database Systems' exercise on the book web site. http://www.cs.brown.edu/~tld/talk/home-Z-H-5.html#node_sec_3.1.2 This exercise assumes that you've read Chapter 3 "Keeping Track of Your Stuff" and, in particular, the sections concerned with databases. In preparation for class, you should know the basic terms: tables, records, etc., and should also have a pretty good idea of how simple SQL queries work. For your midterm project, you will have the opportunity to choose one of three suggested programming projects. One of these projects is outlined in the above-mentioned web page. Another involves expanding on the code in the 'Ciphers and Secrets' exercise, and a third project involves writing shell scripts to deliver multimedia content on the web. I'll talk about this last one on Friday when the required reading is Chapter 11, "Under the Hood". The list of projects is available on the web at http://www.cs.brown.edu/~tld/talk/projects/midterm.html The due dates are still somewhat tentative but they aren't likely to be off by too much.