Williams College
Computer Science 10 - Winter Study 2001
C, Unix, and Software Tools
|
This course serves as a introduction to programming methods using the Unix operating system. The course is designed for individuals who understand basic program development techniques as discussed in an introductory programming course (Computer Science 134 or equivalent), but who wish to become familiar with a broader variety of computer systems and programming languages. Students in this course will work on Unix workstations, available in the Department's programming laboratory. By the end of the course, students will have developed proficiency with Unix and the C programming language. The exact topics to be covered may vary depending upon the needs and desires of the students.
Mark G. Sobell, A Practical Guide to the Unix System, 3rd edition, Addison-Wesley, 1995K. N. King, C Programming: A Modern Approach, W. W. Norton & Company, 1996.
Computer Science 134 or equivalent programming experience.
Practice Assignments will be given out daily. The purpose of these assignments is to give you practice each day with the new ideas that are presented. The only way you will become proficient with Unix and C is to use them. These assignments will not be collected but we will discuss them in the next day's class.A number of programming assignments will be given. These will be evaluated to give you feedback on your work and for grading purposes. You must complete all programming assignments on time to earn a passing grade. One or more late, partial, or missing submissions will result in a perfunctory pass or failure, at the discretion of the instructor.
All practice assignments and programming assignments may be found here.
passwd, ls, cp, mv, rm, more, lpr, less, cat, mkdir, rmdir, cd, pwd, emacs, vi, man, xman, diff, xclock, ps, kill, gcc, history, chmod, chown, traceroute, ln, umask, make, gmake, grep, ar, tar, gzip, gunzip, zcat, zgrep, head, tail, file, bc, du, awk, sed, basename, cut.
PuTTY Win32 SSH ClientEmacs cheat sheet - tables summarizing Emacs commands discussed in class
Emacs FAQ - Frequently asked questions about Emacs
UNIXhelp for Users - introductory level material
Unix Reference Desk - a comprehensive collection of references
comp.lang.c FAQ - frequently asked questions posted to the comp.lang.c newsgroup
How to Write a Makefile - introduction to make
Online manuals - online manuals for lots of Unix tools: emacs, gdb, make, ...
Signature programs. OK, so maybe this isn't useful, but there are some neat programs here.