← Back to the Introduction to Computer Science outline The Course Maker
← Introduction to Computer Science outline
Week 15 · Discussion: Traditional alternative (no AI)

Week 15 Discussion — Who Is Responsible When Software Fails? — Traditional alternative (no AI)

Introduction to Computer Science Free sample edition
Traditional alternative (no AI), unpublished. In the course this is a separate discussion that ships unpublished beside the adaptive discussion: same objective, no AI. An instructor who prefers it publishes it and unpublishes or deletes the adaptive one, as the note at its top says.

Instructors: publish this instead of the adaptive version if you prefer, and unpublish or delete the adaptive one.

Hook

A class is written once and used many times, often by people who never read its code. This week you saw a reading log whose add_day method left self. off one line: it added 45 pages, printed no error at all, and print(mine.pages_read) still showed 0. You also saw the pinned Cat("Milo") program stop with AttributeError because one line in __init__ stored nothing on the object. One slip was loud and one was silent, and either could end up inside software that other people trust.

Your discussion question — choose Option A or Option B; they carry the same weight and the same rubric, and you say which you picked.

Option A: A small class, such as a step tracker, a bike-share dock, or a reading log, is written by one person and reused by another, and its method has the missing-self bug, so the count never changes and no error appears. Pick one setting from your own life, major, or workplace where that class might run, and take a position on who is most responsible when it fails: the person who wrote the class, the person who reused it without running a check, or the group that shipped the program. Use this week's ideas (class, instance, method, state, missing-self bug) and say what someone who weighs individual and shared responsibility differently from you would argue.

Option B: A student copies a class from a code-sharing website into a project without running it, and later learns that one method only prints when it should return a value, so the next step receives None. Pick one kind of program you use or could imagine writing and take a position on who is responsible for that failure: the student who pasted the code, the person who posted it, or the people who decide how shared code is reviewed. Use this week's ideas (method, self, return versus print, attribute) and say what someone who weighs speed and accountability differently from you would argue.

There is no single right answer. People who agree on every fact about what a class does still disagree about where responsibility belongs when code fails, because that question rests on judgment about who could have checked, who was trusted, and who pays for the failure, as well as on the facts about Python.

Both answers have a strong case. Those who place responsibility on individuals argue that the person who writes a line of code, or who reuses it, is the one who can see it and run it, and that one short run with two values would have caught either slip; if each person checks what they write or reuse, a failure stops where it starts. Those who place it on the group argue that a slip such as a missing self. is predictable in any team, so the dependable fix is a shared practice, such as a required test run or a review before release, and that blaming one person leaves open the gap that let the bug through. Option B splits the same way: one side holds that code copied from any website is a draft its user must run before trusting it; the other holds that the person who posted it and the people who set how shared code is reviewed shape how much checking a reader expects to need, and so share the cost when a posted method fails. Pick the option you actually care about, and make your case.

Expectations

Activity format: one initial post followed by two substantive peer replies. Plan on about 45 minutes across the two deadlines; your instructor sets both due dates in Canvas.

Your initial post — by the first due date (early in the module week):

  • Say which option you chose.
  • For Option A, name the setting, describe in words what the faulty class does, and say who is most responsible when it fails, and why; for Option B, name the kind of program, describe the method that prints instead of returning, and say who is responsible, and why.
  • Use at least two of this week's terms (class, instance, method, self, attribute, state, missing-self bug) correctly.
  • State the strongest case for a view you do not hold, in one or two sentences.
  • Do not name a real company, product, or person as the example of a failure; describe a setting in your own words.
  • Length: roughly 150–250 words if written. You may instead record your post as audio or video (about two minutes) and attach a transcript; both forms are scored by the same rubric.

Your replies — by the second due date (the end of the module week):

  • Reply substantively to at least two classmates.
  • A substantive reply does more than agree: run a short class like the one in their post, with and without self. on the line that stores a value, and report what it printed; name someone their position would hold responsible who could not have checked the code; or make the strongest fair case for the side they did not take. "Nice point!" on its own does not count.

What a strong post looks like:

I chose Option A. A campus club keeps a sign-up counter class that a past member wrote, and this year's members reused it for an event. Its add method stored the new count in a plain local name instead of on self, so the count stayed at 0 and no error appeared. I think the people who reused it carry the most responsibility, because one run with two sign-ups would have shown the 0. Someone could argue that the author owns the bug, since a class is a promise about what its methods do, and that is fair, so I would also want the author to leave a short test run beside the class.

Notice how it names the setting, describes what the faulty class does, takes a position with a reason, names who could have checked, and states a fair case for the other side. That is the bar. A post that places the responsibility on the author or on the group that shipped the program, argued as carefully, meets the same bar; the rubric rewards the reasoning, not the side.

Participation rubric

This discussion is worth 10 points. The three criteria below look at your initial post and your peer replies.

How the 10 points of this discussion are earned
Criterion Full credit Partial credit No credit
Quality of the initial post (4 pts) A specific setting or kind of program, a description of what the faulty class or method does, a clear position on responsibility with a reason, and a fair statement of another view A setting is present, but the faulty code stays vague, or the position is asserted without a reason Missing, off-topic, or no reasoning about who is responsible when code fails
Use of course concepts (3 pts) Uses class, instance, method, self, attribute, and state precisely, with every claim about what a class prints matching a run Uses a term loosely, or calls the class the object No course terms, or used incorrectly
Engagement with peers (3 pts) Two or more substantive replies that extend or challenge a classmate's reasoning One substantive reply, or replies that only agree No replies, or "I agree" with nothing added

Post early if you can — the best threads happen when people have time to reply before the second due date.

Built with The Course Maker · samples.thecoursemaker.com