Artificial Intelligence, Art and Collaboration: Interview with Dr. Kenneth Stanley, UCF

As Computer Science teachers, we can all testify that we have spent hours developing our “hard skills” and using them in the classroom and beyond. Chances are a STEM professional will have been nurtured on computational thinking, mathematics, science and the like, often neglecting the importance of communication, social grace, friendliness and other EQ-related traits. Lately however there’s been a lot of talk about the importance of “soft skills” in the new workplace and “collaboration” is the new keyword in STEM circles. The title of this New York Times article by Claire Cain Miller “Why What You Learn in Preschool Is Crucial at Work” may seem perplexing at first glance; however the reader will soon realize that the fundamental social skills we learn in our early years are equally as important in landing a fulfilling job as our technical expertise. Says Miller: It’s the jobs that combine technical and interpersonal skills that are booming, like being a computer scientist working on a group project.”

A short while after reading the NY Times article, I stumbled upon an interesting video that reverberated the same concept: the talk is titled “Why Greatness Cannot be Planned” and was delivered by Kenneth Stanley last month in the context of the “Collaboration and the Workplace of the Future” summit in Washington DC. Stanley is an Associate Professor of Computer Science at the University of Central Florida and one of the creators of Picbreeder, an online collaborative art application that allows pictures to be “bred” almost like animals. I asked Dr. Stanley if he would be willing to be interviewed by e-mail for the CSTA International Community… here’s what he had to say:

Dr. Stanley, I am the International Representative of CSTA, an Association of Computer Science Teachers from all over the world. We’re a diverse community, and we’re looking for ways to build bridges of communication. Is diversity an asset or an obstacle when it comes to collaboration?

Thank you Mina for the opportunity to address the CSTA. I think most professionals would agree that diversity is an asset and I certainly count among them, but the interesting issue is why diversity is so important in particular in creative endeavors. What we’ve found in our research is that a critical component of a successful creative system is its ability to cultivate diverse stepping stones. By stepping stones I mean ideas that lead to other ideas. Creativity in a collaborative group tends to break down or converge prematurely when for example only the stepping stones approved by the leaders or through consensus are brought up for consideration. That premature convergence happens because there are not enough jumping off points to allow the group genuinely to explore the space of possibilities. Unfortunately, as a culture we often strait jacket innovation through just such consensus-driven processes, leading to less creative exploration.

In any case, an important corollary to the insight that diverse stepping stones foster innovation is that of course diverse people are the most likely to generate diverse stepping stones. And that’s a good thing, because the divergence of ideas in a diverse group means that the possible avenues for exploration multiply and expand. So while you may decide individually to pursue a line of inquiry that I never would, in the end your pursuit is good for both of us because your idea could be the stepping stone to my next major discovery. In that way, it’s a good thing that you and I are different because it allows us to lay stepping stones that neither of us would have respectively encountered without such diversity.

(By the way, the research I cited is disclosed in our new book by the same name as the talk you mentioned, Why Greatness Cannot Be Planned: The Myth of the Objective, which is available online at http://www.amazon.com/Why-Greatness-Cannot-Planned-Objective/dp/3319155237 or http://www.springer.com/us/book/9783319155234.)

I had never heard of Picbreeder before, and I was really excited to see an application that applies Artificial Intelligence algorithms to such a universal theme as art. Have you witnessed collaboration patterns developing among users of the site? 

We have indeed gained some deep and interesting insights about collaboration from seeing how users behave on Picbreeder. One of the most interesting is that it is important to protect individuals in a collaborative setting so that they can follow their own radical intuitions for a significant time without interference from the group. That is, the most successful collaborations on Picbreeder result from chains of users who individually pursue their own directions eventually to hand off whatever they discover to the next user in the chain. In other words, even in a collaborative setting, periods of individual autonomy play a critical role.

Another insight from Picbreeder is that people almost always benefit from the discoveries of other people quite different from themselves (which ties back to the diversity issue).   For example, someone on Picbreeder bred an image that looks like an alien face, which I personally later bred into a car. Interestingly, I would never have bred the alien face myself, but somehow the car I did breed only became possible because someone else bred the alien face. So in aggregate collaboration is feeding effectively off the collective sharing of stepping stones among many diverse users.

I believe you will be happy to learn that CSTA has a chapter in Florida… and I’m sure you know UCF hosts an annual High School Programming Tournament. What lessons can we learn from the collaboration between K-12 and higher education institutes for the future generation of computer scientists and tech professionals? 

It’s nice to hear of CSTA’s Florida chapter. This is a big question with many possible answers. I think effective teaching at the K-12 level often involves inspiring passion for a subject in the students. That is, it’s a lot easier to learn when you care about the subject matter.   In that spirit, the cutting edge research that happens in higher education can serve as an inspiration for younger students that demonstrates to them just how exciting a particular subject can become down the line. Picbreeder, which packages some pretty advanced technology into an intuitive and entertaining visual form, is an example of how it’s possible to present the cutting edge in a way beginners can appreciate.

On the other hand, the unbounded curiosity and yet-to-be-indoctrinated thinking of K-12 students can also push those in higher grades in new directions. I have the pleasure right now of hosting a 12th-grade participant in one of my lab’s projects. His questions are sometimes so surprising and unanticipated that they pull us back to confronting basic assumptions that we long forgot we had. In that sense, I think the undergraduate and Ph.D. students in my lab are learning perhaps as much from him as he is from them. K-12 students remind those of us long lost in the esoteric details of advanced fields why we were originally inspired to engage those fields in the first place.

Many thanks to Dr. Stanley for the inspiring interview… interestingly enough, even though the original purpose of this post was to reach out to our International Community, I believe his insightful comments touch base with anyone seeking ways to blend a tech-oriented background with the social skills so crucial for collaborating in diverse settings. It’s food for thought.

(which brings us to the next item on my international “agenda”: food! This video portrays a graduate from India who decided to pursue a computer science master’s degree in the USA… apart from the cutting-edge technology, he chose the country for its food! Like art, a topic as universal as food can only spur new opportunities for collaboration; we’ll explore them in my next post for the CSTA international committee).

Do We Still Need Computer Science Teachers?

These days it seems like “how to learn coding yourself” opportunities are everywhere. There are MOOCs  from major universities, code.org (http://code.org) has great online tutorials, Facebook  just opened a web site called TechPrep (https://techprep.fb.com/) to help parents and students alike find resources and tools, and there seems to be a new edtech company starting up every week with online CS resources.  The question for many becomes “do we still need computer science teachers?”

For those of us who make our living teaching computer science the fact that this question is even being asked is a little scary. OK maybe more than a little. I think most of us believe that there is still a crucial role for computer science teachers though.  CSTA is at its heart about Teachers for good reason.

Online resources work great for autodidacts. People who can learn on their own gravitate to these tools, often have great success, and often promote them as “THE ANSWER” in all caps. In the real world not many people are autodidacts though. For every person who can learn on their own there are thousands who cannot. They need that personal touch.

What do teachers do? For starters they can explain a concept in multiple ways. We can adapt what we say and how we present it to the specific needs of the student. We can give hints – point students in a direction without giving away the answer. We can even personalize those hints depending on the student. Automated systems are not there yet. Not really even close.  I attended a workshop at Microsoft Research last winter where automating hint systems was a major topic of conversation. Hint generation is hard.

We adapt the curriculum around our students. Is one class more interested in story telling than games? Fine, change the projects. More interested in graphics than console applications? Change the projects. Is everyone in the class doing the same project boring for students and teacher? Fine. Let’s all do something different.  I’ve played around with autograders lately. They seem like a solution but try creating an autograder for each of forty different final projects? Trust me,  you will not save any time that way!

Is there something computing related in the news? Think about the Volkswagen emissions  software cheating recently! A teacher can fit it into the curriculum and have a discussion about ethics in computing at the drop of a hat. Flexibility is something human teachers excel at and automated systems really don’t do well.

There may be a bigger reason that we still need computer science teachers though. After school programs and learn on your own programs are generally more available, along with the resources to support them, to students who already have some privilege. For far too many students if they don’t get it in school as part of a regular class they will not get it at all. Often they will not even learn about the opportunity and know what they are missing.  For a truly diverse community in computing we need to see more classes in schools, counting for graduation, and taught by actual people.

Do we still need computer science teachers? Yes, now more than ever.

CSTA2016 Submissions and Reviews

The review period for next summer’s annual conference just ended, and we will have an amazing program for you! For this conference we will have workshops, one hour sessions, 20 minute short talks and birds of a feather networking opportunities. Almost one hundred professionals in the field of computer science education reviewed the submissions. Every continent was represented as well as every level and type of education.

The next step is arguably the toughest. The planning team met in late-October to determine the actual program. We want this conference to be the best professional development and conference for K-12 computing educators, so we put a lot of effort into balancing all of the offerings.

I look forward to seeing you in San Diego in July of 2016!

Tammy Pirmann
Review Chair, CSTA 2016
CSTA Board Member, District 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.

 

 

 

Disrupting the Gender Gap in Computer Science

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

Why we have a problem

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

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

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

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

What you can do

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

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

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

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

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

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

Creating Games in ScratchJr without Variables

Written by Aung Nay & Aye Thuzar

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

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

grid

Fig 1. Safari Animal game with visual progress tracker

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

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

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

Reference:

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

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

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/

What are you doing this year?

What are you doing this year?

At the start of the year all educators like to refresh materials, think about what else we could use to teach our content and figure out new ways to engage and challenge our students. We do this to “turn on a light” in a student. We can all think back to that teacher who was the reason we looked forward to the school day, the teacher who made us smile, connected with us, and made us want to learn more. As this year starts I challenge you to be “that teacher” for your students. Be the teacher who teaches differently and diversely. Grow yourself by learning different pedagogy and methodology that can lead to more enriched classes and better student achievement.

So all this sounds great but you are thinking – HOW do I do all of that and do everything else my school requires me to do?  My answer – by connecting with other CS educators.  Teachers who do the best normally have a cohort of other teachers they work with, bounce ideas off of, and work through problems with. Teachers are not islands and sharing strategies allows us to become better teachers. CSTA is your best resource for finding a cohort or a connection of other CS educators.

Did you get some great ideas at the CSTA Annual Conference this summer and meet new people? If so, email them and ask what they are teaching and doing. Offer to share projects and ideas. If you missed the conference or want a refresher on what you saw check the CSTA Conference page for the presenters material. Past years are already available and the 2015 will be available soon. Presenters are always willing to answer questions and help you if you are trying something they presented.

Are you looking for people who are near you or a group of CS teachers to work with? There may be people in your area you can collaborate with. Check out the Chapters page. Or are you just looking for other resources right now? You can check out the Podcasts page, the CSTA Voice pagePD Videos page, or search through the blog for posts you may have missed.  All of the authors and/or presenters are approachable and are willing to connect with other CS educators.

So this year make it your goal to grow yourself, try something new and engaging, make connections with other CS educators, and most importantly do all of this to turn on the lights in your students. Show them the wonderment of CS and be the reason they want to come to school.

Stephanie Hoeppner

CSTA Board Representative