

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Project; Class: Introduction to Computing Using MATLAB; Subject: Computer Science; University: Cornell University; Term: Fall 2008;
Typology: Study Guides, Projects, Research
1 / 2
This page cannot be seen from the preview
Don't miss anything!


The coded items below (e.g., c1e, s2a) indicate what a student’s solution should accomplish. Codes that begin with the letter ‘c’ deals with correctness; codes that begin with ‘s’ deals with style. Grader : If a student’s solution does not accomplish task c1a, for example, then write the task code ‘c1a’ along with any diagnostic remarks you can give. Count the number of correctness and style errors separately. Items marked with ** count as two errors. In the table below, the top row lists the possible scores (1 to 5). The next row lists the number of correctness errors corresponding to every score category. The style score is determined similarly. Enter the total score (maximum of 10) in CMS as the project score. If there are bonus questions, enter any bonus points separately in the “Bonus Bucket,” separate from the project score. Student : Read the grading guide for every project, even if you get a perfect score! Notice from the table below that we often give one or two “freebies,” i.e., mistakes that don’t cost you any points. Learn from working on the project, and learn from any mistakes.
c and s stand for correctness and style; see table below parts with ** next to them means that they are double the value, *** for triple, etc. Score 0 1 2 3 4 5 #correctness errors >=16 11-15 6-10 4-5 2-3 0- #style errors >=6 5 4 3 2 0-
(s0a) Use meaningful variable names (s0b) Appropriate indentation (s0c) Appropriate comment header in each script/function file (s0d) Use semi-colons as needed; not for use after if condition or else keyword (s0e) Appropriate and concise comments throughout (s0f) Reasonable line lengths; no horizontal scrolling (s0g) [2* max] No superfluous code. This includes having an empty else block as part of an if statement. However, do not penalize inefficiency unless it is excessive. (s0h) No debugging output.
To use the test scripts, copy them into the same folder as the student’s code. All test scripts can be run by entering “TESTAll” in the Matlab command window, or individually. The test scripts would catch almost all correctness errors, but are not meant to substitute manual grading. They will also test degenerate cases and bad input (if the student was supposed to handle such cases).
Suggested test scripts: TESTProperOrder.m, TESTSwapElements.m, TESTSort.m (c1a) ProperOrder passes normal test cases (c1b) SwapElements correctly swaps the specified vector entries (c1c) SwapElements does not affect any other entry in the vector (c1d) SwapElements works for degenerate cases (c1e) Swap Elements passes test cases of bad input (c1f) BubbleSort uses ProperOrder to as a comparator (c1g) BubbleSort continues until there are no more swaps (c1f) SwapCount is correctly calculated
Suggested test scripts: TESTMergeArrays.m, TESTSort.m (c2b) MergeArrays passes all normal test cases (c2c) [2* max] MergeArrays does not simply concatenate and re-sort the array (c2d) MergeArrays uses ProperOrder as a comparator (c2e) MergeArrays passes test cases for degenerate cases (c2f) MergeArrays passes test cases for bad input cases (c2g) MergeSort splits the vector into two halves (as best as possible…) (c2h) MergeSort calls bubble sort on the two halves and then calls MergeArrays (c2i) MergeSort properly computes SwapCount
Suggested test scripts: TESTGenerateArray.m, TESTCompareSorts.m (c3a) GenerateArray passes normal test cases (c3b) GenerateArray passes degenerate and bad input test cases (c3c) GenerateArray uses correct calculation for random number (c3d) CompareSorts uses identical vectors when comparing Bubble and PMerge sort (c3e) CompareSorts graph is of the correct shape (Quadratic && BubbleSort = 2PMerge) (s3a) CompareSorts outputs its progress in a reasonable manner (s3b) [2 max] CompareSorts graph is labeled (Axes, Title, Legend).