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.
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.
| 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 |