Final Exam — Instructions
Overview
This is the scored final exam for the course. It is cumulative: its questions reach all eight course objectives, from reading and running a first program in Week 1 to classes and objects in Week 15. It is given in Week 16, the finals week, which has no new material.
The exam has 40 questions, and every question counts the same. Most of them, 31 in all, are multiple choice with one best answer. Two ask you to select every choice that fits, and seven are true/false statements to judge. Fourteen questions are on the easier side, 20 are of medium difficulty, and 6 are harder. Most questions show a short Python program and ask you to predict its output, name the exception type that stops it, or say what a name holds when it ends. Every question rehearses a skill you already practiced in the weekly quizzes, the lecture tutorials, the Coding Labs, and the paired practice final.
Coverage and scope
The questions were drawn from the course's question bank, and every one of the eight objectives appears at least once. The draw does not spread across all fifteen teaching weeks, though. Here is what this form actually contains, first by the week each question's material comes from and then by objective. Each question assesses exactly one objective.
| Week | Topic | Questions | Objectives assessed |
|---|---|---|---|
| 6 | Loops II: for, range, and nested loops | 1 | Objective 4 (1) |
| 9 | Lists | 6 | Objective 6 (6) |
| 10 | Tuples, dictionaries, and sets | 5 | Objective 6 (4), Objective 3 (1) |
| 11 | Strings in depth and text processing | 4 | Objective 7 (2), Objective 2 (2) |
| 12 | File Input/Output and exceptions | 8 | Objective 7 (6), Objective 1 (2) |
| 13 | Algorithms: searching, sorting, and growth | 5 | Objective 8 (5) |
| 14 | Recursion | 5 | Objective 8 (4), Objective 5 (1) |
| 15 | Introduction to object-oriented programming | 6 | Objective 8 (5), Objective 5 (1) |
| Objective | What the questions ask you to do | Weeks that teach it | Questions on this exam |
|---|---|---|---|
| Objective 1 | Explain how a program runs, trace it, and read an error message | 1 | 2 |
| Objective 2 | Use the core types, evaluate expressions, and index, slice, and format strings | 2, 3 | 2 |
| Objective 3 | Write Boolean expressions and control which code runs with if, elif, and else | 4 | 1 |
| Objective 4 | Write while and for loops with counters, accumulators, nested loops, and break | 5, 6 | 1 |
| Objective 5 | Define and call functions, tell return from print, and reason about scope | 7 | 2 |
| Objective 6 | Use lists, tuples, dictionaries, and sets, and explain aliasing versus copying | 9, 10 | 10 |
| Objective 7 | Process text with string methods, read and write files, and handle exceptions by type | 11, 12 | 8 |
| Objective 8 | Trace searches and selection sort, name growth classes, trace recursion, and define a class | 13, 14, 15 | 14 |
Read the two tables together. Thirty-nine of the 40 questions come from the material of Weeks 9–15, and one comes from Week 6. No question is drawn from the material of Weeks 1–5 or Week 7 directly. Searching, sorting, recursion, and classes (Objective 8) carry 14 questions, the most of any objective. Collections (Objective 6) carry 10, and text, files, and exceptions (Objective 7) carry 8. Week 12 alone carries 8 questions, more than any other week, so put most of your review on Weeks 9–15 and give Week 12 extra time.
Here is what the questions practice, week by week, at the level of skills:
- Week 6: how a nested loop runs, with the whole inner loop starting over on each outer pass.
- Week 9: reading and slicing a list, what each list method changes and hands back, aliasing against copying,
==againstis, and the mutate-while-iterating trap. - Week 10: tuples and unpacking, dictionary lookup and update,
.get()and the counting idiom, and a condition that decides whether a lookup happens. - Week 11: splitting and searching text with string methods, and indexing and slicing a string.
- Week 12: writing a file and reading it back, choosing the except block that runs, and naming the type on the last line of a failing program's traceback.
- Week 13: tracing linear and binary search with a comparison count, selection sort's comparison count, and naming a growth class from counts.
- Week 14: tracing recursive calls and their output, the base case and the recursive case, RecursionError, and the parameter-and-argument language of Week 7.
- Week 15: what calling a class does, each instance's own state, a second name for one object, the missing-self bug, how a method is called, and what a method hands back.
The early objectives still count. Eight questions assess Objective 1 through Objective 5. One sits in Week 6, and the other seven sit inside the material of Weeks 10 to 15, where the later topics lean on first-half skills: a condition, string indexing, reading a traceback, and the language of functions. The two habits from the first half, predict then run and read the error from the bottom up, run through almost every question on the exam.
These notes map the skills the exam assesses. The questions themselves are drawn from the bank and are not listed here.
Instructions
- Attempts: one. The final is a single scored attempt.
- Time limit: none. There is no time limit, so take the time you need while the exam is open.
- Window: the exam opens in Week 16. Your instructor sets the open and close times in Canvas, and the exam locks when it closes.
- Navigation: the questions appear one at a time, and you cannot go back to an earlier question once you move on. Settle each question before you continue.
- Order: the choices within each question are shuffled for each student.
- Materials: most questions ask you to trace a short program, so scratch paper for writing down each name's value as you go can help. Your instructor will tell you which other materials, if any, are allowed. AI tools are not permitted.
- After you submit: your result is recorded. The keyed choices are not shown, because the questions come from a bank shared with other course assessments.
Academic integrity
This is an individual, scored assessment, and the work must be your own. That means no help from another person, no shared or posted questions, and no AI tools of any kind. The final confirms that you personally can read code, predict what it prints, and find what is wrong with it.
The honest way to prepare is the rest of the final's bundle: the study guide, the exam-prep tutorial, and the practice final. They rehearse the same skills with fresh variants, and nothing in them appears on this exam.
Built with The Course Maker · samples.thecoursemaker.com