CS 361: Algorithms and Data Structures
Homework 5


Brainstorming a greedy heuristic is often easy but showing that the resulting greedy algorithm actually produces an optimal solution can be much harder. As such, this week's homework is focused on using the proof techniques discussed in class to prove the correctness of a greedy algorithm.

Although there is only 1 question for you to solve, this homework also requires you to participate in a peer-review process where you (and 2 other students) will spend time reading and providing feedback on each other's proofs. You will then write up an improved, final version of your proof and submit both your original and final to be graded.

Please read the directions carefully.

  1. On your own, do Algorithm Design 4.5 (Please refer to the homework guidelines so you know what your writeup should entail). You will need to do this early enough that you have time to meet with your group.

  2. Meet with your group of 3. You must bring 2 additional copies of your solution to 4.5 so that your group mates have their own copy to read and write on. In your meeting,

    • Each person will take a turn explaining their solution and then reading through their proof of correctness. During this time, other group members should simply listen and write down any questions or comments they may have.

    • Next, take 10 minutes for everyone to individually read through and analyze the proof. Here are some prompts to help you when analyzing the proof:

      • Is it clear which proof technique is being used? Can you identify each of the required steps in the proof technique?

      • Are you able to follow the logic of the proof? Do you see any gaps in the writer's reasoning? Are there concepts or ideas that should be clarified?

      • Did the writer explain their notation before using them? Is there notation whose purpose or meaning is unclear? Is there notation that overly complicates the proof? Really think about what each piece of notation represents -- is there redundant notation or notation that is actually purposeless.

      • Are there guiding and transitional words/sentences that help lead you through the logic of the proof and explain the purpose of each step. If not, where could such guiding and transitional words/sentences be added to help the reader understand the flow of the proof?

      • Choose 1-2 sentences that seem "bulky" or less clear. Spend some time re-writing/re-stating these sentences. Is it even clear what the purpose of these sentences is?

      • Would you call this proof complete or not? What would you like to see further developed?

      • Could the writer use a picture to help explain their proof?

    • Finally, take time to go around and share your comments on the proof. Use the above observations you made to provide actionable feedback to the writer. During this time, the writer should ask clarifying questions to make sure they understand the feedback being provided and how to incorporate it into their proof

  3. Rewrite your proof using the feedback you received. You should submit your solution to problem 4.5 along with your original and final, improved proof.

Here are the randomly assigned groups:

  • Rei Ishii, Jack Riley, Gemini Docter
  • Montana Kurahara, Jordan Pearson, Jewell Day
  • Madelyn Shapiro, Gennie Cheatham, Ellis Collison
  • Brody Pearman, Josh McMillan, Jiman Kim
  • Harper Shapiro, Ashton Walden, Brayan Rodriguez-Santos
  • Thalia Barr-Malec, Sarah McClain, Matthew Rothman
  • Semaj King-Polk, Kyle Muir, Nathaniel Chusid
  • Ricardo Barraza, Leif Morgan, Spencer Balmer-Logan
  • Bret Abel, Hunter Loftus, Conor Muldoon


Last modified: Fri Jan 24 10:58:47 PST 2014