C-Tools Lecture: May 2012
I've just given the second version of my first year lecture on C Tools, building a toolbox of useful tools, and the craft skills to use them effectively, in order to make C programming easier.
The lecture covers the following topics:
- Basic Tools:
- Programmer's Editors: Use a single editor well.
- Automating Compilation: Use Make.
- Automating Testing: ruthless testing.
- Debugging: Use a debugger and know it well.
- Advanced Tools:
- Generating prototypes automatically.
- Fixing memory leaks.
- Optimization and Profiling.
- Generating ADT modules automatically.
- Reusable ADT modules: hashes, sets, lists, trees etc.
In the lecture, I strongly recommend The Pragmatic Programmer by Hunt & Thomas. The woodworking metaphor and many inspirational tips comes from there. A few years ago, I wrote a review of this book in my Professional Software Development webpages, please find it here.
Here are the lecture materials, covering the lecture and associated examples (of which there are many):
- Here are the full size lecture notes (PDF), ie. with one slide per page. Also available in Postscript for more efficient printing.
- Here are the 4-up lecture notes (PDF), ie. with 4 slides per page. Also available in Postscript for more efficient printing.
- And here's the C Tools tarball, as a gzipped tar file:
- Download this into your home directory,
- Then extract the contents via:
tar xzf c-tools.tgz
- This creates a directory called
- Don't forget to delete the tarfile later to save space!
- Explore the
c-toolsdirectory, I suggest you start with the top level README and Makefile.
- The slides are done with LaTeX's Beamer presentation class with Ann Arbor themed decorations. LaTeX still rocks! See lecture/Makefile in the tarball for details.
Updated: May 2012