Assignments
General Information
- All assignments are due at 5:00am on the due date shown.
- Late submissions will not be accepted.
Tentative Assignment Schedule
Assignment | Due |
---|---|
C Programming | 9/3 |
Unix Files | 9/17 |
Unix Pipes | 9/24 |
Unix Named Pipes | 10/8 |
C Style Guide
Programming Project Rubric
Total Points: 50
Program Correctness (20 points)
This evaluates whether your program works as intended. It is based on the results of automated tests that check if your code implements all required functionality correctly. This category also includes any additional issues not explicitly tested but that might lead to incorrect behavior.
Program Design (15 points)
This evaluates the overall structure and organization of your code. A well-designed program will typically have:
- Small, self-contained functions that perform specific tasks and are easy to test
- Common code factored out into reusable functions, avoiding repetition
- Flexibility to handle different use cases
- Low coupling between components (such as functions and classes), where each component only interacts with others through their public interfaces, not their internal details
Code Readability & Style (5 points)
This evaluates how easy it is to read and understand your code, as well as how well you adhere to the style guide. The key points to consider are:
- Clarity: Code should be clear and easy to follow. Avoid unclear variable names, magic numbers, and convoluted logic, etc.
- Style Guide Adherence: While it’s not necessary to follow every single aspect of the style guide, your code should maintain consistency and follow the general principles outlined.
Documentation & Comments (5 points)
This measures how well your code is documented. At a minimum, your code should:
- Adhere to the department documentation standards.
- For each file, begin with a header comment that includes your name, file name, and a description of the file’s purpose. You may also include other details like the date written, your approach, or any references to resources you used.
- Contain comments within the code, especially for complex or unclear sections. Try to comment on parts of the code you may not understand when revisiting it in the future. However, avoid excessive comments—focus on clarity, not redundancy.
Adherence to Additional Specifications (3 points)
This checks whether you’ve followed all other requirements outside the coding task itself. For example:
- Correct file names or formats
- Any additional instructions or constraints given in the assignment
Exceptionality (2 points)
This is awarded if you go above and beyond the basic requirements of the assignment. Examples could include:
- Adding extra features
- Improving efficiency or usability
- Demonstrating exceptional creativity or problem-solving skills
Important Notes:
Broken Code: Submitting code that cannot be executed due to syntax errors or other issues will result in point deductions. If the code is so broken that it cannot be fixed easily, it will not be graded, and you will receive a zero for the assignment.
Ambiguous Specifications: If a specification is unclear, you can either make a reasonable assumption based on your understanding or ask the instructor. If you make an assumption, be sure to note it in a comment so the reviewer understands your reasoning. However, poor assumptions may result in point deductions.