K-12 Teacher Takeaways from SIGCSE 2019

The SIGCSE (the ACM Special Interest Group for Computer Science Education) Technical Symposium is the largest computing education conference worldwide. While the majority of sessions target higher education, there is a growing focus on K-12 education. I’m excited to share some learnings and research nuggets relevant to K-12 CS teachers from SIGCSE 2019.

EFFECTIVE TEACHING PRACTICES

In his keynote, Mark Guzdial made several recommendations for improving computing education:

  • Teach CS in other courses/contexts. Mark used an analogy of visiting a foreign country: how much language do you need to know to get by? It’s better to know more, but you don’t need to be fluent to enjoy your time. There is amazing learning power even knowing a small subset of CS.
  • Ask students to make predictions during live code demos. Get them to explicitly commit to a prediction, then test, and prompt reflection.
  • You don’t have to write code to learn from code.
  • Subgoal labeling improves understanding, retention, and transfer, in both blocks- and text-based programming, for both high school and undergraduate students. In fact, just adding text labels to video tutorials makes a significant difference.
  • Do what works: pair programming, worked examples, Parsons problems, media computation.

Helen Hu presented a POGIL (process oriented guided inquiry learning) lesson that guides teams of students in constructing their own style conventions for naming variables and writing expressions. See full activity and role cards. See also additional POGIL activities for CS Principles courses.

David Weintrop and colleagues presented research comparing high school students’ performance on blocks-based and text-based questions (similar to the formats used on the AP CS Principles exam). Students across all racial and gender groups performed better on the questions presented in blocks-based form, for all of the concepts studied.

Reading and tracing code is useful in understanding how program code actually works. PRIMM is an approach to planning programming lessons and activities and includes the following stages: Predict, Run, Investigate, Modify, and Make. See sample PRIMM activity sheets.

INCLUSION

In her keynote, Marie desJardin identified five pernicious myths that impede diversity in CS:

  1. “He was born to be a computer scientist”
  2. “Computer scientists are… {Insert Stereotype Here}”
  3. “Anybody can be a computer scientist – girls just don’t want to”
  4. “It’s just a joke – don’t you have a sense of humor?”
  5. “ ‘Diversity programs’ are just political correctness”

Colleen Lewis created an Apples to Apples-like game for teachers to identify opportunities for inclusive teaching strategies and practice responding to microaggressions. View the printable cards and instructions. See also the critical listening guide from NCWIT (National Center for Women in Information Technology).

The 2018 National Survey of Science and Mathematics Education (NSSME+) surveyed over 2,000 U.S. schools and asked targeted questions about computer science for the first time. A key finding is that most current PD efforts focus on deepening teachers’ CS content knowledge, and there needs to be a greater focus on pedagogy and supporting students from diverse backgrounds. See detailed report and slide deck.

DEBUGGING

An interesting panel on debugging included several useful tidbits:

  • Deborah Fields suggested that teachers celebrate a “favorite mistake of the day” to create in-time teaching moments and encourage students to ask questions and share their mistakes. This can lower the stakes of failure and normalize mistakes as part of the process.
  • Colleen Lewis encouraged educators to live code in front of classes and explain their thinking, testing, and debugging processes. Model immediate and frequent testing, and promote growth mindset by learning from mistakes. See CS Teaching Tips for debugging.
  • Gary Lewandowski synthesized common types of bugs in programs:

The Everyday Computing team presented their newest K-8 learning trajectory on debugging. (See other learning progressions on sequence, repetition, conditionals, and decomposition).

UNPLUGGED LESSONS

Stan Kurkovsky and Stephanie Ludi have developed many hands-on lessons for teaching software engineering principles using LEGOs.

Zack Butler and Ivona Bezakova have curated many different pencil puzzle types and ideas that can be used as context for many high school CS concepts such as arrays, loops, recursion, GUIs, inheritance, and graph traversal. View a sample of puzzles.

TeachingSecurity.org introduces foundational ideas of cybersecurity, built on threat modeling and the human-centered nature of authentication. The lessons are designed to meet the cybersecurity learning objectives in the AP CS Principles (CSP) framework, but they are flexible enough to be used in any high school CS class.

Shuchi Grover and SRI developed a series of unplugged and non-programming, computer-based activities to develop conceptual strong understanding of variables, expressions, loops, and abstraction.

PROGRAMMING ENVIRONMENTS & CURRICULA

p5.js is a Processing JavaScript library and web editor. Processing is a programing language developed specifically for visual artists; p5.js enables web-based programming in Processing. The New York City Department of Education has developed an introduction to media computation course using p5.js.

MYR is an online editor for editing and viewing virtual 3-dimensional worlds. The Engaging Computing Group’s goal is to make programming virtual reality (VR) accessible to beginners. Real-time sync allows users to program and enjoy their work almost instantaneously on a VR headset.

EarSketch is a programming environment that teaches (JavaScript or Python) coding through composing and remixing music in a format similar to Garage Band. The environment enables students to create studio-quality music using over 4,000 samples created by professionals (including Jay Z’s DJ!).

MakeCode from Microsoft is an online, blocks- and text-based programming environment for micro:bits. It has an ever-increasing number of tutorials and course, including a new set of science experiments designed by Carl Lyman to help middle and early high school grade students better understand the forces and behavior of the physical world. Another course uses micro:bits to teach the basics of computer networks.

BlockPy is a web-based, blocks- and text-based Python environment designed for data science and to allow users to authentically solve real-world problems.

The Exploring Computer Science (ECS) team recently published a new e-textiles unit and resources called Stitching the Loop. Students learn to create paper circuits, wristbands, a collaborative mural, and wearables with sensors.

ARTIFICIAL INTELLIGENCE (AI)

The AI4K12 Initiative is joint project of CSTA and AAAI (Association for the Advancement of Artificial Intelligence) to develop national guidelines for teaching AI in K-12. The working group has developed five big ideas in AI and has begun developing a curated AI resource directory for K-12 teachers. See slide deck.

One example of an 11th/12th grade resource in the directory: TensorFlow allows users to tinker with neural networks in the browser.

Of course, this is only a small glimpse of the content presented at SIGCSE 2019. If you want to learn more, view the ACM Digital Library and consider joining SIGCSE in Portland next year.

Bryan Twarek School District Representative

Scrum in the Computer Science Classroom


According to the World Economic Forum’s (WEF) highly recommended meta-study “21st Century Skills”, schools need to prepare students to have a “future-based mindset” with skills such as collaboration, creativity, and adaptability.  Their answer: project-based learning (PBL). While PBL is gaining much speed in schools, how to manage projects can be a challenge: who is doing most of the work? who isn’t participating fully? how do you assess who has done what?

 In the computer science field, one means of project management is the Agile software development paradigm which, among other aspects, implements Scrum, a methodology for dividing work that needs to be completed into sprints, or stories.  In the Scrum environment, the team is considered capable of completing the task on their own. While the team is self-directed and is encouraged to problem-solve independently, there are two clearly defined roles that facilitate the process.  The first is the Scrum Master (in the classroom, this is the teacher), and the Product Owner (the students). The role of the Scrum master is to help the team when there is some impediment to their completion of a task, such as a bug or a design flaw.  The product owner’s/students job (in schools) is to keep the vision of the solution and manage the daily tasks. Scrum has recently been adopted in schools as a way to manage projects in both computer science and non-computer science classrooms.

Scrum meetings, which are short meetings occurring each day the class meets, consist of asking three essential questions:  What did you accomplish since the last scrum? What do you expect to accomplish before the next? and, Is anything blocking you (blocks are solved outside the scrum meeting)?  This level of accountability for students is essential for setting goals, prioritizing project tasks, assigning roles and jobs for team members, and keeping students on track for project completion. In 2016, The University of the Pacific conducted a study on using scrum in three computer science courses.  Their conclusion was that, overall, students found the above benefits to be true and helpful, while a few found the Scrum process to be cumbersome.

I have been using Scrum in my own classroom for several years now with great success.  Students know what they are expected to do and are held accountable to not only me, but to each other.  There are two components that stand out as key to the process. The first is student articulation and presentation of their project status.  This forces them to really pay attention to what they are doing, how their code is working, and gain an understanding of what they need to do next and with what they are struggling.  These are essential skills for their future as software programmers and engineers. The second aspect is teacher feedback. The daily feedback is essential for keeping them on track for successful project completion and for addressing problems quickly.  

While there are many ways to manage project based learning in an educational setting, it makes sense that in a software development course, learning to work in an environment that mimics the “real world” teaches valuable skills, in addition to preparing students for their future.

Works Cited

“Implementing Agile and Scrum in the Classroom.” GDC Vault, www.gdcvault.com/play/1020769/Implementing-Agile-and-Scrum-in.

“Scrum in the Classroom | Time for Change (Part 1).” Agile Transformation Experts and Agile Coach in New York City, Amsterdam, Miami and Boston, www.incrementor.com/blog/2018/2/18/scrum-in-the-classroom-time-for-change.

Jimenez, Osvaldo, and Daniel Cliburn.  “Scrum in the Undergraduate Computer Science Curriculum.”  Journal of Computing Sciences in Colleges,  Volume 31, Issue 4, April 2016, pp. 108-114.

Amy Fox, 9 – 12 Representative

Using Genius Time/Passion Projects to Encourage Exploration of Computer Science

Genius Hour is a movement that allows students to explore their own passions and encourages creativity in the classroom. It provides students a choice in what they learn during a set period of time during school. The Genius Hour movement has been around for years and has been used by some of the world’s leading innovative companies. One of those companies, Google, allowed their engineers to spend 20% of their time to work on any project that they’re passionate about. The philosophy behind this movement is that when people are given the opportunity to work on something of personal interest, productivity goes up. Well, they were right. Since Google’s implementation of Genius Hour, fifty percent of their projects, including Gmail and Google News, have been created during this exploration time. Who would have thought that allowing employees the freedom to explore their own interests during work time would contribute to the company’s success?

Since its inception, Genius Hour has made its way into the world of education and is transforming the way students learn and take ownership of their learning. There have been many educators leading the way with Genius Hour in their classrooms and most of their inspiration has come from Angela Maiers and Amy Sandoval’s book The Passion-Driven Classroom: A Framework for Teaching & Learning. Recently, I have become inspired by this Genius Hour movement as well, and I have started to explore how I could apply it in my own classroom. More specifically, I have thought about how could I use Genius Hour to encourage my students to further explore the field of Computer Science. There are so many areas of study in Computer Science and I often find myself just providing a brief summary for my students to spark their interest. But what if I could ignite that spark, and then provide an opportunity for my students to keep the flame going?

Recently, my school district made a commitment to personalized learning for all students and invested in personalized learning coaches that will help with implementation in the classroom. When it comes to personalized learning in the classroom, no single thing is more powerful than Genius Hour. One of the coaches loaned me Andi McNair’s book Genius Hour: Passion Projects that Ignite Innovation and Student Inquiry. After reading this book, I definitely feel prepared to ignite that spark and implement a Computer Science Genius Hour in my classroom. McNair say, “Genius Hour provides students with opportunities to discover what it means to think for themselves, to really pursue something that is meaningful to them.” She also goes on to say that, “It’s time to realize that in our classrooms sit the world changers, inventors, and innovators of tomorrow. Our students are the future.”

This school year, I have decided to embark on a Computer Science Genius Hour Journey with my students. I am so excited to give my students the opportunity to further research Computer Science as a field, explore related topics, and potentially collaborate with outside experts in the field. Ultimately, I want to encourage my students to make a personal connection with Computer Science. Through those personal connections, my hope is that they discover their own passion in computer science and find ways to impact their world through their discoveries.

If you’ve implemented Genius Hour in your Computer Science classroom, I would like to hear from you. If you’re interested in taking this journey, below are some additional resources that I have found to be helpful:

  • AJ Juliani’s “The Research Behind Genius Hour” provided insight on connecting standards to inquiry-based learning. http://ajjuliani.com/research/
  • Chris Kesler’s Science Blog provides “10 Reasons to do Genius Hour with your Students” – https://www.keslerscience.com/what-is-genius-hour/
  • Chris Kesler and AJ Juliani’s website (http://geniushour.com), provides a free webinar called “Getting Started With Genius Hour: The Step-by-Step Guide to Structuring Genius Hour.” They also offer a Genius Hour Master Course, which is a comprehensive course that walks you step-by-step through Genius Hour and how to implement it in the classroom.
  • Westside Community Schools Personalized Learning website (http://westsidepersonalized.com) provides a wealth of resources, as well as podcasts that highlight how teachers in my school district are implementing personalized learning.
  • Westside Community Schools EY (Gifted) Website (http://ey.westside66.org). Follow the “Enrichment” tab to “Passion Projects” to find templates and suggestions for Passion Projects

Kristeen Shabram
K-8 representative

Increasing equity and inclusion in computer science education

Last month I attended my first CSTA conference. I LOVED the positive energy. From the keynote speakers to the exhibition space to the breakout sessions, everyone at CSTA2018 seemed genuinely happy to be together and they were clearly excited to share, learn, and ultimately do more for students.

My favorite part of CSTA2018 was the session with Andy (Andrea) Gonzales. In short, while in high school, she and a friend created a viral video game, won a Webby Award, wrote a book, were covered by multiple media outlets and now she is on a full ride scholarship to both UNC Chapel Hill and Duke. Impressively, she’s determined to leverage her space in the spotlight to do more for other young women like herself.

Andy talked about the exclusion she felt as a young woman learning computer science. She shared that the early support of an adult (her male summer camp counselor) was key to her success today. She described the misconceptions she had about computer science and the stereotypes that so many other young women and women of color struggle with. She emerged from her experiences more empowered and now wants to empower others.

Andy and her story are impressive. And yet, the thing that struck me the most about Andy was the response she garnered from the adults in the room.

Nearly all the questions Andy fielded from the audience of 700+ computer science education teachers and advocates were about they could do more to support girls and students of color in their computer science classes. How can I get more girls to join? What do you think I can do differently? Of the few girls I have in my computer science classes, how can I get them to engage more? How do I best support my students of color?

These questions clearly articulated the teachers’ desire to do more to help ALL their current or potential CS students succeed. They also illustrated the gaps that exist for teachers to find – and then implement – the resources that would help them reach this goal.

To be clear, I am not an expert on this topic. And in full transparency, I work for a tech company that is actively working on how it makes progress on diversity, equity and inclusion internally and how it can play a role in increasing equitable access to computer science education around the world.

I do know that there is a lot of good and important work that has been done on equity and inclusion in education broadly, and specifically in math and science. And while we are making progress, and there is a lot of great research on what the issues and challenges are in diversity, equity and inclusion in computer science, what I hear from teachers and others in CS education is that we still have work to do to make practical solutions easy for teachers to bring to life, specifically for computer science.

I know that by sharing a short list of resources, I am bound to leave things out. But with the goal to start somewhere, as I’ve been on my learning journey, others have told me that the following resources and information have been helpful in their work to support success for all students in their computer science classes and programs.

I’m sure you have some you want to share – please do! Post them on Twitter, tagging @csteachersorg with the hashtag #CSforAll so others can see them too. You can view all posts that use these two tags here.

Defining the issues:

Practical tools and resources for teachers and schools:

Recent blog posts by fellow CSTA board members:

Yvonne Thomas
Partner Representative CSTA Board

Tips for CS PD Facilitators

As we gear up for the new school year, many of us are entering into professional development (PD) soon. I am lucky enough to have the opportunity to plan and facilitate PD for teachers in San Francisco, and based on this experience, I’d like to offer some tips that I believe contribute to successful learning experiences for teachers.

Model best practices

  • Facilitate learning. Teachers should experience sessions in a format similar to their students. Be the guide on side, not sage on the stage. And, please, please, please don’t lecture about active engagement.
  • Be explicit about strategies used. Then, allow teachers to reflect on whether and when the same strategies could be useful in their own classrooms.
  • Set explicit learning goals and measure progress towards those goals. If you want to develop a strong community of practice, state this explicitly as a goal, actively work towards this goal through collaboration and team building, and measure progress through surveys and observations. Do the same with content and pedagogy-oriented goals.
  • Differentiate. Groupings or breakouts based on grade level, content area, or other contextual factors can be useful, but this in itself is not differentiation. Consider multiple means of representation, action/expression, and engagement. Set consistent baseline objectives for everyone, and create different levels of scaffolding and extensions to challenge teachers at the appropriate level.
  • Allow choice. Let teachers decide what is important and relevant to them. They cannot choose everything, but make sure have some agency.

Record, reflect, assess

  • Compile all resources and make it easy to access them. Consider a simple website or hyper doc (e.g, SFUSD’s PLC site).
  • Create shared notes documents so everyone can benefit. This allows a good record for teachers to remind themselves during the school year and allows those who missed out to reap some of the benefits. Ask for volunteers to contribute to the notes documents at different times.
  • Prioritize time for reflection. It’s important for teachers to process their learning and consider how they will apply new ideas and strategies. Thoughtful reflection improves transfer to classrooms.
  • Ask for feedback. This can help you evaluate, plan for future sessions, and improve facilitation. Don’t wait until the end to ask for feedback. Create formative measures.
  • More importantly, use the feedback to change plans and improve. And, show a summary of participant feedback each day, and explicitly note the things you’re changing to respond to feedback.
  • Assess learning. Don’t rely solely on feedback. Use similar assessment measures to those used in the classroom. Collect teachers’ projects to examine more closely.

Attend to the environment

  • Create a welcoming and inclusive space. Try to choose a room that is colorful and filled with natural light. Take down any Star Trek posters and replace with something that appeals to everyone. Create table groupings to make it easier to collaborate.
  • Set and reinforce norms. As teachers come from different communities and cultures, it can be helpful to adopt a set of common norms. Reinforcement can come through reflection, a norms tracker, and celebration of colleagues.
  • Make it fun! Throw in some corny jokes and spontaneous dance parties. Play music during breaks. Put candy and LEGOs on the tables.
  • Include breaks. Breaks allow teachers to take care of personal needs, engage in informal collaboration, and maintain better focus during sessions.
  • Get teachers up and moving. No one likes sitting all day. Movement is especially important after lunch because this is when most people’s attention starts to fade (the “trough”).
  • Mix up groupings. Many teachers default to choosing teammates whom they already know, but they also prefer to get to know new people. Facilitate this by thoughtfully designating grouping strategies and consider when teachers should collaborate with teachers from different and similar contexts.
  • Switch up the facilitation. Just like students get tired of hearing the same teacher all day, teachers feel the same way. Work to mix up both the facilitator and methods of facilitation as much as possible.
  • Empower teachers to lead and share their best practices. One way to do this is an unconference in which teachers select and run sessions based on their interests.

Show teachers you value them

  • Pay teachers. Teachers already work hard enough. If the PD doesn’t happen during the contract time, it’s important to compensate teachers for their commitment.
  • Provide good food. It doesn’t have to cost a lot to be thoughtful. Make sure to include some healthy options and attend to dietary restrictions. Unlimited snacks go a long way.
  • Provide the materials needed to implement lessons/curriculum. It is a huge lift off of teachers to give them ready-to-go materials. They’ll be very appreciative of the time (and money) you saved them.
  • Celebrate success. A fun and easy way to close the week is for teachers to create their own superlative awards to celebrate something they are proud of and share with the community (e.g., best debugger, craziest sock wearer, biggest risk taker).
  • Don’t treat adults like they’re children. Let teachers decide what’s best for them. Structure can enable productivity, but too much structure or accountability can foster resentment.

Other pro tips

  • Sprinkle in tips and tricks, and allow teachers to share these. Examples are new tech tools (e.g., yellkey.com), brain breaks (e.g., GoNoodle.com), team builders (e.g., Zip Zap Zop!), and showcasing strategies (e.g., Michelle Lee’s tips for amplify student voice).
  • Go beyond the (one) curriculum.Teachers new(er) to CS need to develop a decontextualized knowledge of CS and be empowered to determine the best ways to teach concepts to their students. Try to not just use one lesson or curriculum but offer several options on a related topic and ask teachers to contribute others and reflect on the usefulness in their own contexts.
  • Don’t try to do too much. You cannot do everything in one hour, one day, or one week. Decide what’s most important based on the teachers who will be attending and set measurable and achievable learning outcomes for the time you have. Expect things to take ~50% longer than you think they will.
  • Don’t let it be a one and done. Ensure there are follow-up mechanisms throughout the year. An effective way to do this is to create a community of practice, with both an online presence and regular, in-person convening.

What tips did I miss? Tweet @btwarek and @csteachersorg.

Bryan Twarek School District Representative

A Call to Celebrate Diversity in Computer Science

A primary goal for our #CSforAll initiative should be to develop positive computational identities among all students. This requires that students not only build strong foundational knowledge and skills; they must also understand how CS connects to their interests and, perhaps most importantly, believe that they can succeed in CS.

This is challenging because a small subset of the population has dominated the field of computer science, and our society has crafted a pervasive and narrow stereotype for who has access to and can achieve in CS. Even though the field is actually more diverse, these stereotypes are not surprising given the mostly homogenous population of the tech industry (see the Kapor Center’s Leaky Tech Pipeline report, 2018).

It is critical that we disrupt this narrative. We must highlight how people of all backgrounds have positively contributed to computing in diverse ways.

Describing the problem

Students as young as elementary school begin to adopt stereotypical beliefs in STEM. Research has shown the negative impact on students traditionally underrepresented in CS, namely women and people of color (e.g., Cheryan, Master, & Meltzoff, 2015). Professor Sapna Cheryan notes:

“People use these images to decide where they fit, where they’re going to be successful and what’s appropriate for them to pursue.”

Stereotypes negatively affect students’ interest, self-efficacy, career aspirations in STEM (e.g., Shapiro & Williams, 2011). If students do not fit those stereotypes and they don’t have role models that suggest otherwise, they are less likely to pursue CS.

What can we do about this?

Such a wicked problem cannot be fixed quickly, but we can make substantive impacts in our local schools. One strategy is to connect students to role models and mentors with whom they can identify, to provide inspiration and guidance. Exposure to role models of similar race and gender backgrounds leads to increased identification, self-efficacy and aspirations in STEM fields (Stout et al., 2011; Scott et al., 2018).

How to celebrate diversity in CS

Teachers can provide exposure to diverse role models through books, videos, and magazines and also through direct interactions including classroom visits, field trips, career fairs, and mentorship programs. These efforts should happen throughout the year. In addition, during cultural awareness months, we can use the opportunity to highlight people of specific backgrounds. March is Women’s History Month. This presents a great opportunity to connect students to female role models and showcase the incredible contributions of women in CS. Below are some suggestions from the #CSinSF team:

  1. Invite guest speakers to your class. If you don’t have connections through friends and family, try finding a local volunteer or a Skype connection. Here are some tips for classroom volunteers and a list of suggested questions to ask about their careers.
  2. Explore careers. Great videos featuring diverse professionals are available from Made w/ Code, Technolochicas, and Code.org. You can also have students read articles from the Careers with Code magazine, designed for teens to understand how computer science can help them create a dream career in any field, including health, sports, business, fashion, and virtual reality. The site features both profiles and videos of diverse people in diverse industries.
  3. Showcase influential figures in CS. Read books, watch videos, and lead activities that showcase influential figures in computing. For example, during Women’s History Month, hang these posters of seven incredible women in CS and lead related activities (e.g., matching activity, Bee-Bot challenges, Kahoot). Elementary teachers could read story books like Ada Lovelace: Poet of Science and Grace Hopper: Queen of Computer Code and show videos like Happy Birthday, Ada. Additionally, teachers of all levels can use Hidden Figures (original text, young readers’ edition, story book, or the film adaptation) and challenge students to retell stories of these incredible women (e.g., through Scratch animations).

Bryan Twarek, School District Representative

Reading Stories in Computer Science Class

Stories are an entertaining way to introduce or reinforce computer science concepts and help students to understand abstract concepts in a more concrete way. Do you read picture books, chapter books, or short stories to your students in computer science classes? I do. The easiest way to get started is with books that are specifically written to teach CS concepts.
For 5-8-year-olds, Hello Ruby: Adventures in Coding by Linda Liukas is a wonderful place to start. Written to introduce young children to computing, it is a picture book about a “small girl with a huge imagination.” As Ruby goes on adventures, students learn about planning, sequences, algorithms, collaboration, conditionals, loops, and more. The book includes activities that go along with the story, and the official website has resources for educators. Linda Liukas has also written a second book, Hello Ruby: Journey Inside the Computer, which includes activities about the internal parts of a computer.
A graphic novel for 8-12-year-olds that covers multiple CS concepts is Secret Coders by Gene Luen Yang and Mike Holmes. It is the first in a series of books that combine logic puzzles and coding (in Logo) wrapped up in a mystery storyline. The official website has downloadable activities and Logo instruction videos so your students can code along with the characters if desired. Check out the excerpt on the website for a fun introduction to binary. The concepts in the book can easily be applied to any programming language you are using with your students.

The comic book, The Cynja, by Chase Cunningham,‎ Heather C. Dahl, and Shirow Di Rosso was written for younger children, but I like it for introducing Networks and Cybersecurity for Middle School students. The Cynja is a story of a battle between the evil forces of cyberspace and the Cynsei and his apprentice, the Cynja. Code of the Cynja, the second comic in the series, has a female lead character. These are difficult to get in print, but digital versions are available on Amazon and in the Google Play Store.

Don’t limit yourself just to books written about computer science concepts. Working on decomposition skills? Read a “Choose Your Own Adventure” book. Then work with students to decompose it and build a decision tree. Talk about how conditionals allow it to work and have students create their own “Choose Your Own Adventure” program. The Fly on the Ceiling by Julie Glass is a fun book to introduce the coordinate plane. After reading it, students could create a Scratch project to draw their initials using glide commands with x and y coordinates. Read The Very Hungry Caterpillar by Eric Carle and have students retell the story with Bee-Bot or write a ScratchJr project about the life cycle of the butterfly. Look around and see what books are available at your school and find ways to use them in your computer science classes.

Are you reading stories to students in your computer science classroom? We would love to hear about it!

Vicky Sedgwick K-8 Teacher Representative

Learning computing with metaphors

Don’t think of an elephant!

Now what are you thinking about? Of course, it’s an elephant.

This sentence is the title of a book by George Lakoff, a contemporary linguist who makes that case that we frame our thinking with the words and metaphors we use. By consciously recognizing this, we can understand our own thinking better and become more persuasive.

Inspired by Lakoff’s work, Alvaro Videla published an essay Metaphors We Compute By in the October 2017 Communications of the ACM. As a computer scientist and software engineer, Videla recognized the extent to which we make sense of concepts in computing via metaphors. He gives this example:

Say you could program a computer to command other computers to perform tasks, respecting their arrival order. This description is already difficult to understand. On the other hand, you could describe the solution by describing a queue server that assigns jobs to workers based on a first-come, first-served queue discipline.

Consider all the examples from daily life in the description of the solution: A “queue” is something with which all of us are familiar—that’s a “line” for those of us speaking American English! “First-come, first-served” is how most everyday lines operate, “workers” and “jobs” are people and roles from our daily lives.

With this metaphor, it makes sense. The everyday concepts translate into computational artifacts. A worker becomes an operating-systems process. A job becomes an algorithm carried out by that process on some particular data. The line becomes a FIFO queue.

This idea of using metaphors goes back far in our field. Some of the early CS education research focused on how the names of words chosen to be language commands helped (or hindered) students’ understanding. For example, in the 1987 article The Buggy Path to Development of Programming Expertise, Pea, Soloway and Spohrer reported on how students expected parallelism in BASIC code with “IF… THEN” statements. They thought the computer could evaluate any statement as needed, firing when a condition became true—as it might be in daily life.

I’ve used metaphors to explain function application—a concept in functional programming. It’s similar to how parameters or arguments are supplied to C or Java functions. I brought a rubber mallet to class, and described function application as the mallet “pounding the parameters on the head.” So if you have a function increment, which adds one to its parameter, then increment sees a 3, pounds it, and produces a 4. Then “functional mapping” is walking down a list, pounding each parameter in turn. In Scheme: (map increment (list 1 2 3 4)) produces the list (2 3 4 5).

Later during the semester, I could just pretend I was holding the mallet to bring back the idea of function application.

What metaphors have you introduced to your students to help them understand computing concepts? Did they work? Have you changed them over time? Please share with your colleagues!

head shot of Fred Martin, chair of board of directors

Fred Martin, chair of board of directors

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 www.CSPdWeek.org!

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 www.secret-coders.com. Read more stories with ideas for increasing diversity in CS education in the CSTA Voice