Project 1: Warm-up Project (Linux)

Important Dates and Other Stuff

Due: Monday, 1/29

by midnight.

This project is to be done by yourself.

Tests: Read more about the tests, including how to run them, by reading the file ~cs537-1/tests/README on any lab machine (i.e., type cat ~cs537-1/tests/README to see what to do, or better yet, use my-cat ...?). Good luck!

Update: Less stringent requirement on matching the empty string for my-grep (and generally, don't worry about this, we are not going to test it).


Send questions to or ask in person during lab help hours or office hours. If the question is about your code, copy all of of your code into your handin directory (details below) and include your login in your email (you are free to modify the contents of your handin directory prior to the due date). Also include all other relevant information, such as cutting and pasting what you typed and the results from the screen. In general, the more information you give, the more we can help.


The project description is found here. Please read this carefully in order to understand exactly what to do.

This project is to be done on the lab machines (listed here ), so you can learn more about programming in C on a typical UNIX-based platform (Linux).


Before beginning: If you don't remember much about the Unix/C environment, read this tutorial. It has some useful tips for programming.

This project should be done alone. Copying code (from others) is considered cheating. Read this for more info on what is OK and what is not. Please help us all have a good semester by not doing this.


The first contest of the semester is now announced: fastest my-zip. Whoever writes the code that performs my-zip the fastest will win fame, glory, and an amazing 537 T-shirt! This my-zip will be run over a very large file, so figure out how to test that on your own.

Handing It In

The handin directory is ~cs537-1/handin/login/p1a where login is your login. For example, Remzi's login is remzi , and thus he would copy his beautiful code into ~cs537-1/handin/remzi/p1a . Copying of these files is accomplished with the cp program, as follows:

prompt> cp my-cat.c ~cs537-1/handin/remzi/p1a/
prompt> cp my-grep.c ~cs537-1/handin/remzi/p1a/
prompt> cp my-zip.c ~cs537-1/handin/remzi/p1a/
prompt> cp my-unzip.c ~cs537-1/handin/remzi/p1a/

When done, type ls ~cs537-1/handin/remzi/p1a to see that all the files are in place correctly.

Finally, in your p1a directory, please include a README file. In there, describe what you did a little bit. There is no particular requirement for the length of the README; just get in the habit of writing a little bit about what you did, so that another human could understand it.