Professor Tim Daly
Shepard Hall, Rm 279
x6178 (212-650-6178)
Office hours by appointment
Office hours Tues, Thurs 10-2

Open Source Programming is a course to introduce the student to
the philosophy, tools, and techniques of open source programming.

Class 1, Feb 4, 2004 Philosophy
html tex dvi pdf ps
These notes are from the first lecture from a course on Open Source
Programming. The lecture is about the philosophy and ideas underlying
Open Source programming. A broad range of non-programming topics are
introduced and illustrated with ``war stories''.
Class 2, Feb 11, 2004 Linux
html tex dvi pdf ps
This lecture covers Linux in three parts. First we detail the operating
system called Linux and outline what it does. Next we detail the Linux
distributions and show how to install and configure them. Finally we
detail the Linux social and business environment and discuss some of
the current community issues.
Class 3, Feb 18, 2004 Web Servers
html tex dvi pdf ps
This lecture covers the standards and concepts involved in Web Servers.
We talk about the RFC standards in some detail. Then we present the
source code for a full implementation of a standard Web Server and
examine the network interactions. We demonstrate communicating with
this Web Server using telnet by hand and using a standard web browser.
Next we review ideas involved in using Apache, an open source web server.
Class 4, Feb 25, 2004 Version Control Systems
html tex dvi pdf ps
Version Control Systems are software programs that maintain histories
of changes to source code. We cover the most widely used system CVS
in great detail. We then talk about some of CVS's shortcomings and
introduce other systems that address these concerns. This lecture
includes a guest presentation of GNU-Arch by James Black.
Class 5, Mar 10, 2004 Makefiles
html tex dvi pdf ps
Makefiles automate the process of building systems. In recent years
there has been a standardization on the method of building software.
The primary tool is ``make'' and we explain how to build Makefiles.
We explain the expectations of the standard ``configure'', ``make'',
``make install'' steps. We briefly cover the Autoconf and Automake tools.
Class 6, Mar 17, 2004 Email
html tex dvi pdf ps
We examine the RFC standards behind electronic mail. We review a
mail server, Postfix, in some detail. We give an example implementation
of a program to fetch a single message. We give an example implementation
of a program to watch a mail queue.

These pages and notes are licensed under the GPL.