Capstone: Concept mapping through bottleneck identification

This is my latest capstone idea on problem-solving in programming education. My current idea for solving the problem is to use concept maps to highlight learning dependencies and assess the strength of dependencies by identifying bottlenecks.

Concept map mockup for Algorithms and Data Structures course.

I separate this article into 9 parts. To quickly understand the idea, you can view the slides(here) before diving into the reading.

  1. Motivation
  2. Background
  3. Existing Product Analysis
  4. Big Question
  5. Specific Focus
  6. Methodology
  7. Intended Deliverable
  8. Backup Plan
  9. What I’ve learned

Motivation

My self-perception of myself after my first programming class is — I’m so dumb 😭😭😭 I still struggle a lot when coding, but now I’m used to the frustration. On my programming journey, I realize I’m not the only one. That’s why I start to wonder if the problem is really about us or about our programming education. This project idea is an attempt to investigate the problems in programming education and brainstorm a potential solution from the analysis.

Background

The current challenges of learning programming can be summarised for two reasons:

  • Abstraction difficulty: Teachers have been focusing on teaching the language rather than problem solving and abstraction. From Boom’s taxonomy applied in computer science education, programming demands a high level of abstraction (Buck & Stucki, 2000). Many students experience great learning challenges because they haven’t established correct analogies by viewing different problems but grouping the problems superficially (Gomes & Mend, 2007).
Bloom’s Taxonomy
  • Cognitive overload: For abstraction difficulty, As for cognitive overload, programming learning belongs to intrinsic load due to high interactive elements. Therefore, absorbing knowledge in a short course period with the requirement of monolithic application results in cognitive overload. With limited working memory, students aren’t able to process information and transfer prior knowledge (Garner, 2002)

Note: Intrinsic load (IL) is directly related to the learning material (or task) and is defined by the number and interactivity of elements that have to be processed.

To solve the abstraction problem, SOLO taxonomy proposed a learning hierarchy. Besides digesting the concepts independently, forming a coherent whole by integrating the relations between concepts need to be formed to achieve abstraction (Biggs & Collis, 2014).

SOLO taxonomy

For cognitive overload, Bruner’s spiral principles suggested cyclical learning to increase depth on every iteration, so the learning can build the concept based on prior connected knowledge to solve the resolve the intrinsic load problem (Schwill, 1994).

Hence, using a concept map can reduce the intrinsic load by constantly iterating similar abstract concepts with different problems, strengthening the formation of abstractions by concept relations building.

To define crucial concepts for the map, this proposal separates concepts into two parts, fundamental concepts and threshold concepts(Mead et al., 2006).

  • Fundamental concepts: Each exposure to a fundamental idea should strengthen the student’s understanding of it and of all associated ideas.
  • Threshold concepts: The transformative and integrative characteristics seem relevant since they imply a connection to earlier and possibly following concepts, the implied sequence of concepts might be part of a curriculum.

I defined bottlenecks as not understanding the fundamental or threshold concepts because students can hardly succeed in one course without them. Therefore, this project will want to apply the insights extracted from bottleneck data analysis to design an effective and valuable concept map.

Existing Product Analysis

I analyze three current products, learn_anything.xyz, Panorama, and Xmind concept map, investigating the strengths and weakness.

learn_anything.xyz

It’s a webpage that provides learning resources by keyword search.

  • Strength: For every algorithm, it includes one explanation video, one visualization of the code, and one implementation example. Every new algorithm is on a new page, so it looks less intimidating and prevents cognitive overload.
  • Weakness: The connection among concepts isn’t clearly represented. Besides, the titles, such as Algorithm part II, don’t provide any useful information for learners. By viewing the layout, learners cannot have a holistic view of the learning content.
Algorithms and data structures page for learn_anything.xyz
Search Algorithms page for learn_anything.xyz
Merge Sort page for learn_anything.xyz

Panorama

It’s a webpage on learning Algorithms and Data Structures that a senior has built.

  • Strength: It creates hashtags and prerequisites so learners can easily grasp the important concepts that will be applied and check their understanding before moving on to the next level.
  • Weakness: the prerequisites can be confusing. For instance, it’s hard to understand “programming” as a prerequisites hashtag even though it’s connected to a previous course.
Main page for Panorama
Algorithm page for Panorama

Online concept map

It is a mindmap for Algorithms and Data Structures that I find online.

  • Strength: It provides a broader view of learning content, so the learners can have an overview before diving into learning and position their current progress on the map. Besides, it connects similar concepts together.
  • Weakness: It includes too many concepts and some of them don’t seem to be necessary, such as isomorphic and subgraph in the node of the graph. In addition, it doesn’t provide in-depth knowledge or resources for every concept.
Mind map for data structures through XMind

Through the comparison, we observe that a concept map that includes an overview with complete content, prerequisites specification, appropriate titles, and adequate resources is needed.

Big Question

Through the analysis, I imagine my big question as:

How can we identify bottlenecks in advanced CS education(college+) using data analysis and build up concept maps to improve learning efficiency?

Specific Focus

I want to focus on one CS class in Minerva such as Algorithms and Data Structures, create a concept map by specifying the directions and strengths between concepts, and provide extra resources or programming practice for bottlenecks or threshold concepts. Since I’m the teaching assistant of the class, it gives me domain knowledge and experience. In addition, focusing only on Minerva allows me to tailor my solution to those local audiences.

Methodology/approach

I will implement descriptive data analysis and machine learning algorithms to construct the concept map, including descriptive data analysis and association rule mining.

Intended deliverable

Step 1

Build a concept map for the Algorithms and Data Structures course as my final project work product to pitch my idea to get Minerva data through the Hepta note-taking app.

Example note of hepta note-taking app

Step 2

If I’m able to request the data, the project will be data-focused. I will start with an easy idea by taking the average error rate (# of wrong answers/# of students in a class) for every problem to identify the bottlenecks and extend my concept map based on the information.

Minerva data to take the average error rate

Step 3

As for two advanced ideas, dependency probability analysis and hidden concept identification can be executed through machine learning. For dependency probability analysis, I will use the ML model with neural sequence labeling, and associating rules to figure out the connections and dependencies between different concepts (Chen et al., 2018).

Graph concept map from KnowEdu: A System to Construct Knowledge Graph for Education (Chen et al., 2018)

Based on it, I would like to create a concept map that specifies the directions of edges and output a probability that represents the strength of dependencies between concepts.

A mock-up that demonstrates the dependencies for deliverable

As for hidden concept identification, I will integrate external datasets, such as Wikipedia, to find the unobserved prerequisites of the concepts through Concept Graph Learning algorithms (Yang et al., 2015).

Unobserved concepts in graph concept map from Concept Graph Learning from Educational Data (Yang et al., 2015)

Backup Plan

If I don’t end up getting the data, this project will be product-focus. I will learn software engineering to present the concept map on an interactive website like the one below (System, n.d.).

The website from System Beta with the link of the website (System, n.d.)

If I cannot pass the human subject research committee, I will no longer be a data scientist, but become a software engineer all of the sudden 😅

What I’ve learned

During the whole idea formulation process, I learn two things. First,

Shut up and do whatever I am interested in for a few days and don’t give a fuck about school

The human research committee in Minerva is the biggest constraint. I cannot analyze anything that is related to humans, which is paradoxical for me because I want to improve people’s learning. During this process, I keep throwing away every new idea, feel so tired, and want to settle at whatever works. I notice I start to feel avoidant and might soon be on a dead end. At one point, I decide to discard all expectations I have and constraints from school for a few days and scramble all the knowledge I have into something I actually want to do. It produces something unrealistic and shitty but at least something has formed.

To improve that ugly baby, here comes the second learning,

Use my fake idea to rant at my resourceful friends as loudly as I can

Before this, I always research everything on my own, I read lots of papers but still feel stuck. However, after I imagine the fake deliverable that I like, I use it as a basis to complain about all the problems to 7 friends and professors in two days. The sky finally lights up.

Three useful resources I discover include:

  • Relevant technical class: In my machine learning classes, I start to imagine capstone is just a final project for a class, and that reduces the stress of building a “big project.” Besides, knowing the techniques allows me to imagine what I can really do and apply it in real-world situations instead of thinking in the air, and freaking out about the feasibility problem.
  • Domain expert friends: I rant to all my machine learning friends, accept their critiques, and adjust my scope and solutions. Since I have a fake idea to start with, the discussion is concrete. For instance, Leo said, “Why would you use machine learning when you can simply take an average?” Not until then did I really understand when and why to use machine learning. I learned from Finn that machine learning should be applied for scenarios in that machines will outperform humans, such as prediction and pattern identification, rather than the complicated contextual problem analysis.
  • New mindset & Idea generator friends: My product friends provide me with new framing and simulate more ideas. I was previously stuck with my data analysis idea and found all my ideas irrelevant and useless. Svitlana’s product mindset reframed my thought. She said. “Wow! This sounds like a great product idea, you can do a case study, and learn software engineering…” The product mindset gives me fresh eyes to appreciate things that aren’t data analysis and further produced my backup plan. Yueh Han who was interested in new tech products told me about lots of adjacent products too. This provided me with a direction for finding more resources.

--

--