weltyrp@rpics.UUCP (Richard Welty) (10/24/85)
I think that the following got lost in a crevase, so here it is again ... I am currently teaching a course on C and UNIX, and am looking for suggestions for good projects to illustrate basic and advanced concepts of both C and UNIX. Background: The students are seniors and grads. They know Pascal, and most have taken introductory courses in Hardware architecture and in Systems Programming. The texts are harbison & steele, and kernighan & pike. kernighan & ritchie is available to the students. The students have already endured lectures on C, using UNIX, some details on system internals, and on various utilities. What I am looking for: Projects that illustrate various aspects of UNIX, such as programming with multiple processes, filters, etc. Also, projects that are not C programs (but use such things as awk and other utilities to solve problems without writing new C programs) are of interest. I want the students to finish this course understanding C programmming, and also understanding when to write a C program, and when to use the system utilities. I also want them to understand the difference between writing a small program to be handed in, and writing part of a massive system with n other programmers (thus justifying Make and SCCS to them -- it turns out to be damned difficult to explain to the normal student why he should care about such things). Thanks in advance for any help. -- Rich Welty "P. D. Q.'s early infancy ended with a striking decision; at the age of three, P. D. Q. Bach decided to give up music" - Prof. Peter Schickele, from "The Definitive Biography of P. D. Q. Bach" CSNet: weltyrp@rpics ArpaNet: weltyrp.rpics@csnet-relay UUCP: seismo!rpics!weltyrp
jacobsn@csd2.UUCP (Nicholas H. Jacobs) (10/25/85)
Some good programs (and useful tools too) can be found in Kerninghan and Plauger's _Software Tools_ (as if everyone didn't know), but a good pro- ject is to have the students write them in C rather than a super-charged version of Pascal (as many inexperienced C programmers do). For example, make the issues of efficiency important; have them use dynamic allocation, use pointers rather than arrays. All of these things are more idiomatic of advanced programs, and it seems that these are some of the more difficult operations to learn. Especially useful are examples which require double indirection using pointers and dynamic allocation. Nicholas Jacobs jacobsn@csd2