One of the main benefits of MEET, for me as an instructor, is the opportunity to have colleagues. At home, I teach in a school with 100 teachers where I’m the only computer science teacher. Here, I’m one of 15 instructors and we’re all teaching computer science 8 hours a day. And what the other instructors lack in previous experience, mostly being undergrads and grad students, they make up for in enthusiasm, dedication, intelligence, and bravery. While experience comes to anyone who sticks around, these other qualities aren’t so automatic.
It’s easy to say that I’ve had more conversations about how to teach computer science in the past month than the past year, but it’s also true that I’ve had a lot more conversations about teaching in general. I still think of myself as a relatively new teacher with lots to learn, so it’s been interesting to be in the position where people ask my opinion about instructional or student interaction situations. And it’s even more interesting to find out that I have something to say. I’ve realized that sometime in the past five years I learned to teach and, just as importantly, have come to believe that teaching is a set of skills to be learned — it’s not knowledge that you can simply read about or download, and it’s also not something you have to be born with.
Through conversations with my new colleagues, I’ve made some progress on a set of problems that have been troubling me for as long as I’ve been teaching computer science. It’s great to be able to stay up late and talk through the issues with people who very immediately and personally see both sides of teaching and learning computer science.
Talking with these MIT people, some of whom are not-CS majors and the rest of whom are from the new era, has affirmed my belief that SICP was a crucial course for me. I need to distill the points I think were great about the course and see if I can bring them into what I teach back home. Basically this comes down to providing a model for computation that is robust across languages, motivating the need to express computation in a structured format, and then providing low-floor/high-ceiling projects.
I’ll write more about that soon, but one of the key metapoints is summarized by Hélène Martin in her recent post, How to Create Computer Scientists:
“Most importantly, I was learning how to learn. That’s perhaps one of the most important things in computer science given that all of its fundamentals as well as its artifacts are man-made abstractions and that new ones come up every day.”
This is something that one of our local staff members, who has an education background but knows little about CS, came to understand in a conversation recently. This subject is relevant to everyone because it requires both technical precision for the details of syntax and the implications of logical operations, but also vast creativity, design, and systemic thinking. I honestly think that the tools and models of CS are among the most interesting things I could possibly be offering to young people who are at the point where they have become capable of using powerful models and frameworks to structure and enhance their thought processes. It’s really wonderful to have other people to work with here who understand and believe the same thing.