Thinking in C and *nix (CSC 282 2015S) : Home

Front Door


Welcome to the Spring 2015 session of Grinnell College's CSC 282.01, a one-credit special topics course entitled Thining in C and Unix. In this course, we will explore the approaches that professionals take when developing software using C in the Unix/Linux environments. But we will also delve more deeply into the underlying Unix philosophy that guides this practice.

I will try to ensure that there will be very little lecture in the class. The focus will be on collaborative exploration of problems and their solutions. Each class, I expect to suggest a problem and an approach and to have the class discuss and experiment with alternatives.

The Web site for the course is You can find all sorts of interesting things on the course web, and I'd encourage you to look there.

This is an experimental course. Among other things, this means that I expect to be updating the syllabus as the semester goes on.


Meets: Thursdays, 10:00-10:50 a.m., Science 3819.

Instructor: Samuel A. Rebelsky, Science 3824. 269-4410 (office). 236-7445 (home). Office hours: sign up at I also tend to follow an open door policy: Feel free to stop by when my door is open or to make an appointment for another time.


This course is offered for one credit and is graded as S/D/F. All students who take the course are expected to

  • miss no more than two class meetings;
  • do all of the assigned readings;
  • spend an appropriate amount of time on each homework assignment; and
  • participate actively in class.

Students who meet these criteria will earn a grade of S. Students who do not will likely earn a lower grade.

Mecklenburg, Robert (2004). Managing Projects with GNU Make, Third Edition. Sebastapol, CA: O'Reilly and Associates. Also available online at

Raymond, Eric S. (2003). The Art of UNIX Programming. Addison-Wesley, Professional. Also available online at

Rebelsky, Samuel A. (2014). Don't Embarrass Me / Don't Embarrass Yourself: A Guide to Thinking in C and *nix. An e-book (in progress) available at

Additional Readings

Here are some other things you might find useful.

Gancarz, Mike. 1994. The Unix Philosophy. Digital Press.

Kernighan, Brian W. & Ritchie, Dennis, M. (1988). The C Programming Language, 2nd Edition: ANSI C. Upper Saddle River, NJ: Prentice-Hall.

I believe that every computer scientist (or at least every programmer) should have a copy of K&R. It tells you a huge amount about ways of thinking about problem solving, and gives you a good sense of how people “think” in C.