Last month was the 2021 International Computing Education Research (ICER) conference. You can see the complete program here, and all the papers are linked to the ACM Digital Library here. I’ve seen blog posts from two of the attendees about what they saw, did, and learned about at ICER — Amy Ko’s is here, and Kristin Stephens-Martinez’s is here. I’m going to point out two things I learned that are fascinating and worth knowing about more broadly.
This year’s ICER featured a session with two related papers from the same research group. The Center for Computing Education Research (CCER) at IT University of Copenhagen (see about page here) conducted two experiments where they presented students with two isomorphic programming tasks. These are programming problems that are equivalent in terms of the problem and what the resultant program will do, but one is about people and the other is about things. For example, one problem is about assembling a team with people who have the right kinds of characteristics, and the other is about finding spare parts that when assembled can repair a machine. The two papers were about two different contexts. In one paper, they tried these problems with high school students, and the other paper was with undergraduate students in a computing class.
The results in both cases were similar. Female high school students were more interested in the People problems, and the male high school students didn’t see a significant difference. Students without prior programming experience also preferred the People problems more. Female university students also preferred the People-themed problems, and male university students were indifferent to the themes. It’s important to note that the researchers found considerable variance within genders in terms of interests. The claim in the two papers is that female students are more likely to be recruited into CS (for the high school students) and engaged and retained (for the university students) if assignments are People-themed. There’s a broader point to make — many students are interested in People. If you want to engage a diverse group of students, use diverse kinds of activities in your classes. In particular, People-centric problems will likely attract a group of students that we may not be currently seeing enough of in CS. The CCER team put together a nice three-minute video that captures their findings (with links to the papers): https://ccer.itu.dk/icer_2021
The paper that most surprised and influenced me was from Ethel Tshukudu, Quintin Cutts, Olivier Goletti, Aladdin Swidan, and Felienne Hermans: "Teachers’ Views and Experiences on Teaching Second and Subsequent Programming Languages" (paper here). The authors interviewed 23 high school teachers in Scotland and the Netherlands on their attitudes towards teaching two different programming languages to their students. The part that I found so surprising was how positively the teachers saw having students learn two or more languages. Teachers said things like "I specifically use different languages for different goals" and "we explain that with Scratch, you cannot make a website, which makes the student want to move to a new language." The paper goes into the challenges that learners face when using two languages (e.g., context switching and mixing up syntactic elements) and strategies teachers use to improve transfer and ease transitions.
We can’t assume too much from a small interview study. It would be wrong to say that all or even most teachers want students to learn two or more programming languages. However, it is fair to say that some teachers do — and because the study is in two different countries, it’s likely not a localized phenomenon. There are teachers who want their students to learn two or more languages, and are looking for ways to make that work.
This is important to me because I’m working on creating new kinds of programming languages that might be integrated into other subjects, like social studies, language arts, and mathematics. These are task-specific programming languages, which becomes TSP languages. We call these Teaspoon languages, adding a teaspoon of computing into other subjects. (See examples here and here.) Teaspoon languages are different from Scratch, Python, or other languages used in school — they’re smaller (even smaller than a DSL) and take little time to learn. The reasons that teachers give for using multiple programming languages seem to apply to Teaspoon languages too. This paper encourages me to explore different kinds of programming languages in school, because some teachers at least believe that multiple languages could be valuable.
Mark Guzdial is professor of electrical engineering and computer science in the College of Engineering, and professor of information in the School of Information, of the University of Michigan.