CS 450: Project 1a: Unix Warmup


The project description can be found in the Github classroom link sent out in Piazza. Please read it carefully to understand what you should be doing.

The project is to be done on the Fusion cluster, to which you should already be able to log in (see Piazza). Please let us know if you cannot get in.


Before beginning: If you don't remember much about the Unix/C environment, read this tutorial. It has some useful tips on C programming, debugging, and getting around a Unix like environment.

This project should be done alone! Copying code (from others) is considered cheating. If we detect plagiarized code, severe penalties will be applied. Please do us all a favor and do your own work (otherwise, why are you here?).

Getting the Starter Code

You should go to the Github classroom link posted in Piazza. It might ask you to create a GitHub account if you don't already have one. You should accept the invitation and then go to the link it gives you. If you've never used git before, you might want to check this out. You should click on the green "clone or download" link to get a URL to clone from.

From there, you should be able to clone the starter code (logged into the fusion machine) like so:

[you@machine] git clone https:/github.com/IIT-CS450-S19/project-1a-unix-warmup-<your github username>

Due Dates and Logistics

This project is due Monday, January 21, 2019 at 11:59PM. Late submissions will be penalized as per the syllabus.

Testing Your Code

You can test your code by using make. There is a test for each component of the project. For example, to test your cat program, you can run:

[you@machine] make test-my-cat
You can also run test-my-zip, test-my-unzip, or test-my-grep. If you'd like to run all tests:
[you@machine] make test-all
Make sure to test often, and be sure that your code passes all tests before handing your code in. You will only get credit for tests that you pass.

Handing In

IMPORANT:Before you hand in, make sure to add (and commit) a file named "info.txt" which contains your full name and e-mail address.

As you go, you should be making commits using git to your local repository (again, if you've not used git, you should go to the link above). When you're ready to hand in your code, you can just run:

[you@machine] make handin
If you have modified files you haven't commited, the handin script will warn you. This handin script actually just invokes git push.

Remember that you will be docked points for late work as per the syllabus.


If you have questions, please first post them on Piazza so others can get the benefit of the instructor/TA's answer. If this does not resolve your issue, contact the instructor or TA, or come to office hours.