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

Going Beyond the Hour of Code

During CS Ed Week, countless teachers and students experienced computer science for the first time. Whether it was their first, second, or hundredth time, I hope that this taste of CS left them hungry for more. Code.org has created a great compilation of resources for how students can continue learning. In this post, I’d like to suggest some ideas for how teachers who are new(ish) to CS can go beyond the Hour of Code. 

Take an online course

There are a number of excellent online learning opportunities designed specifically for educators. Some favorites (all free!) include:

Read a book, blog, or magazine

If you prefer learning through reading, some great options are:

Connect with other teachers

Meet other teachers in person. Don’t worry if you don’t have experience! Friendly and inclusive learning communities include:

Online communities include:

  • CSforAllTeachers (a virtual community of practice, for all teachers from Pre-K through high school who are interested in teaching CS)
  • ScratchEd (online community and resource sharing for educators who use the Scratch programming language)
  • #csk8 Twitter chats (K-8 CS teachers chat about designated topics on the 1st & 3rd Wednesdays of each month at 5pm PT / 8pm ET)

Test out curriculum yourself

A great way to build your knowledge and skills is doing exactly what students would do and go through curriculum yourself. See Code.org’s comparisons of CS curricula by grade level:

 If you want to spend less time, try some different Hour of Code tutorials.

Start a club

You don’t need to know CS in order to start a club. You can simply create the time and space for students to learn before or after school, or during lunch. Plus, there are several organizations that provide curriculum, and some can even provide volunteers to teach the content! Strong options include:

Dabble in the classroom

Don’t stop at CS Ed Week. Keep going all year long! Some ways to get started with incorporating more CS in your classroom include:

Go all in!

Yay! You want to do even more. You could:

Bryan Twarek School District Representative

—–

By no means is this intended to be an exhaustive list; rather, it’s just a starting place. If you have a suggestion to add, tweet to @csteachersorg and @btwarek.

Bryan Twarek School District Representative

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

Use the SCRIPT to Develop Your District’s Own #CSforAll Plans

Individual teacher and school champions have enabled participation in K-12 computer science education to soar to new highs in recent years. However, true systemic change will occur when school districts across the nation create their own #CSforALL goals and implementation strategies. There is a need for districts across the nation to develop comprehensive and equity-minded plans to ensure that all students across all schools can access and achieve in computer science.

Creating these plans can be daunting, especially at early stages of implementation and when there are important competing priorities. It can be tempting to simply replicate plans that other districts have adopted, yet contexts may vary greatly from one district to another, making a single correct answer difficult. Districts should leverage local strengths and consider their unique contexts when developing their plans.

The CSforALL Consortium, a key partner of the CSTA, recently developed a tool to help with this challenge. The new tool is called the SCRIPT: School CSforALL Resource and Implementation Planning Tool. The SCRIPT engages school districts in reflection, review of examples, and goal setting related to six areas: (1) Leadership, (2) Technology Infrastructure, (3) Teacher Capacity, (4) Curriculum and Materials, Selection and Refinement, (5) Partners, and (6) Community.

The SCRIPT is still under development; however CSforALL has released rubrics for Leadership, Teacher Capacity, and Curriculum & Materials, Selection and Refinement. Recently, I helped facilitate a breakout session at a SCRIPT workshop held at the CSforALL Summit in St. Louis. Based on this experience, I believe the SCRIPT is useful for districts that are just getting started, as well as those that have already implemented their comprehensive plans, as there are many distinct elements and a wide continuum of success. The tools promote excellent reflection and conversation and help guide teams towards meaningful next steps.

Here is a suggestion for how to use the SCRIPT:

  1. Convene a leadership team from your local district to develop or update plans to support #CSforALL. Include teachers, principals, curriculum leaders, and district administration; where possible, include representatives from both early-adopting schools and schools that have yet to begin to implement.
  2. Together, focus on each of the six SCRIPT categories one at a time. Use the rubric to reflect on the current status, identify priority areas, and set goals. Consider setting three goals for each area of the rubric: one 3-month goal, one 6-month goal, and one long-term goal.
  3. Use the tools and examples in the SCRIPT, as well as other CSTA resources and CSforALL members, to help plan how you will meet these goals. Feel free to reach out to your local CSTA chapter to ask for advice and support.
  4. Reconvene periodically to monitor progress and update goals.

Creating meaningful and systemic change certainly does not come easily. Accordingly, you won’t find a list of answers within the SCRIPT. However, you will find many thought-provoking questions and topics for conversation. Use these to consider the big picture and develop plans for rigorous, inclusive, and sustainable K-12 computer science education in your local school district.

SCRIPT Cover

Bryan Twarek
School District Representative