Computer Science Education Week is once again on the horizon, taking place this year on Dec. 3-9, 2018. Many students and teachers will sign up for the Hour of Code, a global movement that invites pupils and educators to try programming exercises—many for the first time.
But what happens after those 60 minutes are over? All the excitement around computer science education will come to naught if teachers are ill-prepared to take the next step, and know how to channel the excitement into teachable moments.
Most teachers have not taken a computer science course in college, and will need professional development support. Citing data from a Google/Gallup survey, Code.org, a nonprofit advocating for computer science education in schools, writes that “principals in rural and small town schools say the biggest obstacles to increasing access to K-12 computer science are the lack of teachers with the necessary skills and funding to prepare or hire teachers.”
To go beyond the Hour of Code, we need to train teachers to teach computer science. But what should this computer science professional development look like?
This summer, I spent several weeks planning and teaching the Foothill College KCI Computer Science Crash Course. This intense course runs for four-and-a-half days, and gives teachers a deep dive into the world of computer science—understanding algorithms, data, the internet and of course, coding. They are encouraged to take off the teacher hat and think of themselves as students, in order to understand the subject for themselves.
Instead of focusing on a specific tool or curriculum, the course is about understanding fundamental concepts in computer science, weaving together the course instructor’s own experiences with a variety of existing curriculum available today. An important goal is to make each teacher a stronger coder so he or she will have the confidence and knowledge to meet the needs of every student in their own classrooms. Attendees can either spend a large part of the course on coding in Scratch (block-based programming) or Python (text-based programming), or they can choose both. They also learn to control motors and LED lights using code with the micro:bit, a small, inexpensive computer.
As I was teaching this course, I found that I was learning just as much in the process. (In a meta way, one could call this my own professional development with a professional development course.) In addition to discovering even more ways to teach computer science concepts based on my interactions with the teachers, I learned so much about computer science professional development itself. Here are some key takeaways.
1. Teachers come from many backgrounds, and will take CS to their schools in many different ways.
This is my third year of teaching computer science professional development through this program, and I am always surprised by the diversity of teachers who attend. Who are these teachers who give up a precious week of summer to learn computer science?
Some were sent and funded by their district, but many others were paying for the training by themselves. Some even set up their own DonorsChoose page to get funding to attend the course!
Educators differed by age groups, college backgrounds, school types, number of years teaching, and definitely on how much coding they had done before. The graphs below show the diversity in their teaching experiences and their background in computer science.
In addition to coming from different backgrounds, teachers planned to take what they learned back to their schools in different ways. Some would be returning to an already-planned computer science class; others were going to enthusiastically advocate and support the very first such program in their schools. Others planned to launch their own after-school computer science offering, as they waited and hoped that the administrators would add the subject to the formal curriculum someday.
Several teachers came from schools that aim to integrate computer science in existing subjects, such as science, math, English, Spanish, or an AVID class. There were a large number of teachers who were a coach or a TOSA (Teacher on Special Assignment) tasked with supporting the integration of computer science curriculum in their schools or districts. And then there were few teachers who had come just to find out what computer science was all about. They wanted to end their summer armed with a better idea of the digital world around them.
2. Python may sound scary. But it’s not!
We offered teachers a choice to learn one of two coding languages: Scratch, which has a block-based visual interface, or Python, which is text-based. We made extra time this year to introduce Python to those interested, based on my own successful experience with teaching it in my own middle-school classes in Los Altos School district for the past two-plus years. It’s an easy language to learn and it is powerful, making it popular in both industry and education.
Teachers with experience with Scratch spent more time on doing the coding challenges in Python. Even teachers completely new to coding were surprised to find that text based programming was not scary as they imagined since they were guided through fun simple code-together projects. Once they understood the concepts, they were able to code several projects independently. Teachers were proudly showing off their Python projects, even taking photos to send their family or friends.
I am a bit crazy about Python—so much so that I’ve written a book, “Creative Coding in Python,” to show creative, open-ended projects (such as making chatbots, adventure games and geometric art, for example) to make the language engaging and accessible to anyone.
3. Taking off the ‘teacher hat’ is a must in any professional development.
Every day during the course, teachers were reminded about taking off their teacher hat, and just being a student. It is important to remember that summer is a time for teachers to learn for themselves, and not worry about how exactly to run the lesson.
While lesson plans and teaching strategies are important, the focus was on first understanding the subject. Especially with coding, teachers are often so busy running a particular project in a class, that they can forget the fun of just coding for the sake of coding. Strengthening coding skills and building a passion for working through difficult debugging challenges translates into a better computer science teacher for all students.
Teachers often commented that being learners themselves helped them understand better what their students feel each day, and helps to build empathy especially for students who may be struggling in their classes.
4. Professional development time is teacher community-building time.
Computer-science teachers are often the only one in their schools or districts, and most do not have local professional community for support.
Their challenges may be different than those teaching other subjects. In dealing with a subject that is still new for most schools, computer-science educators not only have to teach it, but also advocate it to administrators, parents and students as well. They teach a subject where new tools and resources are added everyday, one that involves managing the large amount of screen time. In addition, they usually juggle a computer-science class along with other core subjects, like math.
Professional development sessions offer a great opportunity to spend time talking with like-minded teachers about why and how they hope to teach computer science. The bonds created in these sessions will be valuable as teachers return to the classroom. It will be the start of a much-needed computer science teacher community for them, and they can continue to connect online and via weekend workshops and future events.
Computer-science professional development is not about the tools, the curriculum or the lesson plan. It is about giving teachers, who did not take these courses in college, time to learn and understand more about this fascinating field. Understanding this subject in greater depth enables teachers to explain concepts in ways that allow them to reach all students and spark their own passion for the subject.
It is also about helping teachers find others who want to learn more about computer science to build a community that will support each other in their efforts to introduce the subject to everyone—kids and adults alike.