Student Originated Software 1997-1998
Winter Quarter

A Software Engineering Course at
The Evergreen State College

Unix Potluck Syllabus, Version 0.3

Last Revised: December 28, 1997
Your host: Doug Schuler


During the second quarter of this three-quarter program many SOS s tudents and I will be attending an ongoing Unix Potluck. Unlike other potlucks at Evergreen these offerings will nourish the head and not the stomach. Like ot her potlucks there will be a variety of tasty offerings and all the guests are expected to bring something for the others to enjoy. Please don't let the word potluck lull you into a feeling of relaxation, calm, or false security, however! We're planning to cover a lot of material in considerable depth.

We are planning to cover several areas in this potluck

  1. UNIX -- as an operating system, set of APIs, shells, tools (e.g. awk, grep, etc.), and IPC (interprocess communication, specifically with sockets)
  2. CGI programming (with Perl, Tcl -- see below)
  3. Perl
  4. Tcl and Tk
  5. Java


The purpose of the Unix potluck is to acquaint students with important concepts in computer science through the study of Unix and through several progr amming languages and tools that are often associated with (but are not restricte d to) Unix.


We will follow a basic pattern throughout the quarter. Each week we will generally investigate a basic topic. On Tuesdays we will have lectures, discu ssions, and workshops. These are not intended to be monologues: students are ex pected to reflect on the material and participate in discussions. On Thursdays (and on some Tuesdays) we will have student presentations in addition to the reg ular activities. We will also be able to schedule ad-hoc student mini-presentat ions on an as-needed basis throughout the quarter. On both Tuesdays and Thursda ys organized whole class work (lectures, etc.) will be accompanied by lab time i n which students will be able to work on their assignments.


The following books are in the Evergreen book store. There are also good reference materials on the web. I don't have any URLs listed at this time . Please let me know if you know of good sites.


  • (required) Unix in a Nutshell, O'Reilly, Gilly ($20)
  • Unix Programming Environment, Prentice-Hall, Kernighan & Pike
  • Unix for the Impatient, Addison-Wesley, Abrahams and Larson ($27)
  • Unix Network Programming, Vol. 1, Prentice-Hall, Stevens ($60)


  • Java in a Nutshell, O'Reilly, Flanagan ($20)
  • Java Tutorial, Addison-Wesley, Campione, Walrath ($37)
  • Java Examples, Addison-Wesley, Flanagan ($20)


  • (required) Perl Desktop Reference, O'Reilly ($7)
  • Learning Perl, O'Reilly, Schwartz and Christainsen ($30)
  • Programming Perl, O'Reilly, Wall, Christainsen, Schwartz (40)

Tcl / Tk

  • (required) Graphical App's w/ Tcl/Tk, M&L Books, Foster, Johnson ($40)
  • Tcl & Tk Toolkit, Addison-Wesley, Ousterhout ($40)
  • Tcl / Tk Tools, O'Reilly, Harrison ($50)

CGI Programming

  • CGI Programming, O'Reilly, Gundravaram ($33)


Each week a set of assignments will be issued. They will be due the following week unless otherwise specified. There will generally be three levels of competency associated with each set: basic, power-user, and wizard . Each student is expected to complete the basic level assignments of each set.

The basic levels are meant to be completed individually while the power user and wizard level assignments can be tackled as a team. Not everybody has to do the same assignments: In keeping with our philosophy of flexibility, students can propose other power user and wizard assignments for themselves and for others. Please let me know in advance what you have in mind so that we can determine these assignments and share them with other students.

Students will turn in their source code, and screen shots, for user interface assignments. Students will also be expected to demo their code on a regular basis (to either me or to David Guion, our lab assistant) in addition to turning in the assignments. Students must also maintain a self-assessment log that describes all of their work. This form will be handed out.

Original and updated assignments alike must be added to the Unix Potluck notebook. All notebook material must be dated. The entire notebook will be turned in on the last day of the quarter. (More independent learning modules are also possible: Proposals for this sort of approach need (1) description of what you intend to learn; (2) how you intend to learn it; and (3) how you'll demonstrate your success.)

Note: This syllabus is subject to change!

Week 1
Introduction to Unix and to the Potluck Topics

  • Tuesday , January 6
  • Thursday , January 8

Week 2
More Unix & CGI Programming

  • Tuesday , January 13 (I'll be roughing it in Hawaii; students will give presentations on Unix tools like awk and sed)
  • Thursday , January 15

Week 3

  • Tuesday , January 20
  • Thursday , January 22

Week 4

  • Tuesday , January 27
  • Thursday , January 29

Week 5

  • Tuesday , February 3
  • Thursday , February 5

Week 6
IPC and Client / Server (using Unix sockets)

  • Tuesday , February 10
  • Thursday , February 12

Week 7
Student Presentations and Other Surprises

  • Tuesday , February 17
  • Thursday , January 19

Week 8

  • Tuesday , February 24
  • Thursday , January 26

Week 9
And More Java

  • Tuesday , March 3
  • Thursday , March 5

Week 10
Dessert (Reviews and Extra Tidbits)

  • Tuesday , March 10
  • Thursday , March 12

For more information contact
[ Evergreen Home Page | Academic Programs ]

Created by: SoSwEbGrOuP