Back to the Introduction to Computer Science outline The Course Maker
Introduction to Computer Science outline
Week 11 · Module overview

Week 11 — Module Framing · Strings in Depth & Text Processing

Introduction to Computer Science · CSCI 1101 Fall 2026 · Prof. Okafor Fictional sample

Course: Introduction to Computer Science — CS1 / Programming Fundamentals in Python (CSCI 1101) · Silver Oak University (fictional sample) · Prof. Okafor
Module: Week 11 of 16 · Fall 2026 · in-person, two 75-minute coding-along studio sessions
Objective covered: Objective 7 — Process text with Python: string methods, immutability, and simple text algorithms.

This file holds two pieces: (A) the Module 11 Overview page ("Start Here") and (B) the Welcome Announcement that drips out when the module opens. Dates below assume a Tuesday/Thursday pattern with Week 11 meeting Tue Nov 10 and Thu Nov 12, a Coding Lab that same week, and end-of-week work due Sunday Nov 15, 11:59 p.m. (Veterans Day, Wed Nov 11, falls between our two sessions — no class is missed.) Adjust the day-of-week and times to match your section.


(A) Module 11 Overview — Start Here

Welcome to Week 11: Strings in Depth & Text Processing

This is your home base for the week. Read it first, then work the checklist below from top to bottom. Everything you need is linked inside the module.

Almost everything a program touches arrives as text — a name typed into a form, a sentence pulled from a file, a message scanned for a banned word, a search box full of words. This week you learn the tools Python gives you for working with that text: string methods like .upper(), .lower(), .strip(), .split(), .join(), .replace(), .find(), .count(), and .startswith() — and you write your first real text algorithms: count the words in a sentence, count how many times a character appears, find-and-replace, and reverse a string with slicing. There is one idea this week that will quietly bite you over and over until it clicks: strings are immutable. A string method never changes the original string — it returns a brand-new one — so s.upper() does nothing to s unless you write s = s.upper(). The whole habit of this course pays off here: don't guess what a method does — run it and read what Python actually returns.

The week's big question

"How do I take a piece of text apart, clean it up, search it, and rebuild it — without accidentally expecting the original to change?"

By Friday you'll call the core string methods fluently, explain why a method returns a new string and leaves the original alone, and write small text-processing functions (count words, normalize input, censor a word) that you've run and verified.

By the end of this week, you can…

Use this as a checklist. If you can do all four, you're ready for the quiz.

  • [ ] Use the core string methods.upper(), .lower(), .strip(), .split(), .join(), .replace(), .find(), .count(), .startswith() — and predict what each returns (.split() gives a list; .join() gives a string).
  • [ ] Explain immutability — a string method returns a new string and leaves the original unchanged; you must reassign (s = s.upper()) to keep the result.
  • [ ] Write a simple text algorithm — count the words in a sentence, count a character, find/replace text, or reverse a string with s[::-1]and run it to confirm.
  • [ ] Catch the immutability bug — spot code that calls a method but forgets to reassign (so "nothing happens"), and fix it.

What's due this week, and when

Work these in order — each one gets you ready for the next.

# Do this Type Due
1 Read the week's readings + watch the linked videos Read / watch (ungraded prep) Before Thu Nov 12
2 Skim the slides (Deck 11) and the Week 11 lecture outline Prep (ungraded) Alongside class
3 Lecture Tutorial 11 — work through string methods, immutability, and text algorithms with one approved chatbot (Gemini, Claude, or ChatGPT), then submit the conversation share link Lecture Tutorial · graded (5% group) Sun Nov 15, 11:59 p.m.
4 Practice exercises — low-stakes reps to lock in the ideas Practice · ungraded Sun Nov 15 (recommended)
5 Coding Lab 11 — "Take It Apart, Put It Back" — write a text-processing function, run a predict-then-run table of string-method calls, and fix a "forgot to reassign" immutability bug — then have the AI predict a method's behavior so you can catch its mistake Coding Lab · graded (Coding Labs, 15% group) · 50 pts Sun Nov 15, 11:59 p.m.
6 Quiz 11 — covers string methods, immutability, .split()/.join(), and text algorithms Quiz · graded (Quizzes, 10% group) Sun Nov 15, 11:59 p.m.
7 Discussion 11 — "Reading What We Write: Privacy & Text at Scale" — weigh the benefits and costs of programs that process text at scale (search, content scanning, message filtering, data mining), in a dialogue with one approved chatbot, then post the AI summary + your chat link and reply to two classmates Discussion · graded (Discussions, 10% group) Initial post Fri Nov 13; replies Sun Nov 15
8 Assignment 11 — "Text Toolkit" — write a text-processing function, predict string-method output, transform a string, and fix an immutability bug, coached and scored by one approved chatbot Assignment · graded (Assignments, 15% group) · 100 pts Sun Nov 15, 11:59 p.m.

Heads-up on the AI tools: you'll use a chatbot as a pair-programmer to draft and explain — and then you check its work by running the code. Chatbots are especially slippery about strings: they'll confidently claim .replace() or .upper() changed the original (it didn't), or mis-split a string on whitespace. Catching that — by running the code and reading the real result — is the point, in the tutorial, the assignment, and the lab.

How to succeed this week

  • Reassign or it didn't happen. The single biggest Week-11 mistake is s.upper() on a line by itself, expecting s to change. It won't — string methods return a new string. Write s = s.upper() when you want to keep the result.
  • Two tiny hooks to memorize. "String methods return a new string; they never change the original." And ".split() makes a list; .join() makes a string."
  • Predict, then check. Before you run a method call, say out loud what it returns and whether the original changes. Then run it. The gap is the lesson — and "Hello".upper() followed by print(s) is where most people are surprised the first time.
  • Run it to settle every argument. Does .replace("a", "o") change all the a's or just the first? Does .find() return the position or True? Don't debate it — run it and read the answer.
  • Treat the chatbot as a smart intern, not an oracle. It drafts; you run the code and check. On strings it is wrong often enough to make that habit the whole point.

You don't need any setup for this week — the Python environment runs in your browser, nothing to install. Come to class ready to take some text apart and put it back together. See you Tuesday.


(B) Welcome Announcement — Module 11

Release setting: post on the module's start day (offset = 0 days), i.e., Tue Nov 10, 2026 — not before. If your platform won't preserve the scheduled date on import, post this as a draft labeled "Release: Tue Nov 10."

Subject: Week 11 — strings in depth, and the gotcha that fools everyone 🧵

Hi everyone,

Last week you finished collections — tuples, dictionaries, and sets. This week we go deep on the data type you've used since Day 1 but never fully unpacked: the string. Almost every program reads, cleans, searches, or rebuilds text, and Python gives you a whole toolkit of string methods to do it: .upper(), .lower(), .strip(), .split(), .join(), .replace(), .find(), .count(), .startswith(). You'll use them to write real text algorithms — count the words in a sentence, count a character, censor a word, reverse a string.

This week — Strings in Depth & Text Processing — we tackle the big question: How do I take a piece of text apart, clean it up, search it, and rebuild it? By Friday you'll wield the core string methods, write small text-processing functions, and — most importantly — understand why a string method never changes the original string.

Three things not to miss:
1. Lecture Tutorial 11 — work through string methods, immutability, and text algorithms with one approved chatbot (Gemini, Claude, or ChatGPT) and submit the share link. You'll use it as a pair-programmer — and catch its mistakes by running the code. Due Sun Nov 15.
2. Coding Lab 11 ("Take It Apart, Put It Back"), Quiz 11, Discussion 11, and Assignment 11 also close Sun Nov 15 — the lab is where you build a small text processor and trip the immutability bug on purpose, so start early.
3. Open the Start Here page first — it lays out everything in order with due dates.

The one idea to carry in: strings are immutable. A string method returns a new string and leaves the original untouched. So s.upper() on its own does nothing to s — you have to write s = s.upper(). A chatbot will swear .replace() changed your string in place; it didn't. The source of truth, as always, is the same: run the code and read what Python actually returns.

One scheduling note: Veterans Day is Wednesday, Nov 11, between our Tuesday and Thursday sessions — no class is missed, and the week's work still closes Sunday.

See you Tuesday,
Prof. Okafor


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