CSC 271
Software I
Utilities and Internals
Instructor: Dr. Stephen Bloch
Fall, 2011
Parts of this page are copied from the last time I taught the
course; many of the links don't work yet, but they will Real Soon
Now!
This course meets from 10:50 AM to 12:05 PM, Tuesdays and Thursdays, in
Science 227.
I've ordered several textbooks for this course, but they're all
"recommended" rather than required; we'll also use
a lot of online documentation and some handouts.
- Eric S. Raymond, The Art of Unix
Programming, published by Addison-Wesley
- Robbins, Unix in a Nutshell, published by O'Reilly
- Mark Allen Weiss, C++ for Java Programmers, published by
Pearson
Prentice Hall (I'm told this book is available for rent at
about half of its purchase price; talk to the bookstore.)
- Bjarne Stroustrup, The C++ Programming Language, published
by Addison-Wesley
My office hours are MTWTh 3:00-4:00 and W 9:25-12:00.
I taught this course in Fall 1994,
Fall 1995, Fall
1996,
Fall 1997,
Fall 2005, and
Fall 2007 as well,
and some information and handouts are still available from those classes.
Reading assignments
In addition to the several textbooks I ordered through the bookstore,
I recommend the video "Triumph
of the Nerds", a documentary about the
history of the microcomputer industry, available in the Adelphi library,
and its companion web site. The
documentary is fifteen years old, so some of the people interviewed in
this documentary have died since then; it's still interesting stuff.
The documentary's creator still blogs about the IT business at cringely.com.
And here are some on-line readings:
On-line documentation for Unix commands
- UNIXhelp for Users
(within which I particularly direct your attention to the section on
shell scripts)
- man mkdir, man rmdir, man pwd
- man mv, man cp, man touch, man
rm
-
man ls, man du
- man tcsh (sections on file completion, history
substitution, aliases, variables, command substitution,
wild cards, and globbing)
- man file, man find
- man tcsh (sections on jobs, fg,
bg), man ps, man kill
- man tcsh (section on umask), man chmod
- man ln
- man tcsh (sections on pushd and popd)
- info info, read that page, then hit "h" for an interactive
tutorial on the "info" program. You can then use info to learn
about other programs.
On-line documentation for programming tools
- info gdb (No, I don't expect you to read it all,
but get started on it.)
-
man flex
-
info make
On-line documentation for C library functions
C high-level I/O
- man stdio, which leads to...
- man fopen (including freopen)
- man fclose
- man fprintf (including printf, sprintf)
- man fscanf (including scanf, sscanf)
- man feof
- man putc (including putchar, fputs, etc.)
- man getc (including getchar, fgets, etc.)
- man perror
C string and environment manipulation
- man getenv
- system
- man strlen
- man strcat (including strcat, strcpy, strdup, strcasecmp)
- man strspn (including strcspn)
- man strchr (including strrchr, index, rindex)
- man strtok
Low-level Unix system calls
- man open
- man creat
- man read
- man write
- man exec
- man pipe
- man fork
- man socket, man bind, man listen, man accept, man connect
Last modified:
Fri Jun 1 13:21:54 EDT 2007
Stephen Bloch / sbloch@adelphi.edu