[10 min] Intro
[15-20 min] Activity
Break students into groups of 2-4 (3 is probably ideal)
Give groups 10-15 minutes to engage in the activity before calling them back
[10+ min] Report back and debrief
[10+ min] General Q&A, time-permitting
Here's a chance for you to practice your computational problem solving skills!
Remote: miro board
In-person: printed worksheets + store items (paper cutouts)
Solutions
Scenario 1: Max winnings is $2300 for everything but platinum ring
Scenario 2: Max winnings is $73 with:
Cheese Wheel ($37, 16 lbs)
Golden Shoe ($29, 8 lbs)
Potted Plant ($7, 5 lbs)
CS Connections
If you have time and are comfortable, you may share that this activity highlights well-studied "hard" problems and is actually the same difficulty as the n Queens (Paranoid Prof) problem. You might want to talk about where you encountered this in your own CS journey (probably CS 312 as the "Knapsack Problem" with dynamic programming) and how it landed with you.
Recall that effective feedback gives us specific notes on where we went wrong and suggestions for how we might move forward.
Have you ever received feedback that was phrased in a way that made you feel a little confused or hurt? Or perhaps you received feedback that made you feel empowered and ready to move forward. In either case, when considering how we give and receive feedback, it is worth asking “Where did that come from?”
Research shows that feedback--as crucial as it is for our growth and development as learners, creators, and collaborators--is not that straightforward. We can think of feedback as a box that can be given in various ways: a box delivered simply with useful tools; a box delivered in a way that considers the recipient’s perspective with useful tools; or a box delivered considerately but with nothing at all inside; an empty box delivered without much consideration; or maybe the box is just terrible in every way.
As you might guess, the most effective feedback we can give can be viewed as the box full of useful tools that offer a specific path forward, given in a way that further empowers the listener. So, how can we provide effective feedback? By considering the recipient’s perspective and role, we can SIGNAL our intentions--that we take them seriously and genuinely believe they can improve, we can be specific about what went well and what did not go as well--instead of focusing only on what’s wrong, and we can provide a clear next step for them to take.
Imagine a situation where a new team member submits their first work for review. And they missed a step. Maybe they did not know about it or were not yet familiar with the team’s coding practices. Under a time crunch, we might just deliver an empty box and tell them “This is not great.” But to be effective, we should at least provide some suggestions for where to go next. And we should signal that we believe they can meet our (high) expectations. By being specific and giving them concrete steps to try next, this can help the listener be much more willing to engage with the feedback and revise their work.
And what can we do when we receive feedback? We can pause, and acknowledge how it was given to us. We can look to see if there is something useful inside. And even if there is none, we can be strategic in our next steps. We can ask the feedback provider clarifying questions so we can identify action steps, such as “can you please say more about why this approach does not work?” or “Is there another step I could take?”. Sometimes, though, the feedback may be just so terrible that you choose to just walk away. Remember, you can always seek feedback from another person altogether.
This week, notice your reaction when you receive feedback, whether you disregarded it or looked closely to unpack it. Also reflect on how you are giving feedback--whether to a friend, a teammate or a family member. Are you signaling your belief in them? Have you given them specific tools to move them forward? Effective feedback can play a huge role in how we solve problems. And if we genuinely want to help someone, then we should take the additional steps to ensure that our feedback is given as effectively as possible.
As a group, discuss the role feedback can play in computational problem solving:
How can working examples lead to a test suite that can provide feedback on your approach to a computational problem?
Does being specific give you a different type of "actionable" feedback than considering the problem more abstractly?
When you are stuck somewhere in your problem solving process (maybe at the first step, maybe with a particular bug), where can you get effective feedback that will help you move forward?
Compare the reaction you have to receiving harsh feedback from an instructor versus an error printing out while running your program. How does the feedback impact your self-efficacy? Do you find it prompts self-talk that reveals a growth or fixed mindset?