Introducing CSPdWeek

We shine a spotlight on CS education for students each December during CSEdWeek. Why not do the same with a perennial offering for CS professional development for teachers?

After all, professional development has long been recognized as one of the key ingredients in CS education. Bringing even one PD provider to train a handful of teachers and counselors in a small district is prohibitively expensive, and even the smallest school district will need multiple solutions to implement the dream of CS4All. One way to solve this problem is with grants and sponsorships, subsidizing local workshops for a handful of teachers at a time. However, this only solves part of the issue–even with limitless dollars, scheduling constraints make it extremely difficult to bring multiple providers in at the same time. This makes it nearly impossible for most districts to adopt the broad mix of offerings that are necessary to increase diverse participation in computing. In other words, coordination can be just as large a bottleneck as funding.

CSEdWeek is a model for coordinated advocacy. Schools in a district, in a state, and across the country effectively leverage funding and volunteer efforts at the same time every year. It’s time to do the same for professional development, and this is the impetus and foundation for CSPdWeek.

The first annual CSPdWeek is this July 18th-22nd, 2016 – find out more at!

CSPdWeek Events

An inaugural event, offering PD from Bootstrap, NCWIT Counselors for Computing, AP CS Principles, and Exploring Computing Science will be held during the week of July 18-22nd at Colorado School of the Mines. The event is sponsored by the Infosys Foundation USA, with additional support from the National Science Foundation, The National Center for Women & Information Technology, and the Computer Science Teachers Association. We invite teachers and counselors from across the US to apply for full funding (covering travel, food, lodging and PD), with an emphasis on those working in high-needs schools. Join nearly 300 educators from across the country, and spend the first CSPdWeek with us in Golden, Colorado!

Can’t make it to Golden? That’s okay! CSPdWeek is for everyone, and we encourage other PD providers to offer their own professional development events during the week. Professional development matters, and will be a crucial component of CS4All. By staking out one week during the summer, and coordinating our efforts, we can amplify the impact of everyone in our community.

It’s going to be an incredible summer, and we hope you’ll join us in celebrating CSPdWeek 16!
Owen Astrachan (CS Principles)
Gail Chapman (Exploring Computer Science)
Joanna Goode (Exploring Computer Science)
Jane Krauss (NCWIT Counselors for Computing)
Emmanuel Schanzer (Bootstrap)

Graphic Novel Introduces Coding to Middle Schoolers

By Paul F. Lai, PhD Candidate, UC Berkeley Graduate School of Education

By In her fifth year teaching computing, Melissa Dohm found an engaging and effective new way to introduce the core concept of binary to her diverse middle school students at Ochoa Middle School in Hayward, California. She discovered Secret Coders, a graphic novel created to teach coding to adolescents.

Secret Coders, written by Gene Luen Yang (himself a longtime Bay Area CS teacher) and illustrated by Mike Holmes, premiered its first volume in October 2015. The graphic novel unfolds the story of Hopper and Eni, two intrepid pupils in a Hogwarts-like private school, where instead of mysteries coded in magic spells, the secrets are revealed through fundamental coding concepts.

I spoke with Melissa, also a technology teacher leader and English teacher, about using Secret Coders to teach binary.

Lai: You had an inventive way to teach binary in the past, is that correct?

Melissa: Since my first year, I taught a binary using a “magic trick” in which students learned to guess a number between 1 and 15 by asking a series of questions. Students made an Excel project with conditional statement functions to get the right number. They loved it and would show all their friends. But getting them to “understand” binary was challenging and would take a full week of struggling with the concept.

Lai: How did Secret Coders help you teach binary?

Melissa: The comic was a quick and interesting. When Eni starts to describe binary to Hopper, rather than using strictly mathematical language, he makes it into a game with pennies and boxes drawn with sidewalk chalk. I borrowed that game for our class’s “kickoff,” copying Eni’s methods and replicated those steps from the comic on my board, with magnets and boxes. Kids were really excited by the puzzle, and seemed to easily grasp the concept.

Lai: So the graphic novel provided a visual and game-based way of letting students play with how a series of “yes” or “no” configurations.

Melissa: And they really grasped it. When I announced, “We’re going to read a comic book today!” the students were thrilled. I gave a synopsis of the main characters and setting as we walked through the beginning pages.

Lai: You’re an English teacher as well, and familiar with how comics work. How did the visual narrative of a graphic novel help with conceptual learning?

Melissa: The book was a phenomenal addition to the binary lesson; they couldn’t put it down. They responded to binary as part of the mystery of this haunted school. When I asked them whether Hopper had gotten it right the first time, they all knew where she’d gone wrong. What normally took a week for me to teach, most of the students understood within a day.

I usually typically use a presentation to explain the history of binary, the base 2 system, etc. But this time, they received that information much differently after the graphic novel lesson. And they did really well with the activities involving the magnets and boxes on the board. By the time we took the quiz at the end of the week, a much higher proportion of the students— nearly all of them— showed that they understood binary. They even excitedly taught it to another teacher!

Lai: Describe your classes.

Melissa: Our school is very diverse, so I have students from many ethnic groups, a growing number of girls, kids from different socioeconomic backgrounds, and students with different abilities. One of my female students struggles with basic math concepts, but the magnets, columns of boxes, and visuals from the lesson gave me a way to support her problem-solving when she was otherwise stuck. She couldn’t do the basic math, but Eni’s lessons and the columns helped her figure it out.

Lai: How do you plan to build upon this experience?

Melissa: The kids are really curious what happens next in Secret Coders. They wanted to know how they could get the book so maybe they will read ahead and spoil it. We will try out the next parts of Secret Coders, where Hopper and Eni start learning to code with a robot turtle and I plan to use future installments of the graphic novel. Giving students the story and characters to care about, along with the smart visual lessons you can present in something like a comic book, really fits the way I try to teach computers in interesting and hands-on ways.

More information about Secret Coders, as well as instructional resources, can be found at Read more stories with ideas for increasing diversity in CS education in the CSTA Voice

A review of Google’s Exploring Computational Thinking resources

By Joe Kmoch

In Spring 2015, Google began work on revamping their CT website. Their materials are available at a website called Exploring Computational Thinking:

A team at Google developed a template for lessons which would be made available on their site. They took the large number of lessons that were already on their site and rewrote them into this new lesson plan format. They hired a group of educators to review all of those lessons and now have about 130 lessons and other materials available.

These lessons have specific plans, are interactive and inquiry-based, and include additional resources. There are lessons in 17 subject areas mostly in math and the sciences. These lessons are also cross-referenced to various sets of international standards (Common Core, NGSS, CSTA K-12, and standards from UK, Australia, New Zealand and Israel).

At about the same time, another Google team developed a group of six videos called CT@Google which focus on the Seven Big Ideas from the CS Principles course, and how Google uses them in their work.

Finally, Google developed an interactive, online course, CT for Educators, where teachers learn what CT is and how it can be integrated into a variety of subject areas. It is quite good and can help a teacher work CT concepts into their regular lessons:

All of these are quality resources.


Disclosure: the author was compensated by Google for assistance in editing the collection of lesson plans mentioned in this article.

Disrupting the Gender Gap in Computer Science

On Friday, I’m giving a TED-style talk for our regional school association on what I call the “girl problem” in Computer Science, and how we might fix it. I’ve been preparing for this talk for months, reviewing research about best practices for engaging girls in Computer Science and generally examining the landscape. I work at an all-girls’ school, so you’d think this wouldn’t be an issue for me, but I still have to fight against stereotypes that Computer Science is geeky or boring, and girls’ lack of confidence in their ability to do the work. Once I get them into the classroom, I have a little easier time of it that those of you at co-ed schools. It’s getting them there that’s the challenge. For many of you out there, not only do you have to work to get them there, often you have to work to keep girls in the class and convince them to take the next one. Luckily, there are a lot of smart people out there doing research in this area and every time I turn around, I swear I’m seeing a new report on ways of engaging girls in Computer Science. I want to share with you some of things I’m sharing in my talk about why this is a problem, and what you can do to help fix it.

Why we have a problem

The reasons behind why the percentage of women pursuing a CS undergrad degree has fallen to around 18 percent, half of what it was 30 years ago, are surely complex. Consider, though, the sexism that still exists in our society and that girls find themselves facing at a young age. Think about the toy aisle with its distinct pink and blue color coding. The message that the toy aisle often sends is that girls are meant to be homemakers, caretakers and nurturing while boys are supposed to go places, design things and build stuff. Target got rid of gendered toy aisles and people went nuts.

The idea that boys are better at some things or meant for certain kinds of jobs and girls others permeates the technology industry as well. In my research, I ran across an article just reporting the low percentage of women in the technology industry. The comments on the article fell into two categories: 1) women aren’t as good at technology as men; and 2) women just aren’t interested in technology. Sadly, I’ve seen these attitudes among some educators, and it’s simply not true. Keep in mind that these commenters are often sitting on search committees and are potential co-workers. Their bias might be keeping them from hiring perfectly qualified women. After all, they believe they’re inherently not as good as men at Computer Science and/or are not really interested in the field.

The all-boys’ club image of Computer Science isn’t helped by the media, either. One prime example is Silicon Valley, an Amazon Prime show about a start-up. Sadly, there are no women on the development team, and the guys sit around a house coding all day and sometimes all night. They’re stereotypically socially awkward, especially around women. The show probably doesn’t make being part of a start-up look appealing to girls. There is research that suggests that television shows and films give young people ideas about what kinds of careers are appropriate for men and women. When only 7 percent of the computer scientists in film and only 16 percent of the computer scientists on prime time television are women, they’re certainly not seeing CS as an appropriate career very often (“Gender Roles and Occupation“, 2013).

This cultural environment can make girls not only find CS unappealing, but it can make them feel like they don’t belong, which can lead to a crisis of confidence. Girls already have a tendency to feel like the dumbest kid in the room even when they’re getting the best grades. Boys, on the other hand, feel just the opposite. They might be making Cs, but still see themselves in the top of the class. Girls are less likely to take risks than boys, which is great when it comes to deciding whether or not to skateboard off the railing, but not so great when it comes to trying out a class they’re unsure about. A great book about how girls (and women) feel less confident in their own abilities is The Confidence Code by Katty Kay and Claire Shipman. There’s some fascinating research in there that helped me understand some of my students (and myself) better.

What you can do

Okay, so we have a problem. There are actually some fairly easy things to do. In general, I would say to you, think about the message you’re sending to your students in the way your classroom looks, what kind of assignments you create, how your students are asked to complete those assignments. Think about the toy aisle and whether you’re telling girls this work is not for them.

Look around your classroom. If you have control over how it looks, please tell me it doesn’t look like the set of Star Wars, Dr. Who, or a video arcade. Yes, we geeks like those things, but it can be off-putting for some and send the message that in order to be a part of the class, your students have to like those things, too. Keep your decor neutral. Or maybe add some posters of women in Computer Science to go alongside your Mark Zuckerberg and Bill Gates posters. Think Grace Hopper, Jean Bartik, Maria Klawe, Karli Kloss, or Marissa Mayer. Recent research shows that when the classroom is neutral, girls are three times more likely to show an interest in Computer Science than when the CS classroom is stereotypically geeky. It makes a difference.

Think about your assignments. Are they the same assignments you did in high school? Unless you were in high school a few years ago, it might be time to update them. Connect your assignments to the real world. Many girls particularly like to see practical applications of the work they’re doing in class. Girls, in particular, also like to know that the work they’re doing could potentially help someone or help solve a problem that plagues the world.

Also think about how you have your students work on assignments. Does everyone complete all the assignments individually? Consider using pair programming, peer instruction, and group work. All of these methods not only make the work potentially more appealing to girls, who appreciate the social aspects of work, but they also help all students retain Computer Science concepts. They’re very effective pedagogical strategies.

Finally, encourage your students, especially your female students, along the way. When they make a mistake in class, be supportive, help them learn from it. If a girl seems to like CS, whether or not she’s good at it, encourage her to take another course or enroll in a summer program, or pursue CS at the next level, whether that’s high school, college or graduate school. Recent research from Google shows that encouragement is a key factor in retaining women to continue their student of CS.

If you’re in need of more ideas, there are plenty out there. Here are just a few places to start:

Creating Games in ScratchJr without Variables

Written by Aung Nay & Aye Thuzar

ScratchJr is a popular graphical programming language that allows children from age five to seven to create “interactive and animated scenes and stories” [1]. It addresses the lack of programming tools that focus on “content creating or higher level thinking” [1] for kindergarten to second grade students. ScratchJr software deployment comes with the curriculum and online community, and the design goal of the ScratchJr software is to “provide young children with a powerful new educational tool as well as guidance for teachers and parents to implement it to the benefit of diverse areas of early learning, from math and literacy to interdisciplinary knowledge structures” [1].

Even though ScratchJr is great at making interactive and animated stories, creating games was a challenge since ScratchJr does not have variables. Because of this, we developed the idea of a sprite moving towards a goal as an ongoing visual tracker/indicator of the player’s progress [2], which allowed us to create a variety of games. The game creation allowed us to move beyond the interactive storytelling phase and pump excitement beyond. For the purposes of this blog, we would like to introduce one of the sample projects, Safari Animals. For this game, the players will have to tap on only the safari animals to win the game. There will be various animals that will be shown but not all will be safari animals. When a non-safari animal is tapped, the game will be over. Please view the game video at


Fig 1. Safari Animal game with visual progress tracker

Fig 1 shows a sample project of a game that has the progress dot which starts at row 15 and column 16 and has a red bars at row 15 and column 20. As the game progresses, the red dot moves towards the red bar. When the red dot reaches the red bar, the player is greeted by a “You Win” scene. Along with the achievement tracking, this game also tells a story about animals, particularly the taxonomy of the animal kingdom. The storytelling aspect of the games always draws students in, motivates, and inspires them to create their own games with storyline. And this creativity has to be integrated into the lesson plan. Please see and download the Safari Animal lesson plan at

ScrachJr is a great platform for younger kids because you can create exciting games with the progress tracker using fewer code blocks than Scratch or other block programming environments. We hope that ScratchJr team maintains and updates it regularly and more K-2 teachers as well as Pre-K environments will adopt ScratchJr.

Our paper, “Teaching and Learning through Creating Games in ScratchJr: Who needs variables anyway!” will be published in this month as part of the proceedings of the Blocks and Beyond Lessons and Directions for First Programming Environments A VL/HCC 2015.


[1] Flannery, Louise P., Elizabeth R. Kazakoff, Paula Bontá, Brian Silverman, Marina Umaschi Bers, and Mitchel Resnick. “Designing ScratchJr: Support for Early Childhood Learning through Computer Programming.” DevTech Research Group. Proc. of 12th International Conference on Interaction Design and Children, ACM, New York, NY. Tufts University, n.d. Web. 29 Aug. 2015

[2] Thuzar, Aye, and Aung Nay. “Teaching and Learning through Creating Games in ScratchJr.” Proc. of Blocks and Beyond Lessons and Directions for First Programming Environments A VL/HCC 2015 Workshop, Atlanta, GA (To be published in Oct. 2015)

CS Principles and Creativity

Students will likely need exposure to, and practice with the CS Principles big Idea “Creativity” many, many times before a “creative – innovative – mindset” is comfortable and natural. You may have to undo years of “non-creativity conditioning.”

It is not enough to tell students that creativity is important; you must show students that you value creativity by actively engaging in it yourself. I don’t have to tell you that a unit exclusively “on creativity” is bound to fall flat!

So how can we build creativity and innovation into the very core of CS Principles? A few suggestions from a variety of experts:

  1. Let students know that there are usually multiple paths that lead to understanding.
  2. Arrange student collaborations that provide meaningful (to them) real-world, problem-solving opportunities.
  3. Provide lots of project and performance choices that employ a variety of “intelligences” whenever feasible.
  4. Encourage them to look for and experiment with new things and ideas.
  5. Encourage questioning.
  6. Be sure your grading does not penalize “less than successful” creativity. Students will not feel free to experiment if their grade hinges on some abstract measure of success. The true reward for being creative is purely intrinsic.
  7. Encourage them to mistakes as opportunities for learning rather than failures.
  8. Enable students to exchange, value, and build upon the ideas of others. Share interesting examples of technological creativity that you run across in the media.
  9. Make time for informal interactions between students.
  10. Offer a safe environment that encourages risk-taking. Avoid a competitive and extrinsically rewarding classroom, by providing a friendly, secure, and comfortable environment.

What do you do in your classroom to build the creative capacity of your students? Share with us!



What do students think about coding?

What does assessment look like in a K-8 Computer Science program? Computer science teachers like myself use various methods to determine learning amongst their students, examples include:  a debug activity, some version of ‘get the robot through the maze in N programming blocks’ or a rubric to assess different components of a Scratch project.

In addition to problem solving and programming skills, I also assess my student’s attitude to computer science.  Through the year, I use anonymous SurveyMonkey surveys, Google forms, Edmodo questions, and writing prompts to determine what student think about their learning and about coding.

Since I teach across the Los Altos school district (over 500 students each week), I have a wealth of data to analyze after each survey. My survey question at the end of this school year wasWhat do you think about coding? What would you tell someone to convince them that they should learn to code? ‘.

This question generated a wide variety of responses. Here are some that seem to have a common theme – can you detect it?

  • I think it’s difficult, but still interesting.
  • It was fun yet challenging.
  • It is kind of difficult to learn at first, but then is fun to play with
  • Coding is hard in the beginning but fun once you learn how.
  • It is fun but hard and boring.
  • Coding is fun but hard. If you want to design or make something coding is for you.
  • Coding is hard but interesting.
  • Love it, and makes your brain work hard while you have tons of fun.
  • I think coding is fun but can be difficult.
  • I liked coding. It was challenging though.
  • I think coding is very interesting and challenging. The feeling of success when you finish a project is all worth the trouble.
  • Coding is complicated but fun. People think it’s scary because it’s new but it’s actually really cool!

The common theme is: ‘difficult but fun’.

These students find coding fun even though it is difficult. In fact, they think it is fun because it is hard. They enjoy coding for the same reason they enjoy a good video game – it is challenging. It is not easy and boring.

Seymour Papert who showed us that children can program computers almost 40 years ago, explained this kind of learning as ‘Hard fun’ in his article

It appears that my sixth grade students agree with the student Papert mentions in his article. Coding is fun and it is hard. Much has changed in terms of tools and resources in the last 40 years, and it is good to know that this fundamental attitude remains the same.

Doing computing means embracing failure

We always tell ourselves and our students to take risks. But taking risks means that we will fail at things. And generally, none of us like to fail.

Think about what it’s like to write code. Most of the time, the code is broken, and you’re failing.

This semester, I’m watching my students struggle with assignments in our sophomore-level object-orientation in C++ programming class.

We’re working through a series of two-week projects. The projects are pretty fun:

(There are more—this material is from Princeton’s COS 126 course.)

From the students’ point of view, there are a lot of steps to get to a working system:

First, to understand the basic problem. What data structures will we use? How does the algorithm we’ll use work? How will it all be organized into objects?

Next, starting to write code. What goes in the header file? What goes in the source file? Why is there this separation anyway?

OK, I have some code. Let’s try compiling it. Oh great, tons of compile errors. Of course.

OK now it compiles. Does it work? Not a chance.

Well, time to debug… where do I start? Probably printing some stuff out… how about seeing that I can read the command line arguments properly?

And so on.

Probably the most challenging part is at the very beginning—making sense of the task itself, and how it’s to be accomplished.

I encourage my students to do their work in baby steps. Just write a few lines of code, compile it, and make sure it works.

Only add more code after you have a little bit of code working.

Compile and test before moving on. Make sure you are going from a working thing to the next working thing.

But even with this strategy, as soon as a bit of code is working, the next step is to add more code, which means breaking it again!

Most of the time, things are broken.

It takes a high tolerance for failure like this.

I do believe that we learn best when we encounter challenges.

And the beauty of our practice is that we’re so readily able to get feedback on the quality of our ideas. Since our ideas are expressed in machine-executable form, we can debug them.

But it is hard, emotionally demanding work, and it’s important that we recognize how much effort our students put in to accomplish their successes.

Terry Dash, a CS educator in Massachusetts, just described to me a teaching experience she had teaching Scratch to middle school students. Midway through the school year, her student Erica cried out during class, “Now I get it! The more it breaks, the more fun it is!”

That’s the spirit!

yours respectfully,
Fred Martin
CSTA University Representative

How Do You Help Struggling CS Students?

This question has plagued me for the last few years, but more so this school year. In order to offer computer science courses and to make the course open access, some students enroll in the courses that don’t fully understand what computer science is and may not have the prerequisite problem solving skills. They do know that they want an AP course.

There is no prerequisite computer science course for AP Computer Science at my campus. The students would not enroll in a prerequisite unless it was an honors or AP, and we don’t offer one that is. To ease the students into computer science, I use Alice3 at the beginning of the school year then move into programming turtles and then Media Comp Lessons that are in Exploring Wonderland by Dann, Cooper and Ericson. I have been successful with this approach the last few years until this year.

This year I have tried several new strategies. I began using paired programming so each student would have someone to turn to for help. I would be free to help the students that are really struggling. Additionally, I have assigned fewer labs to give the students more time to work out solutions together. I have also assigned scenarios similar to the labs for the students to construct pseudocode prior to writing the program. I select random student papers, project them and we discuss the student written pseudocode. I also have assigned videos to do some flipping of lessons and the students take Cornell Notes while viewing the videos. I am available at lunch and after school for additional help. The students are writing reflections at the end of each unit discussing a lab that they have completed.

Even with all of that, I have students that are so lost they are not completing labs and are scoring low on tests. This semester the counselling department has resurrected a course title, “Fundamental of Programming” and has transferred a few of the students into that class. I have altered the assignments and tests to better meet their needs.

As I work to make my computer science course more diverse, I know that I will need to include additional teaching strategies to help all students. On Wednesday, March 11, I will be participating in the CSTA K-8 Task Force Twitter Chat #CSK8 from 5-6 pm PDT about Pedagogy: How to teach CS to 5 – 14 year olds. I am looking forward to hearing what K – 8 teachers are doing and tweaking their ideas to use with the high school students. I am also attending the CSTA Conference in July. One session that interests me is “Teaching CS to Students with Learning Differences”.

I will be piloting a Computer Science Principles course next school year and offer it as an AP course the following school year. Adding CS Principles may encourage some students to enroll in that course rather than AP Computer Science to help build their confidence.

I am continuing to look for additional resources and strategies. If you have any suggestions, resources or strategies please post them.

Myra Deister
CSTA Board At-Large Representative

Teaching Writing is just like Teaching Computer Science

We all know that writing is an important skill to develop in every classroom—including the computer science (CS) classroom. If our students can’t communicate their ideas, they don’t have a chance succeeding in or out of our classrooms.

And while as CS teachers we know the importance of teaching writing, we sometimes freeze with that deer-in-the-headlights look when thinking about actually TEACHING communication skills. Well, I’m here to tell you that you’re a natural! If you can teach computer programming, you can kids to write.

Thank you, Terry Freedman, for the elaboration of these ideas in the Tech & Learning article “How learning to code might improve writing skills” (

Compare the strategies you use to teach CS to those required in writing.

  1. Making a plan for writing is similar to creating a flow chart or storyboard.
  2. Writing a clear precise sentence is like an explicit computer instruction.
  3. Good grammar is just syntax in another language.
  4. Well-ordered text is not much different than code that follows the algorithm.
  5. Too many words can confuse the reader just like too many statements create spaghetti code.
  6. Creative writing and programs require a mastery of vocabulary and commands.

See? I told you that you were a natural. Teach writing the way you teach programming and you’ll be fine.