Final Info
Fall 2025 Canary: an initial version of this page for Fall 2025 was created 12/7/2025
Overview and Process
Time/Date: Sat, Dec. 13th at 11 AM Pacific Pacific - 110 minutes (End at 12:50 p.m.).
- Location: (Based on Last Name)
- A-J: SGM 101
- K-Z: SGM 123
- OSAS Accommodations: If you have USC approved accommodations, you will need to coordinate in advance with the OSAS office to schedule your exam at the testing center on that same day.
The exam will be paper/pen based. There will be true/false, multiple choice, fill-in-the-blank, FiTB coding and, likely, some small hand-written coding.
- Bring: A pencil or two and an eraser. No laptop needed!.
- Format: Paper and pen/pencil
- The exam is Closed book, Closed notes, Closed Devices.
-
- Except one 8.5” x 11” (‘letter sized’) double-sided, hand written cheatsheet.
-
Questions: We write questions such that given the knowledge you should have from the course along with the information stated in the question is all that is necessary to solve the problem. We cannot offer hints or additional details/guidance beyond what is stated in the exam. So, our answer could likely be: “The question is well-formed (no typos) and all the information you need to answer is provided. Do the best you can.” But, with that said, if you have a question you may raise your hand and a staff person will try to come to you. Please sit on the aisle if you tend to ask questions more often than your peers.
- Policies:
- Nothing beyond the cheatsheet is allowed: no calculators, phones, notebooks, textbooks, etc.
- You must request to use the restroom or leave the classroom for any reason and only 1 person will be allowed to leave at a time.
- You may not have headphones or earbuds in.
- With 10 minutes remaining, no one will be allowed to leave the classroom (no bathroom use or leaving if you are finished). If you finish, simply sit quietly. Do NOT work on anything else.
- When time is called, all pencils must go down and you should sit still. Anyone seen writing after the exam is called MAY BE ASSIGNED a 0!
Topics
The following is the list of topics that you should be familiar with. Use it as a guide to help your studying.
Unit 1
- C++ basics: syntax, control flow
- C++ functions
- C++ arrays
Unit 2
- declaring pointer variables (
int *) - referencing (
&) and dereferencing (*) constarguments- pointer arithmetic
- Array names and pointer equivalency
- Array access and pointer arithmetic/dereference (e.g.
ptr[i] <=> *(ptr+i)) - Concept of dynamic memory allocation and when to use it
- Syntax of using
newanddeleteboth with scalars (individual variables) and arrays NULLandnullptr- Handling of
charvs.char*types const char*as the type of string literals- pointers to pointers
- arrays of pointers (like char* argv[])
- command line arguments (
argcandargv[]) - Shallow vs. deep copy
- 2D array allocation via many 1D allocations
Unit 3
- Basic objects (structs)
- Assignment of objects
.and->operators- Using C++
stringclass - Defining your own classes
- public vs. private
- Constructors and Destructors and when they execute
- Defining member functions
- Splitting your class into files
Unit 4
- Linked Lists
- Implementing basic operations (push, pop to front, middle, or back)
- Efficiency of various operations given variations of their implementation (with or without tail pointer, etc)
- Pros and cons compared to arrays
- Doubly Linked lists and operations
vector<T>basic operation- Efficiency of their operations
- Deque implementations (which can work vs. cannot work)
- Efficiency of various operations given variations of their implementation (with or without tail pointer, etc)
deque<T>class- Use of
getline() - Checking an input stream for failure
- Checking for failure when opening a file
- Using C++
ifstreamandofstreamclasses for File I/O - Images
- Multidimensional arrays and images
Unit 5a - Operator Overloading
- Understanding the two approaches (Global vs. Member functions) and when to use each
- The signature of various operator overloads (arithmetic, comparison, etc.)
friendfunctionsoperator<<function signature and implementation
Unit 5b - Copy Semantics
- Copy constructors
- Assignment operators
- When each is called
- “Gotchas” that the assignment operator should handle
- Rule of 3
Unit 5c - Class Details
- Default vs. Initializing constructors
- Constructor Initialization Lists
constkeyword
Unit 5d - Inheritance
- Base class constructor and destructor calls
protectedkeywordpublicvs.privateinheritance- Composition vs. Inheritance
- Calling base class overloaded functions
Unit 5e - Polymorphism
- Static vs. Dynamic binding (
virtualvs. non-virtual) - pure virtual functions and abstract classes
- need for
virtualdestructors protectedkeyword- Public vs. private inheritance
Unit 5f - Parsing and Streams
operator>>andgetline()- When do input streams fail (
fail()) - Correct approaches for how and when to check for failure
stringstreams
Unit 5g - Exceptions
throwkeywordtry/catchblock- ordering of
catchblocks - stack unwinding (exceptions propagating to calling functions)
- exceptions and inheritance
Unit 5h - File I/O Details
get(),ignore(), andpeek()seekg()andtellg()
Unit 6a - Recursion
- Tracing of recursive functions
Topics from MT1 and MT2 are potential supporting material (you need to still understand pointers, linked lists, etc.) but heavy focus will be on (be sure you are very comfortable with):
- Linked lists (single- and doubly-linked)
- Operator overloading (when to use global vs. class member functions, use of
friend, etc.) - Deep copy semantics (copy constructor / assignment operator)
- Inheritance and Polymorphism
- Streams and parsing with
>>andgetline(), usingstringstreams, and knowing when a stream will fail. - Tracing of recursive functions
You should also review:
- Pointers
- C-strings and pointers to C-strings. Arrays of
char*s (likeargv[]) vector<>anddeque<>- Syntax differences with pointers (
T*) and C++ references (T&).
Other Selected Practice Problems
Older Practice Problems
- Fall 2017 Final Exam
- No solutions / crowdsource your answer or come to office hours.
- Fall 2016 Final Exam
- No solutions / crowdsource your answer or come to office hours.
- Spring 2015 Final Exam
- Fall 2014 Final Exam
- Older Fall 2014 Practice Problems

