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

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
  • 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

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/

Must-read (and Share) Report on US K-12 CS Education

They say you can have data without information, but not the other way around.  So for those of you seeking data on why CS in K-12 matters there is good news today.  There is a new report out from Google and Gallup, which I particularly encourage all of our members in the US to read and share.  Whether you are in K-12, higher education, government, or the corporate environment the data and information contained in this report is important.  As we head into another school year, it would be great if every school board member, superintendent, principal, parent, and legislative representative read the report as well.

The report is entitled, Searching for Computer Science: Access and Barriers in K-12 Education, and is available as a downloadable PDF here.

In short, the study illustrates that CS education matters, and that there is strong demand for CS education in K-12.  Two key barriers identified in the study are that administrators do not perceive that demand, and there is a shortage of teachers to teach CS.  The report also has some illuminating data around issues of equity and access.  As a whole, the report touches on critical topics we are working on in CSTA now and have even bigger plans for going forward.

Among some of the interesting findings:

  • 91% of parents surveyed want their child to learn Computer Science (CS), but <8% of administrators believe demand is high.
  • Half of principals and superintendents surveyed cite the lack of trained teachers as a barrier – greater than the need for technology. Less than half of administrators perceive school board support for CS.
  • 3 out of 4 principals surveyed say their school offers NO CS programming/coding classes.
  • More than 90% of students and parents surveyed believe people who do computer science have the opportunity to work on fun and exciting projects, and that people who do CS make things that help improve people’s lives.

Given that yesterday marked the “two-month mark” for me as the new executive director for the Computer Science Teacher’s Association, this news only reinforces for me that the mission of CSTA — to empower, support, and advocate for K-12 computer science teachers — is a mission that matters.

We can do more.  We must do more. CS matters, and we need more support to give all students better access to quality CS education, and ensure that CS teachers across the educational spectrum have access to the PD and resources they need to provide that quality CS education.  A great first step is making sure that the findings of this study are communicated and shared widely.

The Computer Scientist who Challenged the Nash Equilibrium

In November 2014, I was privileged to meet Constantinos Daskalakis, a Greek Computer Scientist and Associate Professor at MIT’s Electrical Engineering and Computer Science department. Daskalakis is best known for his work in the field of Game Theory, and his research on the Nash Equilibrium has earned him prestigious awards and an international reputation.

2014-11-18 11.54.32

Constantinos Daskalakis and Mina Theofilatou, November 2014

I had contacted Constantinos by e-mail earlier in 2014 regarding the awareness campaign Greek CS Teachers were running against the insane decision of the former Education Ministry’s administration to eliminate Computer Science from the National University Entry curriculum (read more about the problem here and about how it was resolved here) and, as one would expect, he was very supportive of our cause. When I wrote to him after booking my air travel for the CSTA November Board meeting – I had a 12-hour layover in Boston on the return leg, perfect for a visit to MIT! – he was willing to make some time in his hectic schedule to meet with me.

The meeting took place in his office at CSAIL in the Ray and Maria Stata Center; I had never been to Boston or MIT before so I followed the instructions he gave me (“it’s a crazy Frank Gehry building, you can’t miss it!,” he wrote). Our conversation naturally started with the situation in Greece, and inevitably ended with a discussion on the future for young computer scientists. I asked what he would advise exceptional students wishing to further their education at establishments such as MIT. He mentioned that what he is mostly looking for in Ph.D. applications is evidence of potential for ground-breaking research; that the clearest form of such evidence is prior research engagement; and that recommendation letters are crucial in assessing the student’s research potential.

That’s sound advice for those pursuing post-graduate studies, perhaps even an academic career. But what about Computer Science in Primary and Secondary Education? I asked Constantinos if he could write a few words about the importance of students having early exposure to computational thinking and computer science principles. Here is what he had to say:

“‘Information’ and ‘computation’ are just such fundamental concepts that there is no doubt they should be an integral part of primary and secondary education. All that takes place around us (or inside us) can be viewed as computing on information. Sometimes we want to process information efficiently—think Google trying to rank webpages. Other times we want to mine interesting information from vast amounts of raw information—think trying to identify chunks of the genome implicated in some disease. Sometimes we want to hide information—think cryptography. Other times we may want to release information while respecting privacy of individuals—think releasing medical data. Some other times, we want to incentivize individuals who have information to reveal that information to us…. And it is not just us trying to gain or operate on information. Biological, physical, and social processes are fundamentally computational, operating on information in some application-specific medium. Computer science principles can change one’s perspective on life, science, and society. Our educational system should teach that way of thinking early on.” 

And a summary of how his work has impacted international knowledge in computer science?

“My research studies the foundations of Economics from a computational standpoint. The starting point is that, besides sometimes being irrational, humans are definitely computationally bounded – in some sense, irrationality is a form of computational boundedness. So, studying economic behavior needs to incorporate computational thinking into economic thought. My research focuses at this interaction between Economics and Computation. One of my most celebrated results was showing that the Nash equilibrium – the crown jewel of prediction tools in Game Theory, defined by John Nash, the mathematician portrayed in “Beautiful Mind” – is computationally intractable. This means that, in complex interactions, it may take centuries of time before humans (even if they have access to super-computers to help them with their computation) behave as Nash equilibrium predicts. This casts doubt on how accurate the prediction ability of Nash equilibrium is, calling for better, computationally aware tools for predicting behavior. Research at the interface of Computation and Economics hopes to shed light on such issues of fundamental importance for understanding human behavior.”

A big thank you to Constantinos for providing valuable insight into the importance of Computer Science at all levels of education.

Mina Theofilatou, CSTA International Representative, Kefalonia, Greece

AccessCS10K: helping make high school computing courses more accessible and welcoming to students with disabilities


By: Richard E. Ladner
University of Washington

In 2010-2011, approximately 13 percent of K-12 students have a recognized disability according to the National Center for Education Statistics (NCES). This represents about 6.5 million students with disabilities in the K-12 education system. This only counts those students covered under the Individuals with Disabilities Education Act (IDEA) of 1990.   There are many more who have 504 plans (under the Rehabilitation Act of 1973). Students with 504 plans need some accommodation to attend school, but not an entire Individualized Education Plan (IEP) like those under IDEA. In any case, teachers of high school computing courses are likely to have students with disabilities in their classes.

One group of students, namely blind students, are already severely disadvantaged in high school computing classes that use programming tools such Scratch, Snap, Alice, Processing, Greenfoot, and other highly visual user interfaces that are generally inaccessible to blind users. Will teachers in these classes say, “Sorry you cannot take my computing course because you cannot use the tools we are using to teach programming?” Will a special education teacher or guidance counselor recommend to the student that she consider another career choice than the one the student wants to pursue? This should not happen. Computer science is a great profession for blind people and they should not be discouraged from pursuing it at an early age. (For profiles of blind individuals – and other individuals with disabilities – who have pursued computing visit the Choose Computing website.)

The goal of AccessCS10K is to help make it possible for all students with disabilities who are intellectually capable of learning computer science to have the opportunity to do so. The project is specifically focusing on the Exploring Computer Science (ECS) course and the Computer Science Principles (CSP) course, both of which are being supported by the National Science Foundation’s CS 10K initiative.

AccessCS10K has two objectives to reach its goal:

  • Build the capacity of ECS and CSP teachers to serve students with disabilities through professional development training and individualized real-time support.
  • Create accessible materials that ECS and CSP teachers can use in their classrooms, both tools and curricular units.

To build the capacity of teachers, AccessCS10K is partnering with as many of the CS 10K projects as possible to help them include information in their professional development about inclusive teaching strategies and accessible tools and curricula that can be used in the classroom. AccessCS10K holds capacity building institutes for the leaders of these projects as one way to help them integrate this information in their professional development. It maintains a community of practice whereby teachers can share resources among each other.   It maintains a searchable knowledgebase of articles that can help teachers find information they need to solve problems. Finally, it provides real-time support for teachers who have specific questions about how to integrate a student with a disability in their computing class. To get support call 509-328-9331 or e-mail accessCS10K@uw.edu.

AccessCS10K is building accessible tools and curricula that can be used in ECS and CSP courses. One major tool is the Quorum language which is an easy to learn text-based programming language that can be used for both visual and non-visual projects. AccessCS10K’s development partners are working to make other accessible tools and curricula, not only for the programming components of these courses but for the other components as well.

In an upcoming blog post we will present an introduction to Quorum. If you are curious about Quorum we encourage you to visit the Quorum web site http://quorumlanguage.com/ or to try the Quorum Hour of Code http://quorumlanguage.com/documents/hourofcode/part1.php.

AccessCS10K is funded by the National Science Foundation as part of the Computing Education for the 21st Century program of the Directorate for Computer & Information Science & Engineering (Grant #CNS1440843). AccessCS10k is a collaborative project between the University of Washington and the University of Nevada, Las Vegas.

An extra reason for you to head south this July!

July is probably the most important month in the CSTA agenda: it is the time of year when computer science teachers from all over the world join to exchange ideas and practices while attending the premier professional development event tailored specifically to their needs.

This year, the CSTA Annual Conference will take place from July 12th to 14th in Grapevine, Texas; the lineup of workshops and presentations is so stimulating that many of us will have a hard time choosing which concurrent session to attend! But this year there’s an extra reason to head south, that many attendees may not be aware of: it so happens that this year the Annual Conference of Wikimedia* enthusiasts from all over the world will be held from July 15th to 19th in Mexico City, Mexico.

The conference is aptly named “Wikimania”: ask any long-time Wikimedia editor why and she’ll talk passionately about the values of the largest crowd-sourcing community in the world. I, for one, have been a Wikimedia editor since 2007 and most of my edits have been made in the context of school projects involving students of all ages in Grades 7-12. Over the course of nine school years to date, my classes have gained skills, knowledge, appreciation for teamwork and pride in contributing to five of the total fifteen Wikimedia projects in two different languages; it’s been an absolutely priceless experience, and every year it just gets better.

The Wikimania conference is annually held in a different place in the world since 2005.The conference program encompasses a number of tracks, which means there is always something fascinating going on no matter what your interests are: this year the first two days (15th-16th) will host a Hackathon (or DevCamp), followed by three days of workshops, presentations, quick meetings and much, much more. The tracks that educators will  be most interested in are, no doubt, Education and GLAM (that’s Galleries, Libraries, Archives and Museums)… and of course, computer science teachers and enthusiasts will be sure to enjoy the hackathon.

Each year the Wikimedia Foundation awards around 100 Wikimania scholarships to active members of the worldwide Wikimedia community to cover travel and accommodation expenses; I am proud to be one of the two Greek Wikimedians who earned a scholarship this year. So, why not join me as I head further South after Texas this July?

All in all, an exciting week of professional development, hacking, learning and sharing (not to mention, tequila parties!) lies ahead this summer… hope to see you in Texas and Mexico:)

More information about registration here (link should be active in a matter of days)… or just drop me a line and I’ll be glad to assist.

Read this post for more about how integrating Wikimedia projects into your classroom can enrich your students’ learning experience.

*Wikimedia is the “umbrella” Foundation for Wikipedia and it’s 15 sister projects.

Mina Theofilatou
CSTA International Representative
Kefalonia, Greece

End of year thoughts

Its that time of year for end-of-year projects, crazy state testing schedules (in Ohio at least) and other random activities. As an end-of-year project, many of us assign open ended projects so our students can demonstrate their knowledge, do something that interests them, and to stretch their minds. This year I have a very eclectic group of programming students and have been surprised many times by their interests and abilities. This end-of- year project is no exception.

What I have learned is that they are stretching my brain in the process of stretching theirs.  I have spent more time sitting next to students analyzing a problem, discussing possible solutions, teaching them a particular construct that they need that maybe we haven’t covered, and loving every minute of it. I have been busier than normal with questions and they are not slowing down.

This project had a component in it that previously failed with another class. However, I think it is what has pushed this group to envision possibilities. In the students project plan I had them give me four different variations of the program they could do – “something that works”, “average program”, “extras included”, and “the sky is the limit program”.  This group really thought about what they would do to have something working and then many different possibilities of the other versions. Most of the students are shooting for the sky and I am thrilled to watch them. Unfortunately, with time constraints, many will end up in the “extra” version of their program but even that will far exceed my expectations.

This class of students has reminded me of the old saying about if you have high expectations the students will rise to the occasion; however, in this case the students have the high expectations and are working hard to not let themselves down. These past couple of weeks have reminded me of why I am a computer science teacher and just how exciting CS can be when “the sky is the limit”.

Public-Private Partnerships in Computer Science Education

By: Lorilyn Owens, Director, Oracle Academy North America

Industry partners are content providers, augmenting and enhancing curriculum resources. Industry partners are funding sources, helping support classroom resources, professional development, and extracurricular clubs and activities. Industry partners provide volunteers to support classroom teaching, lending expertise and credibility to real-world ideas. All of these ideas were expressed by experienced educators at the 2014 CSTA conference during the Oracle Academy panel discussion focused on how to maximize public-private partnerships to better support computer science (CS) education. When it comes to CS education, which approach is right? Or are they all right? The lively discussion only began to scratch the surface. We did learn, however, there is no one right answer.

For more than 20 years Oracle, through its flagship philanthropic Oracle Academy program, has worked to advance computer science education and make it more accessible and engaging to students everywhere. Oracle Academy supports continuous computer science learning at all levels, and makes available a variety of resources including technology, curriculum and courseware, student and educator training, and certification and exam preparation materials.

Over the years, we have seen tremendous progress with public-private partnerships. Recently there has been an influx of both industry and nonprofit organizations that provide support for computer science education. While some of the resources come with a hefty price tag, many of them are free or low cost. The resources often differ in scope and objective. Some resources are vendor specific and some are vendor neutral and focus on core concepts and foundational knowledge. Some resources are event driven and others are curriculum based. Some resources focus on students and others focus on educators. There are e-books, videos, software, games, and countless websites with downloadable resources. With so much available, how do you choose what is right for you and your students? Rather than solely considering the available resources, perhaps you should also look at the resource provider and seek an opportunity for a public-private partnership.

Although we cannot provide specific guidance, in our experience, effective public-private partnerships in support of CS education do three things:

  1. They provide an opportunity for true engagement. If an industry partner is seen only as a project funder with little direct engagement with students or teachers, it is a missed opportunity for all involved. Seek a partnership that helps foster a strong and supportive community of practice, and provides support for educators at all levels.
  2. They are mutually beneficial. The arrangement should clearly articulate what the industry partner can offer the educational institution and what the educational institution can offer the industry partner. All involved need to be sure they deliver on commitments.
  3. They help address the need. Don’t lose sight of the problem you are trying to solve. Have a good understanding of what you are trying to accomplish and what is needed to achieve that goal. Then, seek a partnership that truly helps to deliver what is needed. Finally, consider including success metrics as a way to evaluate the effectiveness of the public-private partnership in addressing your needs.

Access to computer science education, regardless of gender, ethnicity, or socioeconomic status, is a defining 21st century social issue. Technology permeates our lives and drives the global economy. Future growth requires people with strong computer science skills. As we work collectively to prepare the technology innovators of the future, consider engaging in public-private partnerships to support your efforts. They can be effective avenues to increase access and opportunity in CS education.

New IT Roles Produce a Slew of New Job Titles

In case you missed this CIO.com article in March, I thought I would share it here. The topic is a good one for discussion with students who might not see themselves as software engineers or computer scientists. The article discusses the new business landscape for some of the larger IT companies and how they are redesigning their infrastructures to accommodate the changing needs of the industry. The article touches on a few of the less talked about job positions that are needed for a vast majority of new, or re-envisioned jobs, for the changing IT landscape. This includes roles such as project manager, solution architect, data scientist, and new customer service oriented positions that some companies are developing outside the traditional “customer service” role.


Advocating the “Coolness” of CS

Quick – what is one “cool thing” about computer science? Hopefully several thought flooded your brain and you probably had trouble deciding what one thing you would reply with. I would assume that would be the case with most CS Educators and supporters; however, what would your students say?

It is scheduling time at our high school and students are making decisions about what courses to take and why. When a student looks that the computer science offerings what comes to their minds? What message have you gotten out to the students? Do they think it is cool? Important? Necessary for future? Fun?

We send messages to all students in our classes and I think we need to be purposeful about those messages sometimes. Over the past month I have reiterated how cool computer science is in my programming class by promoting “there is no one right answer – you can solve problems how your brain works and thinks”. My programming class had an ah ha moment when we were working on a program and I showed a couple different ways it had been completed and that both ways worked. For my part I did mention that as you learned more there may be better solutions in term of speed, efficiency, etc. but that right now I just wanted them to solve problems how they saw them.

A couple days ago we were removing an object (a car) that got to the edge of the screen (a frogger simulation game). We discussed a removeObject method and how you would go about using it and they all were happy they could now remove the pile up occurring on the side of their screen. I stopped them though and said….there is another way of doing this – maybe better or maybe not – but it is how I saw the program for the first time. Then I began to explain I wouldn’t remove the cars. I would reset their location on the screen and reuse them as if they spawned on the other side. Because of that I also would not continually create new cars, instead I would create a set number and kept reusing them. I said that is how my brain envisioned the game the first time I saw the program. There were some nods of understanding and then I said “but that is the beauty of programming, I could do it that way and others could remove cars but we would all still have a working frogger style game.”

I think we need to remind students why CS is awesome, why we love CS, and I think it is important we share how we view solutions especially when they may not be the most common way. It makes other students more comfortable to solve something the way they see it. Then maybe they tell their friends “Computer Science is cool. I can solve problems the way my brain thinks.”