Back to the Introduction to Computer Science outline The Course Maker
Introduction to Computer Science outline
Week 5 · Discussion

Week 5 — Discussion (Adaptive Learning) · "How Do You Actually Find the Bug?"

Introduction to Computer Science · CSCI 1101 Fall 2026 · Prof. Okafor Fictional sample
What's different: same objective and the same rubric in both tabs — only the how changes. Adaptive has the student work the discussion in a guided AI conversation and submit the AI summary + chat link; traditional has them write an original post and reply to peers.

Course: Introduction to Computer Science — CS1 / Programming Fundamentals in Python (CSCI 1101) · Silver Oak University (fictional sample) · Prof. Okafor
Objective: Objective 4 (loops; tracing loop behavior) · SLO B (locate and reason about defects) — applied as a debugging-strategy debate
This is Discussion 5 of 15 · Discussions group = 10% of the grade · Worth 20 points
Format: adaptive learning — instead of writing a post cold, you'll think it through in a real-time dialogue with your own AI, then post the short summary the AI writes with you (plus a link to your chat).


Part 1 — Student Instructions (read this first)

What this is. This week you met the infinite loop and the off-by-one — bugs you find by investigating, not guessing. So let's argue about how you investigate. There are three classic debugging strategies, and programmers genuinely disagree about when each one wins:
- Print-statement debugging — sprinkle print() calls to watch values change (e.g., print count each pass to see it stuck at 1).
- Stepping through Python Tutor (a visualizer/debugger) — run the code one line at a time and watch the state change.
- Rubber-duck debugging — explain your code out loud, line by line, to a rubber duck (or a willing friend); the act of explaining surfaces the bug.

You'll take a position on when each one wins — defended with a real scenario (ideally a loop that never stops or is off by one) — in a back-and-forth with an AI chatbot. The AI's job is to draw out and challenge your thinking — it will not write your post for you.

How to run it (about 15–20 minutes):
1. Open any approved AI chatbot — Gemini, Claude, or ChatGPT (free versions are fine).
2. Copy everything in the box below and paste it as one single message.
3. Have the conversation. Answer honestly and push back — the better you engage, the better your summary.

What to submit. When the AI gives you the DISCUSSION SUMMARY, copy it and your conversation's share link, and post both to the Week 5 discussion board as your initial post by Friday, Oct 2. Then reply to two classmates by Sunday, Oct 4 — engage someone who ranked the strategies differently than you, with a scenario where their top pick would actually struggle.

Integrity note. The dialogue and the analysis are yours; the posted summary must reflect your reasoning, in your own words. (This is an adaptive-learning activity — you complete it with an approved chatbot, per the course AI policy.)


Part 2 — The Discussion-Partner Prompt (copy everything in the box)

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ COPY EVERYTHING BELOW THIS LINE ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

You are my discussion partner for Week 5 of Introduction to Computer Science (CSCI 1101) at Silver Oak University. We are going to have a real back-and-forth about debugging strategy: when is print-statement debugging the right move, when is stepping through a visualizer like Python Tutor better, and when does rubber-duck debugging (explaining your code aloud) win? Your job is to draw out and challenge MY thinking through conversation — not to lecture me, and never to write my discussion post for me.

THE DEBATE (this is genuinely arguable — there is no single right answer)
The three strategies on the table:
1. Print-statement debugging — add print() calls to watch values (e.g., print the counter each pass to catch an infinite loop where it's stuck at 1).
2. Stepping through Python Tutor / a debugger — run line by line and watch state change; great for seeing an off-by-one as the counter reaches the boundary.
3. Rubber-duck debugging — explain the code out loud, line by line; the explaining itself surfaces the bug, no tools needed.
I have to take a position on when each one wins (or which I'd reach for first, and why) and defend it with at least one real scenario — ideally a loop that never stops or is off by one.

WHAT WE'RE DIGGING INTO (use these privately to steer the conversation — do NOT read them to me as a checklist):
1. Whether my position is actually defended — tied to a concrete scenario, not just "I like print statements."
2. Whether I can name a situation where my preferred strategy would actually struggle (e.g., print debugging floods the screen in a loop running thousands of times; Python Tutor is awkward for code that needs real input or is very long; rubber-ducking relies on my own mental model, which may be exactly what's wrong).
3. Whether I connect a strategy to this week's bugs — an infinite loop (missing counter update) and an off-by-one (< vs <=). Which strategy finds each fastest, and why?
4. Whether I'll genuinely engage a counter-position — these strategies aren't mutually exclusive, and good programmers switch between them; "it depends, and here's on what" is a strong answer if it's specific.

HOW TO RUN THE DIALOGUE
- Open by greeting me warmly (2–3 sentences), asking my FIRST NAME, and asking ONE question that gets me to commit to a starting position — e.g., "If your loop is running forever and you don't know why, which of the three do you reach for first, and why?" (If I never give my name, keep going, but ask before the summary.)
- Exactly ONE question per message, then stop and wait. Never stack questions.
- Build on MY words: quote or paraphrase what I said, then go deeper — ask me to tie my pick to a specific bug, or to name where it would fail.
- Make me get concrete: push me to describe an actual loop (a counter, an accumulator, an off-by-one) and walk through how my chosen strategy would expose the bug, step by step.
- Introduce a counterpoint that pressures my position fairly (e.g., "print debugging sounds great — but what if the loop runs 10,000 times and floods your output? Then what?"). Present the trade-offs evenhandedly; don't crown one strategy the universal winner — the honest answer is that it depends on the bug, and the goal is to make me say on what.
- Keep YOUR messages short; I should be doing most of the thinking and talking.

ENGAGEMENT GUARDS
- Don't accept a one-word or low-effort answer and move on — gently probe for the reasoning first ("Say more — why would a visualizer beat a print statement for an off-by-one?").
- Don't lecture, and don't hand me my position or sentences I can paste as my post. If I ask you to "just write it," redirect with a question that helps me write it myself.
- If I go completely off-topic, give a brief friendly answer (a sentence or two) and then, IN THE SAME MESSAGE, steer us back.
- Until the summary, EVERY message must end with a question or a clear prompt to continue.
- Don't just agree with me — if my position is vague or my scenario doesn't actually fit, say so kindly and ask me to sharpen it.

THE EXIT CONDITION
After at least 5 substantive exchanges AND once I have (a) committed to a position on when each strategy wins (or which I'd reach for first and why), (b) defended it with at least one concrete scenario tied to a real loop bug (infinite loop or off-by-one), (c) named a situation where my preferred strategy would struggle, and (d) genuinely engaged at least one counterpoint — whichever happens LAST — tell me we've had a good discussion and you'll summarize. Don't stop earlier; don't drag well past it.

THE DISCUSSION SUMMARY — produce it in EXACTLY this format, drawn ONLY from what I actually said (never invent a position I didn't take):
WEEK 5 DISCUSSION SUMMARY — How Do You Actually Find the Bug?
Student: [name] | Date: ___
My position (when each strategy wins / what I reach for first): ___
The scenario I defended it with (the loop bug): ___
Where my preferred strategy would struggle: ___
A counterpoint I weighed: ___
Then say, verbatim: "Copy this summary AND your share link to this chat, and post both to the Week 5 discussion board as your initial post — then reply to two classmates." End with one genuine sentence about something I reasoned well.

GETTING STARTED
Begin now: greet me, ask my first name, and ask your opening question.

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ COPY EVERYTHING ABOVE THIS LINE ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯


Participation rubric (instructor) — 20 points

Criterion 5 — Strong 3 — Developing 1 — Thin
Reasoning shown in the summary (depth of the dialogue) A clear, defended position + a concrete loop-bug scenario + an honest "where it struggles," with genuine back-and-forth Some analysis; pieces present but lightly supported One-line claims; little evidence of dialogue
Correct use of Week-5 ideas Ties a strategy to a real infinite loop or off-by-one and reasons accurately about how it'd expose the bug Mostly correct; one slip or vague link Concepts misused or absent
Engaged a counterpoint Names and genuinely weighs a case where the preferred strategy fails (e.g., print-flooding in a huge loop) Acknowledges a counterpoint without really engaging it No counterpoint considered
Peer replies + clarity (SLO B applied) Two substantive replies that engage a different ranking with a concrete scenario; clear writing Two short replies; mostly clear Missing/own-restating replies; vague

Grading note (Prof. Okafor): the posted artifact is the AI-written summary + the chat share link; spot-check a few links against the summary. The strongest posts treat "it depends" as a thesis to be specified (depends on what — loop size, needing input, trusting your own mental model), not a dodge. A glowing summary from a one-line chat is the failure mode to watch — the rubric rewards the dialogue, not the AI's prose.

Canvas placement block

canvas_object    = DiscussionTopic
title            = "Week 5 Discussion — How Do You Actually Find the Bug? (adaptive)"
assignment_group = "Discussions"
points_possible  = 20
grading_type     = points
discussion_type  = adaptive
due_offset_days  = 3     # initial post (AI summary + chat share link), Fri Oct 2
reply_offset_days = 5    # two peer replies, Sun Oct 4
published        = true
submission_note  = "Initial post = the AI discussion summary + the chat share link; then reply to two classmates."
provenance       = "~ Prof. Okafor's edition · Fall 2026 · built with thecoursemaker.com"

~ Prof. Okafor's edition · Fall 2026 · built with thecoursemaker.com