Projects

As part of the course, you will complete a number of programming assignments. Project are worth 50% of your grade. 

You should perform these projects on PCs running the Linux operating system.   The CS lab (CSL) provides a number of machines that you can either use directly or log in remotely to.  New Unix users to CSL Unix facilities should attend an orientation; minimally, read the instructional facilities overview.

The projects are a fundamental part of this course. Most projects require a significant amount of time; do not procrastinate! It is likely they will take longer than you expect. Do not wait until the day before the assignment is due to start. These assignments should be started pretty much when they are handed out. All information necessary to complete the assignments will be available from the class web page.

As stated previously, all of the assignments will be in C. We assume that you have enough programming background that learning the basics of a new language (if it is indeed new to you) will not be difficult.

For the projects, you will primarily be graded on how well your implementation works. We will test your program on a suite of input sets. Your grade will be based on how many of the tests your application passes; we will only briefly examine your code to ensure that you followed the specifications of the assignment.

Also, don't cheat (duh). We will run software that checks for similarities between projects (both those that we submitted this semester and in previous semesters).

There will be about 8 programming projects in this course, about half of those will entail programming on Linux and the other half in the xv6 environment.