General Information


Geoffrey Towell
259 Park Science Building
gtowell at brynmawr dot edu


Lecture Hours Monday / Thursday 1:10 - 2:30
LabMonday 2:40 - 4:00
Office Hours:Tuesday 2-3pm, Thursday 3-4pm. Or by appointment
In the spring of 2021 all office hours will be by zoom.
ZoomMeeting code: 232 840 6920. Password: given in class. Also available on course Moodle page
Course Description: This is a course in systems programming using the C programming language in the Linux environment. C undergirds the world of modern computers and runs on anything. Learning C will also teach you how a computer really works under the hood and it will power your knowledge of programming and system building on any platform.

A secondary goal of this course is to give you a chance to learn some fundamental technologies in widespread use. As a computer scientist, you will be expected to know about Makefiles, version control, and command-line execution in the Linux environment.

By the end of this course, you will be able to…

  • Write standalone programs in the C programming language
  • Understand computer memory management and pointers
  • Work with linked structures (lists, trees, and graphs)
  • Use the Linux command line
  • Become familiar with programming tools and environment in Linux

During the course, you will…

  • Code lots of C programs
  • Setup and use Make files, and other Linux tools
  • Learn how to debug
  • Learn the use of lots of Unix utilities
Computer LabPark 231
Instructions for using the lab computers
Remote accessable lab computer status
Do not use the computers in Park 230, they are on a different file system


C Programming: A Modern Approach by K. N. King (2nd edition). W. W. Norton & Company, 2008. (Available at the campus bookstore.)
The Linux Command Line: A Complete Introduction by William E. Shotts, Jr. No Starch Press, 2012. May be available at the campus bookstore. Free download through both the Bryn Mawr and Haverford libraries.
Head First C
by David Griffiths and Dawn Griffiths. O’Reilly Media, 2012. This is an alternative introduction to C that may be helpful to you. Readings will not be assigned from it. Do not purchase unless you want another book on C programming.
The C Programming Language
by Brian W. Kernighan and Dennis M. Ritchie (2nd edition). Prentice Hall, 1988. The first edition of this book is what introduced C to the world. Do not purchase this book unless you'd like a souvenir in your collection of CS books. (This is the book from which I learned C programmingß.)