| CSCI-E215 | Course Information |
|
Instructor
Bruce Molay (molay@fas.harvard.edu), 617/864-8832. Purpose/Content Csci-e215 explains the structure of the Unix operating system and shows how to write system and network programs. It is appropriate for students who want to learn how to write system software for Unix or for students who want to learn about the structure of a multi-tasking, multi-user operating system. The course covers the details of the file system, terminal and device input/output, multi-tasking, interprocess communication, video displays, and network programming. Theory is presented in the context of how Unix implements the ideas. By the end of the course, students should be able to figure out how most Unix commands work and know enough about the system to draft their own version of most of them. Preparation You should be able to program in C or C++. You should be comfortable with pointers, structs, dynamic memory allocation, linked lists. You do not need to have programmed in C for Unix. Familiarity with Unix is helpful but not essential. Try this page of exercises to see if you know enough to take the course. Lectures Mondays 7:35-9:35, Short break in middle. Lectures present ideas in the context of specific problems and Unix commands. Careful review of sample programs will be used to demonstrate principles and focus discussion. Many of the programs will be from the text; read before lecture and note questions. Reading Understanding Unix/Linux Programming by Bruce Molay is the main text for the course. We shall follow the book closely. Advanced Programming in the Unix Environment by Stevens is more encyclopaedic - has all the info and is an excellent reference. Unix Internals: The New Frontiers by U. Vahalia provides supplemental information about the inner workings of the operating system. That material is beyond the scope of this course, but is interesting and useful if you plan to study Unix in more detail. Required Work A final exam and six programming assignments. They are spaced evenly through the term. Most assignments build on or follow examples and ideas presented in class. Grades are based on a final exam and the programming projects. The final exam counts 35%, the programming projects count 65%. Help
Facilities All students will have accounts on the Harvard instructional computing system. Students may connect to the servers at ice.harvard.edu via ssh. Students may use the computer lab in the basement of the science center (open 24 hours a day) and the Extension School computer lab on Church Street (open 8AM to midnight or 10PM). |