Posts tagged ‘K-12’
No, Really – Programming is Hard and CS Flipped Classrooms are Complicated: ITICSE 2016 Award-Winning Papers
I only recently started digging into the papers from the ITICSE 2016 conference (see Table of Contents link at ACM Digital Library here). There were two papers that caught my attention.
First, the best paper award went to one of my former PhD students, Brian Dorn: An Empirical Analysis of Video Viewing Behaviors in Flipped CS1 Courses, by Suzanne L. Dazo, Nicholas R. Stepanek, Robert Fulkerson, and Brian Dorn. Brian has this cool piece of technology where students can view videos, annotate them, be challenged to answer questions from specific places, and have discussions. They used this for teaching a flipped CS1 class, where students were required to watch videos before class and then engage in more active learning opportunities in class. The real trick, as you might imagine and that the paper goes into detail on, is getting students to watch the video. I liked both the techniques for prodding students to watch videos and the fascinating results showing the relationship between watching the videos and learning.
ITICSE 2016 recognized two “commended” papers this year. I haven’t found the listing of which papers they were, but I did learn that one of them is Learning to Program is Easy by Andrew Luxton-Reilly. I enjoyed reading the paper and recommend it — even though I disagree with his conclusions, captured in the paper title. He does a good job of exploring the evidence that programming is hard (and even uses this blog as a foil, since I’ve claimed several times that programming is hard), and overall, is a terrific synthesis of a bunch of computing education papers (40 references is a lot for a six page ITICSE paper).
His argument that programming is easy has two parts:
- First, children do it. As he says in the abstract, “But learning to program is easy — so easy that children can do it.” That’s a false comparison — what children do in programming is not the same definition of “programming” that is in most of the literature that Andrew cites. The evidence that programming is hard is coming mostly from higher-ed CS classes. What is going on in introductory University CS classes and what children do is dramatically different. We saw that in the WIPSCE 2014 Fields and Kafai paper, and those results were recently replicated in a recent ICER 2016 paper. These are two different activities.
- Second, what higher-education CS teachers expect at the end of the first course is too much. He presents significant evidence that what CS teachers expect is achieved by students, but at the end of the second course. The paper from Morrison, Decker, and Margulieux supports the argument that students think and work very differently and much more successfully by the end of the second CS course than in the first course.
I see Andrew’s argument as evidence that programming is hard. The problem is that Andrew doesn’t define the target. What level of ability counts as “programming”? I believe that level of ability described by the McCracken Working Group, by the FCS1/SCS1 exams, and by most teachers as the outcomes from CS1 (these are all cited by Andrew’s paper) is the definition of the lowest level of “programming ability.” That it takes two courses to reach that level of ability is what I would call hard.
I’ve been reading a terrific book, Proust and the Squid: The Story and Science of the Reading Brain by Maryanne Wolf. It’s the story of how humans invented reading, how we teach reading, and how reading changes our brains (physically and in terms of cognitive function). Oral language is easy. We are literally wired for that. Reading is hard. We are not wired for that, and much of the invention of reading is about inventing how to teach reading. Unless you can teach reading to a significant part of your population, you don’t develop a literate culture, and your written language doesn’t succeed.
Much of the invention of written language is about making it easier to learn and teach because learning to read is so hard. Have you ever thought about why our Latin alphabet is ordered? Why do we talk about the “ABC”‘s and sing a song about them? We don’t actually need them to be ordered to read. Ordering the alphabet makes it easier to memorize, and learning to read is a lot about memorization, about drill-and-practice to make the translation of symbols to sounds to words to concepts effortless (or at least, all System 1 in Kahneman terms). This makes it easier, but the task of learning to read and write is still a cognitively complex task that takes a significant amount of time to master. It’s hard.
Programming is hard like written language is hard. It’s not possible to program unless you know how to read. Programming is particularly hard because the concepts that we’re mapping to are unfamiliar, are not part of our daily experience. We only see it as easy because we have expert blind-spot. We have already learned these concepts and made those mappings. We have constructed understandings of iteration and conditional execution and variable storage. It is difficult for experts to understand how hard it is to develop those concepts. The evidence of children programming suggests that most children who program don’t have those concepts.
I remain unconvinced by Andrew’s argument, but I recommend the paper for a great summary of literature and an interesting read.
I’ve mentioned my involvement in the initial meetings for the new K-12 CS Ed framework effort (see previous blog post). This effort is now formally announced with a steering committee and a website.
CSTA, ACM, and Code.org are joining forces with more than 100 advisors within the computing community (higher ed faculty, researchers, and K-12 teachers, many of whom are also serving as writers for the framework), several states and large school districts, technology companies, and other organizations to steer a process to build a framework to help answer these questions. A steering committee initially comprised of the Computer Science Teachers Association, the Association for Computing Machinery, and Code.org will oversee this project.
Pat Yongpradit did a terrific job of organizing these initial meetings, setting the ground rules, and trying to engage as many perspectives as he could. The overall goal of the process is described (copied from this page):
To create a high-level framework of computer science concepts and practices that will empower students to…
be informed citizens who can critically engage in public discussion on CS-related topics
develop as learners, users, and creators of CS knowledge and artifacts
better understand the role of computing in the world around them
learn, perform, and express themselves in other subjects and interests
There is a 0th item here that’s left unsaid: The goal is to create a framework that most people can agree on. “Coherence” (i.e., “community buy-in”) was the top quality of a framework in Michael Lach’s advice to the CS Ed community (that I described here). As Cameron Wilson put it in his Facebook post about the effort, “the K-12 CS Framework is an effort to unite the community in describing what computer science every K-12 student should learn.” It’s about uniting the community. That’s the whole reason this process is happening. The states want to know that they’re teaching things that are worthwhile. Teacher certificates will get defined only what the definers know what the teachers have to teach. The curriculum developers want to know what they should be developing for. A common framework means that you get economies of scale (e.g., a curriculum that matches the framework can be used in lots of places).
The result is that the framework is not about vision, not about what learners will need to know in the future. Instead, it’s about the subset of CS that most people can agree to. It’s not the best practice (because not everyone is going to agree on “best”), or the latest from research (because not everybody’s going to agree with research results). It’s going to be a safe list. Take a look at the developing standard (see links here), and compare it to the CSTA standards (see link here) or the CS Principles Big Ideas (see link here). The overlap between them is pretty big.
That’s not a critique of this process. It’s a limitation of frameworks in general. Standards and frameworks efforts are not about defining what CS education should be. They are a definition of the community’s standards.
The danger is that the frameworks are then accepted as the definition of the field. There is a danger that standards can ossify a field. We end up teaching to the standard, not to the goals. (A humorous treatment of this idea can be found in this cartoon that Shriram Krishnamurthi shared — just swap “coding” for “clocks.”) We have to keep asking what should be taught to everyone to help them meet the requirements above.
I don’t want to start nit-picking the framework, but I want to give one concrete example of something that typically gets left out because of community pressure. Alan Perlis (who with Alan Newell and Herb Simon named the field in 1967 in Science) said that computer science was the study of process. Why isn’t process a big idea? Why don’t we teach about race conditions, and communication between processes, and how execution speed can increase (or decrease) when spread across multiple processes? Programming tools like Scratch, Squeak Etoys, and App Inventor let students work with processes. Much of the programming in robotics, Arduinos, and other low-cost hardware requires understanding of processes. Moti Ben Ari (see here for example) and Ben Shapiro (in Blocky-Talky) are doing fascinating work trying to understand how kids think about process and how to teach them most effectively. Peter Denning, Alan Kay, and Mitchel Resnick have described how exploration of computational processes can support better student understanding of non-computational processes, e.g., biological, ants, termites, and traffic jams. Processes are a big idea in CS (since the very beginning), can help students learn outside of computing (they’re a “powerful idea” in Papert terms), and will be what learners will work with in the future. Why not include processes as a Big Idea? Because we don’t teach about processes in today’s classes. There is very little about processes in the prior frameworks. The programming tools we have used to teach CS (Pascal, Java, Python) don’t make it easy to deal with threads and processes. We’re developing frameworks based on what we have taught and not on what we should teach. We should keep pushing on processes as a big idea, and I hope that they’ll be in a future version of the framework.
That’s the nature of frameworks. It’s about consensus, not about vision. That’s not a bad thing, but we should know it for what it is. We can use frameworks to build momentum, infrastructure, and community. We can’t let frameworks limit our vision of what computing education should be. As soon as we’re done with one set of frameworks and standards, we should start on the next ones, in order to move the community to a new set of norms.
My most recent Blog@CACM post is on the K-12 CS Education Framework stakeholder’s meeting I attended last month in Chicago — see link here. The parts of the meeting where I learned the most were the first three talks, from Michael Lach, Heidi Schweingruber, and Michael Gilligan on mathematics and science education standards and what those efforts have to teach us in computer science. That’s what I wrote the Blog@CACM post on.
At the break, I congratulated Mike Lach on an excellent talk. I told him that I appreciated his message that we have to go slow. The CS education effort is the first attempt in decades to change the American Education Canon — what we teach everyone in US public schools. He agreed, and pointed out that the last time we changed the canon was in response to the Civil Rights Movement. I was confused. He explained that the Civil Rights Movement led to the creation of the African-American History Month. That’s the last time that something got added to all US elementary schools. He said that we should be glad that there’s not that kind of anger and violence fueling the push for CS education — but on the other hand, there’s also not that same kind of consensus about the importance of CS education.
Consider the two recent Google-Gallup poll reports. From one, we learn that parents think that computer science is about applications and Web search (see report here). In the second, we learn that parents (once they are told what computer science really is) want it for their kids, but administrators and principals are less enthusiastic (see report here). Commentators on the latter report have interpreted the result as suggesting that school leaders “underestimate demand” (see article here) and may be out of touch with what parents want.
There’s another way to read these two reports together. Parents don’t really know what CS is, and they don’t understand what they’re trading off when they say that want CS education. They want their kids to know CS, but at what cost? School leaders have to deal with implementation issues, and they don’t see enough demand for computing education to give it a slice of their meager budgets.
Computing education is being discussed today because of the technology industry. We would not be talking about CS in K-12 without technology industry needs. It’s the NYC tech industry who pushed for the initiative there (see their open letter). It’s the tech industry funding Code.org (see funders here). That’s not necessarily a bad thing to have the tech industry funding the effort to put computer science in schools, but it is a different thing than having a national consensus about changing public school education to include computer science. What I hear Mike Lach and others in mathematics and science education saying is that we need to build consensus if we want the implementation of CS education in schools to succeed.
I have a theory that predicts when (if?) we will see more computing education research students in the US. I think that it might also help understand when computer science education (e.g., an AP course in CS) might reach the majority of US high schools.
Why are there so few CS Ed research students in the US?
Recently, I hosted a visit from Dr. Nick Falkner (Associate Dean (IT), Faculty of Engineering, Mathematical and Computer Sciences) and Dr. Katrina Falkner (Deputy Head and Director of Teaching, School of Computer Science) from the University of Adelaide. We got to talking about the lack of CS education research (CER) graduate students in the United States. There are lots of PhD students studying CER in Australasia, Europe, and Israel. To offer a comparison point, when we visited Melbourne in 2011, they had just held a doctoral consortium in CS Ed with 20 students attending, all from just the Melbourne area. The ICER doctoral consortium at UCSD in August had 14 students, and not all 14 were from the US. The Australasian Computing Education will have its own DC, and they’re capping enrollment at 10, but there are far more CER PhD students than that in the region. I get invitations regularly to serve on review committees for dissertations from Australia and Europe, but rarely from the US.
Why is CER so much more popular among graduate students outside of the US? I’ve wondered if it’s an issue of funding for research, or how graduate students are recruited. Then it occurred to us.
Check out the Falkners’ titles: Associate Dean, Deputy Head (Katrina will be Head of School next year), Director. I remarked on that, and Nick and Katrina started naming other CS education research faculty who were Chairs, full Professors, and Deans and Directors in Australia. We went on naming other CS education researchers in high positions in New Zealand (e.g., Tim Bell, Professor and Deputy Head of Department), England (e.g., the great Computing Education Group at Kent), Denmark (e.g., Michael Caspersen as Director of the Center for Science Education), Sweden (e.g., CS Education Research at Uppsala), Finland, Germany, and Israel.
Then I was challenged to name:
- US CS Education researchers who are full Professors at research intensive universities;
- US CS Education researchers who are Chairs of their departments or schools;
- US CS Education researchers who are Deans or Center Directors.
I’m sure that there would be some quibbling if I tried to name US researchers in these categories. I don’t think anyone would disagree that none of these categories requires more than one hand to count — and I don’t think anyone needs more than a couple fingers for that last category.
We have great computing education researchers in the United States. Few are in these kinds of positions of visible prestige and authority. Many in the ICER community are at teaching institutions. Many who are at research intensive universities are in teaching track positions.
Computing Education Research is not as respected in US universities as it is in other countries. In these other countries, a graduate student could pursue computing education research, and might still be able to achieve tenure, promotion, and even an administrative position in prestigious institutions. That’s really rare in the United States.
There are many reasons why there isn’t more CER in research-intensive universities. Maybe there’s not enough funding in CER (which is an outcome of lack of respect/value). Most people don’t buy into computing for all in the US. Unless there’s more CER in schools, maybe we don’t need much CER in Universities. I’m actually not addressing why CER gets less respect in the US than in other countries — I’m hypothesizing a relationship between two variables because of that lack of respect.
The status of CER is definitely on the mind of students when they are considering CER as a research area. I’ve lost students to other areas of research when they realize that CER is a difficult academic path in the US. My first CS advisor at U-Michigan (before Elliot Soloway moved there) was strongly against my plans for a joint degree with education. “No CS department will hire you, and if they do, they won’t tenure you.” I succeeded into that first category (there was luck and great mentors involved). It’s hard for me to say if my personal path could ever reach categories 2 or 3, and if barriers I meet are due more to my research area than my personal strengths and weaknesses. All I can really say for sure is that, if you look around, there aren’t many CER people in those categories, which means that there is no obvious evidence to a graduate student that they can reach those kinds of success.
So, here’s my hypothesis:
Hypothesis: We will see more computing education research graduate students in the US when CER is a reasonable path to tenure, promotion, and advancement in research-intensive US universities.
Why is there so little computing education in US high schools?
Other countries have a lot more computing education in their high schools than we do in the United States. Israel, New Zealand, Denmark, and England all have national curricula that include significant computer science. In Israel, you can even pursue a software engineering track in high school. They all have an advantage over the US, since we have no national curricula at all. However, Germany, which has a similarly distributed education model, still has much more advanced computing education curricula (the state of Bavaria has a computing curriculum for grades 6-12) and CS teacher professional development. What’s different?
I suspect that there are similar factors at work in schools as in Universities. Computing education is not highly valued in US society. That gets reflected in decisions at both the University and school systems. I don’t know much about influence relationships between the University and the K-12 system. I have suggested that we will not have a stable high school CS education program in the United States without getting the Schools of Education engaged in teacher pre-service education. I don’t know how changes in one influence the other.
However, I see a strong correlation, caused by an external social factor — maybe some of those I mentioned earlier (not enough funding for CER, don’t need more CER, etc.). Professors and University administrators are not separate from their societies and cultures. The same values and influences are present in the University as in the society at large. What the society values has an influence on what the University values. If a change occurs in the values in the society, then the University values will likely change. I don’t know if it works in the other way.
So here’s where I go further out on a limb:
Second Hypothesis: We will see the majority of US high schools offering computer science education (e.g., AP CS) when CER is a reasonable path to tenure, promotion, and advancement in research-intensive US universities.
Here are two examples to support the hypothesis:
- Consider Physics. No one doubts the value of physics. Within society, we’re willing to spend billions to find a Higgs Boson, because we value physics. Similarly, we strive to offer physics education to every high school student. Similarly, physics faculty can aspire to become Deans and even University Presidents. Physics is valued by society and the University.
- Consider Engineering Education Research. Twenty years ago, engineering education research was uncommon, and it had little presence in K-12 schools. Today, there are several Engineering Education academic units in the US — at Purdue, Clemson, and Virginia Tech. (There’s quite a list here.) Engineering education researchers can get tenured, promoted, and even become head of an engineering education research academic unit. And, Engineering is now taught in K-12 schools. Recently, I’ve been involved in an effort to directly interview kids in schools that offer AP CS. We can hardly find any! Several of the schools in the Atlanta area that used to offer AP CS now offer Engineering classes instead. (Maybe the belief is that engineers will take care of our CS/IT needs in the US?) Engineering has a significant presence in K-12 education today.
I don’t think that this hypothesis works as a prescriptive model. I’m not saying, “If we just create some computing education research units, we’ll get CS into high schools!” I don’t know that there is much more CS Ed in schools in Australia, Sweden, or Finland than in the US, where CER is a path to advancement. I hypothesize a correlation. If we see changes at the Universities, we’ll be seeing changes in schools. I expect that the reverse will also be true — if we ever see the majority of US high schools with CS, the Universities will support the effort. But I thnk that the major influencer on both of these is the perception of CER in the larger society. I’m hypothesizing that both will change if the major influence changes.
(Thanks to Briana Morrison, Barbara Ericson, Amy Bruckman, and Betsy DiSalvo on an earlier draft of this post.)
An interesting though somewhat sad story from a school-age girl (probably high school level?) about why she’s not interested in Information and Communications Technology. A good part of her story has to do with self-efficacy — how do you get better at this?
Throughout my first two years, my ICT assessment levels have always been much lower than other subjects and this can put you in the frame of mind that you’re bad at ICT, and if there are other subjects you’re better at, surely it’s simpler to take them for GCSE. And of course, IT is not the ideal job for me if I can’t even pass an exam.
Unless computing was made a compulsory subject like a language or maths, I don’t think this will change. To improve your English you can read, and to improve your ICT there are particular websites, but I certainly would not spend time on them and I’m sure my friends wouldn’t either
Nice new infographic from NCWIT making the case for engaging more women in computing, and giving tips on how to do it.
Just 9 states allow computer science to count towards high school graduation requirements.
If technology is designed mostly by the half of our population that’s male, we’re missing out on the innovations, solutions, and creations that 50% of the population could bring.
The U.S. Department of Labor estimates that by 2020 there will be more than 1.4 million computing-related job openings. At current rates, however, we can only fill about 30% of those jobs with U.S. computing bachelor’s grads. Girls represent a valuable, mostly untapped talent pool.
With computing jobs among the fastest-growing and highest-paying, more women should benefit from these occupations.
Nice piece with how-to lessons from Barb, based on her Grace Hopper talk.
From advocacy to action. In the previous session I attended at #ghc12, Are we there yet: education & innovation for women & girls?, I heard a clarion call for moving from advocacy to action. In this session, Barbara Ericson, newly minted A. Richard Newton Educator award winner, answers the question – how? First, I think it is interesting that she is a women who did not start out in education, but comes from industry. She also didn’t start out to pursue computing as a career, horses and therefore becoming a veterinarian was her passion. As with many women of my generation, she stumbled unto computer science in college and she also remembers that in the “early days” it was not such a male-dominated field. Somewhere along her journey, she became passionate about addressing the gender equity issues that arose. Barbara is a great role model for the rest of us that are also passionate about this issue and want to take action.