Divide-And-Conquer Tutor

Background#

While taking an Advanced Algorithms course, I realized students often struggle to solve divide-and-conquer solutions. In some cases, students may jump straight to coding before solving the problem. In that class, we used an educational technology which has scaffolds to assist in solving some problems, like dynamic programming. However, there wasn’t as much scaffolding for divide-and-conquer problems. This project addresses this gap by guiding learners through the pre-coding phase of divide-and-conquer problem-solving using AI-driven scaffolding.

Goals#

With this tutor, I wanted to focus on the specific components of divide-and-conquer:

  1. Problem Decomposition: Breaking problems into smaller, solvable subproblems.
  2. Base Case Identification: Recognizing termination conditions for recursion.
  3. Recurrence Relation Formulation: Defining how subproblems combine into a solution.
  4. Pseudocode Translation: Structuring logic into code-like steps.

Screenshots of Current Progress#


Problem Selection Page ↑

Problem Selection Page ↑


Problem Decomposition Step ↑

Problem Decomposition Step ↑


Problem Decomposition Step Error ↑

Problem Decomposition Step Error ↑


Problem Decomposition Step Hint ↑

Problem Decomposition Step Hint ↑


Problem Decomposition Step Correct ↑

Problem Decomposition Step Correct ↑


Base Case Step Multiselect ↑

Base Case Step Multiselect ↑


Base Case Step Correct ↑

Base Case Step Correct ↑


Recurrence Relation Step Hint ↑

Recurrence Relation Step Hint ↑


Recurrence Relation Step Correct ↑

Recurrence Relation Step Correct ↑


Algorithm Steps ↑

Algorithm Steps ↑


Pseudocode Step ↑

Pseudocode Step ↑


Progress Page ↑

Progress Page ↑


Skill Estimates ↑

Skill Estimates ↑

It’s been a really interesting project and I’ve enjoyed incorporating AI into my workflow. Check out the code here.

What do you think? Let me know at chase.mortensen3@gmail.com.

Chase