CS/CE 218 Lecture -*-Outline-*- (bring the Unix manual, hard copy) advertisment: complete overview of the course, see how and why it's being taught the way it is * Introduction to CS/CE 218 ** who introduce myself, TAs start seating chart and information sheets going around please sit in the same spots each time. ** why why are you taking this course? stand up to answer questions what do you expect to get out of this course? what do you expect to be covered? what are your goals...? *** details of Unix/C vs. course objectives show the manual is it possible for one person to learn and remember all this? pass out the course spec, let them read it for 3 minutes, then ask questions. *** the unix philosophy what is a Unix expert called? not exactly a way of life, but a way (style) of programming (cf. apple macintosh) files of ASCII characters (text) filters to massage text (pipelining) conventions for I/O, exit codes, arguments, interrupts, ... powerful, general tools that can be combined how to make powerful, general tools start with a program that does something abstract (key idea in course) why is abstraction important? (speak each of the letters) clarity conciseness limited brain capacity ** how pass out the red-tape handout, let them read it for 5 minutes then ask questions it's important to put time in on the course: attend lectures and labs do the readings, always in front of a terminal start passing out logins. (TA will wander through the class giving them out.) come even if not prepared, but be prepared to say you're not prepared laboratories exploration when warranted (esp. at first), will be a "recitation" if needed. attendance required, will have quizzes in labs (often) estimate of the workload about 6-9 hours outside of classes and labs a week less at the beginning of the term study tip: think of how you'd teach what you're reading highlight important points, make notes of what questions to ask, try things out ** what pass out syllabus, give overview of the course let me know about speed too fast or slow *** stories of software tools my experience at Bell Labs with MESA ...didn't have time for the following in Fall 1991... files for course lecture notes use emacs outline mode want separte units want to be able to print out notes in order, but have units with good names developed (mostly with shell and sed) iterators, lecture-units and unit-files, that print file names in order filters, unit-examples, unit-outline, etc. that extract parts of a lecture printing commands ways to call standard print programs enscript -Bk -fCourier-Bold21 $* grading program, etc. *** what is an operating system? what's it's job? *** what is a programming environment? examples? (turbo/C...) advantages of Unix programming environment (for C) -good facilities for manipulating text -manual pages for C library functions (on-line) -well-integrated I/O facilities -command line arguments, shell environment -standard include files -linker/loader (ld) that permits separate compilation -other tools: lint, debuggers, pretty printers -non-language specific tools make