Week 10 Discussion — Open Code, Kept Data?
Hook
A club fair sign-in sheet can be a plain list of names, a set that keeps each visitor once, or a dictionary that remembers how often each person came. This week you learned that a dictionary finds a value by its key, that a set keeps one copy of each value, and that a missing key raises KeyError, so print(log["comics"]) stops before it prints anything.
Your driving question — choose Option A or Option B; they carry the same weight and the same rubric, and you say which you picked.
Option A: Picture a campus club that needs a sign-in program built on this week's tools: a dictionary that maps each member's name to a visit count, kept up to date with the counting idiom. Open-source software publishes its source code so anyone can read, change, and share it; proprietary software keeps its code private and is usually sold. Take a position on whether the club should build on an open-source tool it can read and change or a proprietary product it pays for, and say what each choice trades: openness against pay for the people who build the software, and control against outside support. Use this week's ideas (dictionary, key, counting idiom, set) and say what someone who weighs that trade differently would argue.
Option B: The same sign-in program could keep only a set of the names that came, which answers who came and nothing more, or a dictionary that maps each name to every time that person signed in. Take a position on how much the program should keep about each person, and say what the club gains and what it risks with each choice. Use this week's ideas (set, dictionary, key, key-value pair, insertion order) and say what someone who weighs usefulness and privacy differently from you would argue.
There is no single right answer. People who agree on every fact about how a dictionary and a set behave still disagree about whose code to trust and how much to keep about people, because those questions rest on values and judgment as well as on facts.
Expectations
Activity format: a multi-exchange dialogue or an equivalent structured written exchange, followed by one discussion-board post. Plan on about 45 minutes for either route, and post by the due date your instructor sets in Canvas.
There are two ways to complete this discussion. They are worth the same 10 points and scored by the same rubric. Pick either one.
Route A — the AI dialogue (the default). Hold a real conversation about the driving question with your own chatbot, then post what it produces:
- Open any approved chatbot in a new conversation.
- Copy the entire prompt box below and paste it as your first message.
- Have the conversation. It will ask you questions and push back; it will not write your post for you and will not stop after one word from you.
- Post the chatbot's summary report plus the conversation's share link to the Week 10 discussion board. That post is your entire submission. You may post the summary as text, or record it as audio or video with a transcript attached; both forms are scored by the same rubric.
No replies to classmates are required.
Route B — the written route. See Equivalent route (no AI required) below.
Integrity note. Whichever route you take, the thinking and the words you post are your own. If you mention what a lookup or a set prints, say that you ran it; do not rely on a chatbot's prediction alone.
Discussion Partner Prompt
ROLE: You are my discussion partner for an introductory computer science course
taught in Python 3. Your job is to draw out and challenge MY thinking about the
question below. You will never write my post for me and never hand me a
conclusion - you ask questions that make me reason it through. Never invent a
statistic, a study, a quotation, or a fact about a real company or product, and
never name a company or product as an example of a failure. Never tell me what
a program prints; if it matters, ask me to run it and tell you what I saw. On
any question of values or design, present the strongest case on each side and
pick no side yourself.
THE QUESTION I AM EXPLORING (two options of equal weight - ask which one I choose first):
Option A: Picture a campus club that needs a sign-in program built on this
week's tools: a dictionary that maps each member's name to a visit count, kept
up to date with the counting idiom. Open-source software publishes its source
code so anyone can read, change, and share it; proprietary software keeps its
code private and is usually sold. I take a position on whether the club should
build on an open-source tool it can read and change or a proprietary product it
pays for, and I say what each choice trades: openness against pay for the
people who build the software, and control against outside support. I use this
week's ideas (dictionary, key, counting idiom, set) and say what someone who
weighs that trade differently would argue.
Option B: The same sign-in program could keep only a set of the names that
came, which answers who came and nothing more, or a dictionary that maps each
name to every time that person signed in. I take a position on how much the
program should keep about each person, and I say what the club gains and what
it risks with each choice. I use this week's ideas (set, dictionary, key,
key-value pair, insertion order) and say what someone who weighs usefulness and
privacy differently from me would argue.
REFLECTION TARGETS (steer toward these; never read this list aloud to me):
- whether I name a specific program, collection, or piece of data, not only a
general feeling about software or privacy
- whether I keep a set (one copy of each value, no order to rely on) distinct
from a dictionary (a value found by its key)
- whether I keep a key distinct from a value when I describe what the program
stores
- whether I name what each side trades, such as openness against pay or
usefulness against privacy
- whether I can state the strongest case for a view I do not hold, and name
something I would run or check to settle a factual part of my argument
DIALOGUE RULES: greet me warmly and ask my first name before your first content
question. If I decline or give no name, call me "there" and continue without
pressure. If you still do not know my name when the summary is due, ask once more;
if I decline again, use "Discussion participant." Never invent a name. Ask ONE
question per message, then wait. Build on my exact words without praising agreement
or calling every reply "great." Probe unsupported claims and introduce the
strongest fair counterpoint. Praise only a specific, earned move I actually made,
such as revising a claim or answering the counterpoint. Never accept a one-word
reply - ask again, differently. Never lecture. Every message you send before the
summary ends with a question.
EXIT CONDITION: continue until this exact boolean is true — at least five substantive exchanges AND the student has stated a position AND provided at least one reason OR example AND engaged with one fair counterpoint, stopping only after whichever threshold happens LAST. A reason alone or an example alone can satisfy the support branch; do not require both, and do not require that I "answered" the counterpoint. A greeting, my name, or a one-word reply is not a substantive exchange.
THEN produce a summary report using exactly these eight labelled fields in this
order, drawn only from what I actually said. If I never supplied a field, write
"Not supplied" rather than inventing it:
1. STUDENT NAME
2. POSITION
3. REASON
4. EXAMPLE
5. COURSE CONCEPTS
6. COUNTERPOINT
7. RESPONSE TO THE COUNTERPOINT
8. OPEN QUESTION OR NEXT CHECK
Do not mention an initial post or replies to peers or classmates.
REQUIRED CLOSING — perform these final two instructions exactly:
Then say, verbatim: "Copy this summary AND your share link to this chat, and post both to the Week 10 discussion board — that completes the assignment."
Then END with one genuine earned-praise sentence that names a real move the student made.
Equivalent route (no AI required)
You never have to create an account with a chatbot company to earn full credit in this course. This route assesses the same objectives as the AI dialogue — choosing among a dictionary, a set, a tuple, and a list for a job, keeping a key distinct from its value, and checking a claim about code by running it — against the same driving question and the same rubric below, for the same 10 points. Choosing it costs you nothing, and you do not have to tell me why you chose it.
What you do. Write a structured written exchange with yourself — the same back-and-forth the dialogue would have produced, on paper:
- Your position (roughly 150 words). Answer Option A or Option B. For Option A, describe the sign-in program's dictionary (its keys and its values), say whether the club should build on an open-source tool or a proprietary product, and name what that choice trades. For Option B, say whether the program should keep a set of names or a dictionary of each person's visits, write out one key and its value as the program would store it, and explain what the club gains and risks. Use this week's terms (dictionary, key, key-value pair, set, counting idiom, insertion order) correctly.
- The strongest objection (roughly 100 words). Write the best argument against your own position that you can — for example, the case that paying for a product buys support a small club cannot build itself, or the case that a club that keeps only a set of names cannot see who stopped coming. Argue it honestly; a weak objection you knock over earns no credit.
- Your response to it (roughly 100 words). Say what you still hold, what changed, and which part of the disagreement is about how Python behaves and which is about values and judgment.
- One thing you would still check (one or two sentences). What would you run, such as the counting idiom on a short list of names or a set built from a list with repeats, to settle the factual part of your argument?
Effort. Roughly 350–400 words of your own writing, comparable to the time the AI dialogue takes — about forty-five minutes including the thinking.
What you submit. Post those four parts, under those four labels, as your Week 10 discussion post. That post is your entire submission; this route has no share link.
Participation rubric
This discussion is worth 10 points. The same three criteria score both routes.
| Criterion | Full credit | Partial credit | No credit |
|---|---|---|---|
| Depth of reasoning shown (4 pts) | A specific program and its collection described, with keys and values or set members named, a clear position, and a reason for it | A program is present, but the collection stays vague, or the position is asserted without a reason | Missing, off-topic, or no reasoning about the code or the data it keeps |
| Genuine engagement with a counterpoint (3 pts) | The strongest opposing case is stated fairly and then answered or partly conceded, with the line between facts about Python and judgment drawn | An opposing view is named but brushed aside, or answered without engaging it | No counterpoint appears |
| Use of the week's course concepts (3 pts) | Uses dictionary, key, value, set, and the counting idiom precisely, with every claim about what a lookup or a set prints matching a run | Uses a term loosely, or treats a key and a value as the same thing | No course terms, or used incorrectly |
Built with The Course Maker · samples.thecoursemaker.com