Learning assessments

To directly assess your mastery of the learning objectives of this course, we will conduct a series of learning assessments (LAs) over the course of the semester. The LAs of this course are inspired by mastery-based testing practices found in mathematics.

There are four primary learning assessment periods in the course, along with one optional final LA.

  • Learning assessment 1: Tuesday, 13 April 2021
  • Learning assessment 2: Tuesday, 27 April 2021
  • Learning assessment 3: Thursday, 6 May 2021
  • Learning assessment 4: Monday, 17 May 2021
  • Learning assessment 5: Finals week, Monday, 24 May 2021

LAs consist of a set of individual assessment problems—one problem for each learning objective of the course covered so far. The approximate lists of learning objectives by LA period are listed below. You will begin your learning assessments during class time. If you need extra time (e.g., for individual assessments left over from the prior assessment), you will have 24 hours to complete the problems. All problems are released online in Gradescope. You may choose to attempt as many of the individual assessment problems as you wish for that period. As described in the syllabus, LA problems are graded on a binary satisfactory/non-satisfactory. Once you receive a satisfactory on a problem tied to a particular learning objective, you do not need to attempt additional problems tied to that learning objective in subsequent LAs, i.e., you have demonstrated mastery of that objective, so you are done with it!

Example: The first LA will have seven problems corresponding to the first seven learning objectives described below. Suppose that you receive S grades on the first five problems but not the sixth or seventh. The second LA will have 14 problems: seven corresponding to the first set of learning objectives and seven corresponding to the seven new learning objectives of LA 2. You do not have to answer the questions corresponding to the first five learning objectives you have mastered already. Instead, you are free to attempt the additional seven problems new to LA 2 as well as the problems corresponding to the sixth and sevents objects of LA 1 that you missed previously.

LA 5 during finals week is a last-chance assessment period. No new learning objectives are introduced, but you are free to re-attempt any objectives that you missed in previous LAs.

Learning objectives

Learning Assessments, Group 1

  1. Decomposition. Decompose a computational problem into smaller sub-problems amendable to implementation with functions.

  2. Procedural Abstraction. Take a concrete implementation in Racket and create a procedure that generalizes that behavior.

  3. Tracing. Trace the execution of a Racket program using a substitutive model of computation.

  4. Primitive Types. Express basic computations over primitive values and their associated standard library functions.

  5. Conditionals. Utilize boolean expressions and values in a program to produce conditional behavior.

  6. Program style. Write and structure program code in ways that makes it easier to understand.

  7. Collaboration. Explain best practices for solving problems in a collaborative setting.

Learning Assessments, Group 2

  1. Lists. Manipulate lists with fundamental higher-order list functions

  2. Use Higher-order procedures. Use section and composition to simplify computations.

  3. Local bindings. Refactor redundancy and add clarity in computations with let-bindings.

  4. Documentation. Document programs according to good software engineering principles.

  5. Testing. Test programs according to good software engineering principles.

  6. Regular expressions. Read and write programs that take advantage of regular expressions.

  7. List recursion. Design and write recursive functions over lists.

Learning Assessments, Group 3

  1. Numeric recursion. Design and write recursive functions over the natural numbers.

  2. Tail recursion. Transform recursive functions into tail-recursive functions.

  3. Vectors. Design and write functions (potentially recursive functions) that utilize vectors.

  4. Mental Models of Memory. Describe or diagram the layout of memory for lists and vectors/arrays.

  5. Randomness. Write programs that produce unpredictable output.

  6. Side effects. Read and interpret programs involving side-effects, in particular, mutation.

  7. Write Higher-order procedures. Write procedures that take procedures as parameters and return procedures as results.

Learning Assessments, Group 4

  1. Dictionaries. Design and write functions that utilize dictionaries.

  2. Tree recursion. Read and write programs involving recursive behavior over trees.

  3. Running time. Use a mental model of computation to count the relevant number of operations performed by a function.

  4. Sorting and searching. Update or modify fundamental searching and sorting algorithms or trace the execution of those algorithms over concrete inputs.

  5. Cultural Competency. Understand and explain the perspective of those different from you, particularly as it may relate to the development or use of software.

Rubrics for learning assessments

Programming problems

For programming problems in learning assessments, we are concerned primarily with correctness rather than design. Make sure that your program works according to the specification outlined in the problem by testing it on a variety of inputs. Pay attempt to the prompt for guidance about what aspects of design you need to include in your program, e.g., documentation or explicit test suites.

Written problems

For problems with written responses, we are looking for responses that address the prompt directly and concisely. In particular, if a written problems asks you to solve a problem in a certain style or show your work, e.g., the trace of the execution of a program, make sure to include this information in the style presented in class.

Sample Learning Assesment Problems

Sample Learning Assessments Part 1

Sample Learning Assessments Part 2

Sample Learning Assessments Part 3

Sample Learning Assessments Part 4