Welcome to my first blog post - ever. The last time I regularly expressed my opinion in writing was for a fanzine about a new kind of music called “Indie Rock”. So please be gentle.
I was thinking about the CS10K project meeting last week at Stanford and wishing that we had discussed our individual visions of our role as a facilitator as well as our vision of the site’s goals. I am willing to bet each of us has a slightly different idea about our purpose. My vision is a site/community focused on how to best teach computer science to ALL students. I see my role as initiating and encouraging this conversation in a trusting community of teachers. This may be obvious to some of you, but I still think that it needs to be said...as often as possible. I think back to many similar meetings, conferences, panel discussions, etc that have missed this essential point - instead focusing on the latest app, IDE, or language. “If we could just identify the right one, we will fix Computer Science education, students will learn all the right concepts, and we will create more computer scientists.” So we end up focusing our conversation and professional development on how to use the new technology or how to teach the new technology, instead of focusing our efforts on how to teach with the new technology. There is a subtle but powerful difference. We really need to be focusing our efforts on how to effectively teach with a sensitivity to the needs of our individual students. Sure, the content and tools are important, but if students are not learning, what difference does it make?
Which brings me to my real motivation for writing: I am still not convinced that our larger Computer Science Education community understands the difference. Last night my seventh grade son mentioned a math problem that he and only one other student were able to solve in his class. The problem asked how many handshakes are required in a room of 8 people if each person is to shake hands with every person one time. I was immediately excited because this is the Handshake Activity from Exploring Computer Science (ECS) Unit 2. How cool! So I began asking him about his experience. How did you solve it? How did other students try to solve it? Did you work in a group or with a partner? Did you have to explain your solution to the class?
My son solved it by drawing a picture illustrating the handshakes and then counting the result. As a problem solving technique, this works. I asked him to solve it using other numbers. Each time he drew a similar picture. I then proposed a number too large to draw a picture which lead to a great conversation about solving for a formula using the area of a right triangle (this was his moment of discovery from looking at his drawings). This was great for my son, but what about the other 31 students in his class? Quick note: I like his math teacher. She works hard and does a great job and is sensitive to many of the students’ needs. However, based on my son’s answers to my questions, I feel a great teaching opportunity was lost.
This was a hard question for seventh graders, and only two students got it correct ... on their own as homework! I know that with more thought about how to teach this lesson, more students could have had the satisfaction of understanding how to think through to the solution. I’m not as concerned about getting the right answer, but about the lost opportunity to teach problem solving techniques and discuss other possible ways to solve the problem. These discussions/experiences are just as important as getting the right answer. So I could only think that there were students in my son’s class that felt left out or maybe like they didn’t belong or convinced that they were just not ‘good’ at math. I wanted to tell his teacher to just ECS it! Create a scaffolded lesson sensitive to students’ experiences, get the kids working together and actually discuss their ideas ... together!
As Computer Science Teachers, how do we construct our own lessons to create an experience where our students can think, discover, and collaborate? How do we create a classroom where they have the opportunity to contribute to discussion, create meaning and feel successful? So maybe there are students in my son’s class that can’t solve the handshake problem on their own, but by participating in the process maybe the next time they will think to draw a chart or start with a smaller sample size, or look for patterns. I’m certainly not suggesting teaching should just be about generating good feelings. We still need to make sure that our students are actually learning the material. But HOW we teach has a much bigger impact than just using the right app or choosing the right language.
This is what I talk about when I envision the CS10K site. I want to create a community where teachers feel safe to discuss their practice - warts and all. I want to create an environment where we can learn from each other’s success and failures. Sure, there will be discussions about the latest apps, IDEs, and languages but discussed with a focus on equity and good teaching practices. Just ECS it!!