Posts tagged ‘Scratch’
Programming with Pseudocode, Keeping Student Interest, the Need for School, and International Curricula: Trip Report on WiPSCE 2014
First week of this month, Barb and I went to Berlin for WiPSCE 2014 conference. See the program here and the proceedings here, and the post on my keynote here. Let me tell you about some of the interesting things I heard there.
We heard about so many international CS curricula efforts. Tim Bell talked about different levels of programming activity going on in different curricula (all the images in this blog post are from me snapping pictures of presentations).
We heard about Austrian efforts, Flemish efforts, and programs I was aware of in the UK, New Zealand, Germany, Israel, and the United States. I had not previously hear much about Poland in CS Ed, but they’ve been including computing in their curriculum for a long time.
Quintin Cutts (Code or (not Code) – Separating Formal and Natural Language in CS Education) talked about a problem that they’re having in Scotland that we’re also facing in the US with the CS Principles effort. There are several different programming languages in use in schools. Nobody wants to be the bad guy to say “You have to use X (maybe Scratch? Alice? App Inventor? Python?), because that’s what the national test will be in.” So, national test-developers are creating pseudocode languages that aim to be understandable without getting hung up on syntax. Scotland has one that’s made up of bits and pieces of other languages (which they call “Haggis” — seriously!). The problem is that if a piece of code is never expected to run, it can have assumptions within it that would have to be cleared up to build a runtime system. Quintin showed how even simple examples of the pseudocode from their national test have all kinds of logical inconsistencies.
It’s a real problem. Allison Elliott Tew’s dissertation (see here for post) showed that weakest performing students had the worst time transferring their knowledge from whatever language they learned to a pseudo-code. That means that your top students are going to be fine with a pseudo-code test, but your bottom students are not going to do well at all — they won’t know all the concepts, and they’re going to trip over the language. A pseudo-code test is going to be another barrier to underprepared students getting into CS.
Now, once you get them in the door, how do you keep them there? One interesting paper (Scratch vs. Karel – Impact on Learning Outcomes and Motivation) compared student interest in using Scratch or Karol the Robot. Scratch is a blocks-based language, and Karol was programmed in a text-based language. Students liked Scratch and performed better with it, but felt that Karol was more “real-life” and thus was more motivating for doing more in CS later. Betsy DiSalvo found similar results with her Glitch students. When comparing Alice and Python, students liked what they could produce with Alice, but felt that Python was more like what real programmers did and was consequently more motivating for some students. This paper has had me thinking, “Maybe we should bring Logo back?” It’s text-based like Karol, designed for students, and we have LOTS of books and other materials available for Logo across the curriculum.
Leigh Ann DeLyser talked about her work with CS NYC (Software Engineering Students in the City). It’s a remarkable program: 1900 students applied for 120 slots, and the selection among the qualified students was by lottery. They did pre and post surveys around the first year of the program, with questions like “Would you like to study CS or SE after this semester?” or “Want to be a computer scientist or software engineer one day?” Females lost much more interest in a future computing career then males.
Finally, the talk that has most been in my thoughts since the conference was by Debby Fields and Yasmin Kafai on their Scratch study (Programming in the Wild: Patterns of Computational Participation in the Scratch Online Social Networking Forum). They studied 5000 visitors to the Scratch website in the first quarter of 2012. First big finding — most of them don’t do much. 55% visit but don’t do anything. The other 45% engage at a variety of levels, and the levels are pretty much gender-balanced. The most active participants are about evenly split male-female.
Debbie and Yasmin defined four “classes” of programming activity based on the programs that these users uploaded to the Scratch website. Booleans are a big differentiator, as are variables and random numbers. The below figure describes how much of each kind of programming block appears in each class of programs, and what percentage of programs they saw land in each class.
Here’s the disappointing part: The highest level of programming activity was almost all boys. Girls don’t go much beyond the simplest programming.
Now, we don’t know much about ages or where these students are or their ethnic group. As Debby pointed out, age and location are self-reported on the Scratch website, and it’s remarkable how many 100 year old Scratch programmers there are in Antartica. Their data suggest that informal education activities like Scratch (or Kahn Academy or MOOCs) are unlikely to reach a broad range of users. Debby pointed out that what students are building influences what students do. If Scratch programmers can tell stories without booleans, how do you motivate more advanced programming actvities if they’re only story-telling? If we want to reach more diverse students, and we want to encourage more kinds of activities, we need school. We need formal education to reach everyone.
Audrey Watters is an insightful writer who tackles hard issues in educational technology. I’ve cited her work before in this blog. The post linked below made me realize that I need to read more by Paulo Freire and Paulo Blikstein, and how important it is to avoid, “The latest in a long line of educational salvations that the Global North has imposed on the Global South.”
I deeply appreciate Freire’s emphasis on “school,” which Audrey emphasizes. The need for school can also be seen in the research findings of Yasmin Kafai and Deborah Fields (who found that kids who discover tools like Scratch tend to be even more privileged than those in undergrad CS classes) and Betsy DiSalvo (who found that immigrant families don’t even know what words to search for in order to find learning resources). Open education efforts alone are unlikely to reach the underprivileged students who most need the resources. We need school in order to reach everyone.
It isn’t simply that an XPRIZE would likely offer an imperialist curriculum — that it’s in English is only part of the problem here. What does it mean to teach “O is for Octopus” in Sub-Saharan Africa, for example? It’s that all of this will be delivered on an Android tablet, and with that comes a host of other technological imperialist overtures — telecommunications companies offering hardware and software and banking and schooling; Google’s special brand of data-mining; and more broadly the tech sector’s penchant for surveillance, for starters.What is the goal of the Global Learning XPRIZE when it comes to learning? Is it for children in the developing world to join the global economy, for example? If so how? On whose terms? To what end? In what role? Why? How? Under whose Terms of Service?
I’m intrigued by this project and would really love to see some analysis. Do students who use Scratch recognize Sniff as being a text form of Scratch? If it doesn’t work well, is the problem in the syntax and semantics of Sniff, and maybe we could do better? Do students transfer their knowledge of Scratch into Sniff?
So if Scratch is so great why do we need Sniff? The problem is that at some point you need to move beyond Scratch. It could be that you want to tackle a different kind of problem that Scratch can’t handle well. Perhaps you’ve realised that graphical programming is a nice idea, and great way to start, but in practise its clumsy. Clicking and dragging blocks is a tedious and slow way to build large programs. It could be you need something that feels “more grown up” – the cat sprite/logo is cute, and even older children will find it fun for a while, but Scratch is designed to look and feel like a toy even though its actually very powerful. For whatever reason at some point you start to look for something “better”.
Pretty exciting new direction for Scratch! I’m really curious about the research that’s going to come out using ScratchJr. What can students learn to do with ScratchJr, and what’s the distribution (e.g., all kids learn X, but only 10% reach Y)? What do students transfer forward from learning ScratchJr?
ScratchJr is an introductory programming language that enables young children ages 5-7 to create their own interactive stories and games. Children snap together graphical programming blocks to make characters move, jump, dance, and sing. Children can modify characters in the paint editor, add their own voices and sounds, even insert photos of themselves — then use the programming blocks to make their characters come to life.ScratchJr was inspired by the popular Scratch programming language http://scratch.mit.edu, used by millions of young people ages 8 and up around the world. In creating ScratchJr, we redesigned the interface and programming language to make them developmentally appropriate for younger children, carefully designing features to match young children’s cognitive, personal, social, and emotional development.ScratchJr is now available as a free iPad app. We expect to release an Android version later in 2014 and a web-based version in 2015.
via ScratchJr – About.
Philip Guo did an analysis of what top CS departments teach in their introductory courses (see link below) and found that Python now tops Java. MATLAB tops C and C++ (though not if these are combined), and Scheme and Scratch are near the bottom.
It’s reasonable to say that an AP will only succeed (e.g., students will take it) if they can get credit or placement for the exam in college or university. Typically, colleges and universities give credit for courses that are currently taught. Will we see colleges and universities start teaching CS Principles? Will they give credit for a course that they don’t teach? For languages they don’t teach? Maybe we’ll see more of an influx of CSP languages and courses into colleges and universities. I predict that we won’t.
Scratch is the only visual, blocks-based language that made this list. It’s one of the most popular languages of this genre, which include related projects such as Alice, App Inventor, Etoys, Kodu, StarLogo, and TouchDevelop. The creators of these sorts of languages focus mostly on K-12 education, which might explain why they haven’t gotten as much adoption at the university level.
I got to see a build of ScratchJr at the NSF CE21 PI’s meeting in January — it’s really fun. Attractive, responsive, and well thought through, as one would expect with this team.
Coding (or computer programming) is a new type of literacy. Just as writing helps you organize your thinking and express your ideas, the same is true for coding. In the past, coding was seen as too difficult for most people. But we think coding should be for everyone, just like writing.
As young children code with ScratchJr, they learn how to create and express themselves with the computer, not just interact with it. In the process, children develop design and problem-solving skills that are foundational for later academic success, and they use math and language in a meaningful and motivating context, supporting the development of early-childhood numeracy and literacy.
With ScratchJr, children aren’t just learning to code, they are coding to learn.
I’ve been excited to see this paper get published since Betsy first told me about the work. The paper described below (by Betsy DiSalvo, Cecili Reid, and Parisa Khanipour Roshan) looks at the terms that families commonly use to find on-line resources to help their children learn about computer science. They didn’t find Alice or Scratch or Blockly — none of the things that would be our first choices for CS education opportunities on-line. Betsy and her students show how we accidentally hide our resources from the uneducated and under-privileged, by presuming that the searchers are well-educated and privileged. They point out that this is one way that open education resources actually actually increase the socioeconomic gap, by not being easily discoverable by those without privilege. I got to see a preview of this talk, and the results are surprising — a video of the preview talk will be available here. Friday March 7, 3:45-5, in Room Hanover DE.
They Can’t Find Us: The Search for Informal CS Education
In this study we found that search terms that would likely be used by parents to find out-of-school computer science (CS) learning opportunities for their children yielded remarkably unproductive results. This is important to the field of CS education because, to date, there is no empirical evidence that demonstrates how a lack of CS vocabulary is a barrier to accessing informal CS learning opportunities. This study focuses on the experience of parents who do not have the privilege of education and technical experience when searching for learning opportunities for their children. The findings presented will demonstrate that issues of access to CS education go beyond technical means, and include ability to conduct suitable searches and identify appropriate computational learning tools. Out-of-school learning is an important factor in who is motivated and prepared to study computer science in college. It is likely that without early access to informal CS learning, fewer students are motivated to explore CS in formal classrooms.