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

“With a Little Help from My Friends”

With our ever-busier lives, I really appreciate my friends who help keep me up to date on interesting and exciting new developments in computing education. I am sure I saw the original posting but reminders from my friends help me remember to pay attention!!

Here are 2 items that my friends Mark Guzdial and Alfred Thompson recently pointed out to me!

Mark has a really interesting blog and recently wrote about the new SIGCSE conference paper award. To celebrate the 50th Anniversary of the SIGCSE Conference, the “Test of Time” award has been created. Its goal is to identify the top 10 papers submitted to SIGCSE in the past 50 years! You can see the list and vote here.

In honor of this event, ALL SIGCSE conference papers are freely available in the ACM Digital Library until March 2, 2019.

Here are a few of Mark’s favorites:

It’s worth the time to skim through the list and see what catches your eye – download now for FREE and save them to read later. There are lots of fun papers!

Alfred keeps a list of interesting blogs – at http://blog.acthompson.net/2012/11/computer-science-education-blog-roll.html including:

  • Mike Zamansky Mike runs the computer science program at Stuyvesant High School in New York City. He’s a very creative person. he’s also built and maintained a community of students who stay connected after graduation.
  • Garth’s CS Teacher Blog  Garth Flint is a teacher at a private Catholic school in western Montana. Garth always gives me things to think about.
  • Mark Guzdial –  Computing Education Blog  Mark is probably doing more research in how to teach computer science right than anyone else I know. His posts include information about the CS Principles course, he is on the advisory board, which will probably be a new APCS course. 
  • Doug Bergman is the award winning head of Computer Science at Porter-Gaud School in Charleston, SC 
  • Set Another Goal By Clark Scholten Computer Science Teacher at Pinnacle High School
  • Dawn DuPriest – coding in math class –  Middle School Computer Science and Electronics teacher
  • Communications of the ACM: blog@CACM The CACM blog has posts from some of the top people in computer science. Some of the posts are very technical but many are potentially interesting for students, teachers and CS hobbyists alike.  

Oh, and one more thing – I was honored to be the guest editor for the ACM Inroads magazine celebrating the 50th Anniversary of SIGCSE organization.  This special issue came out in December 2018 and has a variety of articles about the history of the organization, thoughts about the future, challenges we may face, etc. My favorite section is the “My SIGCSE’ where some of the SIGCSE members who share their stories with us. Give it a look!

So thankful for my friends!!


Jane Prey, ACM Representative

What are we Doing?

When I was asked to write this blog, I wondered if I should focus on the Arkansas Computer Science (CS) Initiative, after all who doesn’t like to brag about their program? Instead, I decided to publicly address something that has weighed on my mind over the past three years. Yes, while Obama was in office and more so now that Trump is in office. At almost every national presentation I have given, I have always stated, at some point and in some way, that “Computer Science is not a partisan issue, it will only become one when we the community force it to be one.” This is the focus of this blog.

On January 30, 2016, President Obama asked Congress to allocate $4 billion to expand K-12 CS education. This announcement, while the amount was questioned, was met with over all excitement and enthusiasm; the community had a POTUS that was finally talking about CS education. It is what really made the #CSforALL movement gain national attention and respect. Personally, I was captivated with the renewed excitement; people who had seemed to doubt that their state would ever make any progress forward, were again actively engaging in visionary discourse. We all know that the $4 billion was never approved in a federal budget, nor did many who were connected to D.C. discussions ever think it would be. Notwithstanding, the announcement generated headlines, got other federal agencies thinking about CS (thank you National Science Foundation), and bolstered the movement amongst states that had been thinking about, but not yet wholeheartedly committed to, jumping into the CS Education arena, which Arkansas has led since 2015 (yes, I had to throw that in there). With that in mind I ask, what are we doing to keep the excitement we all felt on January 30, 2016 as a catalyst for change?

Fast forward to September 25, 2017, President Trump and his daughter Ivanka Trump announce that POTUS is requesting that the Federal Department of Education (DOE) devote at least $200 million of its grant funds to STEM fields with an emphasis on CS education. This announcement, which spurred the #CSforKids movement, was met with mixed reactions, and unfortunately, individual reactions could almost be predicted based on party affiliation. Personally, I was again excited, not at the mixed reactions, but that President Trump had found a way to continue the discussions about CS education from the platform of our nation’s highest executive office. We all knew that it would not look like President Obama’s plan, but I will admit that, prior to this announcement, I was anxious about it potentially disappearing from the federal focus completely. Before I get emails, I will acknowledge that we are still waiting on the DOE to open the competitive grant program, which I believe to be delayed for various reasons including but not limited to aggregating and considering the feedback and the lack of a long-term federal budget. With that in mind I ask, what are we doing to maintain the initiative’s momentum in a positive and cohesive manner?

Now that the history portion is out of the way, I address directly the question my title asks, “What are we doing?” After September 25, 2017, I was appalled at the way our community started fighting through various social media channels. I was troubled by the personal attacks that started flying between people who agree with each other more often than not on other political issues. I was disheartened to witness that the unofficial national leaders in the CS community, people who I admire and highly respect, were reduced to engaging in the political bickering and attempts to silence opposing viewpoints that has stalemated our country’s progress in so many other areas over the past two decades. This attitude shift in the community and its unofficial leadership created a toxic environment, which replaced excitement and enthusiasm with discouragement and pessimism. With that in mind I ask, what are we doing to make sure that CS does not become a topic that we are afraid to discuss publicly?

Fret not, all is not lost! We continue to see great bipartisan efforts taking place to continue the positive focus on CS education. The Governors for CS group, which is co-chaired by Arkansas Governor Asa Hutchinson (R) and Washington Governor Jay Inslee (D), is a great example of a group of individuals with various political ideologies, state needs, and regional differences coming together and focusing on advancing CS education, not only within their respective states but also across the nation. In addition to state executives, our community has a wonderful support structure through various groups, that for the most part play well together. The Computer Science Teachers Association (CSTA), #CSforALL Consortium, ECEP, Code.org, and many other large scale efforts provide our community with mostly positive and non-political mechanisms that support our community’s continued growth. With that in mind I ask, what are we doing to follow and support the leaders and visionaries of our state and national efforts?

What are we doing? We are moving forward together! Sure, there will be some nay-sayers and negativity out there, but that is okay. Critical thinking and challenging the status quo is what makes a community stronger. To be clear, I am not asking for the CS community to become an “echo chamber,” as I firmly believe that open and honest discourse is necessary. Considering different situations and points of view is how successful and long-lasting programs are built. I am asking that we as a community step back occasionally and ask “what are we doing?” Are we engaging in conversations that are bolstering or hurting the initiative? Are we focusing on minutia, that while important, is prohibiting progress? Are we demonstrating to the larger educational community that CS should be taken seriously and is of vital importance to our students, or are we creating a circus side show? Are we building up the other members of the community, or are we putting them down to make ourselves look better? In short, I guess what I am asking everyone reading this to do is what I need to do a better job of myself. Stop asking “what are we doing” but instead ask, “what am I doing, and should I continue doing it?”


Anthony Owen, State Department Representative

Computer Science for All – Are We Asking the Right Questions?

Every two weeks, the CSTA K-8 task group hosts a twitter chat using the hashtag #CSK8. These twitter chats help teachers like me connect with other computer science education enthusiasts; they offer us a place to share and learn new ideas for our classrooms. Since I am part of the CSTA task force that hosts these chats, I have learned a lot on how to run these twitter events. Picking the right questions for a chat is key to its success.  The questions must provide the right amount of structure and be interesting so that all participants contribute to the chat. This is difficult since we do not know who will actually join the chat.
The chat on Feb 10 was on the new initiative proposed by President Obama called ‘Computer Science For All’ (To read more on this initiative, see  “CS for All”  and  Watch the president’s full remarks here). The chat was moderated by another CSTA Task force member Vicky Sedgwick and myself.
Computer Science For All initiative is still in the early phase, with of course no clear idea on whether it will ever be approved. However, the initiative has opened up the discussion on computer science access to a wider audience, and it was a perfect topic for our chat. Vicky and myself struggled to come up up with the best set of questions and we were modifying them as the chat progressed.   Selecting the right questions to ask on this topic helped us think more on the big question – how do we really provide computer science education to all? Here are the questions that we finally used on this chat. Take a look below –  what would be your answers?
  • Q1: Obama said “we have to make sure all our kids are equipped for the jobs of the future.” Is this really why #CSforALL is needed? #csk8
  • Q2: Why should #CSForAll be a federal initiative? Can’t we just rely on state/local/industry/non-profit efforts? Pros/Cons? #csk8
  • Q3:  How will we find teachers for #CSForAll & what is needed in terms of professional development & teacher credential programs? #csK8
  • Q4: There are currently many states with their own CS standards & more writing them. How does this affect #CSforAll or does it? #csk8
  • Q5: How would you spend $4 billion? What is most important? K-8/High School/PD/In-school programs/AfterSchool programs/Diversity? #csk8
If you are interested in reading the conversations on this topic (or other topics), check out the archives of the #CSK8 chats at the CSTA K8 G+ community at https://plus.google.com/communities/111803101139836526905/stream/00a8a67d-804b-4ee1-9c95-0852dfa0b171
Do you think we are asking the right questions? If you had five questions to ask on this topic, what would they be?

2016: The Year of CS Education

A Prediction Comes True…

When asked for a New Year’s prediction a few weeks ago, I responded that 2016 would be the Year of Computer Science Education.  I did not anticipate just how accurate that prediction would turn out to be just 30 days later.  And it appears that we are just getting started, thanks to the incredible support and commitment of the White House and this Administration on behalf of CS education and CS teachers.

CS education is about students.  On January 12, as he began to speak to national priorities, President Barack Obama led with CS Education.  He said that, “In the coming years, we should build on that progress, by … offering every student the hands-on computer science and math classes that make them job-ready on day one.”  As Executive Director for one of the first CS teacher member organizations, it was an exciting moment to hear the President lead off with a statement so aligned to our members’ profession.

CS education is about access.  On January 20, the White House announced the Champions of Change for Computer Science Education. I was thrilled to see recipients like Jane Margolis whose book, Stuck in the Shallow End: Education, Race and Computing, motivated me to pursue this position several months ago.  The recipients of the honor included a diverse and deserving collection of individuals working to improve access to computer science education.

CS education is about collaboration.  Then today, January 30, I was again both excited and awed, as the White House announced the Computer Science for All initiative (#CSForAll)—the President’s plan to give all students across the country the chance to learn computer science in school.  It is a plan with aggressive goals, bipartisan support, and multifaceted commitments from an amazing array of participants spanning federal and state agencies, corporations, non-profit organizations and academic institutions, school districts, and teachers.

CS education is about teachers.  It is clear that many more exciting announcements are to come.  On behalf of the Computer Science Teachers Association (CSTA) and the teachers it represents, I thank the Administration for its “above and beyond support” for CS education and recognizing that providing access to quality CS education to all students requires developing and supporting CS teachers.  I am also appreciative to the Administration for creating mechanisms to enable CSTA to actively participate and engage in the events leading up to today’s announcement.   CSTA is excited to be involved and contributing to this collaborative effort.

…And CS Education is Just Getting Started.

CSTA recently developed a new 10-year vision, supported by the first of three strategic plans.  The themes of students, access, collaboration, and teachers underpin that framework.  For the next three years our primary efforts will focus on teacher professional development, programs related to our big IDEA (Inclusion, Diversity, Equity, and Access), and maturing our association practices.  These three priorities are supported by a set of five strategic levers and a range of specific measures and activities.

As part of CSTA’s commitment to #CSForALL, we will pursue and implement a new professional development (PD) model for CS Teachers that includes:

  • A developmental assessment with personalized roadmap to help teachers focus PD on skill development needs and programs that could address those needs.
  • Hybrid (online + in person) PD experiences to increase access to PD for teachers.
  • A digital portfolio or digital badging model to enable competency-based micro-credentialing.  This provides a means for teachers to demonstrate CS skills and track their progress toward a master-CS teacher status.

We are on track to pilot some of the above elements as early as this spring.

This year CSTA will establish a Diversity Educational Leadership Program (DELP).  DELP will provide PD to cohorts of teacher-leaders coming from diverse and underrepresented backgrounds in CS.  The goals of DELP are to improve access to leadership and development opportunities for underrepresented teacher segments, support a growing network of effective teacher-leaders and CS advocates in their classrooms and communities, and increase the visible pool of diverse candidates for leadership positions in CSTA and other K-12 CS organizations.

CSTA is also stepping up its own capabilities, such as going live with the “alpha” version of our new member management system this past week.  In addition to a new website that is mobile-friendly, and easier to navigate and update, we will have tools to enable more members to engage and volunteer in activities of the association.  There will be new tools to support chapters.  New tools to support advocacy or outreach among segments of members. There will be new ways for members to communicate with each other and new resources to help make #CSForAll a reality.

Later this spring CSTA will unveil new branding, as we evolve into CSTeachers.org – the member organization for K-12 computer science teachers. With 22,000 members across 130 countries, with 62 local member chapters, and as founding partners of other CS educational organizations, like Code.org, NCWIT, and TeachCS, we will continue to seek out and engage in opportunities to collaborate that include CS teachers and further enable access to quality computer science education for all students.

Getting Engaged in the Future of K-12 CS Education

These and many of our other planned initiatives, such as a series of PSAs and content to promote awareness and understanding of what CS is, link back to the themes and priorities identified by the White House as part of #CSForAll:  Students, Access, Collaboration, and Teachers. Getting there will require innovation, entrepreneurship, collaboration and support from a great variety of organizations and individuals.  CSTA greatly appreciates the work of this Administration which has elevated CS education and the needs of CS teachers to a national priority.  We look forward to the great works that will come out of the current #CSForAll commitments, and for those that will follow.

2016 is going to be a great year for K-12 CS Education.  Please keep following #CSForAll and #CSTA on Twitter for more developments or reach out to CSTA if you are a CS teacher or organization who would like to be involved in our evolution.

About CSTA:  The Computer Science Teacher’s Association (CSTA) is a member-based organization founded in 2004 by ACM, the world’s largest educational and scientific computing society.  CSTA’s mission is to empower, engage, and advocate for K-12 CS teachers worldwide.

Are You Ready for Computer Science Education Week?

As I write this blog post, I am in the middle of planning for Computer Science Education Week. I have prepared my Eventbrite site (http://2015-hour-of-code-shhs.eventbrite.com) and have emailed the link to the principals of the neighboring schools. This year will be the third year that my computer science students and I have hosted a community Hour of Code event at the high school for elementary and junior high students.

Last year I was so overwhelmed with the number of attendees, I have decided to move the event from the two adjoining computer labs to the library where I can better manage a large group. I will have stations for each age group and a marker station where the students will create a light-up Christmas card. Laura Blankenship (CSTA board member) helped me with some suggestions. I also found on line the directions for a Christmas tree card (https://learn.sparkfun.com/tutorials/let-it-glow-holiday-cards )that I plan on using.

I am also planning on setting up three tables with old computers that can be taken apart. I will have index cards with pictures of the main parts and an explanation of their purpose. My students will be preparing the cards.

Finally, there will be stations setup by age groups for students to use the code.org tutorials (https://code.org/learn). The Computer Science students are looking forward to helping with the event.

For the high school student event, I have a local college student who will come to class to discuss her internship at an aerospace company and her experience as a college student. I have also requested skype calls from professionals in the computing industry at https://education.microsoft.com/connectWithOthers/techguestspeakers. I had two speakers last year that worked for Microsoft and they were so patient with my students! I will also play the morning announcement created by CSTA on Monday, December 7, announcing Computer Science Education Week (http://csta.acm.org/Advocacy_Outreach/sub/CSEdWeek.html). On the same webpage are video announcements if you have that feature available at your school.

I have another Hour of Code event planned for lunch for students on campus with my Computer Science students assisting. Additionally, my school district will be honoring Computer Science students at the school board meeting on December 8 in honor of Computer Science Education Week.

I am looking forward to a busy but exciting week.

Please share your plans for Computer Science Education Week.

Myra Deister
CSTA At-Large Representative

Cybersecurity is everywhere. Is it in your K-12 CS program?

Scarcely a day goes by without the mention of cybersecurity in the news—from Edward Snowden breaching security at NSA (and now following NSA on Twitter), to customers of Target and Home Depot having their data compromised, to Hillary Clinton’s private email server and private email account while she was Secretary of State, to hacking of sensitive government data by foreign citizens, cybersecurity is in the news and is newsworthy. One of the more common themes in cybersecurity is the dearth of qualified cybersecurity professionals and how the United States might address that lack in the education system. Several colleges and universities have begun to add cybersecurity programs, and credentialing bodies are developing certificates and credentials for those already in the workforce but perhaps lacking the proper skills and training. The ACM Education Policy Committee and the ACM Education Council have both entered into discussions about cybersecurity education. The Committee for Computing Education in Community Colleges (CCECC) of the ACM Education Board has done quite a bit of work on cybersecurity education at the community college level. But, where is cybersecurity education in K-12?

Once again I had the pleasure of representing CSTA at a great K-12 education conference. This conference was the National K-12 Cybersecurity Education Conference held in Linthicum, Maryland (near Baltimore). Tammy Pirmann (CSTA School District Representative) and I both presented sessions about CSTA and cybersecurity education. Tammy’s panel discussion focused on curriculum and programs of study while my panel discussion and break-out session focused on standards. The conference had a great mix of K-12 educators, post-secondary educators, state-level educators, industry and governmental organization representatives, and curriculum developers.

There are some really awesome cybersecurity initiatives taking place in K-12 classrooms. I was able to participate in three hour workshop about the Baltimore County CyberSTEM program in which elementary school students engage in hands-on activities and learn about the field of cybersecurity. They learn to apply basic security concepts through gaming, modeling and simulation, robotics, digital forensics, cryptography, system vulnerabilities and cyberethics, safety and security, while investigating exciting careers that interconnect the fields of science, math, technology and computer security.

The sessions about the standards pointed out that there is much common ground among the organizations working in the computer science, engineering, and technology education space. It was good to have an open dialog and to be reminded that we can all work together to become stronger—and to promote cybersecurity education through our various groups. Even very young (Pre-K) children need to learn the basics of cyber safety—most of them use some sort of device before they ever enter a formal classroom. There was much discussion about standards and where cybersecurity education standards would logically fit. The National Initiative for Cybersecurity Education (NICE) is working with the Department of Education and the National Science Foundation to lead the Formal Cybersecurity Education Component.  Their mission is to bolster formal cybersecurity education programs encompassing kindergarten through 12th grade, higher education and vocational programs, with a focus on the science, technology, engineering and math disciplines to provide a pipeline of skilled workers for the private sector and government. They have a great interactive Cybereducation map that highlights schools, teachers, companies and agencies that support Cyber Education in the United States.

The good news for K-12 CS educators is that there are many great resources to assist you in the classroom as well as opportunities for you and your students. The National CyberWatch Center K-12 Program extends the National CyberWatch Center mission of advancing cybersecurity education by leading collaborative efforts and strengthening the national cybersecurity workforce to the K-12 community. Check out their fantastic summer programs for students (camps) and PD opportunities for teachers. Perhaps you attended a program last summer—we learned about them at the 2015 CSTA Annual Conference! (They also have curriculum resources for teachers.)

So, when you are ready to implement cybersecurity education in your K-12 CS classroom, the resources are there. You will be able to find curriculum resources, PD for yourself, speakers for your students, summer camps for your students, career opportunity resources, and much more. You might even plan on attending the next National K-12 Cybersecurity Education Conference. Cybersecurity is everywhere, and it should be in your classroom.

Deborah Seehorn
CSTA Board of Directors Past Chair

Website Links:

National K-12 Cybersecurity Education Conference http://www.edtechpolicy.org/C32015/index.html

CyberSTEM Program
http://cyberstemacademy.com/

National Initiative for Cybersecurity Education (NICE) http://csrc.nist.gov/nice/education.html

Interactive Cybereducation Map
http://www.cybereducationmap.org/map.

National CyberWatch Center K-12 Program http://www.nationalcyberwatch.org/programs-resources/

CSTA Annual Conference http://csta.acm.org/ProfessionalDevelopment/sub/CSTAConference.html

Advocating for CS Education – Strategies from Connecticut

By: Chinma Uche

The November Voice is full of great advocacy ideas that you can use in your chapter. Be sure to check it out! (csta.acm.org/Communications/sub/CSTAVoice_Files/csta_voice_11_2015.pdf)

Connecticut CSTA (CTCSTA) members work hard year-round to shine a bright light on CS across the state and to provide opportunities for students. Real progress and change requires many strategies and persistence. We hope that this list of our focus areas will inspire you to create a plan to advocate for CS education in your school, district, and state.

  • CSEdWeek Activities: CTCSTA starts planning CSEdweek activities during the first meeting of the school year. Ideas are shared and every CTCSTA member commits to plan and execute at least one activity. At the very least, all members participate in the Hour of Code.
  • Member resources: We have used the opportunities provided to two of our members as K5 Code.org Affliates to introduce CS into elementary schools.
  • Government:
    • We apply to the Governor’s Office in late October for an official statement in support of CSEdWeek. Last year, our members met with members of the Connecticut General Assembly (CGA) and were fortunate to get a bill written to support CS in Connecticut. Our members made presentations to the Education Committee of the CGA and the bill passed and was signed into law on June 23, 2015. Because of the passage of Public Act 15-94 (cga.ct.gov/2015/act/pa/pdf/2015PA-00094-R00SB-00962-PA.pdf), Connecticut schools are required to introduce CS by the next school year.
    • We also garnered support from the Connecticut State Department of Education, where five of our members serve in the newly created Computer Science Advisory Committee. This committee is exploring ways to bring CS to all Connecticut schools (sde.ct.gov/sde/cwp/view.asp?a=2618&Q=335512).
  • Curriculum: The Mobile CSP project, funded by NSF and led by Professor Ralph Morelli of Trinity College, has expanded access to CS in many high schools. The curriculum has been very widely received in Connecticut and Mobile CSP teachers are strong advocates for CS in other schools and districts.
  • Partnerships: CTCSTA has a strong relationship with the Connecticut Education Association (CEA) since many of our members belong to the CEA. CEA supports bringing CS to all Connecticut schools and blogged about Mobile CSP training (org/2014/08/25/students-teachers-and-school-districts-benefit-from-computer-science-professional-development/) to their 43,000 members. In the past, many CTCSTA members have planned activities with community organizations such as the Girl Scouts. During CSEdWeek 2014, we jointly hosted a “Women in STEM-C” event that brought together about 100 young girls to enjoy STEM activities and create apps. The Lieutenant Governor attended the event in support of increased access and diversity in computer science (https://sites.google.com/site/womeninstemc/). We continue to reach out to schools of education such as the NEAG School of Education at the University of Connecticut and hope to form a relationship that will help them include CS in their teacher education program. Other partnerships include:
  • CTCSTA supported the Connecticut Science Center in organizing #BeautyByMe Girls-Only Hackathon (ctsciencecenter.org/visit/events/).
  • CTCSTA supported the YouMedia Group at Hartford Library in the development of their CS program (hplct.org/library-services/teens/youmedia).
  • CTCSTA worked with AAUW (aauw-ct.aauw.net/) to host a CS program for girls.
  • CTCSTA is working to bring the Technovation Challenge to more Connecticut girls. (google.com/site/technovationchallengect/hartford_2015).
  • The number of girls receiving the NCWIT Aspirations Award continues to increase in Connecticut because of the work of CTCSTA members.
  • CTCSTA members support the work of Random Hacks of Kindness Jr. (rhokjr.org/).

Our experience shows that CS advocacy benefits teachers as well as students. CTCSTA members who engage in advocacy in their districts are recognized as leaders. Jackie Corricelli (Conard High School), who led her entire school (1500 students) in the Hour of Code, received $10,000 from Code.org for her class. She also received the Presidential Award for Excellence in Math and Science Teaching. Melissa Fearrington (Simsbury High School) trained elementary school teachers in her district to introduce the Code.org curriculum (Courses 1-3) to their students and was recognized as the Teacher of the Year.

 

CSEdWeek: Ideas to Fit Your Schedule

The November Voice is full of great advocacy ideas. Be sure to check it out! (csta.acm.org/Communications/sub/CSTAVoice_Files/csta_voice_11_2015.pdf)

CSEdWeek is quickly approaching and it’s likely that you already have some great projects planned for the week of December 7–13. But if not, here are a few ideas, small to large, to fit the time you have.

You will find many more ideas and resources at csedweek.org, hourofcode.com/us, and csta.acm.org. Great projects can be used any time of the year so don’t limit your computer science (CS) education advocacy ideas to just one week in December.

Pledge your support for CSEdWeek and start planning how you will fuel the future with CS education at csedweek.org/csteacher

15 Minutes:

30 Minutes: 

  • Assign students to ask their families to spend an entire day without using any computing technology (including no car, microwave, or digital television) and record their experiences. Discuss their findings in class the next day and relate to CS careers.
  • Prepare a showcase of student computing projects.
  • Offer a lunch break “CS Escape” once a week or once a month to invite non-CS students to “play” with CS concepts and tools such as CSUnplugged, Scratch, AppInventor, or Kodu.
  • Schedule your students to take turns in the cafeteria or student commons to demonstrate cool CS projects from your class.
  • Learn a few “magic tricks” to spark up your introduction to CS concepts. www.cs4fn.org/magic
  • Redecorate your classroom with new posters among the many available from CSTA or code.org. csta.acm.org/Resources/sub/BrochuresPostersVideos.html
    code.org/educate/inspire

1 Hour: 

  • Participate in Hour of Code. csedweek.org/educate/hoc
  • Invite former students who are college CS majors to visit your classroom to tell about the exciting things they are learning. 
  • Assign cross-curricular projects. Ask other teachers to allow your student to “show off” their computing version of the assignment.
  • Submit proposals to share your innovative CS teaching strategies at conferences.
  • Encourage your CS students to host an open house for other students.
  • Contact your local government representative to ask for support in having December 8–14 proclaimed CSEdWeek.
  • Engage students in playing a matching game of inspiring CS quotes to famous people. Expand into an assignment on CS careers. code.org/quotes
  • Explore the resources from the Computer Science Collaboration Project to find Exemplary Practices for Engaging Hispanic/Latino(a) Youth in CS ideas. www.cscproject.org/node/162

3+ Hours: 

  • Arrange a field trip to a local high-tech company or corporate IT department; invite parents also.
  • Plan CS projects that involve “social causes.” Recruit community members to serve as “clients” for your students.
  • Host a parents’ night that showcases the fun, exciting, and meaningful career opportunities in computing and debunks the myths about the dwindled IT job market.
  • Plan a CS exploration day for potential students and parents. Gather ideas from programs such as Computer Mania. www.computer-mania.info
  • Look for technology contests to showcase your students’ ideas such as the ACSL, Google Code-in, Aspirations in Computing, Imagine Cup and others. www.acsl.org, www.google-melange.com, www.aspirations.org, www.imaginecup.com
  • Investigate ways to engage underrepresented students in computing. www.ncwit.org/resources
    www.ngcproject.org
  • Form an advisory team of students, parents, other teachers and administrators, business leaders, and others to plan CS promotion projects in your community year round.

 

 

 

AccessCS10k: An Introduction to the Quorum Programming Language and Evidence-Oriented Programming

By:
Andreas Stefik, Ph.D.
Assistant Professor, Department of Computer Science
University of Nevada, Las Vegas

Computer programming in K-12 education has become increasingly mainstream in the U.S., especially with the excellent work being conducted by groups like code.org, Project Lead the Way, CSTA, and many others. These trends have been happening for many reasons, not the least of which being a growing awareness of competition from abroad and the well known shortage of professionals in the field (a problem we are acutely aware of in Las Vegas). In this blog post, I will discuss work on the Quorum programming language, the first, so-called, evidence-oriented programming language. By our current count, Quorum is taught in approximately 34 K-12 schools in the U.S. From surveys, we estimate over 1,800 students will be taught Quorum next year.

In this blog, I’ll outline the origins of the Quorum project and evidence-oriented programming in general. More information can be found about Quorum at our website
(http://quorumlanguage.com/). Quorum has, to our knowledge, the first Hour of Code that is accessible through a screen reading device and a talk on the language was recently presented at Strange Loop and is available here: https://www.youtube.com/watch?v=uEFrE6cgVNY&feature=youtu.be&list=PLcGKfGEEONaCIl5eU53uPBnRJ9rbIH32R

Research on blindness and the origin of Evidence-Oriented Programming

The Quorum project began in approximately 2006 with an exploration I was conducting into the experiences of computer programmers who are blind or visually impaired. Initial interviews and discussions with professional blind programmers made it relatively obvious how many challenges the community faced. In many cases, mainstream tools (e.g., Visual Studio, NetBeans) were not particularly well suited, or in some cases did not work, for this community. More crucially, after discussing the issue with blind professionals, I suspected the challenges for K-12 students were likely worse, as learning Braille or a screen reader can be challenging for blind children. Consider for a moment why learning a programming language like C, on top of learning screen reading skills, might be difficult. While most individuals might see syntax like: for(int i = 0; i < 10; i++) {}

and be fine with it, this is typically translated into speech for the blind. While there is no perfect way to write this, readers are encouraged to say out loud “for left paren int i equals zero semicolon i less than ten semicolon i plus plus right paren left brace right brace.” Similarly, compiler errors when translated to audio can be difficult to understand. A trivial error (e.g., missing a variable definition in C++), might take a minute or two to “listen” to. Mainstream students have difficulty with these things too, but they are exacerbated in students with disabilities.

After making these observations, I concluded that one obvious way to approach making programming easier was to improve the tools (e.g., talking debuggers, accessible editor hints, accessible completion, accessible code folding). I invented all of those things (most are in Sodbeans, a tool for the blind used throughout the U.S. today), and they do seem to help, but C itself is still hard to “listen to.” Ultimately I couldn’t get this nagging question out of my head, “What was the evidence for the design of C to begin with?” So I began to investigate, but weirdly … I could find little human factors evidence in the academic literature.

Historical Context on Evidence Standards:

A slight detour is necessary to help readers who are not familiar with historical evidence gathering techniques. Giving credit where due, I highly recommend reading a paper by Ted Kaptchuk on the history of blind assessment, which influenced my thinking: http://media.virbcdn.com/files/5f/FileItem-260254-Kaptchuk_IntentIgnor_BulHisMed1998.pdf

Let’s briefly discuss this history. First, it was not always the case that medical practitioners, psychologists, and others used experiments in science. In medicine, the techniques started largely in the late 18th century after Louis XVI created a commission to study the bogus theory of animal magnetism (mesmerism). Benjamin Franklin, the head of the commission, used the idea of “sham treatments” to uncover problems with this (bogus) theory.

As science progressed, techniques became increasingly rigorous. Scientists used primitive placebo tests as early as 1834, although they still had no concept of experimental design. By the late 19th century, psychology was developing and we start to see the use of randomization, at first to explore sensory perception and to evaluate (bogus) supernatural claims like those made by psychics (e.g., talking to the dead).

Experimentation moved forward again in pharmacology, in part because of Charles Edouard Brown-Sequard’s claims that testicular extract from guinea pigs would “rejuvenate mental and physical health.” The scientific community, now increasingly skeptical of claims made without evidence, started still rather primitive assessments within a few months. Finally, by the mid-1930s, we obtained what many scientists think of today as the randomized controlled trial, made possible largely by Ronald Fisher in his famous, “The Design of Experiments.” While not mentioned by Kaptchuk, experimental design today has made other important leaps forward, most of which are unfortunately not internalized in computer science like they are in other disciplines (e.g., studies on replication, registered randomized controlled trials). Walter Tichy has probably discussed this more than most.

Evidence-Oriented Programming

Back to blindness and programming, consider observations that children who are blind had extraordinary difficulties with programming languages, and also that the academic literature was sparse with human factors data on programming languages. Certainly, there exists some papers on the topic (e.g., ESP, PPIG, Plateau, a small number of trials in the 70s and 80s), but the number of randomized controlled trials is small. Programming languages make up the entire foundation of modern software — effectively every computing device that everyone owns is built with one. Yet, the top conferences in programming languages used rigorous proofs to determine if features worked, and had significant empirical data to evaluate performance, but used anecdotes for human factors. I didn’t understand why this would be (yet), but by 2009, we started investigating ourselves, largely in this paper:

Stefik and E. Gellenbeck. Empirical studies on programming language stimuli. Software Quality Journal, 19(1):65-99, 2011. 10.1007/s11219-010-9106-7.

Some problems became obvious. Surveys showed words like “for, while, or foreach” were, in a bizarre and unexpected twist of irony, the three least intuitive choices for people in our sample (which we later replicated). This is ironic because these choices are common across a large number of programming languages.

Surveys only tell us so much though, so we went further, which is to take from the medical playbook, using sham (or dummy) treatments. In the first test, we used what I called a “Placebo Language,” basically a randomly designed programming language where symbols are chosen from the ASCII table (one could imagine other placebo languages). We sent the first of these tests to a small workshop called Plateau in 2011:

Andreas Stefik, Susanna Siebert, Melissa Stefik, Kim Slattery. An Empirical Comparison of the Accuracy Rates of Novices using the Quorum, Perl, and Randomo Programming Languages. Workshop on the Evaluation and Usability of Programming Languages and Tools (PLATEAU 2011). Portland, OR, October 24th, 2011.

The result, at least to me, was an eye opener. Perl, despite the fact that it was a very popular programming language with significant community support, was apparently not detectably easier to use for novices than a language that my student at the time, Susanna Kiwala (formerly Siebert), created by essentially rolling dice and picking (ridiculous) symbols at random. That result was astonishing and I frankly wasn’t sure I believed it. So, we ran a replication with three additional languages. The result was the same, replicating with extreme accuracy on a new sample (Perl within less than a percent). That work was published here:

Andreas Stefik and Susanna Siebert. 2013. An Empirical Investigation into Programming Language Syntax. ACM Transactions on Computing Education 13, 4, Article 19 (November 2013), 40 pages.

Interestingly, in this new study, the same result we saw with Perl we also observed with Java, a programming language so popular it is used in the Computer Science A – AP test in high school. Ultimately, using a technique we call Token Accuracy Mapping, which is basically a way to figure out which tokens may have caused the problems, it appeared that C-style syntax was plausibly the culprit. At the same time, using this new technique, we found a variety of problems with Quorum and borrowed from languages where the evidence showed they had a better design (e.g., Ruby’s if statement design, with the exception of the equality syntax ==, was integrated into Quorum 1.7).

Again, this finding surprised us. At this point, while there is a lot more to learn, we knew there was a problem and our strong suspicion was that the language community had not been gathering rigorous evidence on human factors, basically in its entire history, which we have since confirmed is an unfortunate truth. We hypothesize that this lack of evidence may be one of the leading causes of the so-called “programming language wars,” which we discuss at length in the literature:

Andreas Stefik and Stefan Hanenberg. 2014. The Programming Language Wars: Questions and Responsibilities for the Programming Language Community. In Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2014). ACM, New York, NY, USA, 283-299.

In other words, if language designers are not even gathering evidence on human factors, then it’s not surprising that they seem to disagree about their designs or that students might needlessly struggle. In essence, language designers prove that their features work, and show evidence that they are “fast,” but they never seem to ask, in a scientifically defensible way, “What is the impact on various kinds of people?”

Creating Quorum:

As these studies progressed over time, and as we worked more with various communities, my wife and I decided that if we wanted to program using a language that used human factors evidence as a guide, we would have to build it ourselves. So, we developed the first Evidence-Oriented Programming language, which we called Quorum. Here are the basic ideas of this paradigm as I see it today:

  1. Design features of a language must have corresponding evidence from appropriately constructed randomized controlled trials for as much as is possible
  2. The language authors must allow the external community to suggest changes according to the scientific method, inspired by lessons from history
  3. Evidence from other techniques (e.g., software repository mining, educational data) if gathered from humans and rigorous is allowed

Now to be clear, Evidence-Oriented Programming is a paradigm, not a language, and the scholar Stefan Hanenberg in Germany thought it up at basically the same time. He came to the same conclusions I did for different reasons, with different experiments, on a different part of the globe (his story on the topic is very different from mine and fascinating). Others are fleshing it out better than I have, especially the scholar Antti-Juhani Kaijanaho, who has created what is perhaps the most systematic review of the history of the programming language wars ever.  

More crucially, it is a paradigm because the evidence on various design decisions (which I won’t get into here, but have written about extensively) is tricky to understand and requires significant statistical expertise to grasp. It also appears that some design decisions have trade-offs, the most well known of which to-date is that whether functions in programming contain type information (e.g., an integer, a number) appears to improve productivity of those past the third year of experience in college, but has a small, but non-zero, negative impact on novices at around a freshman year of college (depending on where in a program it is).

In other words, I can imagine one language designer using evidence to optimize human factors for one group, while another optimizing for another, with both taking all known controlled trials into account and therefore having some similarities in their design. As a simple example, a block language designer hypothetically designing for a child’s toy or learning might use the word “repeat” for iteration, which the evidence supports, yet a text-based language designer might use the same word when designing for industrial scale robotics or a NASA rocket where blocks might be impractical and where efficiency of the language is crucial (or some other reason). This type of thinking could provide increased consistency amongst language designs in the years to come, with an increasingly stronger foundation of evidence.

In any case, evidence-oriented programming is not a panacea, nor does it imply we will eventually get to the unlikely idea of “one language to rule them all.” Plausibly, what we are observing today is a paradigm shift in language design, going from next to no evidence at all on human factors toward an unwillingness of young scholars like myself to accept anecdotes or prestige as fact, for a basically similar reason Benjamin Franklin didn’t in the 18th century. No one knows where the evidence-oriented movement will end up, perhaps with some complex hybrid of blocks or visualization, or maybe with different domains having various kinds of approaches, or maybe even partial standardization of some aspects of language design within a century (or two). Wherever it ends up, the goal is to follow the evidence wherever it leads in order to make the next generation of programming technologies just as practical at industry scale, while also being easier to understand and use.

While Quorum began as a toy exclusively to help blind children learn computer science, it has grown in unexpected ways. While it is still used across the U.S. at around half of schools for the blind and visually impaired, about half of teachers that came to the 6th annual Experience Programming in Quorum workshop in Vancouver, WA represented mainstream schools. Quorum is a Java Virtual Machine Language, so it will run on most machines, and has a variety of libraries, including those for creating computer games, LEGO robotics support, and more. Quorum is accessible for people with disabilities, including those with visual impairments, and supports a robust and accessible development environment based on Oracle’s NetBeans. Since the language is built on industrial strength technologies, it can be used not just in K-12, but potentially in college or industry as well, for effectively any general purpose application. Finally, Quorum is under the BSD license (free for any use), and all curriculum is free under the Creative Commons License. Our curriculum goes through continuous improvement by dedicated K-12 teachers and is being mapped to Computer Science Principles and, hopefully soon, the common core. More information can be found at: http://quorumlanguage.com/