CS 326 Projects



These programming assignments are not trivial. It is strongly suggested that you do not wait until the last minute to write the code. If you do, you are unlikely to be successful. My not being available is not an excuse for not getting your work done on time. If you start early, you will have ample opportunity to get assistance.

As much class time as necessary can be devoted to discussing these programming assignments. This must be initiated by you, not me.

Academic Honesty

All work is to be your own. You are not allowed to look at another person's code or allow another person to look at your code. Discussion of an approach is acceptable. If you don't know how to do something, check the man pages or ask me.

All programs are submitted via turnin. Your program must compile and not deadlock in order for me to see your source code. Any programs that do not compile will receive 0 credit. As you should all know by now, turnin deposits a .out file in the directory from which you executed it. It is up to you to examine the contents of the file to determine the success of the turnin operation.

In industry, you will learn very quickly that programs that do not produce correct output are not worth anything. You will find that submission of a program that does not work properly is highly frowned upon. Repeatedly submitting programs that do not work properly will probably result in your not keeping you job very long. Therefore, programs that are submitted that do not produce the correct output will be worth very little credit regardless of how trivial the error is. Learn to test your programs. I am happy to devote class time to program testing and program debug techniques, however, the students must initiate this discussion. If you do not bring it up in class, I assume you don't need the discussion.

Since all of the programs in this class involve concurrently executing entities, the test/debug techniques that you have used in the past may not be adequate.


If your program has been given shared memory, semaphores, or message queues by the OS and it does not voluntarily give them back, you can clean up by executing a utility on the command line called cs326clean. If you do not clean up after yourself, the system will run out and no one will be able to run.

Reports

In addition to code to be turned in, several assignments have a written report. The written report is due in D2L at the beginning of class on the due date for the assignment.

turnin submission time is before the start of class on the due date.



Note: Due dates are subject to change

Topic  Due Date 
Project 1 Communication with Unix Pipes: calculator February 11
Project 2 Synchronization: Single Producer/ Single Consumer Bounded Buffer  March 11
Project 3 Arm Wrestler: semaphores, shared memory, and chance March 27
Project 4 Message Queues - There Was an Old Lady April 8
Project 5 Signals - The Twelve Days of Christmas Deliverable 1: April 15, Deliverable 2: April 22, and Deliverable 3: April 24

Bracken Last Modified 10:00 a.m. 10/25/2024