As part of the course, you will complete SEVEN programming assignments aka Projects. Project are worth 40% of your grade. You should perform these projects on PCs running the Linux operating system (new Unix users to CSL Unix facilities should attend an orientation; minimally, read the instructional facilities overview and basic linux shell tutorial ).
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 above, all of the assignments will be in C or x86 assembly. We will help introduce these a bit but of course the real learning of anything as awesome as a new language is done on your own. Get to work!
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 also briefly examine your code to ensure that you followed the specifications of the assignment. Your code should have comments according to the commenting guide
Late Policy: Any assignment turned in after the due date/time and up to 24 hours late will receive a deduction of 25% of the total points. Any assignment turned in 24 hours to 48 hours late will receive a deduction of 50% of total points. Any assignment turned in more than 48 hours after the due date/time will not be graded, and it will receive a zero score.
You can optionally work on projects (p1, p4, p5 and p6) in pairs (that's two, and only two individuals). Both students working together must be currently enrolled in the course. Each student must (individually) turn in each assignment. On collaborated assignments, there will be 2 copies of the assignment turned in: one by each of the pair working together. This is required to simplify the grading and to insure that both partners have copies of code that might be utilized in subsequent assignments. Include the names and sections of both students involved, as stated in the assignment specification. The TA will choose to grade just one of these turned in assignments, giving the same score to both students. Pairings may be different on different assignments, and pairings can cross lectures (e.g., an individual in lecture 1 can work with someone in lecture 2).