COURSE NUMBER: G22.2245-001

Instructor: Danielle Lahmani, lahmani@cs.nyu.edu

Time: Monday 5-7 PM

Room: 101, Warren Weaver Hall

Office Hours: Mondays: 3:30 - 4:30 PM, Room 401 WWH

Spring 2000

Revision dates: 01/30, 01/19, 01/15


This is a graduate course in Computer Science on UNIX programming tools. This course gives a broad view of the UNIX operating system, and provides a description of user level tools available to users and programmers. Administrative tools for backup, security, networking and performance tuning will also be presented. Some UNIX system programming and internals may be presented if time permits.


This course requires an understanding of modern operating systems and a working knowledge of a high-level programming language such as C, C++, Perl or Java. Students will be asked to work on a substantial programming project and will need to develop good technical writing skills and programming skills.


The following topics will be addressed:

  1. Why is LINUX so hot today? What is UNIX's legacy? What makes UNIX unique: its environment, philosophy and history.
  2. The UNIX file system and the UNIX process management.
  3. The UNIX shells: the command interpreter languages (Korn and C shells), shell programming and shell scripts
  4. Filters and utilities: find, grep, egrep, awk, sed and others.
  5. Backup utilities: tar, cpio and others.
  6. PERL programming language.
  7. X Window system.
  8. UNIX programming development tools: Make, gcc and gdb, sccs and rcs.
  9. System management utilities: fsck, mount, df, dd, cron, etc.
  1. Networking utilities: rlogin, telnet, ftp, ssh, NFS and a brief introduction to the internet and http
  2. Security and System backup, tuning and performance tools.
  3. Overview of the UNIX kernel.
  4. Course Material

    The weekly syllabus, including lecture topics, pointers to slides on-line when available, reading assignments and homeworks assignments, and project description will be in syllabus.


    Required Texts:

    1. The UNIX Operating System , K. Christian and S. Richter, 3rd Edition, Wiley Professional computing, ISBN 0-471-58684-6
    2. Learning Perl , R.L. Schwartz &T. Christiansen, , 2nd Edition, O'Reilly, ISBN 1-56592-284-0


Recommended Texts:

1. UNIX in a Nutshell, Gilly, O'Reilly, ISBN 1-56592-001-5

2. The UNIX Programming Environment, Kernighan, Pike, Prentice Hall Software Series, 1984, ISBN 0-13-937681-X

3. The New Kornshell Command and Programming Language, Bolsky , Korn , Prenctice Hall, 1995, ISBN 0-13-182700-6

4. The UNIX C Shell Field Guide, Anderson and Anderson, Prentice Hall, 1986, ISBN 0-13-937468-X

5. Sed and Awk, Dougherty and Robbins, O'Reilly, second edition, ISBN 1-56592-225-5


Computer Accounts and Resources

All students must be able to access the Web. Any student can obtain an account on the Computer Science department Suns workstations that will provide such access.

Course email list

I must be able to communicate with all students via email. Please subscribe to the course mailing list. To do so, send an email to majordomo@cs.nyu.edu with the following body (not subject):

SUBSCRIBE g22_2245_001_sp00

To multicast an email to the class, email to g22_2245_001_sp00@cs.nyu.edu. To learn more about majordomo, send email to majordomo@cs.nyu.edu with the following body:




Anatoly Akkerman, akkerman@cs.nyu.edu Office hours: Wed 5- 6 PM, 719 Broadway , Room 715 Tel: x83525

Xin Zhang, xinzhang@cs.nyu.edu, Office hours: Thurs 6-7 PM, WWH , Room 408 Tel: x83073


Guest Speakers:



Assignments, and Student Evaluation

A student can earn a total of 100 points in this course. Points will be allocated to assignments as indicated. All home works and exams must be done individually. Projects are done with groups of 2 or 3 people.



Home works


Exam 1


Exam 2






The project points are allocated as follows:



Design document


User's and Administrative guides


Project implementation



Expectations on the Projects: The format and deliverables will be discussed during the second lecture. I will post a FAQ after that meeting.

Can I do it alone? No, the group interaction and coordination is a big part of the work.

How do I get a project partner? If you need a match, please send me email lahmani@cs.nyu.edu, with subject " Need a UNIX Tools project partner" and I will set up 2 or 3 people together. (But please wait until we first meet in class)

Academic Integrity

Cheating on an examination is a zero-tolerance offense, resulting in an F on the course and going to the Dean of Studies.

Homework must be done individually and must be original work.

Projects must be done within the assigned group. Work must be original; any discovery of plagiarism (WEB, other publications, and/or friend's project) will result in an F on the course and a visit to the Dean of Studies.