CSCI 3294 (Unix Power Tools), Spring 2008:
Guidelines and Requirements for Projects
One of the requirements for this course is completion of a project.
You may work individually or with one other person in the class.
The project will count as 50 points of your total grade.
It should be about twice as ambitious as one of the homeworks,
and if two people work together, the project should be about
twice as ambitious as a solo project.
All projects must be approved in advance by the instructor,
who will be the final arbiter of whether the topic and level of
difficulty are appropriate.
I am willing to consider any topic that (1) uses something we
talked about in class (or something related)
and (2) I can reasonably supervise and grade.
The goal of this assignment is to give you a chance to go
beyond what we did in class and in homework -- explore a topic
we didn't address, learn more about a topic
you found particularly interesting,
figure out how to use UNIX tools to solve a problem of
interest to you, etc.
You will probably (but not necesssarily)
end up with one or more of the following as ``deliverables''.
- Shell scripts.
- Makefiles.
- Configuration files (for bash or vim or
other programs).
- awk programs.
- LaTeX macros.
When I taught this course in Spring 2006, student projects
included the following.
- Writing an engine for text adventure games (shell scripting).
- Generating form letters (shell scripting and LaTeX).
- Comparing GNU versions of some UNIX tools to
their ``true UNIX'' counterparts.
- Collecting performance data for a set of programs and
plotting it (shell scripting and gnuplot).
- Generating a skeleton for a Java class, something like
what Eclipse does (shell scripting).
- Reorganizing files in a directory, creating subdirectories
based on timestamps (shell scripting).
- Installing Linux on a Mac laptop and reporting on the results.
If nothing occurs to you right away,
try to think of a task you do, or would like to do,
that's in some way automatable, and/or come talk to me.
- Project proposal.
- Due April 14 at 5pm.
A brief description of your project topic, no more than
a paragraph. Submit by e-mail.
- Project report and deliverables.
- Due May 12 at 8:30am.
A slightly longer description of what you did, problems you
encountered, things you learned, etc., plus your
``deliverables'' (scripts, configuration files, etc.).
Turn in the report in hardcopy form;
submit anything machine-testable via e-mail, as for the
homeworks.
- Project presentation.
- Due May 12 at 8:30am.
A brief presentation (no more than 10 minutes)
describing your project's goals and outcome.
It should address the same topics as your
written report, and can also include a demo
if appropriate.
Berna Massingill
2008-04-09