Mind Mapping

Reflection is an important part of the learning process, and is often used to connect big ideas or correct misconceptions that have developed across the academic year. It looks very different from classroom to classroom, and can be found both online and off. Although I tend to use written reflection in my own class, I thought it might be nice to explore the idea of digital mind mapping because this appeals more to my own sense of creativity (and who knows, maybe it will appeal to more of my students as well!).

In My Classroom:

There are two very big programming concepts that are taught in AP CSP, algorithm and abstraction. The former is much easier for students to understand, while the latter is a lot more nebulous in nature (hell, I still have arguments with seasoned computer scientists about this topic). I find that mastering abstraction is one of those skills that just clicks, and once it happens, you can’t remember a time that you didn’t understand (it also means that it’s hard to describe how you got there!). I thought that mind mapping would be a great reflection exercise for cementing my students’ understanding of this topic because it could push them to really make sense of the components that lead to good abstractions within their programs.

Project Specifics:

Here’s what I put together when I challenged myself to make a mind map about abstraction:

It’s hard to tell, but you can also click on the word “Abstraction” and it will send you to an article that further explains the term. As you can see, I found myself trying to describe both the characteristics of good abstractions (featured below the line) and the programming tools we can use to implement those characteristics within our programs (featured above the line). It was difficult for me to list characteristics that might actually be understood by a novice programmer because many of these terms are only contextualized after one has spent a lot of time writing really ugly code. I think this highlights a problem found within the AP CSP exam; students are tested on concepts that are only born out of years of trial and error. This is one of the reasons why I prefer teaching AP CSA; it’s sole focus is programming, and it does not expect you to verbalize your conceptualization of one of computer science’s most abstract ideas.

If I were to give this project to my students, I’m not sure I would expect them to make a mind map from scratch just because it was actually pretty difficult to do it myself. Instead, I might just ask them to make new illustrations for each characteristic listed. This would focus their efforts on contextualizing each term, which is more valuable of an experience than weighing the appropriateness of each characteristic at this point in their programming careers.  I’m also curious what the list of big ideas might be for AP CSA, where things are a lot more narrow in scope. I am excited to see the new description for the AP CSP Create Task; perhaps many of the above complaints will disappear. Take a look and let me know if you have any ideas! I would love to hear what you have to say.




Leave a Reply