Posts tagged ‘K12’

More Teachers, Fewer 3D Printers: How to Improve K–12 Computer Science Education 

A nice summary of where we’re at with CS Ed in the United States, where additional funding and effort should go, and where it shouldn’t.

Addressing the teacher shortage should be the number one use for the new funds allocated by the Trump administration, says Mark Stehlik, a computer science professor at Carnegie Mellon University. A lack of qualified teachers is the biggest barrier to CS education in the U.S., he says, and he thinks the problem is going to get worse. An earlier generation of CS educators has started to retire, and he says younger CS graduates “aren’t going into education because they can make twice or more working in the software industry.”

One solution could be to expand the reach of each CS educator through online classes. But “online curricula aren’t going to save the day, especially for elementary and high school,” Stehlik says. “A motivated teacher who can inspire students and provide tailored feedback to them is the coin of the realm here.”

Where the money should not be spent? On hardware and equipment. Laptops, robots, and 3D printers are important, says’s Yongpradit, “but they don’t make a CS class. A trained teacher makes a CS class. So money should be focused on training teachers and offering robust curriculum.”

Source: More Teachers, Fewer 3D Printers: How to Improve K–12 Computer Science Education – IEEE Spectrum

October 18, 2017 at 7:00 am 7 comments

The Role of Emotion in Computing Education, and Computing Education in Primary School: ICER 2017 Recap

I wrote my Blog@CACM post in August about the two ICER 2017 paper awards:

  • Danielsiek et al’s development of a new test of student self-efficacy in algorithms classes;
  • Rich et al.’s trajectories of K-5 CS learning, which constitute an important new set of theories about how young students learn computing.

Rich et al.’s paper is particularly significant to me because it has me re-thinking my beliefs about elementary school computer science. I have expressed significant doubt about teaching computer science in early primary grades — it’s expensive, there are even more teachers to prepare than in secondary schools, and it’s not clear that it does any longterm good. If a third grader learns something about Scratch, will they have learned something that they can use later in high school? Katie Rich presented not just trajectories but Big Ideas. Like Big Ideas for sequential programming include precision and ordering. It’s certainly plausible that a third grader who learns that precision and ordering in programs matters, might still remember that years later. I can believe that Big Ideas might transfer (at least, within computing) over years.

I was struck by a recurring theme of emotion in the papers at ICER 2017. We have certainly had years where cognition has been a critical discussion, or objects, or programming languages, or student’s process. This year, I noticed that many of these papers were thinking about beliefs and feelings.

I find this set of papers interesting for highlight an important research question: What’s the most significant issue influencing student success or withdrawal from computer science? Is it the programming language they use (blocks vs text, anyone?), the kind of error messages they see, the context in which the instruction is situated, or whether they use pair programming? Or is the most significant issue what the students believe about what they’re doing? And maybe all of those other issues (from blocks to pairs) are really just inputs to the function of student belief?

(Be sure to check out Andy Ko’s summary of ICER 2017.)

September 1, 2017 at 7:00 am 1 comment

US States Move toward CS Ed: MA, CA, and the challenge of local control

I review for the WIPSCE conference (an international conference on K-12 computing), and found a phrase in one of the papers I was reviewing about computing education now being mandatory in the United States.  Well, not really — kinda, sorta, in someplaces.  It may be hard for educators outside the US to understand the decentralized nature of computing education in the US.  The individual 50 states control primary and secondary school education by law, and some of those states (notably, California, Massachusetts, and Nebraska) are “local-control” — the state itself decides to shift almost all of the education decision-making to the individual school districts (easily a hundred in a small state, multiple hundreds in large ones).

Recently the National Association of State Boards of Education has come out with a policy update about CS education in the states.  Useful — except for the local control states, where the state boards of education don’t really have that much power.

While educators and parents recognize computer science as a key skill for career readiness, only five states have adopted learning standards in this area. Tides are changing, however, as the Every Student Succeeds Act (ESSA) recognizes with its call on states to provide a “well-rounded education” for students, to include computer science standards. This NASBE Policy Update outlines what states need to consider as they develop computer science standards and improve instruction, highlighting several promising state efforts already under way.

Source: NASBE – States Move toward Computer Science Standards

How do local control states implement reforms like computing education? In California, they’re trying to pass legislation to create an advisory board about integrating CS into education. It’s all about advice and recommendation — the state can’t make the districts do much.

California legislators are reviewing a bill that would create an advisory board to integrate computer science into education.The Assembly legislation would create a 23-person panel overseen by the state Superintendent that would deliver recommendations by September 2017 on how to improve computer science education, and establish curriculum standards for grades K-12.The panel would comprise teachers, administrators and professors across K-12 and higher education, as well as representatives from government, parent associations and student advocacy organizations. The bill is backed by Microsoft and

Source: California legislators push computer science education bill

Massachusetts has just come out with their new state standards. I haven’t gone through them all, but from what I’ve seen (and knowing people who helped build it), I believe that they’re really high-quality. But they’re just voluntary. The districts have to be coaxed into adopting them.

Massachusetts public schools may start using new digital literacy and computer science standards as soon as this fall. The state board of elementary and secondary education unanimously approved the standards, which are voluntary, at its monthly meeting Tuesday.”Today’s vote recognizes the importance of digital literacy and computer science to modern life, work and learning,” board chairman Paul Sagan said in a statement. “These standards will help our students think about problem solving in new ways and introduce them to valuable skills they will need in today’s economy.”

Source: Mass. Has New K-12 Standards For Digital Literacy, Computer Science | WBUR News

August 1, 2016 at 7:57 am Leave a comment

How to choose programming languages for learners: Reviewing JavaScript and Ready

My Blog@CACM post for June is Five Principles for Programming Languages for Learners. The five principles I identify are:

  1. Connect to what learners know
  2. Keep cognitive load low
  3. Be honest
  4. Be generative and productive
  5. Test, don’t trust

I wrote the essay in response to Idit Harel’s influential essay American schools are teaching our kids how to code all wrong. There were many responses to Idit’s essay, on social media and in other blogs. Much of the discussion focused on text programming languages vs. drag-and-drop, blocks-based languages, which I don’t think is the most critical distinction.

In this post, I respond to two of the suggestions that came up in some of these discussions. I use the five principles to review the suggestions in a kind of heuristic evaluation.


If we were going to teach a professional language to students, JavaScript is attractive. It’s free and ubiquitous, available in every Web browser. There are many jobs for JavaScript programmers. Because so much is built on top of it, it’s likely to remain around for many years in a compatible form. I argue in the Blog@CACM post that there are many dimensions to “real” when it comes to programming languages. “Use by professionals” is not the most important one when we talk about learners.

I recommend considering each of these five principles before choosing a programming language like JavaScript for learners.

  1. Connect to what learners know – You could teach JavaScript as a connection to what children already know. The notation of JavaScript doesn’t look like anything that children are likely to have seen before, in contrast to Logo’s emphasis on words and sentences, Squeak eToys’ “Drive the Car,” Boxer’s simple UI boxes (what diSessa calls naive realism), and Racket/Bootstrap’s connections between algebra and S-expressions.  However, JavaScript is the language of the Web today, so one could probably relate the programming activities to Web pages. Most learners are familiar with parts of a Web page, animations in a Web page, and other Web features that JavaScript can control. That might serve as a connection point for children.
  2. Keep cognitive load low – JavaScript has a high cognitive load. I’m a JavaScript learner and am just meeting some of its weirder features. I was shocked when I first read that = is assignment, == is type-insensitive equality, and === is type sensitive equality/equivalence. So, "5"==5 is true, but "5"===5 is false. Counting the number of = and remembering what 1 vs 2 vs. 3 means is an excellent example of extraneous cognitive load. My bet is that JavaScript overwhelms children and is probably inefficient for adult learners. This means that learners are spending so much time making sense of the syntax, it takes them longer and more effort to get to the concepts (and they may lose interest before they get to the good stuff).
  3. Be honest – JavaScript is authentic, it’s real for most senses of the term.
  4. Be generative and productive – I don’t know if JavaScript would be generative and productive for students. I don’t know anyone teaching JavaScript as a way to teach significant ideas in CS or other STEM disciplines. My worry is that the cognitive load would be so overwhelming that you couldn’t get to the interdisciplinary or complex ideas. Students would spend too much effort counting = and fighting for loops.
  5. Test, don’t trustThe only study that I know comparing JavaScript to a blocks-based language had JavaScript losing. JavaScript conditionals and loop structures were far harder for students than the equivalent block-based structures.

We should experiment more with JavaScript, but I suspect that students would do better (struggle less with syntax, learn more, connect to other disciplines more) with a different syntax. If I were trying to get the advantages of JavaScript without the syntax cost, I’d try something like ClojureScript — freely available, as fast as JavaScript, as ubiquitous as JavaScript, used professionally, can be used to control Web pages like JavaScript (so connectable for learners), and with the syntactic similarities to mathematics that Racket enjoys.


Baker Franke of is promoting the essay Coding snobs are not helping our children prepare for the future as a response to Idit’s essay. The essay is about the application-building tool, Ready. Media theorist Dough Rushkoff has also been promoting Ready, What happens when anyone can code? We’re about to find out.

I disagree with Rushkoff’s description of Ready, even in the title. As the first essay by David Bennahum (a “Ready Maker and Venture Partner) points out, it’s explicitly not about using a programming language.

Our efforts at Ready, a platform that enables kids to make games, apps, whatever they want, without knowing a computer language, are designed to offer a new approach to broadening access to code literacy.

Bennahum’s essay means to be provocative — and even insulting, especially to all the teachers, developers, and researchers who have been creating successful contextualized computing education:

In this new world, learning coding is about moving away from computer languages, syntax, and academic exercises towards real world connections: game design and building projects that tie into other subjects like science and social studies… This is the inverse of how computer science has been taught, as an impersonal, disconnected, abstracted, mathematical exercise.

I can see how Rushkoff could be confused. These two quotes from the Ready team seem contradictory. It’s not clear how Ready can be both about “learning coding” and “code literacy” while also allowing kids to make “without knowing a computer language.” There is no programming language in Ready.  What is coding then? Is it just making stuff?  I agree with Rushkoff’s concerns about Ready.

True, if people don’t have to code, they may never find out how this stuff really works. They will be limited to the programming possibilities offered by the makers of the platforms, through which they assemble ready-made components into applications and other digital experiences.

Let’s consider Ready against the five principles I propose.

  1. Connect to what learners know – the components of Ready are the icons and sliders and text areas of any app or game. That part is probably recognizable to children.
  2. Keep cognitive load low – Ready is all about dragging and dropping pieces to put them together. My guess is that the cognitive load is low.
  3. Be honest – Ready is not “real” in most sense of authenticity. Yes, students build things that look like apps or games, but that’s not what motivates all students. More of Betsy DiSalvo’s “Glitch” students preferred Python over Alice (see blog post). Alice looked better (which appealed to students interested in media), but students knew that Python was closer to how professional programmers worked. Authenticity in terms of practice matters to students. No professional programmer solely drags and drops components. Programmers use programming languages.
  4. Be generative and productive – Ready completely fails this goal. There is no language, no notation. There is no tool to think with. It’s an app/game builder without any affordances for thinking about mathematics, science, economics, ecology, or any other STEM discipline. There’s a physics engine, but it’s a black box (see Hmelo and Guzdial on black box vs glass box scaffolding) — you can’t see inside it, you can’t learn from it. They build “models” with Ready (see this neurobiology example), but I have a hard time seeing the science and mathematics in what they’re building.
  5. Test, don’t trust – Ready offers us promises and quotes from experts, but no data, no results from use with students.

Ready is likely successful at helping students to make apps and games. It’s likely a bad choice for learners. I don’t see affordances in Ready for computational literacy.

June 20, 2016 at 7:46 am 22 comments

Final Review Period for the K-12 CS Framework for K-12 Computer Science Education June 8-29

The final review period is June 8-29. Do engage with the review.  Whatever comes out of this is likely to influence the standards for K-12 CS education in the United States for the next five to ten years.

I’m not so happy with the framework, but I recognize that it’s a collaborative process where no one is going to be completely happy (see previous post about the framework).  A source of difficulty for building the framework is that we are so early in CS Education in the United States. We are optimizing for the current state, at time when that state is rapidly changing.

Here’s an instance of the general problem. Last time I was at a framework meeting as an advisor, I pushed hard to include the concept of the word bit as a learning objective in the framework.  Even as quantum computing is developed, the Claude Shannon notion of a bit as a fundamental unit of information is still relevant and useful — it’s one of the foundational ideas of computing. The suggestion was vehemently rejected by the writers because current teachers fear binary.  I tried to argue that we can talk about bits (e.g., what is information, how we can store/represent bits, and how we can encode information in bits) without talking about binary, but the writers argued that teachers will perceive bits as being about binary and reject it.  I pointed out that the word bit did appear in the document, just not explained. It’s hard to talk about computing without talking about “bits.” In response, every instance of the word bit was removed from the framework document.

We have so few teachers today in schools (e.g., no state has high school CS teachers in more than even 30% of their high schools, we likely need ten times the number of current teachers in order to provide CS education to everyone in the United States), and we’re still just figuring out how to develop new CS teachers.  Should we really make decisions about the next 5-10 years based on what current teachers dislike? Especially when too few of those teachers have had significant teacher professional development? Maybe we do — we might need to keep those teachers engaged in order to grow the programs to create more teachers.

I argued in the past that it’s about consensus not vision.  It still is. The question is how much unpleasantness we can swallow and still agree on the framework.

The goals of the K-12 CS framework review process are to provide transparency into the development of the K-12 CS framework and include feedback from a diverse range of voices and stakeholders. If you haven’t already, please sign up for framework updates.Individuals and institutions are invited to be reviewers of the K-12 CS framework. Institutions, such as state/district departments of education and organizations (industry, companies, non-profits), are responsible for selecting an individual or a group to represent the institution.

Source: Review – A Framework for K-12 Computer Science Education

June 10, 2016 at 8:03 am 10 comments

Top business leaders, 27 governors, urge Congress to boost computer science education – The Washington Post

I saw on Facebook that Hadi Partovi was at Congress.  Now I see why — there’s an effort underway to get Congress to fund more in CS education.  I’m wondering what they want to get funded.  Incentives for teachers? Professional development? Pre-service education?  Does someone know the details?

Despite this groundswell, three-quarters of U.S. schools do not offer meaningful computer science courses. At a time when every industry in every state is impacted by advances in computer technology, our schools should give all students the opportunity to understand how this technology works, to learn how to be creators, coders, and makers — not just consumers. Instead, what is increasingly a basic skill is only available to the lucky few, leaving most students behind, particularly students of color and girls.

How is this acceptable? America leads the world in technology. We invented the personal computer, the Internet, e-commerce, social networking, and the smartphone. This is our chance to position the next generation to participate in the new American Dream.

Source: Top business leaders, 27 governors, urge Congress to boost computer science education – The Washington Post

April 26, 2016 at 8:51 am Leave a comment

How to Participate in the K12 CS Framework Review Process

I’ve mentioned the K12 CS Framework Process a couple of times before (see this blog post).  It’s now available for public comment.

Individuals and institutions are invited to be reviewers of the K-12 CS framework. Institutions, such as state/district departments of education and organizations (industry, companies, non-profits), are responsible for selecting an individual or a group to represent the institution. Reviewers can choose to participate in one or both of the two review periods:

  • Feb 3 to Feb 17: Review of the 9-12 grade band concepts and practices
  • March 14 to April 1: Review of the entire K-12 concepts and practices

There will be a public webinar (save this link) to launch the first review period on Feb 3 at 8pm ET / 5pm PT. Learn about the development of the framework and how to provide an effective review.

Find different instructions for individuals and facilitators of group reviews, including an informational session kit for review group facilitators at  Visit this page after 9 am on Feb 3rd and you’ll be able to access the framework draft and an online feedback form for the first public review


Lian Halbert, K-12 CS Framework development staff

P.S. Are you attending SIGCSE 2016 in Memphis this March 2-5? We will hold a Birds of a Feather session on Thursday March 3 for all SIGCSE attendees – feel free to invite folks so they can learn about the K-12 CS framework.

February 3, 2016 at 8:02 am Leave a comment

Older Posts

Recent Posts

October 2017
« Sep    


Blog Stats

  • 1,440,481 hits

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 5,159 other followers

CS Teaching Tips