Some thoughts on teaching in general:
- For you to show is better than tell. Having students do is better than you show. Having students teach others to do is better than having them do.
- When scaffolding a lesson, make each step-up challenging but accessible. Students need to work hard to take another step in their learning but it can't be so hard that it seems impossible for the student to do.
- Happy Thanksgiving! Thank your programming students for working hard (growth mindset)!
- The saddest occupational hazard for teachers: Forgetting the struggles you went through when you first gained knowledge in your current area of expertise.
- Good teachers repeat themselves! They repeat themselves! Just explaining a concept once is not enough. You have to repeatedly examine the topic and give opportunities for students to engage in practice regarding the topic.
- If a critical step to learning is to expose, maybe even embrace, your ignorance, avoiding that step—if you try to run away from your ignorance—severely hampers your learning.
- Socrates was right: The best teaching comes through questions. But, instead of making a statement, let me ask, "when have you learned the most?"
- Why a simple "do this code recipe" lesson will only take you so far if you're a novice: Teachers help reveal and move students out of unconscious incompetence. Just typing in something doesn't reveal to you what you don't know, beyond that you do not know certain commands.
- Because novices do not know what they do not know, asking, "do you have any questions?" is not that helpful. Programming teachers have to ask their students detailed and specific questions to discover what their students are actually thinking.
- If, as a novice, you, "do not know what you do not know," a critical step in learning is to reveal, expose, and discover your ignorance. Not just that you do not know, but what you do not know and why you do not know.
- We all know teachers need to ask students questions (e.g., the Socratic method). But, if a student won't ask the teacher questions, it shows the student isn't ready to learn what the teacher has to teach (h/t Canao in Joanne Shetler's, And the Word Came With Power).
- When your students ask interesting questions that you can't answer, roll with it and encourage the class to figure out the answer together with you.
- Have students prep for class by reading, watching videos, and trying interactive tutorials. Use the questions they have to guide your lessons.
- Center questions and lessons around common misconceptions to breakdown and reform knowledge structures.
- Learning is an act of a community. Form groups in your classes and reform groups. We learn from everyone!
- Start from learning goals, not from covering content.
- Five words teachers should never say to a student: "You didn't already learn that?" It discourages and does not help the student to fill-in their gap in knowledge.
- Textbooks still matter! Learning via videos is great, but students also have to practice analytical reading. In your job, the team that worked on your project before you will hand you a report or whitepaper about what they did, not a video. Mortimer Adler and Charles Van Doren's book How to Read a Book is the classic on how to read analytically. Highly recommended for students to read and digest! And then practice with your textbooks!
- When teaching novices, make sure you define and demo lingo you think is self-explanatory. E.g., "comment out/in": what does it mean that "comment" is a verb and what is "out/in" relative to?
- Usually, it is more important to first learn a process for problem solving and creativity than to first try to create an intuition for either. Intuition will come on its own, when you have developed expertise. Until then, you have to practice the process.
For more on learning Python programming: An Introduction to Python Programming for Scientists and Engineers, by Johnny Wei-Bing Lin, Hannah Aizenman, Erin Manette Cartas Espinel, Kim Gunnerson, and Joanne Liu (Cambridge University Press, 2022). |