Posts tagged ‘computational thinking’
Yasmin Kafai has been a friend and mentor to me for years — she introduced me to my PhD advisor, Elliot Soloway. Her book with Quinn Burke, Connected Code, updates thinking about the role of computing and programming in schools. They emphasize an idea they call Computational Participation as a contrast with computational thinking. I asked Yasmin to do a CACM Viewpoint on the idea, and it’s published this month. Yasmin has shared the paper on Academia.edu.
In the 1980s many schools featured Basic, Logo, or Pascal programming computer labs. Students typically received weekly introductory programming instruction. These exercises were often of limited complexity, disconnected from classroom work, and lacking in relevance. They did not deliver on promises. By the mid-1990s most schools had turned away from programming. Pre-assembled multimedia packages burned onto glossy CD-ROMs took over. Toiling over syntax typos and debugging problems were no longer classroom activities.
Computer science is making a comeback in schools. We should not repeat earlier mistakes, but leverage what we have learned. Why are students interested in programming? Under what circumstances do they do it, and how? Computational thinking and programming are social, creative practices. They offer a context for making applications of significance for others, communities in which design sharing and collaboration with others are paramount. Computational thinking should be reframed as computational participation.
ISTE has just released their ed-tech-influenced standards for students for 2016, and they include computational thinking — with a better definition than the more traditional ones. It’s not about changing how students think. It’s about giving students the tools to solve problems with technology. I liked the frequent use of the term “algorithmic thinking” to emphasize the connections to the history of the ideas. This definition doesn’t get to systems and processes (for example), but it’s more realistic than the broad transferable thinking skills claim.
Students develop and employ strategies for understanding and solving problems in ways that leverage the power of technological methods to develop and test solutions.
Source: For Students 2016
Based on the Forbes article (quoted below), I can now be referred to as Reviewer #2 (see post explaining that academic meme). I am one of *those* critics.
I’m not apologizing — I still don’t see evidence that we can teach computational thinking the way it’s been described (as I discussed here). For example, is it true that “Computational thinking can also help in understanding and explaining how things work”? By learning about computational things, students will learn how to understand non-computational things? Maybe, but I don’t see much research trying to achieve that and how to measure whether it’s happening. I do believe that you can use computational things to learn about non-computational things, through modeling and simulation. But that’s different than saying that “computational thinking” will get you there.
The defense offered in Forbes (“Despite almost a decade of efforts”) is a weak one. There are lots of things that humans have believed for a lot longer than a decade that are still wrong. Lamarckian theories of evolution? Spontaneous generation? Flat Earth? Length of time of a belief is not a measure of its truth.
Young students in grades K-6 should learn the basic ideas in computing and how to solve problems computationally. Computational thinking can also help in understanding and explaining how things work. Computational thinking can be taught as a complement to science and to principles of engineering design. It can also be taught to support students’ creative expression and artistic talents. Despite almost a decade of efforts to define computational thinking, there are still critics that suggest we don’t know what computational thinking means or how to measure it. The previously mentioned work in standards setting and assessment is helping to more clearly define computational thinking and how it can be incorporated in the classroom.
In a recent blog post, I argued that problem-solving skills learned for solving problems in computational contexts (“computational thinking”) were unlikely to transfer to everyday situations (see post here). We see a similar pattern in the recent controversy about “brain training.” Yes, people get better at the particular exercises (e.g., people can learn to problem-solve better when programming). And they may still be better years later, which is great. That’s an indication of real learning. But they are unlikely to transfer that learning to non-exercise contexts. Most surprisingly, they are unlikely to transfer that learning even though they are convinced that they do. Just because you think you’re doing computational thinking doesn’t mean that you are.
Ten years later, tests showed that the subjects trained in processing speed and reasoning still outperformed the control group, though the people given memory training no longer did. And 60 percent of the trained participants, compared with 50 percent of the control group, said they had maintained or improved their ability to manage daily activities like shopping and finances. “They felt the training had made a difference,” said Dr. Rebok, who was a principal investigator.
So that’s far transfer — or is it? When the investigators administered tests that mimicked real-life activities, like managing medications, the differences between the trainees and the control group participants no longer reached statistical significance.
In subjects 18 to 30 years old, Dr. Redick also found limited transfer after computer training to improve working memory. Asked whether they thought they had improved, nearly all the participants said yes — and most had, on the training exercises themselves. They did no better, however, on tests of intelligence, multitasking and other cognitive abilities.
One of the arguments I develop in my book on learner-centered design of computing education is that computational thinking, using Jeannette Wing’s description, is implausible. There’s part of her description that talks about computing providing a medium for advancing thinking and learning in other domains — that’s the application part of computing, and that’s quite plausible. I call that part computational literacy because that’s the name Andrea diSessa gave to that idea years ago. Much of my book is about how to help students (of all kinds, from graphic designers to teachers to undergraduates) develop computational literacy. Then there’s the part of Jeannette’s description that suggests that learning computing will impact everyday thinking and problem-solving, e.g., people will use ideas about caching when packing for a trip. There is no evidence to support the belief that that will happen. Many studies investigating this kind of impact have not found that effect. (I’ve reported in the past how educational psychologists find computational thinking implausible.) Sure, there other definitions of computational thinking (I reference the others in my book), but they all have this same thread — computational thinking is about thinking that helps outside of computing.
So what does it mean to assess computational thinking? Most computational thinking assessments I’ve seen fail to connect the computing to some other discipline. For both of Wing’s sets of goals, we need to show that students are learning computing. That’s a necessary part — if you don’t know computing, you can’t apply that knowledge and you can’t transfer it. But it’s not sufficient. Students must be applying, connecting, or transferring the computing knowledge to other domains to be computational thinking.
SRI is developing a set of computational thinking assessments. From poking through their website, I’m not finding any examples, so I don’t know if they succeed where others have not. Their process is promising.
As part of the NSF-funded Principled Assessment of Computational Thinking (PACT) suite of projects, SRI Education has been working with curriculum authors and teachers, assessment experts, and computer scientists to develop assessments for ECS.
ECS emphasizes inquiry-based teaching to develop students’ problem solving skills, as well as their abilities to explain, elaborate, and evaluate what they are learning, often using multiple representations of particular solutions. These skills go well beyond recalling facts or giving inputs to a program and predicting its outputs. As a result, the SRI PACT team had to design and develop assessment tasks that elicited students’ problem solving and inquiry skills in authentic contexts and gave them opportunities to represent their skills in their own words and ways.
Applying a principled design method, the team first developed generalized design templates for computational thinking practices. These practices refer to how students design and implement creative solutions and artifacts, how they design and apply abstractions and models, and how they analyze their computational work and the work of others (among other practices). We then used these templates to guide the development of assessment tasks and scoring rubrics aligned with the skills related to the learning goals of the ECS curriculum.
I’ve written a couple times now about the workshop I attended at the University of Oldenburg the first week of June. (See the post where I talked about my two weeks in Germany.) For Blog@CACM, I wrote a post about teaching as collective practice and the workshop I took with Barbara Hofer (see post here). I wrote about learning about teacher beliefs and self-efficacy from Helenrose Fives here (see post).
Before we left for the workshop, I got to spend time with Ira Diethelm at the University of Oldenburg and one of her students. Ira is one of at least 16 (that Ira could count) CS Education professors in Germany. Ira works with pre-service teachers, in-service teachers, and graduate students. Her graduate students build outreach efforts and curricula as part of their research, then roll them out and provide resources to teachers. It’s remarkable what Ira is doing, and I understand that the other German CS Ed professors do similar things. I came away with a new insight: If we want to bootstrap and sustain CS Education in the United States, we should fund several endowed chairs of CS Education at top Schools of Education. Eventually, we have to have pre-service computing education programs if we want to make CS education sustainable (see that post here). Creating these endowed chairs gives us the opportunity to create positions like Ira’s in the United States.
Overall, the workshop was a terrific experience. The PhD student work was fascinating, and I enjoyed discussing their research with them. It was great to hear about German research perspectives that I hadn’t previously, like the Model of Educational Reconstruction that informs science education (see paper here). Barbara and Helenrose were only two of a several outstanding international education researchers who attended. As I mentioned to Pat Alexander (who has a lengthy Wikipedia page of her accomplishments), I enjoyed being able to wallow in educational psychology for a week, because I so rarely get to do that. I gave a talk on three of our projects related to the theme of developing teachers: on Lijun Ni’s work on teacher identity, on the Disciplinary Commons for Computing Education, and on our ebook for preparing CS teachers. (See Slideshare here.)
The response to my talk was fascinating. Some of the German mathematics education researchers are deeply opposed to computing education in schools. (I suspect that more than one of them completely skipped my talk because they are so opposed.) “Computing education keeps stealing from mathematics teachers, and learning mathematics is more important.” At my talk, Pat Alexander asked me the same question that Peter Elias asked Alan Perlis in 1961, “Won’t the computer eventually just understand us? Doesn’t the computer just become invisible and not need to be programmed?” I told the story about Alan Perlis’s talk and about Michael Mateas’s argument, “There will always be friction.” From the computing educators, I heard a lot of anger. The German computing education researchers feel that other fields squeeze CS out because the they are not willing to allow computing education to take up any time or budget in the curriculum.
Probably the most interesting pushback was against computational thinking. The educational psychologists thought it was unbelievable that learning computing would in any way impact the way that people think or problem-solve in everyday life. “Didn’t we believe that once about Latin? and Geometry?” asked Gavin Brown. The psychologists at the workshop I attended saw a clear argument that we need to introduce computing in high school so that students can see if it’s for them, but not to teach general problem-solving skills. If we really want algorithmic thinking, they can design easier ways to achieve that goal than teaching programming.
We can probably help students to learn about computing in such a way that it might influence problem-solving on the computer. That’s part of Jeanette Wing’s model of Computational Thinking (see her 2010 paper). It’s the “Computational Thinking in Daily Life” part that the psychologists weren’t buying. That learning about computation helps with computational X is quite reasonable. If you understand what IP addresses are, we can help you to understand DNS problems and to realize that it’s not really that big of a deal if Wikipedia stores your IP address (see story about Erika Poole’s research). There is evidence that learning one programming language will likely transfer to another one (see Michal Armoni’s paper on transfer from Scratch to a text-based language). Learning to program is unlikely to influence any problem-solving in everyday life.
I’m leaving May 24 for a two week trip to Germany. Both one week parts are interesting and worth talking about here. I’ve been reflecting on my own thinking on the piece between, and how it relates to computing education themes, too.
I’m attending a seminar at Schloss Dagstuhl on Human-Centric Development of Software Tools (see seminar page here). Two of the seminar leaders are Shriram Krishnamurthi of Bootstrap fame who is a frequent visitor and even a guest blogger here (see post here) and Andy Ko whose seminal work with Michael Lee on Gidget has been mentioned here several times (for example here). I’ve only been to Dagstuhl once before at the live-coding seminar (see description here) which was fantastic and has influenced my thinking literally years later. The seminar next week has me in the relative-outsider role that I was at the live-coding seminar. Most of the researchers coming to this event are programming language and software engineering researchers. Only a handful of us are social scientists or education researchers.
The Dagstuhl seminar ends Thursday after lunch. Saturday night, I’m to meet up with a group in Oldenburg Germany and then head up Sunday to Stadland (near the North Sea) for a workshop where I will be advising STEM Education PhD students. I don’t have a web link to the workshop, but I do have a page about the program I’ll be participating in — see here. My only contact there is Ira Diethelm, whom I’ve met several times and saw most recently at WIPSCE 2014 in Berlin (see trip report here). I really don’t know what to expect. Through the ICER DC and WIPSCE, I’ve been impressed by the Computing Education PhD students I’ve met in Germany, so I look forward to an interesting time. I come back home on Friday June 5 from Bremen.
There’s a couple day gap between the two events, from Thursday noon to Saturday evening. I got a bunch of advice on what to do on holiday. Shriram gave me the excellent advice of taking a boat cruise partway north, stopping at cities along the way, and then finishing up with a train on Saturday. Others suggested that I go to Cologne, Bremen, Luxembourg, or even Brussels.
I’ve decided to take a taxi to Trier from Dagstuhl, tour around there for a couple days, then take a seven hour train ride north on Saturday. Trier looks really interesting (see Tripadvisor page), though probably not as cool as a boat ride.
Why did I take the safer route?
The science writer, Kayt Sukel, was a once student of mine at Georgia Tech — we even have a pub together. I am so pleased to see the attention she’s received for her book Dirty Minds/This is Your Brain on Sex. She has a new book coming out on risk, and that’s had me thinking more about the role of risk in computing education.
In my research group, we often refer to Eccles model of academic achievement and decision making (1983), pictured below. It describes how students’ academic decisions consider issues like gender roles and stereotypes (e.g., do people who are like me do this?), expectation for success (e.g., can I succeed at this?), and the utility function (e.g., will this academic choice be fun? useful? money-making?). It’s a powerful model for thinking about why women and under-represented minorities don’t take computer science.
Eccles’ model doesn’t say much about risk. What happens if I don’t succeed? What do I need to do to reduce risk? How will I manage if I fail? How much am I willing to suffer/pay for reduced risk?
That’s certainly playing into my thinking about my in-between days in Germany. I don’t speak German. If I get into trouble in those in-between days, I know nobody I could call for help. I still have another week of a workshop with a keynote presentation after my couple days break. I’ve already booked a hotel in Trier. I plan on walking around and taking pictures, and then I will take a train (which I’ve already booked, with Shriram’s help) to Oldenburg on Saturday. A boat ride with hops into cities sounds terrific, but more difficult to plan with many more opportunities for error (e.g., lost luggage, pickpockets). That’s managing risk for me.
I hear issues of risk coming into students’ decision-making processes all the time, combined with the other factors included in Eccles’ model. My daughter is pursuing pre-med studies. She’s thinking like many other pre-med students, “What undergrad degree do I get now that will be useful even if I don’t get into med school?” She tried computer science for one semester, as Jeanette Wing recommended in her famous article on Computational Thinking: “One can major in computer science and go on to a career in medicine, law, business, politics, any type of science or engineering, and even the arts.” CS would clearly be a good fallback undergraduate degree. She was well-prepared for CS — she had passed the AP CS exam in high school, and was top of her engineering CS1 in MATLAB class. After one semester in CS for CS majors, my daughter hated it, especially the intense focus on enforced software development practices (e.g., losing points on homework for indenting with tabs rather than spaces) and the arrogant undergraduate teaching assistants. (She used more descriptive language.) Her class was particularly unfriendly to women and members of under-represented groups (a story I told here). She now rejects the CS classroom culture, the “defensive climate” (re: Barker and Garvin-Doxas). She never wants to take another CS course. The value of a CS degree in reducing risks on a pre-med path does not outweigh the costs of CS classes for her. She’s now pursuing psychology, which has a different risk/benefit calculation (i.e., a psychology undergraduate degree is not as valuable in the marketplace as a CS undergraduate degree), but has reduced costs compared to CS or biology.
Risk is certainly a factor when students are considering computer science. Students have expectations about potential costs, potential benefits, and about what could go wrong. I read it in my students’ comments after the Media Computation course. “The course was not what I expected! I was expecting it to be much harder.” “I took a light load this semester so that I’d be ready for this.” Sometimes, I’m quite sure, the risk calculation comes out against us, and we never see those students.
The blog will keep going while I’m gone — we’re queued up for weeks. I may not be able to respond much to comments in the meantime, though.