CSC 295.03 2013S Roots of Professional Practice: A Philosophy of Unix : Handouts

Course Schedule

This handout is also available in PDF.

This is a tentative schedule.

  Date Topics
1 Tuesday, 22 January 2013 Introduction - What we'll do in this class. The basics of the Unix philosophy. Etc.
2 Tuesday, 29 January 2013 Some Sample Problems We explore a variety of approaches to a some problems in text and data processing.
3 Tuesday, 5 February 2013 Shell scripting, A Refresher - A reminder of the ways in which one typically interacts with Unix: Permissions, Directories, File types, etc.
4 Tuesday, 12 February 2013 No class. Sam out of town.
5 Tuesday, 19 February 2013 Basic Tools - tr, sed, grep
6 Tuesday, 26 February 2013 Automating Work with Make (1) - Recording complex commands. Simplifying complex commands. Dependency graphs. Variables.
7 Tuesday, 5 March 2013 No class. Sam out of town.
8 Tuesday, 12 March 2013 Compilation, Macros, and the C Preprocessor - Stages of compilation, revisited. Compiler flags. Constants.
Spring Break!
9 Tuesday, 2 April 2013 Automating Work with Make (2) - Generalized rules. Standard variables.
10 Tuesday, 9 April 2013 Unit Testing - An approach to procedure design. Why write tests first. Strategies for designing tests. An example: testing binary search. Testing vs. experimentation.
11 Tuesday, 16 April 2013 Debugging with GDB.
12 Tuesday, 23 April 2013 Miscellaneous C Topics. Valgrind. Function pointers. Signals.
13 Tuesday, 30 April 2013 Shell Scripting (1). Basics of shell scripting. Variables and functions.
14 Tuesday, 7 May 2013 Final class. - Debrief and wrap up.

Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Tue Apr 23 10:24:26 2013.
The source to the document was last modified on Tue Apr 23 10:24:24 2013.
This document may be found at

You may wish to validate this document's HTML ; Valid CSS! ; Creative Commons License

Samuel A. Rebelsky,

Copyright © 2012 Samuel A. Rebelsky. This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 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.