Teaching Python

We're two middle school teachers learning and teaching Python

The Metacognitive Process: Part 1 of 3

Excerpt from Intro: The importance of learning like you are a teacher

Having different tricks up your sleeves, like an experienced teacher, can help you when you start to learn how to code. These tricks allow you to develop the metacognitive skills of learning how to learn. And knowing these strategies will help you analyze your learning material, reflect on what you are learning, and direct your path for learning.

In this three-part blog series, we will investigate three phases in a learning process, develop your metacognitive studying techniques, and focus our attention on improving your learning strategies. Whether it is your first day of coding or learning another skill for your career, using these processes can help you assess your learning journey and improve your coding knowledge.

Part One: What do you know?

When you first start to learn how to code, or if you want to learn a new concept in Python, your first thought is to turn to the Internet. Also, every experienced programmer recommends reading books, listening to podcasts, watching videos, or starting a course. Sometimes, if you are lucky to have one, you turn to a mentor. Regardless of the resource, usually, your main objective is to get a baseline understanding of new concepts, familiarize yourself with code snippets, and acknowledge any new vocabulary. You probably think that this step should be your first dive into the learning process.

However, you probably did not realize that the moment right before you opened the internet was a powerful opportunity for your learning process to be improved. So how do you engage this?

Let us look at it through a student-teacher scenario.

The process is dependent on what type of teacher you prefer to have instructing you. How a teacher chooses first to introduce a new topic of study to students depends on the teacher’s style or pedagogy. The deliverer of content, the “Sage on the Stage” person, is one type of teacher. This type will deliver the information required during your learning path. The Sage will tell stories that help you connect alternative concepts to the new topics being presented. Your role as a learner is to listen and visualize these connections. You are only a consumer of someone else’s knowledge. When learning independently, the experienced author, video, or tutorial has replaced the ‘sage’. Unfortunately, it is difficult to find quality resources that present concepts and the connections that your brain needs. However, a good “Sage on Stage” teacher knows that it is impossible for learning to happen without connection. Students need to experience connections to concepts to provide both a context and relevance, of meaningful and authentic learning.

However, as great teachers know, although sometimes entertaining, ‘Sages on stages’ do not always make the best educators!

Donna Ogle developed the KWL Chart in 1986, and the tool intended to help students activate their background knowledge before reading a nonfiction text. But over the years, this “tool” has been modified and used to help learners trigger and activate an understanding of different subjects and concepts. It is a great activity that every seasoned teacher should know, and every learner should try to apply. It is rooted deeply in the process of metacognition and focuses on being reflective and mindful of your learning process.

The KWL chart is divided into three parts but serves four functions.

  • Assisting learners in activating prior knowledge,
  • Setting an intention for the learning,
  • Linking new information to previous knowledge, and
  • Helping the learner to keep track of the learning process.

Let’s dive into using the KWL chart and how I have used it to learn Python.

There are many versions of the KWL Chart; the basis and the strength of it lie with three essential questions:

  • What do you Know?
  • What do you Want to know?
  • What did you Learn?

Identifying “What do you Know”: How do we apply the first part of the KWL method; what do you know?

If you are new to coding, you may not think you know much; however, this task may surprise you. If you have coded before or are working on solving a unique problem or task, you may have a more robust understanding of your current knowledge. In either case, list out what you know is true. Wrestle with the things that you do not understand. Try to tease out where you should start. You can use bullet points, sketches, lists of words; just get it all out of your head. List out books you have heard of, authors, courses that your friends have suggested. The list should be extensive.

Having an awareness of what we know helps our brains to assign meaning and find substance. We need to be aware of things in order to recall or comprehend it. The stimulation of asking questions, and engaging in a brainstorming activity requires your brain to start to categorize and chunk the information you already know to be true.

In the brainstorming process, I do recommend you skim a few books. The books serve two purposes. First, they help you identify that most coding books are very similar in the topics and context; however, some may approach it very differently. And secondly, they may not fit your learning preference. For example, I once read a book called “Explain the Cloud to me Like a 10-year-old”. This book was easy to read and helped me get a general understanding of what the cloud is and does. However, when it came to python coding, I liked reading Finxter Coffee Breaks and Python for Kids as my first book. Two completely different styles of writing, but both served the purpose. I didn't know how to code, and interestingly enough, I didn't code along with any of these books, but I liked the explanations, the code snippets, and from reading over the code, I was beginning to gain basic knowledge of what I already knew about Python.

As you build your list, focus on what you already know first. Do you already know a language? Do you know about the importance of syntax in languages? Are you familiar with the concepts of conditionals in math? Are you good at breaking down large tasks? Can you understand how a program flows? As you begin to read through your first book, identify the connections you can make to things you already know. Making connections between new concepts and concepts with similar attributes will help your brain make more connections. Furthermore, these joyous moments will help you when confidence is low or if you need to create relationships with other topics later on.

There are very few teaching tools that are as effective as they are easy to use. And what is even better, they are super to use when you are teaching yourself to code! The initial discovery of vocabulary helps the learner identify what is already known or what connections are made.

"To be a successful problem solver, focus first. We get stuck in problem solving when we don’t first prepare our brain by focusing on the basics. Don’t just dive into problem solving without studying the explanations first. You need to lay some basic trails on the focused pinball table.”

Barbara Oakley

As you are skim reading, you may realize that a book, is just ‘not for you.’ You may decide to switch up, do it. Do not let a book that you can’t connect to, stop you from learning how to code. More importantly, the more books you can quickly skim can help you gather different perspectives on learning how to code.

So go for it, list out what you already know!