# Homework¶

Homework submission

You must upload separate “computational” and “analytical” submissions to Canvas for each assignment. While you will receive a single grade for the overall assignment, these are graded in different ways (hence the separate submissions).

Computational problems:

Upload a single ”.zip” file, containing all routines required to run your codes (including any files provided by the instructor) – Matlab functions/scripts must be submitted as ”.m” files, and Python functions/scripts must be submitted as ”.py” files. I will unpack and run what you submit, so if your codes have erroneous names (e.g., capitalization/spelling), if you omit any files, or if you use non-standard toolboxes/packages, your codes will not run.

Analytical problems:

You must upload a single ”.pdf” file, containing all of your analytical work. Do not submit graphics files (e.g., ”.png” or ”.jpg”), Word documents, or multiple files, since I grade your assignment using the Canvas PDF markup tools.

Since I have no TA/grader support for this class, I will select two problems from each assignment to grade closely. These will account for 70% of the overall grade. The remaining problems will be awarded a completion grade for the remaining 30%.

Analytical problem rubric:

Proof/solution technique: (10% max) – the proof/solution technique should be clearly identifiable, with no missing components.

Logical ordering of steps/arguments: (20% max) – all steps/arguments should follow from previous statements, without “circular” or random ordering, and without any skipped steps.

Justification of steps: (30% max) – all steps/arguments should be sufficiently justified (quote major definitions or theorems, explain in short sentences any major steps).

Validity: (40% max) – the proof has no holes or errors, and the calculations contain no mistakes.

Computational problem rubric (see my examples for formatting/commenting templates):

Formatting: (10% max) – all Matlab scripts begin with the clear command; all files are indented correctly/consistently; all file/function names and arguments match the assignment specifications.

Commenting: (20% max) – all files include your name and a comment header indicating its purpose; function comment headers document all input and output arguments; accurate commenting is included throughout all files.

Completion/presentation: (20% max) – all codes run (even if the output is incorrect); plots have axis labels, titles, and legends (if multiple curves are plotted) with valid descriptions of the data; printed outputs are appropriately labeled, with no extraneous output.

Efficiency/elegance: (20% max) – elegant code uses loops, functions and whole-array operations to enable readability; efficient code pre-allocates data, and avoids redundant computations or data allocations.

Accuracy: (30% max) – codes correctly implement the mathematical algorithms for the targeted problems.