This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
haas:fall2022:data:projects:sll2 [2021/09/08 17:55] – created - external edit 127.0.0.1 | haas:fall2022:data:projects:sll2 [2022/09/12 12:53] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 4: | Line 4: | ||
</ | </ | ||
- | ======Project: SLL2====== | + | ======PROJECT: Singly-Linked List of Nodes (SLL2)====== |
- | =====Errata===== | + | =====OBJECTIVE===== |
- | This section will document any updates applied | + | To continue |
- | * __revision #__: < | + | =====UPGRADING===== |
+ | To assist with consistency across all implementations, | ||
- | =====Objective===== | + | Simply go into the project |
- | In this project, | + | |
- | =====Project Overview===== | + | |
- | For this project, we're going to be implementing the following functions: | + | < |
+ | lab46:~/ | ||
+ | </ | ||
- | <code c> | + | =====EDIT===== |
- | List *obtain (List *, Node **); // obtain/disconnect node from list | + | You will want to go [[/notes/data/fall2022/projects/sll2|here]] to edit and fill in the various sections |
- | List *clearlist(List *); | + | |
- | List *rmlist(List *); // deallocate list | + | |
- | List *swapnode(List *, Node *, Node *); // swap positions | + | |
- | List *sortlist(List *, int); // sort list (according to mode) | + | |
- | </ | + | |
- | ====list library==== | + | |
- | In **src/list/**, you will find 5 new C files: | + | |
- | * **obtain.c** | + | {{page> |
- | * **clear.c** | + | |
- | * **rm.c** | + | |
- | * **swap.c** | + | |
- | * **sort.c** | + | |
- | Take a look at the code there. These are the files that contain functions which will be compiled and archived into the list library | + | =====SUBMISSION===== |
+ | To be successful in this project, | ||
- | Figure out what is going on, make sure you understand it. | + | * Project must be submit |
+ | * Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline. | ||
+ | * All code must compile cleanly (no warnings or errors) | ||
+ | * Compile with the **-Wall** and **--std=gnu18** compiler flags | ||
+ | * all requested functionality | ||
+ | * Executed programs must display in a manner similar to provided output | ||
+ | * output | ||
+ | * Processing must be correct based on input given and output requested | ||
+ | * Output, if applicable, must be correct based on values input | ||
+ | * Code must be nicely and consistently indented | ||
+ | * Code must be consistently written, to strive for readability from having a consistent style throughout | ||
+ | * Code must be commented | ||
+ | * Any "to be implemented" | ||
+ | * these " | ||
+ | * Sufficient | ||
+ | * No global variables (without instructor approval), no goto statements, no calling of main()! | ||
+ | * Track/ | ||
+ | * Submit | ||
- | ====List library unit tests==== | + | ====Submit Tool Usage==== |
- | In **unit/ | + | Let' |
- | + | submit, you | |
- | * **unit-obtain.c** | + | uom0.c): |
- | * **unit-clearlist.c** | + | |
- | * **unit-rmlist.c** | + | |
- | * **unit-swapnode.c** | + | |
- | * **unit-sortlist.c** | + | |
- | + | ||
- | These are complete runnable programs (when compiled, and linked against the list library, which is all handled for you by the **Makefile** system in place). | + | |
- | + | ||
- | Of particular importance, I want you to take a close look at: | + | |
- | + | ||
- | * the source code to each of these unit tests | + | |
- | * the purpose of these programs is to validate the correct functionality of the respective library functions | + | |
- | * follow the logic | + | |
- | * make sure you understand what is going on | + | |
- | * ask questions to get clarification! | + | |
- | * the output from these programs once compiled and ran | + | |
- | * analyze the output | + | |
- | * make sure you understand what is going on | + | |
- | * ask questions to get clarification! | + | |
- | + | ||
- | ====list testing applications==== | + | |
- | + | ||
- | ===palindrome=== | + | |
- | Now that we've completed our list functionality, | + | |
- | + | ||
- | Our first endeavor will be that of palindromes (ie words/ | + | |
- | + | ||
- | This implementation will be considered an extra credit opportunity, | + | |
- | + | ||
- | It is also highly recommended to undertake as it will give you further experience working with these concepts. | + | |
- | + | ||
- | =====Expected Results===== | + | |
- | To assist you in verifying a correct implementation, | + | |
- | + | ||
- | ====node library==== | + | |
- | Here is what you should get for the node library: | + | |
<cli> | <cli> | ||
- | lab46: | + | lab46: |
- | ==================================================== | + | |
- | = Verifying Singly-Linked Node Functionality | + | |
- | ==================================================== | + | |
- | | + | |
- | | + | |
- | | + | |
- | ==================================================== | + | |
- | [RESULTS] Total: | + | |
- | ==================================================== | + | |
- | lab46: | + | |
</ | </ | ||
- | ====list library==== | + | You should get some sort of confirmation indicating successful submission |
- | Here is what you should get for all the functions completed so far in the list library (sll0+sll1+sll2): | + | if all went according to plan. If not, check for typos and or locational |
+ | mismatches. | ||
- | <cli> | + | =====RUBRIC===== |
- | lab46:~/ | + | I'll be evaluating the project based on the following criteria: |
- | ====================================================== | + | < |
- | = | + | 78:sll2:final tally of results (78/78) |
- | ====================================================== | + | *:sll2:obtained project by the Sunday prior to duedate |
- | [mklist] Total: 5, Matches: 5, Mismatches: | + | *:sll2:clean compile, no compiler messages |
- | | + | *:sll2:implementation passes unit tests [13/13] |
- | | + | *:sll2:adequate modifications to code from template |
- | | + | *:sll2:program operations conform to project specifications |
- | | + | *:sll2:code tracked in lab46 semester repo [13/13] |
- | | + | </code> |
- | [searchlist] Total: | + | |
- | | + | |
- | | + | |
- | [compare] Total: 15, Matches: 15, Mismatches: | + | |
- | | + | |
- | [clearlist] Total: 3, Matches: 3, Mismatches: | + | |
- | | + | |
- | [swapnode] Total: | + | |
- | [sortlist] Total: | + | |
- | ====================================================== | + | |
- | | + | |
- | ====================================================== | + | |
- | lab46: | + | |
- | </cli> | + | |
- | ===sll2 specific functions=== | + | ===Pertaining to the collaborative authoring of project documentation=== |
- | And of course, | + | * each class member is to participate in the contribution of relevant information and formatting |
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | * no adding in one commit then later removing in its entirety for the sake of satisfying edit requirements | ||
+ | * adding and formatting data in an organized fashion, aiming | ||
+ | * content contributions will be factored into a documentation coefficient, | ||
+ | * no contributions, | ||
+ | * less than minimum contributions is 0.75 | ||
+ | * met minimum contribution threshold is 1.00 | ||
- | < | + | ===Additionally=== |
- | lab46: | + | |
- | ====================================================== | + | |
- | = Verifying Singly-Linked | + | |
- | ====================================================== | + | * Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction |
- | [obtain] Total: | + | |
- | | + | |
- | [rmlist] Total: | + | |
- | [swapnode] Total: | + | |
- | | + | |
- | ====================================================== | + | |
- | [RESULTS] Total: | + | |
- | ====================================================== | + | |
- | lab46: | + | |
- | </ | + | |
- | =====Submission===== | + | |
- | {{page> | + | |