Appearance
Assignments
There will be 10 homework assignments. We drop two homework grades, meaning you can miss two homework assignments without any penalty to your grade. These drops are intended to cover illness, emergencies, or any other personal circumstances that may prevent you from being able to complete homework assignments. We do not track excuses for homework assignments, and we do not provide additional drops.
Structure
Homeworks typically involve three kinds of problems: Guided problems to be completed individually on PrairieLearn and Theory and Applied problems that may be completed and submitted in pairs (groups) on Gradescope.
Guided problems
These problems are to be completed independently and provide additional, scaffolded practice with the lecture material. These problems are typically composed of short questions that each focus on a particular aspect. You have unlimited attempts and they are immediately autograded with feedback. We highly recommend that you complete this part first!
They are contained on PrairieLearn and due on Mondays at 11:59pm, one day before the others are due.
Your grade on a guided problem (as a percentage) will be weighted according to the homework handout and incorporated into a single homework grade on Canvas for that assignment; see Grading below.
Theory and Applied problems
The theory and applied problems are lightly graded and your lowest eligible problem will be dropped. As a consequence, you may skip one such problem without penalty to that homework's grade, however you are encouraged you to submit all for the practice and feedback. Typically, all theory/applied problems are eligible for dropping, but on occasion a problems may be marked as ineligible (i.e., required).
Theory problems typically ask you to design and/or analyze algorithms using a combination of precise English descriptions, pseudocode, and mathematics. Each theory problem will be graded at the problem or subproblem level on the following scale:
- S: Satisfactory. 100% credit. Represents a significant effort using appropriate techniques and analysis demonstrating the important ideas. May have some errors in cases or could be more precise or clarified in places.
- U: Unsatisfactory. 50% credit. Misses the important ideas of the solution, but represents a significant attempt using appropriate techniques and analysis. For example, a slower brute force, or a solution that is essentially incorrect but represents a good attempt.
- I: Incomplete. 0% credit. No or some nontrivial attempt but not significant or complete.
Applied problems generally ask you to design and/or implement algorithms in actual code (Python or Java), benchmarking, or experimenting with them empirically.
Most applied problems have an autograder on Gradescope and the problem will describe how to submit. Like the guided problems, these have unlimited attempts and are autograded so your raw score is known shortly after submission. The score is determined by passing various test cases, some that check only the correctness of the code and some that measure its efficiency.
Some applied problems may instead ask you to conduct experiments and report your results and implementation. These problems will be graded on the same above theory scale.
Writing Expectations
If you are asked to provide an algorithm, you should clearly and unambiguously define every step of the procedure as a combination of precise sentences in plain English and/or pseudocode. If you are asked to prove your algorithm or its runtime complexity, your written answers should be clear, concise, and should show your work. Do not skip details but do not write paragraphs where a sentence suffices.
Formatting and Submitting
You must type all solutions—we will not accept handwritten solutions. Grades will be deducted for formatting that makes it difficult to read your submissions. You will submit on Gradescope, which will also be linked/integrated into Canvas.
If you work with a partner then you should submit one document on Gradescope and use the group submission feature. Do not submit separate submissions of the same work or it may be flagged as plagiarism. For the sake of your learning, we encourage you to consider working fully collaboratively and ensure that you individually understand all parts of every problem, rather than splitting up the problems. The latter approach will reduce your opportunities to practice and learn and may result in your not being fully prepared for exams.
Lateness
All assignments will be due at 11:59pm (Durham time) of the due date. Submissions submitted between 12:00am and 7:59am the following day will be penalized with a 10% deduction of the final grade of that assignment. This means that it is in your best interest to submit sufficiently early so that there is no possibility of the Gradescope server receiving it after 11:59pm.
Grading in Detail
For a Guided problem, your score is the raw grade (as a percentage) is as shown on PrairieLearn. For an Applied problem, your score will be the better of your Python or Java autograder score (as a percentage) on Gradescope. For a Theory problem, it is as scored on Gradescope (as a percentage). The lowest-scored eligible problem is dropped for the assignment. The resulting scores are either rounded up to the lower of S (100%) and U (50%) or rounded down to I (0%). A grade of I is expected to be rare.
Example
Suppose a given assignment has one Guided problem, two Theory problems, one Applied problem. Suppose you turn in the assignment on time and have scores of 80%, 67%, 75%, and 80% percent on the four problems respectively. Suppose that the Guided problem is worth 20%; the remaining 80% is split into your best two Theory/Applied problems at 40% each.
Dropping the lowest score among the Applied and Theory problems, 67%, your best two Theory/Applied are 75% and 80%. These are both rounded up to S for 100%. Hence the combined grade is 200.8 + 401.0 + 40*1.0 = 96 out of 100.