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.