Week 15 — Module Framing · Intro to Object-Oriented Programming
Course: Introduction to Computer Science — CS1 / Programming Fundamentals in Python (CSCI 1101) · Silver Oak University (fictional sample) · Prof. Okafor
Module: Week 15 of 16 · Fall 2026 · in-person, two 75-minute coding-along studio sessions
Objective covered: Objective 8 — Use introductory object-oriented programming: classes & objects, attributes & methods, init, and instances.
(A) Module 15 Overview + (B) Welcome Announcement. Dates assume Week 15 meeting *Tue Dec 8* and Thu Dec 10*, with end-of-week work due Sunday Dec 13, 11:59 p.m.***. Adjust to your section.
(A) Module 15 Overview — Start Here
Welcome to Week 15: Intro to Object-Oriented Programming
This is your home base for the week. Read it first, then work the checklist below.
You've used objects all term without naming them: a string has data (its characters) and methods (.upper(), .split()); a list has data and methods (.append(), .sort()). Those are objects Python built. This week — the last new topic before the final — you build your own. A class is a blueprint that bundles data (attributes) and behavior (methods) into one tidy thing, and an object is a specific thing you build from it. The course habit holds: define it, run it, and read what Python actually does — especially the AttributeError that shows up when you forget self..
The week's big question
"How do we bundle data and the functions that work on it into one tidy thing?"
By Friday you'll define your own kind of object — a Dog, a BankAccount, a Rectangle — with attributes, methods, and __init__, and you'll know the #1 OOP bug (forgetting self.).
By the end of this week, you can…
- [ ] Define a class with
__init__that sets up an object's attributes. - [ ] Give objects attributes (
self.x) and methods. - [ ] Create instances and call their methods.
- [ ] Explain
selfand fix the classic missing-selfAttributeError.
What's due this week, and when
| # | Do this | Type | Due |
|---|---|---|---|
| 1 | Read the readings + watch the linked resource | Read / watch (ungraded) | Before Thu Dec 10 |
| 2 | Skim the slides (Deck 15) and the lecture outline | Prep (ungraded) | Alongside class |
| 3 | Lecture Tutorial 15 — classes & objects with one approved chatbot; submit the share link | Lecture Tutorial · graded (5%) | Sun Dec 13, 11:59 p.m. |
| 4 | Practice exercises | Practice · ungraded | Sun Dec 13 (recommended) |
| 5 | Coding Lab 15 — "Build an Object" — define a class, create objects, fix a self bug |
Coding Lab · graded (15%) · 50 pts | Sun Dec 13, 11:59 p.m. |
| 6 | Quiz 15 — class/object, attributes, methods, __init__, self |
Quiz · graded (10%) | Sun Dec 13, 11:59 p.m. |
| 7 | Discussion 15 — "When Software Fails, Who's Responsible?" — an ethics debate, worked with one approved chatbot; post the AI summary + chat link and reply to two classmates | Discussion · graded (10%) | Initial post Fri Dec 11; replies Sun Dec 13 |
| 8 | Assignment 15 — "Build a Class" — define classes, coached and scored by one approved chatbot | Assignment · graded (15%) · 100 pts | Sun Dec 13, 11:59 p.m. |
Heads-up on the AI tools: chatbots sometimes forget self. (so attributes don't stick → AttributeError) or omit __init__. Catching that — by running the code — is the point.
How to succeed this week
- Write
self.on every attribute. To store data on an object, writeself.x = valuein__init__. Forgettingself.is the #1 OOP bug. - Two hooks: "A class is the blueprint; an object is the thing you build from it." And "
self.stores it on the object." - Read the
AttributeError.'X' object has no attribute 'y'almost always means you forgotself.y = ...in__init__. - It's the last new topic. Next week is the cumulative final — keep your earlier weeks' notes handy.
(B) Welcome Announcement — Module 15
Release setting: post on the module's start day, Tue Dec 8, 2026.
Subject: Week 15 — build your own kind of object 🧱
Hi everyone,
This week — the last new topic before the final — you go from using objects (strings, lists) to building your own. A class is a blueprint that bundles data (attributes) and behavior (methods) into one tidy unit; an object is a specific thing built from it. We'll build a Dog, a Rectangle, and a BankAccount, and meet the #1 OOP bug: forgetting self..
Three things not to miss:
1. Lecture Tutorial 15 — classes & objects with an approved chatbot; submit the share link. Due Sun Dec 13.
2. Coding Lab 15 (Build an Object), Quiz 15, Discussion 15, and Assignment 15 also close Sun Dec 13.
3. Open the Start Here page first.
One reminder: to store data on an object, write self.attribute = value in __init__. Forget the self. and you'll get an AttributeError later — read it; it tells you exactly what's missing.
See you Tuesday,
Prof. Okafor
~ Prof. Okafor's edition · Fall 2026 · built with thecoursemaker.com