Week 13 — Module Framing · Algorithms: Searching & Sorting + Intro to Complexity
Course: Introduction to Computer Science — CS1 / Programming Fundamentals in Python (CSCI 1101) · Silver Oak University (fictional sample) · Prof. Okafor
Module: Week 13 of 16 · Fall 2026 · in-person, two 75-minute coding-along studio sessions
Objective covered: Objective 8 — Apply foundational algorithms (linear & binary search, a simple sort), and reason informally about time complexity (Big-O).
(A) Module 13 Overview + (B) Welcome Announcement. Dates assume Week 13 meeting Tue Nov 24 (Thursday Nov 26 is the Thanksgiving holiday), with end-of-week work due Sunday Nov 29, 11:59 p.m. Adjust to your section.
(A) Module 13 Overview — Start Here
Welcome to Week 13: Searching, Sorting & Big-O
This is your home base for the week. Read it first, then work the checklist below.
You can already store data in lists and files. This week you learn to search it and sort it — and, for the first time, to ask how fast an algorithm is. You'll compare linear search (check every item) with binary search (repeatedly halve a sorted list), watch one find an answer in a handful of steps where the other takes dozens, and meet Big-O — the language programmers use to describe how an algorithm's work grows. The course habit holds: we don't guess how many steps a search takes — we count them by running instrumented code.
The week's big question
"Two programs get the same right answer — so why is one a thousand times faster?"
By Friday you'll implement linear and binary search, sort a list with a simple sort, count the comparisons each takes, and explain (lightly) what O(n), O(log n), and O(n²) mean.
By the end of this week, you can…
- [ ] Implement linear search and binary search, and explain why binary search needs a sorted list.
- [ ] Trace a simple sort (selection sort) step by step.
- [ ] Count the comparisons an algorithm makes and compare linear vs. binary on the same list.
- [ ] Name the Big-O of these algorithms — O(n), O(log n), O(n²), O(1) — at an intuitive level.
What's due this week, and when
| # | Do this | Type | Due |
|---|---|---|---|
| 1 | Read the readings + watch the linked resource | Read / watch (ungraded) | Before Tue Nov 24 |
| 2 | Skim the slides (Deck 13) and the lecture outline | Prep (ungraded) | Alongside class |
| 3 | Lecture Tutorial 13 — search, sort & Big-O with one approved chatbot; submit the share link | Lecture Tutorial · graded (5%) | Sun Nov 29, 11:59 p.m. |
| 4 | Practice exercises | Practice · ungraded | Sun Nov 29 (recommended) |
| 5 | Coding Lab 13 — "Count the Steps" — implement & instrument linear vs. binary search | Coding Lab · graded (15%) · 50 pts | Sun Nov 29, 11:59 p.m. |
| 6 | Quiz 13 — search, sort, comparison counts, Big-O | Quiz · graded (10%) | Sun Nov 29, 11:59 p.m. |
| 7 | Discussion 13 — "Who Decides the Ranking?" — an ethics debate on algorithmic ranking & bias, worked with one approved chatbot; post the AI summary + chat link and reply to two classmates | Discussion · graded (10%) | Initial post Fri Nov 27; replies Sun Nov 29 |
| 8 | Assignment 13 — "Search, Sort, Count" — implement search/sort & count steps, coached and scored by one approved chatbot | Assignment · graded (15%) · 100 pts | Sun Nov 29, 11:59 p.m. |
Heads-up on the AI tools: chatbots routinely miscount comparisons and will cheerfully claim binary search works on an unsorted list (it doesn't). Catching that — by running an instrumented version — is the point.
How to succeed this week
- Count by running, not guessing. Add a
comparisonscounter to your search andprintit. The number is the lesson. - Two hooks: "Binary search halves the list — but only if it's sorted." And "Big-O is about how the work grows, not the exact step count."
- Keep Big-O intuitive. O(n) = work grows with the list; O(log n) = halving is fast; O(n²) = a loop inside a loop is slow. No formulas needed this week.
Note: Thursday Nov 26 is the Thanksgiving holiday — we meet Tuesday, and the week's work is due Sunday Nov 29. Happy Thanksgiving!
(B) Welcome Announcement — Module 13
Release setting: post on the module's start day, Tue Nov 24, 2026.
Subject: Week 13 — why is one program 1000× faster? 🔍
Hi everyone,
You can already store data — this week you learn to search and sort it, and to ask the question that separates working code from fast code: how many steps does it take? We'll compare linear search (check every item) with binary search (halve a sorted list each step) and literally count the comparisons — then name the pattern with Big-O.
Three things not to miss:
1. Lecture Tutorial 13 — search, sort & Big-O with an approved chatbot; submit the share link. Due Sun Nov 29.
2. Coding Lab 13 ("Count the Steps"), Quiz 13, Discussion 13, and Assignment 13 also close Sun Nov 29.
3. Open the Start Here page first.
One reminder: when you wonder how fast a search is, don't guess — instrument it and count. That's the whole lesson of the week.
(Thursday is the Thanksgiving holiday — we meet Tuesday. Have a good break.)
See you Tuesday,
Prof. Okafor
~ Prof. Okafor's edition · Fall 2026 · built with thecoursemaker.com