Each sub-directory has an exercise for you to complete. Each exercise subdirectory is prefixed with the string part-
. The subdirectory contains a README.md which explains the requirements for the exercise.
Start with part-1
and move through the problems in numerical order. Only move on to the next part when you have completed the current part you are working on.
Every file that you submit must have a header. Please follow the guidelines provided for this course.
Please adhere to the Google C++ coding style.
When writing git log comments, please make them descriptive and meaningful. For example, "Fixed my typo that stopped it from compiling." or "Smashed the bug in my main function." are descriptive. Log comments such as "Done" or "upload" are of poor quality.
Each exercise subdirectory has its own Makefile which you may use to build and test your progress. Each Makefile has the following targets:
- all: builds the project
- clean: removes object and dependency files
- spotless: removes everything the clean target removes and all binaries
- format: outputs a
diff
showing where your formatting differes from the Google C++ style guide - lint: output of the linter to give you tips on how to improve your code
- header: check to make sure your files have the appropriate header
- test: run tests to help you verify your program is meeting the assignment's requirements. This does not grade your assignment.
To build the program use the make
command. The Makefile's default target is to build all
.
Each exercise is worth 10 points. There are 3 parts so there is a total of 30 points possible. Each program must compile before it is graded. Submissions that do not compile shall be assigned a zero grade.
For each problem:
-
Functionality (6 points): Your submission shall be assessed for the appropriate constructs and strategies to address the exercise. A program the passes the instructor's tests completely receives full marks. A program that partially passes the instructors tests receives partial-marks. A program that fails the majority or all the tests receives no marks.
-
Format & Readability (4 points): Your submission shall be assessed by checking whether your code passess the style and format check, as well as how well it follows the proper naming conventions, and internal documentation guidelines. Git log messages are an integral part of how readable your project is. Failure to include a header forfeits all marks.
A detailed rubric is assigned to each lab in Canvas.