Quiz Structure

As discussed in the syllabus, the quizzes in this class are meant to assess your proficiency on a specific set of learning objectives. Each quiz will have a posted set of learning objectives that you can demonstrate proficiency/mastery in for that quiz, and each learning objective will appear on at least 2 quizzes.

Quiz Learning Objectives

The learning objectives that will ultimately all be assessed via quizzes are:

  1. Using variables
    • Proficiency: create and use several variables
    • Mastery: Draw memory diagram for how variables change
  2. Using definite loops
    • Proficiency: Basic loop over sequence
    • Mastery: Loop using range
  3. Using indefinite loops
    • Proficiency: Basic counter loop
    • Mastery: Loop that stops based on user input
  4. Using nested loops
    • Proficiency: Predicting what given nested loop will do
    • Mastery: Writing nested loops
  5. Using conditional statements
    • Proficiency: Using basic if/else syntax
    • Mastery: Using three-part conditional
  6. Using lists
    • Proficiency: Creating and accessing a list
    • Mastery: Changing values in a list
  7. Using return values
    • Proficiency: Using a return statement
    • Mastery: Saving and using returned result
  8. Using function parameters
    • Proficiency: Using an immutable parameter
    • Mastery: Mutating a list parameter within a function
  9. Using objects
    • Proficiency: Creating instance of an object
    • Mastery: Changing instance through a method
  10. Using classes
    • Proficiency: Defining class with constructor
    • Mastery: Defining additional method
  11. Using instance variables
    • Proficiency: Accessing instance variables
    • Mastery: Changing instance variables
  12. Using recursion
  13. Debugging syntax errors
    • Proficiency: Identifying and explaining TypeErrors
    • Mastery: Identifying and explaining scope errors
  14. Predicting the behavior of a program
    • Proficiency: Predicting behavior of imperative program with changing variables
    • Mastery: Predicting behavior of functional/object-oriented program
  15. Explaining the difference between objects and classes
    • Proficiency: Identifying classes and objects in example code
    • Mastery: Explaining the relationship between objects and classes
  16. Explaining sorting algorithms
    • Proficiency: Demonstrate the process of insertion or selection sort
    • Mastery: Demonstrate the process of merge sort
  17. Explaining binary search
    • Proficiency: Demonstrate the process of binary search with an off-by-one-error
    • Mastery: Demonstrate the process of binary search without error
  18. Identifying worst case efficiency
    • Proficiency: Identify the worst case efficiency of sequential search
    • Mastery: Identify the worst case efficiency of insertion or selection sort

You can see how you are doing on each of these on Moodle under the “Grades” tab.