Elementary School Computer Science – Misconceptions and Developmental Progressions: Papers from SIGCSE 2017

April 3, 2017 at 7:00 am 12 comments

March 8-11, Seattle hosted the ACM SIGCSE Technical Symposium for 2017. This was the largest SIGCSE ever, with over 1500 attendees. I was there and stayed busy (as I described here). This post isn’t a trip report. I want to talk about two of my favorite papers (and one disappointing one) that I’ve read so far.

We are starting to gather evidence on what makes elementary school computer science different than undergraduate computer science. Most of our research on learning programming and computer science is from undergraduates, published in SIGCSE venues. We know relatively little about elementary school students, and it’s obvious that it’s going to be different. But how?

Shuchi Grover and Satabdi Basu of SRI are starting to answer that question in their paper “Measuring Student Learning in Introductory Block-Based Programming: Examining Misconceptions of Loops, Variables, and Boolean Logic.” They looked at the problems that 6th, 7th, and 8th graders had when programming in Scratch. They’re reporting on things that I’ve never heard of before as misconceptions at the undergraduate level. Like this quote:

Students harbored the misconception that a variable is a letter that is used as a short form for an unknown number – an idea that comes from middle school mathematics classes. Together, this led students to believe that repeat(NumberOfTimes) was a new command. One student conjectured it was a command for multiplication by 5 (the value of NumberOfTimes), while another thought it would print each number five times… After being told that NumberOfTimes was indeed a variable, the students could correctly predict the program output, though they continued to take issue with the length of the variable name.

I find their description believable and fascinating. Their paper made me realize that middle school students are expending cognitive load on issues like multi-character variable names that probably no computer scientist even considered. That’s a real problem, but probably fixable — though the fix might be in the mathematics classes, as well as in the CS classes.

The paper that most impressed me was from Diana Franklin’s group, “Using Upper-Elementary Student Performance to Understand Conceptual Sequencing in a Blocks-based Curriculum.” They’re studying over 100 students, and starting to develop general findings about what works at each of these grade levels. Three of their findings are quoted here:

Finding 1: Placing simple instructions in sequence and using simple events in a block-based language is accessible to 4th-6th grade students.

Finding 2: Initialization is challenging for 4th and 5th grade students.

Finding 3: 6th grade students are more precise at 2-dimension navigation than 4th and 5th grade students.

I’ve always suspected that there was likely to be an interaction between a student’s level of cognitive development and what they would likely be able to do in programming, given how much students are learning about abstraction and representation at these ages. Certainly, programming might influence cognitive development. It’s important to figure out what we might expect.

That’s what Diana’s group is doing. She isn’t saying that fourth grader’s can’t initialize variables and properties. She’s saying it’s challenging for them. Her results are likely influenced by Scratch and by how the students were taught — it’s still an important result. Diana’s group is offering a starting point for exploring these interactions and understanding what we can expect to be easy and what might be hard for the average elementary school student at different ages.  There may be studies that also tell us about developmental progressions in countries that are ahead of the US in elementary school CS (e.g., maybe Israel or Germany). This is the first study of its kind that I’ve read.

SIGCSE 2017 introduced having Best Paper awards in multiple categories and Exemplary Paper awards. I applaud these initiatives. Other conferences have these kinds of awards. The awards helps our authors stand out in job searches and promotion time.

To be really meaningful awards, though, SIGCSE has to fix the reviewing processes. There were hiccups in this year’s reviewing where there wasn’t much of a match between reviewer expertise and the paper’s topic. The hiccups led to papers with significant flaws getting high rankings.

The Best Paper award in the Experience Report category was “Making Noise: Using Sound-Art to Explore Technological Fluency.” The authors describe a really nifty idea. They implement a “maker” kind of curriculum. One of the options is that students get toys that make noise then modify and reprogram them. The toys already work, so it’s about understanding a system, then modifying and augmenting it. The class sounds great, but as Leah Buchele has pointed out, “maker” curricula can be overwhelmingly male. I was surprised that this award-winning paper doesn’t mention females or gender — at all. (There is one picture of a female student in the paper.) I understand that it’s an Experience Report, but gender diversity is a critical issue in CS education, particularly with maker curricula. I consider the omission of even a mention of gender to be a significant flaw in the paper.

Entry filed under: Uncategorized. Tags: , , , .

The need for better software and systems to support active CS learning The Limitations of Computational Thinking: NYTimes

12 Comments Add your own

  • 1. Alfred Thompson  |  April 3, 2017 at 8:27 am

    I’m starting to wonder if we really know enough about how CS education can work in K-8 for us to really write standards for that age band. There seemed to be wide spread disagreement about what was appropriate for younger students during the writing of the K12 CS education framework. Could that be from too much anecdotal knowledge and not enough solid research?

    • 2. Mark Guzdial  |  April 3, 2017 at 2:14 pm

      That’s why I think papers like these are so important. We have to start measuring what’s appropriate.

  • 3. gflint  |  April 3, 2017 at 1:47 pm

    4-8 CS is not my normal teaching age group but I have done it enough to make some educated observations. The biggest for me has been the range of ability levels. In the age group there are 8th graders that cannot follow sequential steps to 4th graders that can keep up with anything I can present. Making generalization by grade-level is simply impossible. Things like economic background, parental involvement or the simple fact if there is a computer available for the kid at home are such huge factors at this level that any generalization is extremely difficult. Writing the framework for this group is going to be a guess at best. What I do know for certain is that teaching CS to this age group can be a blast. They have not reached the point where they say they cannot do computer “stuff”. They are willing to try anything. Many of my high school students (my usual CS student group) have already made up their minds as to what they can and cannot do and no amount of logic is going to change their mind.

    • 4. Mark Guzdial  |  April 3, 2017 at 2:14 pm

      There will always be 4th graders who can do everything. There are always developmental differences. I think it is worth understanding what developmental level is needed to understand what CS concepts. Generalization by developmental level should be possible. The connection between developmental level and grade may be a localized to context/school.

  • 5. acbart  |  April 3, 2017 at 3:46 pm

    Your first point reminds me of another SIGCSE’17 paper: “Variable Evaluation: an Exploration of Novice Programmers’ Understanding and Common Misconceptions” by Tobias Kohn [1]. In that paper, students’ applied mathematical reason to determine that stuff like “X = X + 1” was impossible. It seems like a good math education can be a bit of a double-edged sword!

    [1] http://dl.acm.org/citation.cfm?id=3017724&CFID=891232294&CFTOKEN=14409646

    • 6. Mark Guzdial  |  April 3, 2017 at 4:13 pm

      I don’t find that paper convincing. The paper makes strong claims (e.g., “During classroom sessions some students distinctly applied
      techniques and methods from mathematics to programming”) with no evidence. In general, the paper has no data that relate to how students think about variables.

  • 7. Jens Mönig  |  April 4, 2017 at 5:06 am

    I really liked Diana’s paper a lot, too. I was especially delighted by how she and her group created different versions of the “LaPlaya” blocks-based environment and IDE’s that were specifically geared towards a particular research questions, such as initialization. That was good stuff!

    The part that disappointed me slightly was that nowhere in her paper or in the presentation (or, in fact, in any of her papers) she acknowledges, that all of these IDEs are forks of the Berkeley Snap! codebase. I was really surprised to discover LaPlaya as a variant of Snap, as I had not known of it previously at all. That said, my delight about her great work eclipses my narcism 🙂

  • 8. christine  |  April 19, 2017 at 11:26 am

    We have started the basic concepts of coding in our elementary school beginning with our Prek classrooms. The students build upon looping, sequencing and variables from there. We have noticed that once they reach 3rd/4th grade, they can quickly grasp all aspects of Scratch and other programs. This isn’t done as a stand-alone (club, etc). It is integrated into our curriculum.

  • 9. Georgiy Kuznetsov  |  April 24, 2017 at 10:51 am

    Computing (including the word) emerged millenia before the advent of the programmable machines. The skills of programming comprise much before variables, and they can be taught to 2-year olds. Second graders can learn textual procedural programming. Just give them what to program.

    The following video (promotional but non-commercial) illustrates those points. The first part (6 minutes long) is about teaching preschoolers big numbers through computing.

    The second part adds details and puts them in perspective.

    The interactive online presentation explains the background


    Thank you for your time.


  • […] elements matters and the specificity of those language elements matter (two early learning goals as described in the learning trajectories work), I’ll bet that you’ll use those later. Those aren’t about the […]

  • […] I particularly like about Marina’s list is how it connects to the learning trajectories work that I’ve been talking about here and highlighted in my 2019 SIGCSE Keynote (as described in Ann […]

  • […] Learning Trajectories for Everyday Computing project at the University of Chicago (see blog posts here and here). They define the sequence of concepts and goals that K-8 students need to be able to […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

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

Join 9,052 other followers


Recent Posts

Blog Stats

  • 2,031,363 hits
April 2017

CS Teaching Tips

%d bloggers like this: