Table of Contents
Fetching ...

Choose Your Own Solution: Supporting Optional Blocks in Block Ordering Problems

Skyler Oakeson, David H. Smith, Jaxton Winder, Seth Poulsen

TL;DR

The paper addresses the limitation of existing block-ordering problems in handling optional blocks and multiple valid solutions. It introduces a multigraph-based dependency model that collapses to all valid DAGs and reuses existing DAG-based grading algorithms, with a DFS-based collapse routine providing scalable generation of solution paths. The authors demonstrate the approach across discrete math, introductory programming, and shell-command domains, highlighting practical instructor experiences and the potential for both formative and summative use. This work broadens the design space for block-ordering assessments, enabling richer worked examples and flexible assessment strategies that reflect real-world problem solving.

Abstract

This paper extends the functionality of block ordering problems (such as Parsons problems and Proof Blocks) to include optional blocks. We detail the algorithms used to implement the optional block feature and present usage experiences from instructors who have integrated it into their curriculum. The optional blocks feature enables instructors to create more complex Parsons problems with multiple correct solutions utilizing omitted or optional blocks. This affords students a method to engage with questions that have several valid solutions composed of different answer components. Instructors can specify blocks with multiple mutually exclusive dependencies, which we represent using a multigraph structure. This multigraph is then collapsed into multiple directed acyclic graphs (DAGs), allowing us to reuse existing algorithms for grading block ordering problems represented as a DAG. We present potential use cases for this feature across various domains, including helping students learn Git workflows, shell command sequences, mathematical proofs, and Python programming concepts.

Choose Your Own Solution: Supporting Optional Blocks in Block Ordering Problems

TL;DR

The paper addresses the limitation of existing block-ordering problems in handling optional blocks and multiple valid solutions. It introduces a multigraph-based dependency model that collapses to all valid DAGs and reuses existing DAG-based grading algorithms, with a DFS-based collapse routine providing scalable generation of solution paths. The authors demonstrate the approach across discrete math, introductory programming, and shell-command domains, highlighting practical instructor experiences and the potential for both formative and summative use. This work broadens the design space for block-ordering assessments, enabling richer worked examples and flexible assessment strategies that reflect real-world problem solving.

Abstract

This paper extends the functionality of block ordering problems (such as Parsons problems and Proof Blocks) to include optional blocks. We detail the algorithms used to implement the optional block feature and present usage experiences from instructors who have integrated it into their curriculum. The optional blocks feature enables instructors to create more complex Parsons problems with multiple correct solutions utilizing omitted or optional blocks. This affords students a method to engage with questions that have several valid solutions composed of different answer components. Instructors can specify blocks with multiple mutually exclusive dependencies, which we represent using a multigraph structure. This multigraph is then collapsed into multiple directed acyclic graphs (DAGs), allowing us to reuse existing algorithms for grading block ordering problems represented as a DAG. We present potential use cases for this feature across various domains, including helping students learn Git workflows, shell command sequences, mathematical proofs, and Python programming concepts.

Paper Structure

This paper contains 21 sections, 1 theorem, 3 figures, 1 table, 2 algorithms.

Key Result

theorem 1

The algorithm's time complexity is $\mathcal{O}{(d \cdot (n + m))}$ where $n$ is the number of nodes, $m$ is the number of edges, and $d$ is the number of DAGs generated by collapsing all possible edge combinations.

Figures (3)

  • Figure 1: An example of a question utilizing the multigraph collapse algorithm in a question that allows multiple ways of returning the sum of two values. Between all six blocks presented, there exists four valid solutions, using different blocks and different orderings of these blocks.
  • Figure 2: HTML which generates the problem shown in Figure \ref{['fig:sum_pic']}. Edges in the dependency graph (which is shown in Figure \ref{['fig:multigraph-example']}) are given in the depends attribute. Multigraph dependencies are specified using the pipe operator |. In the given problem, block E can depend on either block A or block B, and block F can depend on block C and block D or else just block E. More details of the HTML specification are in the documentation.
  • Figure 3: We begin (1) with a collection of nodes that can all be used to (2) construct a set of graphs which lead to the source node. We then (3) look at all optional dependencies---where a given node can be dependent on different sets of nodes---and list those relationships. Finally, we (4) create a single graph with these optional dependencies embedded in the edge information. This representation allows the multigraph grading algorithm, at a high level, to identify if the source code can be reached from a given sink node using the graph we constructed.

Theorems & Definitions (1)

  • theorem 1