This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
haas:summer2015:data:projects:sll0 [2015/02/21 17:39] – external edit 127.0.0.1 | haas:summer2015:data:projects:sll0 [2015/05/31 12:09] (current) – wedge | ||
---|---|---|---|
Line 11: | Line 11: | ||
This section will document any updates applied to the project since original release: | This section will document any updates applied to the project since original release: | ||
- | * __revision | + | * __revision |
- | * unit-getpos and unit-setpos now complete | + | |
- | * checks for error states as well as valid cases | + | |
- | * verify-getpos.sh and verify-setpos.sh scripts now available | + | |
- | * verify-list.sh script updated for the full suite of unit tests | + | |
- | * **testing/ | + | |
- | * there was a typo in the debug rule, which has been corrected | + | |
=====Objective===== | =====Objective===== | ||
We've made it to lists! Time to start applying nodes to more elaborate manipulations, | We've made it to lists! Time to start applying nodes to more elaborate manipulations, | ||
Line 115: | Line 110: | ||
====Overview==== | ====Overview==== | ||
- | Just as before, you'll see various files and directories located here (one regular file, **Makefile**, | + | You'll see various files and directories located here (one regular file, **Makefile**, |
+ | * **app**: subdirectory tree containing applications/ | ||
+ | * **node**: location of node end-user applications | ||
* **bin**: compiled, executable programs will reside here | * **bin**: compiled, executable programs will reside here | ||
- | * **inc**: project-related header files are here (**NEW file: list.h**) | + | * **inc**: project-related header files (which we can **#include**) are here |
* **lib**: compiled, archived object files (aka libraries) will reside here | * **lib**: compiled, archived object files (aka libraries) will reside here | ||
* **src**: subdirectory tree containing our Data Structure implementations | * **src**: subdirectory tree containing our Data Structure implementations | ||
* **node**: location of our node implementation | * **node**: location of our node implementation | ||
- | * **list**: location of our linked list implementation (**NEW in this project**) | + | * **list**: location of our linked list implementation (manipulation of nodes) |
* **stack**: location of our stack implementation (manipulation of lists) | * **stack**: location of our stack implementation (manipulation of lists) | ||
* **queue**: location of our queue implementation (a different manipulation of lists) | * **queue**: location of our queue implementation (a different manipulation of lists) | ||
* ... | * ... | ||
- | * **testing**: subdirectory tree containing | + | * **unit**: subdirectory tree containing unit tests, helping to verify correct implementation |
- | * **node**: node-related | + | * **node**: node-related |
- | * **app**: end-user applications, | + | * **list**: list-related unit tests will be here |
- | * **unit**: unit tests, helping to verify correct implementation | + | |
- | * **list**: list-related | + | |
- | * **app**: end-user applications, | + | |
- | * **unit**: | + | |
* ... | * ... | ||
- | ====Operating==== | + | =====Operating===== |
The project is driven by a fleet of optimized **Makefile**s, | The project is driven by a fleet of optimized **Makefile**s, | ||
Line 220: | Line 213: | ||
At this point your code is up to date (obviously the above output will reflect whatever the current revision is). | At this point your code is up to date (obviously the above output will reflect whatever the current revision is). | ||
+ | |||
+ | ====error reporting==== | ||
+ | To facilitate debugging and correction of errors and warnings in your code at compile time, such compiler messages will be redirected to a text file called **errors** in the base of the project directory. | ||
+ | |||
+ | You can view this file to ascertain what errors existed in the last build of the project. | ||
+ | |||
+ | With each new project build, this file is overwritten, | ||
=====Project Overview===== | =====Project Overview===== | ||
Line 269: | Line 269: | ||
Figure out what is going on, make sure you understand it. | Figure out what is going on, make sure you understand it. | ||
- | **NOTE:** None of these files denote an entire runnable program. These are merely standalone functions. The various programs under the **testing/** directory | + | **NOTE:** None of these files denote an entire runnable program. These are merely standalone functions. The various programs under the **app/** and **unit/** directories |
You will also notice there are function prototypes for these list library functions in the **list.h** header file, located in the **inc/** subdirectory, | You will also notice there are function prototypes for these list library functions in the **list.h** header file, located in the **inc/** subdirectory, | ||
====List library unit tests==== | ====List library unit tests==== | ||
- | In **testing/list/unit/**, you will find 4 files (along with a **Makefile**): | + | In **unit/list/**, you will find 4 files (along with a **Makefile**): |
* **unit-mklist.c** - unit test for **mklist()** library function | * **unit-mklist.c** - unit test for **mklist()** library function | ||
Line 296: | Line 296: | ||
* ask questions to get clarification! | * ask questions to get clarification! | ||
- | ====Building the code==== | + | =====Building the code===== |
You've made changes to a file in **src/ | You've made changes to a file in **src/ | ||
Line 308: | Line 308: | ||
Keep your other terminal in the **~/ | Keep your other terminal in the **~/ | ||
- | ===cleaning things out=== | + | ====cleaning things out==== |
If you've already ran **make** to build everything a few times, you may want to clean things out and do a fresh compile (never hurts, and might actually fix some problems): | If you've already ran **make** to build everything a few times, you may want to clean things out and do a fresh compile (never hurts, and might actually fix some problems): | ||
Line 317: | Line 317: | ||
</ | </ | ||
- | ===compile project=== | + | ====compile project==== |
Next, compile the whole project | Next, compile the whole project | ||
Line 382: | Line 382: | ||
</ | </ | ||
- | =====Submission | + | =====Submission===== |
- | To be successful in this project, the following criteria must be met: | + | {{page> |
- | + | ||
- | * Project must be submit on time, by the posted deadline. | + | |
- | * Late submissions will lose 25% credit per day, with the submission window closing on the 4th day following the deadline. | + | |
- | * All code must compile cleanly (no warnings or errors) | + | |
- | * all requested functions must be implemented in the related library | + | |
- | * all requested functionality must conform to stated requirements (either on this project page or in comment banner in source code files themselves). | + | |
- | * Executed programs must display in a manner similar to provided output | + | |
- | * output formatted, where applicable, must match that of project requirements | + | |
- | * 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 (you may use the **indent** tool) | + | |
- | * Code must be commented | + | |
- | * Any "to be implemented" | + | |
- | * these "to be implemented" | + | |
- | * Sufficient comments explaining the point of provided logic **MUST** be present | + | |
- | * Any and all functions written must have, **at most**, 1 **return** statement | + | |
- | * points will be lost for solutions containing multiple return statements in a function. | + | |
- | * Track/ | + | |
- | * Submit a copy of your source code to me using the **submit** tool (**make submit** will do this) by the deadline. | + |