Thinking in C and *nix (CSC 295/282 2014S) : Home

Front Door


Welcome to the Spring 2014 session of Grinnell College's CSC 295.01, a one-credit special topics course entitled Roots of Professional Practice - A Philosophy of 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.

At times I will refer to this course as “CSC 282: Thinking in C and Unix” because the department has proposed regularizing this course under that number and name.

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, 1:15-2:05 p.m., Science 3819.

Instructor: Samuel A. Rebelsky, Science 3824. 269-4410 (office). 236-7445 (home). Office hours: M 2:15-3:05, TW 11:00-11:45, F 2:15-3:05. I 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

  • attend at least twelve of the fourteen 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.

Copyright (c) 2013-14 Samuel A. Rebelsky.

Creative Commons License

This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.