Data Analysis and Computational Thinking
  • Canvas: enrolled students
  • 2026–2027 syllabus
  1. Practice
  2. Question atlas

Question atlas

Find questions, practical tasks, and where they appear

The question atlas in Figure 1 shows course questions and practical tasks on separate rows, with the places where they appear in columns. Columns group chapters, exercise papers and quizzes, case studies, and programming practicals. Hover over a row to read its task and available skill information. Open a question or task to read its instructions; select an appearance to open that chapter, paper, frozen quiz question, or practical.

Figure 1: Course questions and practical tasks (rows), with their locations (columns). A filled square marks an appearance; its color shows the kind of page.

Skill names follow published frameworks: the computer science curricula of the ACM, IEEE Computer Society, and AAAI (Kumar et al. 2024), the facets of computational thinking described by Shute et al. (2017), and the skills that Microsoft lists for its Excel certification exams (Microsoft 2022, 2023). The cognitive process of each question uses the revised taxonomy of Anderson and Krathwohl (2001), read for programming as Thompson et al. (2008) propose.

Table 1 lists the same questions with their summaries and links, for reading in order, printing, or using with a screen reader.

Table 1: The questions in the atlas, with what each asks and where it appears.
Question Type Summary Appears in
Decompose and represent a shared trip Open, ct Break planning a shared trip to a film into connected parts, name a dependency, and propose table columns for comparing route options. 1.1 Computational thinking
Formulate a library investigation Open, ct Complete the formulation of a request to find when a library is busiest from entrance-counter records, then state the task in one or two sentences. 1.1 Computational thinking
Plan a reusable weekly study checklist Open, ct Apply the full computational-thinking sequence to daily lists of items to bring to campus and design a checklist table reusable each week. 1.1 Computational thinking
Apply the sequence to a warehouse order Open, ct Apply the computational-thinking sequence to a warehouse order, decide from a stock table whether it can be released, and reuse the structure. 1.1 Computational thinking
Recognize computational thinking Open, ct Decide which activities around a bicycle parking area show computational thinking, and explain the choice. 1.1 Computational thinking
Count only the rules allowed by the scenario Multiple choice, ct Count the feasible cases for a cafeteria meal record when the Standard, Vegetarian, and Vegan categories restrict meat and dairy. 1.2 Designing algorithms
Count rules when conditions have different numbers of options Multiple choice, ct Count the rules a full decision table needs for parcels described by a three-option destination, a two-option speed, and a fragile flag. 1.2 Designing algorithms
Count rules for three Yes/No conditions Multiple choice, ct Count the rules a full decision table needs for three Yes/No conditions before equal-result cases are combined. 1.2 Designing algorithms
Algorithm X Multiple choice, python Trace a flowchart that repeatedly updates two running values a and b for the input 6 and choose the value it outputs. 1.2 Designing algorithms
Finding the max. value in a list Multiple choice, python Choose every flowchart that correctly outputs the largest value in a zero-indexed list of at least two numbers. 1.2 Designing algorithms
Iterative sum algorithm Multiple choice, python Trace a flowchart that adds only the even numbers from 1 up to the input 4 and choose the sum it outputs. 1.2 Designing algorithms
Linear search algorithm Multiple choice, python Choose the flowchart that outputs Number found or Number not found when searching a list for a target value. 1.2 Designing algorithms
Pass or fail algorithm Multiple choice, python Choose every flowchart that outputs Pass for a score of 50 or above and Fail otherwise. 1.2 Designing algorithms
Convert a color rule into an algorithm Open, ct Write pseudocode for a color-combination table that accepts either input order and rejects repeated or unknown colors, then give four outputs. 1.2 Designing algorithms
Design a bounded number-guessing game Open, ct Design modular pseudocode for a number-guessing game that gives feedback, counts rounds, and stops after a correct guess or seven entries. 1.2 Designing algorithms
Represent a personal social-media policy Open, ct Write pseudocode and a complete, non-overlapping decision table for a workplace social-media policy, and show how its rules cover all eight cases. 1.2 Designing algorithms
Formulate a bottle-filling problem Open, ct Choose bottle and cup capacities, formulate the inputs, state, pour rule, and stopping condition for filling a bottle, then write pseudocode. 1.2 Designing algorithms
Fill a bottle by iteration Open, ct Write pseudocode that fills a 750 mL bottle with a 200 mL cup without overflow, and report the final volume, cupfuls, and water left in the cup. 1.2 Designing algorithms
Bulk or cut decision-making Open, python Write an algorithm that recommends bulk, cut, or maintain from gender, body fat percentage, and muscle mass level using the given thresholds. 1.2 Designing algorithms
Choosing an outfit based on weather Open, python Write an algorithm that chooses a raincoat, jacket, or t-shirt from the morning weather. 1.2 Designing algorithms
Warehouse operation management Open, python Write an algorithm that turns warehouse occupancy and fill rates into a Black, Red, Orange, or Green status using ordered traffic-light rules. 1.2 Designing algorithms
Optional extension: Test an algorithm from a decision table Open, ct Build four tests for an umbrella decision from its full and minimized decision tables, trace a proposed algorithm, then repair and retest it. 1.3 Tracing, testing, and improving algorithms
Repair an inclusive parking threshold Open, ct Plan tests at 29, 30, and 31 minutes for a parking-fee rule, trace a proposed algorithm, then fix the faulty condition and retest. 1.3 Tracing, testing, and improving algorithms
Repair a shelf-label stopping defect Open, ct Trace a shelf-label loop that does not stop, explain how its update moves the loop-control state, repair it, and argue that it now terminates. 1.3 Tracing, testing, and improving algorithms
Trace minibus seat bookings Open, ct State the expected bookings for a 12-seat minibus and group requests of 5, 9, and 7, then complete a trace table and give a verdict. 1.3 Tracing, testing, and improving algorithms
Assignment: analyzing patient data in Excel Open, excel Complete the patient-workbook assignment using the supplied data and the guided Excel tasks. 2.4 Step-by-step tutorial
Exercise: a dashboard that follows the data Open, excel Build the patient dashboard, refresh it after the specified CSV row deletions, compare the results, and restore the original data. 2.5 Importing and refreshing data
Using AutoFill with a gap in the data Multiple choice, excel Predict the values AutoFill enters below a 1, 2 series when the fill handle is double-clicked next to a name column with a blank row. 2.7 Excel multiple-choice questions
Classifying grades Multiple choice, excel Choose the nested IF formula that assigns the letter grades A to D to a numeric grade using bands that start at 90, 80, and 70. 2.7 Excel multiple-choice questions
Using constants in formulas Multiple choice, excel Choose every formula that multiplies price by units sold and applies a fixed 10% discount from D2 when dragged down the rows. 2.7 Excel multiple-choice questions
Mixed reference copying Multiple choice, excel Choose the formula whose reference keeps column A fixed when copied across but lets the row change when copied down. 2.7 Excel multiple-choice questions
Mixed reference copying 1 Multiple choice, excel Predict the formula in D3 after =B2*$C$1 in D2 is dragged down one row with the fill handle. 2.7 Excel multiple-choice questions
Mixed reference copying 2 Multiple choice, excel Predict the formula that results when =$A2+B$1 is copied from cell C2 to cell D3. 2.7 Excel multiple-choice questions
Relative and absolute reference Multiple choice, excel Choose the formula for C2 that multiplies a value in column A by a constant in B1 and keeps pointing to B1 when copied down. 2.7 Excel multiple-choice questions
Relative reference copying Multiple choice, excel Predict the formula in C3 after the formula =A2+B2 in C2 is copied and pasted one cell down with Ctrl+C and Ctrl+V. 2.7 Excel multiple-choice questions
Creating functions for arithmetic operators Open, python Implement and independently test a two-input function for each arithmetic operator. 3.6 Operators and expressions
Precedence of arithmetic operators Open, python Use the arithmetic functions to evaluate five expressions with the required precedence and grouping. 3.6 Operators and expressions
Testing functions Open, python Complete the supplied numerical functions and test them with varied inputs. 3.6 Operators and expressions
Check if a number is even Open, python Write a function that takes an integer as input and returns True if it’s an even number, otherwise False. 3.6 Operators and expressions
Check if a number is divisible by both 3 and 5 Open, python Write a function that takes an integer as input and returns True if it’s divisible by both 3 and 5, otherwise False. 3.6 Operators and expressions
Check if a string contains a specific character Open, python Write a function that takes a string and a character as input and returns True if the string contains the character, otherwise False. 3.6 Operators and expressions
Check if two numbers are both positive Open, python Write a function that takes two numbers as input and returns True if both numbers are positive, otherwise False. 3.6 Operators and expressions
Check if a number is within a specific range Open, python Write a function that takes a number and a range (minimum and maximum) as input, and returns True if the number is within that range, otherwise False. 3.6 Operators and expressions
Check if a string contains either “apple” or “banana” Open, python Write a function that takes a string as input and returns True if it contains either “apple” or “banana” (case-insensitive), otherwise False. 3.6 Operators and expressions
Check if a number is not equal to 0 Open, python Write a function that takes a number as input and returns True if it’s not equal to 0, otherwise False. 3.6 Operators and expressions
Check if a string is not empty Open, python Write a function that takes a string as input and returns True if it’s not empty, otherwise False. 3.6 Operators and expressions
Check if two boolean values are both `True` Open, python Write a function that takes two boolean values as input and returns True if both are True, otherwise False. 3.6 Operators and expressions
Check if a number is greater than 10 and less than 20 Open, python Write a function that takes a number as input and returns True if it’s greater than 10 and less than 20, otherwise False. 3.6 Operators and expressions
Check if two numbers have the same fractional part Open, python Write a function that takes two numbers as input and returns True if they have the same fractional part, otherwise False. 3.6 Operators and expressions
Check if a number is a multiple of 4 and 6 Open, python Write a function that takes an integer as input and returns True if it’s a multiple of both 4 and 6, otherwise False. 3.6 Operators and expressions
Check if two strings are equal (case-insensitive) Open, python Write a function that takes two strings as input and returns True if they are equal (case-insensitive), otherwise False. 3.6 Operators and expressions
Check if a string contains a character and meets conditions Open, python Complete the supplied three-parameter string predicate and verify the stated conditions. 3.6 Operators and expressions
Create a function that runs all tests Open, python Complete run_all_tests() so it calls the supplied test functions. 3.6 Operators and expressions
Calling a function Multiple choice, python Choose the program in which main calls hello_world and the console shows only Hello, World! on one line, comparing print with return. 3.7 Defining and using functions
Eye array drawing algorithm Multiple choice, python Choose the flowchart for draw_eye_array that builds an N by N grid with ones on the diagonal and zeros elsewhere. 3.7 Defining and using functions
Function syntax Multiple choice, python Choose the sqr function definition that returns the square of the number passed as an argument. 3.7 Defining and using functions
Updating a global variable without global Multiple choice, python Predict what happens when a function uses += on a variable x that is defined only outside the function, with no global declaration. 3.7 Defining and using functions, Exercises - Programming foundations, Programming foundations quiz
A local variable shadows a global one Multiple choice, python Predict the two values printed when a function assigns x = 15 and prints it while a global x = 10 exists. 3.7 Defining and using functions, Exercises - Programming foundations, Programming foundations quiz
Type hints Multiple choice, python Predict what a program prints when a function annotated with int type hints adds one to an integer argument and to a float argument. 3.7 Defining and using functions, Exercises - Programming foundations, Programming foundations quiz
Mayer Multiple calculation Open, python Write a function that computes the Bitcoin Mayer Multiple and three Boolean functions that signal sell, buy, or hold, then test them with different values. 3.7 Defining and using functions
Testing predefined string functions Open, python Write a test function for each of nine supplied string methods, using varied input strings. 3.7 Defining and using functions
Testing predefined math functions Open, python Write functions that test the supplied built-in functions, mathematical operations and constants, and random.random(). 3.7 Defining and using functions
Global vs. local variables 2 Multiple choice, python Predict the output or error of the supplied Python program. 3.7 Defining and using functions
Global vs. local variables 4 Multiple choice, python Predict the output or error of the supplied Python program. 3.7 Defining and using functions
Global vs. local variables 5 Multiple choice, python Predict the output or error of the supplied Python program. 3.7 Defining and using functions
Categorize number Open, python Write a function that labels an integer as positive, negative, or zero using only if statements, then run the supplied checks. 4.1 Making decisions with conditionals
Categorizing blood pressure Open, python Write a function that assigns a blood pressure category from systolic and diastolic readings with if, elif, and else, rejecting readings that are not positive. 4.1 Making decisions with conditionals
Categorizing BMI Open, python Write a function that places a BMI value in the underweight, normal, overweight, or obese band and flags negative values as invalid. 4.1 Making decisions with conditionals
Checking age eligibility Open, python Write a function that returns Eligible or Not Eligible by comparing a nonnegative age with 18, then run the supplied checks. 4.1 Making decisions with conditionals
Checking divisibility Open, python Write a function that returns Divisible or Not Divisible for two integers with a nonzero divisor, then run the supplied checks. 4.1 Making decisions with conditionals
Checking leap year Open, python Write a function that labels a positive year as a leap year or not under the Gregorian rule and its century exception. 4.1 Making decisions with conditionals
Check a username Open, python Write a function that accepts a username only when it has at least six characters and contains no spaces, then run the supplied checks. 4.1 Making decisions with conditionals
Check a date Open, python Write a function that decides whether a day, month, and year form a valid Gregorian date, taking month lengths and leap years into account. 4.1 Making decisions with conditionals
Clamp negative stock to zero Open, python Write a function that clamps a negative stock level to zero and leaves other levels unchanged, using one if statement and a single final return. 4.1 Making decisions with conditionals
Convert letter grade Open, python Write a function that converts a numeric grade into a letter from A to F with if, elif, and else, and rejects grades outside 0 to 100. 4.1 Making decisions with conditionals
Determining quadrant Open, python Write a function that places a point in one of four quadrants, on a positive or negative axis, or at the origin, using only if statements without else. 4.1 Making decisions with conditionals
Increasing / decreasing order Open, python Write a function that labels three numbers as strictly increasing, strictly decreasing, or neither, then run the supplied checks. 4.1 Making decisions with conditionals
Multiple conditions with strings Open, python Write a function that compares two strings and returns Equal, CaseSensitive, or Different depending on exact and case-insensitive matches. 4.1 Making decisions with conditionals
Number sign Open, python Write a function that reports whether two integers are both positive, both negative, or mixed, then run the supplied checks. 4.1 Making decisions with conditionals
Simple if statement Open, python Write a function check_even_odd that returns Even or Odd for an integer, then run the supplied checks. 4.1 Making decisions with conditionals
Triangle type Open, python Write a function that classifies a valid triangle as equilateral, isosceles, or scalene from its three side lengths. 4.1 Making decisions with conditionals
Vowel or consonant Open, python Write a function that labels a single lowercase letter as a vowel or a consonant using only if statements. 4.1 Making decisions with conditionals
Trace argument mapping and scope Open, python Map the arguments of a call to calculate onto its parameters, fill a trace table of visible values at three breakpoints, and explain what changes in main. 4.2 Debugging and error handling
Tracing nested function calls Open, python Trace five nested string-cleaning helper calls on a Turkish name without running them, list the printed lines, and rewrite the function without nesting. 4.2 Debugging and error handling
Read positions in a nested list Multiple choice, python Find the values that four index and slice expressions read from a 3 by 3 nested list, including negative indices and a reversed row. 5.1 Lists, Exercises: Lists and loops, Lists and loops quiz
Concatenate vectors Open, python Write a function that joins two lists of numbers into a new list without changing either input, then run the supplied checks. 5.1 Lists
Count elements Open, python Write a function that counts how many times a target value occurs in a list of numbers, then run the supplied checks. 5.1 Lists
Dynamic vector initialization Open, python Write a function that creates a new list of a given size with every element set to 0.0, then run the supplied checks. 5.1 Lists
Find maximum element Open, python Write a function that returns the largest number in a nonempty list without changing the list, then run the supplied checks. 5.1 Lists
Redimension dynamic vector Open, python Write a function that grows or shrinks a list in place to a new size, padding with 0.0 and keeping the existing values. 5.1 Lists
Search element Open, python Write a function that reports whether a target value occurs in a list of numbers, then run the supplied checks. 5.1 Lists
Vector reversal Open, python Write a function that returns a new list with the input numbers in reverse order and leaves the input unchanged. 5.1 Lists
Vector sorting Open, python Write a function that returns a new list with the input numbers in ascending order, keeping repeated values and leaving the input unchanged. 5.1 Lists
Append an element to a list Open, python Write a function that adds an element of any type to the end of a list and returns the list, checked with numbers, strings, and an empty list. 5.1 Lists
Check whether a list is sorted Open, python Write a function that checks whether a list of numbers is in ascending order by comparing neighboring values, then add a test case. 5.1 Lists, Exercises: Lists and loops, Lists and loops quiz
Remove the first occurrence from a list Open, python Write a function that removes only the first occurrence of an element from a list and returns the list unchanged when the element is absent. 5.1 Lists
Trace Algorithm X Open, algorithms Trace a pseudocode while loop that computes a Fibonacci number, give outputs for small inputs, and explain what a and b hold after each pass. 5.2 Loops
Trace an iterative even sum Open, algorithms Trace a pseudocode loop that sums the even numbers up to a bound, give outputs for small inputs, and explain why the loop terminates. 5.2 Loops
Validate a linear-search algorithm Open, algorithms Compare two linear-search proposals that differ only in their not-found output, explain the defect, and trace the valid one on several inputs. 5.2 Loops
Find the maximum value in a list Open, algorithms Trace a pseudocode loop that finds the largest value in an all-negative list and explain why starting the running maximum at 0 is defective. 5.2 Loops
Average of numbers Open, python Write a function that uses a for loop to return the average of all integers from 1 to a positive n. 5.2 Loops
Calculate the power of a number Open, python Write a function that raises a number to an integer power with a for loop instead of ** or pow, including negative and zero exponents. 5.2 Loops
Check prime number Open, python Write a function that uses a for loop to decide whether a given integer is a prime number. 5.2 Loops
Count vowels in a string Open, python Write a function that counts the uppercase and lowercase vowels in a string with a for loop. 5.2 Loops
Cumulative sum of numbers Open, python Write a function that uses a for loop to return the sum of all integers from 1 to n, returning 0 when n is below 1. 5.2 Loops
Factorial of a number Open, python Write a function that computes the factorial of a nonnegative integer with a for loop. 5.2 Loops
Find the largest digit in a number Open, python Write a function that finds the largest digit of an integer, including a negative one, with a while loop. 5.2 Loops
Scan a password in one pass Open, python Write a password checker that scans the password once with a for loop and reports it valid only when it meets five character and length rules. 5.2 Loops
Validate a password with helper functions Open, python Write four character-check helper functions, each with its own loop, and combine them with a supplied length check into a password validator. 5.2 Loops
Search with a post-test loop Open, python Write a function with while True and break that finds the first integer greater than a start value that is divisible by a given divisor. 5.2 Loops
Print a triangle pattern Open, python Write a function that prints a left- or right-aligned triangle of asterisks of height n using for loops. 5.2 Loops
Print an X pattern Open, python Write a function that prints an n by n X pattern of asterisks along both diagonals using nested for loops. 5.2 Loops
Remove spaces from a string Open, python Write a function that builds a new string without ordinary space characters using a for loop, keeping tabs and newlines. 5.2 Loops
Reverse a string Open, python Write a function that returns a new string with the characters of the input in reverse order, using a for loop instead of slicing. 5.2 Loops
Sum of odd numbers Open, python Write a function that uses a for loop to add all odd integers from 1 to n, returning 0 when n is below 1. 5.2 Loops
Seed inside a loop Multiple choice, python Choose the statement that describes the list of five die rolls a program prints when it calls random.seed inside the loop. 5.3 Randomness, Exercises: Lists and loops, Lists and loops quiz
Find a random number less than 50 Open, python Write a seeded function that keeps drawing random integers from 0 to 100 with a while loop until it gets one below 50, and returns it. 5.3 Randomness
Generate a random prime number Open, python Write a seeded function that draws random integers from 2 to 100 until one is prime and returns that prime with the number of draws it took. 5.3 Randomness
Print two different numbers within a range Open, python Write a seeded function that draws random integers within inclusive bounds, swapping reversed bounds, until it has two different values to return. 5.3 Randomness
Generate a random grid Open, python Write a function that fills a nested list with random integers or decimals between two bounds, leaving seeding to the caller for reproducible grids. 5.3 Randomness
Trace a generated process Open, python Record the first three loop states, then compare repeated runs with the same seed and a different seed. 5.3 Randomness
Build a reproducible process Open, python Generate 50 values from 5 to 20, retain values above 10, report their count, and check normal, boundary, and reproducible behavior. 5.3 Randomness
Element-wise multiplication Open, python Design an algorithm that multiplies two equal-length vectors position by position into a new list, in Python, pseudocode, or a flowchart. 6.1 Tuples
Best student finder Open, python Write a function with nested while loops that returns each subject’s best grade and first top-scoring student ID from a list of score records, and add a tie check. 6.1 Tuples
Trace tuple unpacking Open, python Trace a loop that unpacks three integer pairs into first and second while updating a running total and a difference, and state the output. 6.1 Tuples
Nested-list processing Multiple choice, python Trace a function with nested loops over a two-dimensional list of integers and choose its returned list. 6.2 Sets
Find common values in their original order Open, python Design an algorithm that uses sets to return the numbers two lists share, once each and in first-list order, and give checks for edge cases. 6.2 Sets
Report duplicate identifiers Open, python Write a function that uses sets to report repeated order identifiers once each, in order of their second occurrence, and test edge cases. 6.2 Sets
Collect sorted distinct integer values Open, python Design an algorithm that uses a set to collect the distinct integers from 1 through 10 in a table of rows, excluding Booleans, and returns them sorted. 6.2 Sets
Route finder Open, python Write functions that look up city distances in a matrix and in nested dictionaries, and build a nearest neighbor route from every start city. 6.3 Dictionaries
Read data from a CSV file Open, python Write a function that reads the first record of a user CSV file with csv.DictReader and returns its name, age, and email as a formatted message. 6.4 Manipulating files
Update a pre-filled CSV record Open, python Write a command-line editor that shows each field of a one-record CSV file as a default, keeps it when Enter is pressed, and saves the updated record. 6.4 Manipulating files
Write data to a CSV file Open, python Write a function that saves a header row and one user record, held in a nested list, to a CSV file with pathlib and the csv module. 6.4 Manipulating files
PyPhotoshop Open, python Write functions that rotate, flip, resize, crop, and zoom a grayscale image matrix, and apply box blur, Sobel edge, and sharpen filters. 6.4 Manipulating files
Recreate a project environment Open, python Explain local environment recreation from saved versions and separation of conflicting package versions. 7.3 Virtual environments
Calling an algorithm Multiple choice, algorithms Trace a pseudocode algorithm that calls a squaring algorithm twice and adds the results, and choose its output for n1 = 2 and n2 = 3. Exercises - Programming foundations, Programming foundations quiz
Variable scope Multiple choice, python Step through a Python call from main to calculate, whose if compares its local c with b + a, and choose the values of a, b, and c at three breakpoints. Exercises - Programming foundations, Programming foundations quiz
Concatenating words Multiple choice, python Choose the version of a concatenate function that joins two words passed as arguments and returns the result. Exercises - Programming foundations, Programming foundations quiz
Function returning None syntax Multiple choice, python Choose the type-hinted program whose hello_world displays Hello, World! and implicitly returns None, so main shows only that message. Exercises - Programming foundations, Programming foundations quiz
Folder-friendly format Multiple choice, python Trace nested string-cleaning calls that turn a Turkish name into a folder name and choose the sequence of printed intermediate results. Exercises - Programming foundations, Programming foundations quiz
Does it run? Multiple choice, python Choose the pair of Python snippets, each generating a random number between two bounds, that run without errors. Exercises - Programming foundations, Programming foundations quiz
Variable update Multiple choice, python Predict what a function prints after it updates five variables with addition, equality, modulo, floor division, and Boolean operators. Exercises - Programming foundations, Programming foundations quiz
Process the scanned answer sheets Open, ct Design modular procedures that read a stack of scanned answer sheets, find the key sheet, grade each student, and flag problem sheets. Exercises - Programming foundations, Programming foundations quiz
Build the results workbook Open, ct Design the worksheets of a grading workbook and modular procedures that copy two result files into it and compute per-question percentages. Exercises - Programming foundations
Call center review Multiple choice, python Choose the needs_review implementations that flag call center shifts averaging over 8 minutes per call without failing on a shift with 0 calls. Exercises - Decisions and debugging, Decisions and debugging quiz
Who can be president? Multiple choice, python Choose the check_eligibility implementations that return True only when a person meets the age, birth citizenship, and residency rules for U.S. president. Exercises - Decisions and debugging, Decisions and debugging quiz
Crane wind limits Multiple choice, python Choose the test set that lets every test pass on a defective If, Else If pseudocode rule for crane actions at four wind-speed ranges. Exercises - Decisions and debugging, Decisions and debugging quiz
Delivery fee Multiple choice, python Choose the delivery_fee implementations that follow a flowchart charging by membership, order total, and bulky items for every input. Exercises - Decisions and debugging, Decisions and debugging quiz
Freezer alarm Multiple choice, python Find which assert check fails for a freezer_status function that labels a sensor reading as missing, an alarm, or OK. Exercises - Decisions and debugging, Decisions and debugging quiz
Gym entry gate Multiple choice, python Choose the test set that runs every Yes and every No arrow of a gym entry gate flowchart with three decisions. Exercises - Decisions and debugging, Decisions and debugging quiz
Line execution order in nested calls Multiple choice, python Trace add_one(double(3)) and choose the order in which the marked lines run and the value the program prints. Exercises - Decisions and debugging, Decisions and debugging quiz
Order status Multiple choice, python Choose the true statement about a match statement that maps an order’s paid and shipped flags to one of four statuses. Exercises - Decisions and debugging, Decisions and debugging quiz
Boxes per pallet Multiple choice, python Predict the output of four calls to boxes_per_pallet, which converts scanned text to an integer and divides it over pallets inside try and except. Exercises - Decisions and debugging, Decisions and debugging quiz
Printing cost Multiple choice, python Pick the pair of flowcharts that give the same printing cost as a nested conditional expression for every print job. Exercises - Decisions and debugging, Decisions and debugging quiz
Shipping label traceback Multiple choice, python Find where the defect lies in a shipping-cost program, and why, from the TypeError traceback it prints for a parcel to the United Kingdom. Exercises - Decisions and debugging, Decisions and debugging quiz
Surge multiplier Multiple choice, python Find the test case for a ride-hailing surge multiplier whose expected value does not follow from the pseudocode rule for requests and drivers. Exercises - Decisions and debugging, Decisions and debugging quiz
Ticket price errors Multiple choice, python Choose the set of changes that makes three museum ticket price programs, each failing in a different way, follow the age-based pricing rule. Exercises - Decisions and debugging, Decisions and debugging quiz
Stepping through a call in VS Code Multiple choice, python Choose the sequence of VS Code debugger controls that lets you inspect a parameter inside a delivery fee helper, then the assigned fee, then a later breakpoint. Exercises - Decisions and debugging, Decisions and debugging quiz
Dispatch an elevator Open, python Design pseudocode or flowchart procedures that compute an elevator’s travel distance to a floor call and choose which of two elevators answers it. Exercises - Decisions and debugging, Decisions and debugging quiz
Replacing negative values Multiple choice, python Choose the remove_negatives implementation that returns a new same-length list with negative values replaced by 0 and leaves the input unchanged. Exercises: Lists and loops, Lists and loops quiz
Decreasing loop with continue Multiple choice, python Predict what a for loop over range(4, 0, -2) prints when an if statement with continue comes before its print call. Exercises: Lists and loops, Lists and loops quiz
Output of a while loop Multiple choice, python Trace a while loop that adds 2 to a counter and choose the sequence it prints. Exercises: Lists and loops, Lists and loops quiz
Finding the first even number Multiple choice, python Choose the find_first_even implementation that prints the first even number in a list of any length, or a message when there is none. Exercises: Lists and loops, Lists and loops quiz
Finding a value in a list Multiple choice, python Predict what a find_first_index function prints when it searches a list of integers for the first position of the value 5. Exercises: Lists and loops, Lists and loops quiz
Conditional sum Multiple choice, python Trace a for loop over range(1, 5) that adds each even value of i to a running total and find the final total. Exercises: Lists and loops, Lists and loops quiz
Reproducible random inputs for a simulation Multiple choice, python Choose the version of make_random_inputs that prepares reproducible random draws for n simulation replications stored as nested lists, seeded by replication number. Exercises: Lists and loops, Lists and loops quiz
Decreasing sequence Multiple choice, python Predict what a function that builds a string with range(n, 0, -2) returns for n equal to 0, 1, 5, and 6. Exercises: Lists and loops, Lists and loops quiz
Sums in a nested loop Multiple choice, python Trace a function that updates two accumulators while looping over a 3 by 3 nested list of ones, and choose what it prints. Exercises: Lists and loops, Lists and loops quiz
Counting nested loop output Multiple choice, python Count how many times nested for loops over range(1, 4) and range(1, 3) print their outer and inner messages. Exercises: Lists and loops, Lists and loops quiz
Build an Akinator-style guessing game Open, python Design an Akinator-style guessing game that asks yes-or-no clue questions in table order, skips useless ones, and filters nested character rows with its own procedure. Exercises: Lists and loops
Trace two sorting algorithms Open, python Trace two in-place sorting algorithms on three lists of ages pass by pass, compare their pass counts, and write the swap procedure they share. Exercises: Lists and loops
Converting collections to distinct values Multiple choice, python Predict the type and value of tuple(sorted(set(codes))) for a list of repeated priority codes. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Collections as dictionary keys Multiple choice, python Choose which of a tuple, a list, a set, and a tuple holding a list can be used directly as a dictionary key. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Copying dictionary records within a threshold Multiple choice, python Choose the copy_below_threshold implementation that copies the header and every dictionary record with a KPI at most a threshold from a list of records. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Counting missing record values Multiple choice, python Choose the count_empty implementation that counts None values across a list of dictionary records without counting 0 or empty strings. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Using dictionary keys and values together Multiple choice, python Choose the shortages implementation that loops over stock.items() to build a new dictionary of extra units needed for products below a target. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Rating frequencies in a dictionary Multiple choice, python Choose the get_frequency implementation that uses a dictionary to count how often each star rating from 0 to 5 appears in a list. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Finding a value in a text file Multiple choice, python Trace find_in_file, which reads integers from a text file line by line and searches for 5, and choose the position it prints. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Writing a Markdown report Multiple choice, python Choose the matrix_to_markdown implementation that turns an attribute-by-point nested list and headers into the Markdown table written to orders.md. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Identifying parts of a file path Multiple choice, python Choose the option that names the parent directory, file name, stem, and final suffix of a report path whose file name has two dots. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Navigating a directory tree Multiple choice, python Choose the absolute and relative path pair that identifies orders.csv in a directory tree when the program runs from /course/exercises. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Glasses for face shape Multiple choice, python Pick the pair of find_glasses implementations that look up a frame style for a face shape in the language block of a list of dictionaries. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Payback period calculation for warehouse design projects Multiple choice, python Choose the loop that computes each warehouse project’s payback period from a list of dictionaries and records whether it meets a fixed limit. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Distinct labels in encounter order Multiple choice, python Trace a range_to_string function that uses a set to skip repeated labels in a nested list and joins the kept labels with commas. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Sorted distinct values Multiple choice, python Predict what bounded_distinct prints when it collects values from 1 to 10 of a nested list in a set and returns them sorted. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Number or not? Multiple choice, python Choose the implementation of split_values_per_type that separates a list’s values into numbers and non-numbers and returns both lists as a tuple. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Splitting a tuple Multiple choice, python Predict what a program prints after it splits a six-item tuple into two halves with len, floor division, and slices. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Replacing negative tuple values Multiple choice, python Choose the implementation of zero_negatives that returns a new tuple with negative measurements replaced by 0, leaving the input unchanged. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Design a reusable housing-search skill Open, python Write the offer check for an agentic rental-house search in pseudocode or a flowchart, then find which houses its summary email lists, and in what order. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Represent and query origin-destination records Open, python Choose a data structure for directed warehouse shipment records and write algorithms for four queries, including a pair lookup that may be unknown. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Trace state while processing pairs Open, python Trace a loop that unpacks integer pairs, keeps a running total, and labels each difference with a status string, then explain what persists. Exercises: tuples, sets, dictionaries, and files, Records and files quiz
Which addition makes the route request complete? Multiple choice, ct A classmate receives only the route table and this request: Computational thinking quiz
Which decomposition completes the presentation task? Multiple choice, ct A student must prepare a five-slide presentation using three supplied articles. The slides must answer two given questions and name at least one supporting article for each answer. The student must submit the finished slides as one PDF file by 16:00 on Friday. Here, the PDF is an exported copy of the slides. Computational thinking quiz
Which abstraction supports walking-route planning? Multiple choice, ct You want to find the shortest walking route from home to a sports center. Shortest means the smallest total distance, measured in meters. Each street section joins two named places, such as intersections, home, or the sports center. Some sections are closed to pedestrians. Every open section can be walked in either direction. Computational thinking quiz
Which set of decision rules covers every case? Multiple choice, ct A room-entry decision depends on two conditions: Has a booking? and Has a student card? Each condition can be Yes or No , and all combinations are possible. Computational thinking quiz
Which decision-table rule matches the situation? Multiple choice, ct A shop sends a parcel only when its payment is confirmed and its delivery address is valid. Otherwise, the shop keeps the parcel. The decision table records that policy. Each rule is one column. Computational thinking quiz
Which change repairs the damaged-item counter? Multiple choice, ct An algorithm is a step-by-step procedure for carrying out a task. The algorithm below should count all damaged items in a finite list. Every item’s Damage Status is Yes or No . For an empty list, the required count is 0 . Computational thinking quiz
Which pseudocode is equivalent to the flowchart? Multiple choice, ct Stock Units is the number of items currently available. It is a whole number that can be zero. The flowchart in Figure 1 produces one message. At the diamond, follow the arrow labeled with the answer to its Yes/No question. The symbol <= means “less than or equal to”. Input reads the supplied number, and Output reports the message. Computational thinking quiz
How does the running total change? Multiple choice, ct Trace the algorithm by following its steps for Values = [4, 2, 7] and recording how Total changes. For each visits 4, then 2, then 7. Set Total to Total + Value adds the current value to the total already stored. Computational thinking quiz
What do these test results establish? Multiple choice, ct A teacher writes a set of instructions for labelling whole-number scores from 0 to 100, including both limits. The required rule, called the specification , is Pass for scores of 50 or higher and Fail for lower scores. Computational thinking quiz
Which test set checks the decision boundary? Multiple choice, ct A room holds at most 10 people. It contains 4 people before an arriving group asks to enter. The whole group must be admitted if everyone fits, including when the room becomes exactly full. Otherwise, the whole group must be rejected. Computational thinking quiz
Which tests expose the grade-rounding algorithm’s defect? Multiple choice, ct Use the University of Twente’s published rounding schedule (17 June 2020) as the specification, meaning the required rules, for this exercise. It converts an unrounded course result to the final grade registered in Osiris. The schedule uses n to represent the whole-number part of the unrounded result. For example, when the result is 4.62 , n = 4 and n.25 means 4.25 . “At least” includes the first value, while “below” excludes the second value. Registered grades are written with one decimal place. Computational thinking quiz
Conditional evaluation Multiple choice, excel Predict the result of a conditional formula on the patient workbook. Excel formulas on patient data
Vertical lookup Multiple choice, excel Interpret a lookup formula using the consultation-history table. Excel formulas on patient data
Average calculation Multiple choice, excel Interpret an average formula on the consultation-history table. Excel formulas on patient data
Conditional counting Multiple choice, excel Interpret a conditional count on the consultation-history table. Excel formulas on patient data
Total sum Multiple choice, excel Interpret a sum formula on the patient workbook. Excel formulas on patient data
Multiple criteria sum Multiple choice, excel Interpret a sum with multiple criteria on the patient workbook. Excel formulas on patient data
Multiple criteria counting Multiple choice, excel Interpret a count with multiple criteria on the patient workbook. Excel formulas on patient data
Total surgery duration Multiple choice, excel Select a formula for total surgery duration under the stated criteria. Excel formulas on patient data
Surgery count Multiple choice, excel Select formulas that count surgeries meeting the stated criteria. Excel formulas on patient data
Surgery duration Multiple choice, excel Select a formula for registered surgery duration in the requested week. Excel formulas on patient data
Substring extraction 1 Multiple choice, excel Select a formula that extracts the requested characters from a patient name. Excel formulas on patient data
Substring extraction 2 Multiple choice, excel Select a formula that extracts the requested ending of a patient name. Excel formulas on patient data
Concatenating values Multiple choice, excel Select formulas that combine the requested text values. Excel formulas on patient data
Finding a space Multiple choice, excel Select formulas that locate a space in a patient name. Excel formulas on patient data
Substring extraction using spaces Multiple choice, excel Select formulas that extract the requested word from a patient name. Excel formulas on patient data
Length of first name Multiple choice, excel Select formulas that calculate the length of a first name. Excel formulas on patient data
Adding Mr. or Miss based on gender Multiple choice, excel Select formulas that add the requested title to each patient name. Excel formulas on patient data
User input with case insensitivity and extra spaces Multiple choice, excel Select a formula that looks up a patient name while allowing case differences and extra spaces. Excel formulas on patient data
Splitting full name into first name and surname Multiple choice, excel Select formulas that separate first names and surnames across all supplied names. Excel formulas on patient data
Avg Customers Rejected by Objective Function Multiple choice, excel Choose the field layout behind a PivotTable of the average number of customers rejected per objective function in a truck routing simulation. Truck-routing simulation results
Average Delay of Customers by Objective Function Multiple choice, excel Choose the field layout behind a PivotTable of the average delivery delay per objective function in a truck routing simulation. Truck-routing simulation results
Average Distance Traveled by Method, Objective Function, and Number of Customers Multiple choice, excel Choose the field layout behind a PivotTable of average distance traveled by method, number of customers, and objective function. Truck-routing simulation results
Average Metrics by Method and Objective Function Multiple choice, excel Choose the field layout and summary function behind a PivotTable that compares distance, delay, and rejections for each method and objective function. Truck-routing simulation results
Total Run Time per Method Multiple choice, excel Choose the field layout behind a PivotTable that totals the runtime of each solution method in a truck routing simulation. Truck-routing simulation results
Number of Values Aggregated in Pivot Table Cell Multiple choice, excel Determine how many simulation records contribute to a displayed PivotTable value. Truck-routing simulation results
Clean the data (worksheet Processed) Open, excel Prepare the Processed worksheet, separate dates and times, and remove the specified invalid orders. Warehouse sales data analysis
Add product details Open, excel Add product descriptions and classify products by their stated weight categories. Warehouse sales data analysis
Format the data (worksheet Processed) Open, excel Arrange, sort, freeze and conditionally format the sales worksheet. Warehouse sales data analysis
Analyze sales (worksheet Pivot) Open, excel Summarize units ordered per product with a PivotTable and export the requested CSV. Warehouse sales data analysis
Data Visualization (Worksheet Charts) Open, excel Chart the ten best-selling products and export the requested SVG. Warehouse sales data analysis
Import large data into Excel Open, excel Import and inspect the supplied product-demand and warehouse datasets. Import large data into Excel
Time-management dashboard Open, excel Record activities, calculate time summaries, create a chart, format the workbook, and export the requested files. Time-management dashboard
Hello world Open, python Print the specified Hello, world! message. PY-01 Python basics, functions and string formatting
Personalized greeting Open, python Read the user’s name and print a personalized greeting. PY-01 Python basics, functions and string formatting
Basic arithmetic Open, python Return the sum and product of two numbers in the supplied functions. PY-01 Python basics, functions and string formatting
Format a quotation Open, python Format a phrase as a quotation with equal padding on both sides. PY-01 Python basics, functions and string formatting
Format an email Open, python Format an email message using the specified components. PY-01 Python basics, functions and string formatting
Format a table entry Open, python Format a name, age, and weight into a string with aligned columns. PY-01 Python basics, functions and string formatting
Even or odd Open, python Determine and return whether a number is even or odd. PY-02 Conditions and decision rules
Reorder decision Open, python Determine whether a part needs to be reordered. PY-02 Conditions and decision rules
Check a leap year Open, python Determine whether a given year is a leap year. PY-02 Conditions and decision rules
Convert a numeric grade Open, python Convert a numeric grade to a letter grade. PY-02 Conditions and decision rules
Traffic light action Open, python Interpret a traffic light signal and return the action to take. PY-02 Conditions and decision rules
Sum even numbers Open, python Calculate the sum of even numbers up to a given limit. PY-03 Sequences and loops
Multiples of a number Open, python Returns a string with multiples of a given number up to a specified limit. PY-03 Sequences and loops
Factorial Open, python Calculate the factorial of a number. PY-03 Sequences and loops
Fibonacci sequence Open, python Generate the first n terms of the Fibonacci sequence. PY-03 Sequences and loops
Check list order Open, python Check if the list is sorted in ascending order. PY-03 Sequences and loops
Check a password Open, python Check password validity. PY-03 Sequences and loops
Dictionary of squares Open, python Create a dictionary where the keys are numbers from 1 to n and the values are their squares. PY-04 Dictionaries
Count letters Open, python Count the occurrences of each letter in a string and store the counts in a dictionary. PY-04 Dictionaries
Delete a nested entry Open, python Delete an entry with a specified ID from a nested dictionary. PY-04 Dictionaries
Filter dictionary keys Open, python Filter a dictionary, keeping only specified keys. PY-04 Dictionaries
Create a dictionary from lists Open, python Create a dictionary from two same-size lists, one for keys and one for values. PY-04 Dictionaries
Count unique values Open, python Count the occurrences of each unique value in a list. PY-04 Dictionaries
Invert a dictionary Open, python Invert the keys and values of a dictionary. PY-04 Dictionaries
Copy a nested dictionary Open, python Create a deep copy of a nested dictionary. PY-04 Dictionaries
Merge dictionaries Open, python Merge two dictionaries, with values from the second dictionary overriding those from the first in case of key overlap. PY-04 Dictionaries
Calculate a route distance Open, python Calculate the total distance for a specified path of cities. PY-04 Dictionaries
Predict words Open, python Predict the next words in a phrase using a given probability matrix. PY-04 Dictionaries
Sort dictionary items Open, python Sort a dictionary and return its items as a list of tuples. PY-04 Dictionaries
Filter student records Open, python Filter a list of student data dictionaries based on criteria specified in a filter dictionary. PY-04 Dictionaries
Find reachable cities Open, python Find all reachable cities from each city in a connectivity graph. PY-04 Dictionaries
Combine product features Open, python Organize products based on all possible combinations of their features from a dictionary. PY-04 Dictionaries
Analyze a file path Open, python Analyze elements of a given file path. PY-05 Files
Find files by extension Open, python Find all files with a specified extension in a folder and its subfolders. PY-05 Files
Rename files Open, python Rename files in a folder to a simplified snake_case. PY-05 Files
Find the largest file Open, python Find the largest file in a given folder. PY-05 Files
Read a PPM image Open, python Read a simplified ASCII PPM image file into a three-dimensional pixel matrix. PY-05 Files
Parse a vehicle-routing instance Open, python Parse VRP instance data from a file and return the data as a dictionary. PY-05 Files
Save experimental results to CSV Open, python Write VRPTW experimental results’ data to a CSV file. PY-05 Files
Classify a departure time Open, python Use the supplied time helper in a separate module to classify departure times. Modules and imports
Git collaboration with a KPI project Open, git Create a shared private repository, run the supplied program, make an individual contribution, and exchange the final group version. KPI Group Project
Understand the KPI project structure Open, python Explain the folders, files, and program flow; plan a visualization module and how to check it. KPI Group Project
Anderson, Lorin W., and David R. Krathwohl, eds. 2001. A Taxonomy for Learning, Teaching, and Assessing: A Revision of Bloom’s Taxonomy of Educational Objectives. Longman.
Kumar, Amruth N., Rajendra K. Raj, Sherif G. Aly, et al. 2024. Computer Science Curricula 2023. ACM, IEEE Computer Society, and AAAI. https://doi.org/10.1145/3664191.
Microsoft. 2022. Exam MO-210: Microsoft Excel (Microsoft 365 Apps), Skills Measured. Microsoft Office Specialist: Excel Associate certification. https://learn.microsoft.com/en-us/credentials/certifications/mos-excel-associate-m365-apps/.
Microsoft. 2023. Exam MO-211: Microsoft Excel Expert (Microsoft 365 Apps), Skills Measured. Microsoft Office Specialist: Excel Expert certification. https://arch-center.azureedge.net/Learning/Credentials/MO-211_OD_MOS365_ExcelExpert.pdf.
Shute, Valerie J., Chen Sun, and Jodi Asbell-Clarke. 2017. “Demystifying Computational Thinking.” Educational Research Review 22: 142–58. https://doi.org/10.1016/j.edurev.2017.09.003.
Thompson, Errol, Andrew Luxton-Reilly, Jacqueline L. Whalley, Minjie Hu, and Phil Robbins. 2008. “Bloom’s Taxonomy for CS Assessment.” In Proceedings of the Tenth Australasian Computing Education Conference (ACE 2008), edited by Simon and Margaret Hamilton, vol. 78. Conferences in Research and Practice in Information Technology. Australian Computer Society. https://crpit.scem.westernsydney.edu.au/confpapers/CRPITV78Thompson.pdf.
Practice
Practical exercises