Exams Overview
Exam Structure
As discussed in the syllabus, the exams in this class are meant to assess your understanding of a specific set of learning objectives. Each exam will have a posted set of learning objectives that you can demonstrate your understanding of for that quiz, and each learning objective will appear on at least 2 exams.
Exam Learning Objectives
The learning objectives that will ultimately all be assessed via exams are:
Building Blocks
Core
- BB1: Create and use several variables of different types
- BB2: Write a definite and indefinite loop to perform a given task or produce a given output
- BB3: Write a 2 branch conditional statement
- BB4: Create, access, and change values in a list
Advanced
- BB5-AD: Write an indefinite loop that terminates based on unknown input
- BB6-AD: Write a nested loop to produce a given output
Functions and Recursion
Core
- FR1: Define a function with parameters and return value based on a specification
- FR2: Define the three laws of recursion
Advanced
- FR3-AD: Define and use functions (with parameters and return values) in very clear pseudocode to solve a specified problem
- FR4-AD: Define a recursive function in very clear pseudocode to solve a specified problem
Object-Oriented Programming
Core
- OOP1: Identify classes and objects in example code
- OOP2: Create and change an instance of a given class
- OOP3: Define a class with a constructor, instance variables, and additional method
Advanced
- OOP4-AD: Define and use a class (with constructor, instance variables, and methods) in very clear pseudocode to solve a specified problem
Predicting and Debugging
Core
- PD1: Identify and explain syntax or runtime errors (e.g.,
SyntaxError,TypeError) - PD2: Predict the behavior of an imperative program with changing variables
Advanced
- PD3-AD: Draw a memory diagram for how variables change in a given program
- PD4-AD: Identify and explain logic errors (e.g., variable scope, infinite loop, infinite recursion)
- PD5-AD: Predict the behavior of a program with several functions
- PD6-AD: Predict the behavior of a program with several objects and/or classes
Algorithms and Efficiency
Core
- AE1: Demonstrate the process of insertion or selection sort
- AE2: Demonstrate the process of binary search
- AE3: Identify the worst case efficiency of an algorithm we’ve talked about in class (eg: sorting or searching algorithms)
Advanced
- AE4-AD: Demonstrate the process of merge sort
- AE5-AD: Identify and explain at a high-level the worst case efficiency of a new algorithm similar to those we’ve discussed in class
You can see how you are doing on each of these on Moodle under the “Grades” tab.