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

Front Door


Introduction

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 http://www.cs.grinnell.edu/~rebelsky/Courses/CSC282/2015S/. 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.

Basics

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 https://rebelsky.youcanbook.me. 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.

Grading

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 http://oreilly.com/catalog/make3/book/index.csp.

Raymond, Eric S. (2003). The Art of UNIX Programming. Addison-Wesley, Professional. Also available online at http://www.catb.org/esr/writings/taoup/html/.

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 http://www.cs.grinnell.edu/~rebelsky/Cnix/.

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.