Chapter 2 of Juha Sorva’s dissertation Visual Programming Simulation in Introductory Programming Education discusses two different taxonomies. He outlines the basic theory of both Bloom’s and SOLO taxonomies, and then discusses introductory computer science and programming with regard to the described taxonomies. I’m dedicating this blog post to a brief discussion of Bloom’s and SOLO and how computer science fits into the theory.
First, let’s take a look at the well-known Bloom’s taxonomy. It consists of a hierarchy of stages which categorize learning objectives according to their expected cognitive difficulty. Below is a depiction of the hierarchy:
Rather than redefine all of the levels of the hierarchy, I am just going to include the concise descriptions from Sorva’s text. The most important parts to note are the upper levels of the pyramid, Analysis through Evaluation.
Sorva points out that, according to Bloom’s taxonomy, introductory CS courses set the cognitive bar very high. In fact, in a course like CSE 231, the act of developing a small program to solve a given problem (like generating the first x numbers of the Fibonacci sequence) fits into the fifth level of Bloom’s taxonomy, “Synthesis.” Sorva’s major takeaway here is that the instructors of computer science are setting the bar surprisingly, and perhaps unrealistically, high for introductory computer science students.
In order to further support this claim, Sorva next presents SOLO taxonomy. Sorva’s dissertation was my first exposure to SOLO, which approaches learning entirely differently than Bloom’s taxonomy. Instead of classifying the expected cognitive difficulty of a task given to students, SOLO classifies the difficulty of the outcome of a learning objective. It describes the learning progression a student should undergo. The expected steps of a students are described below:
Perhaps more useful is the figure below, which shows what outcomes/solutions students would submit for the metaphorical task of building a house:
Over the past six years, a research project called BRACElet has undertaken to classify code reading and writing processes according to SOLO taxonomy. When studied with respect to introductory programming courses, the ability to to write a program to solve a given problem is classified in the highest level of taxonomy. In other words, the successful outcomes of programming exercises are structurally complex.
Similar to Bloom’s taxonomy, SOLO taxonomy classifies writing a basic program to solve a specific problem at a high level of cognitive difficulty. Such a task requires integrated knowledge about computer programming, forethought, and planning to write a successful solution.
See the description below which summarizes the results of the study:
Despite the fact that SOLO sorts learning outcomes by structural complexity while Bloom’s classifies cognitive difficulty according to the task assigned to students, both taxonomies allow Sorva (and us) to conclude that what we consider to be basic, introductory programming goals are very difficult, and possibly overly optimistic for introductory students.