Thinking in C and *nix (CSC 282 2015S) : Home
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] [FAQ] [Teaching & Learning] - [Calendar]
Current: [Outline] [EBoard] [Lab] [Assignment]
Sections: [Assignments] [EBoards] [Examples] [Handouts] [Labs] [Outlines]
Reference: [EBook] - [ISO] [GNU Coding Standards] [GCC Documentation] - [TAoUP] [Make3]
Previous Offerings: [CSC 295 2013S] [CSC 295 2014S]
Misc: [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] [Issue Tracker]
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.
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.
This course is offered for one credit and is graded as S/D/F. All students who take the course are expected to
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/.
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.