Developing a Framework to Define K-12 CS Ed: It’s about consensus not vision
January 11, 2016 at 8:38 am 12 comments
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.
Entry filed under: Uncategorized. Tags: computing education, K-12.
1.
alanone1 | January 11, 2016 at 9:49 am
A very important and interesting thing about the US Constitution is not that the variety of tradeoffs that eventually formed a consensus was perfect, but that the majority of them were thought out so well.
This can be attributed to a subset of truly superior minds plus a great process from the rules of order that were agreed to.
Their problem at hand was more difficult than what faces the computerists, the process was harder, ratification more difficult, result better.
The general bigger problem with consensus that you point out would seem to be poor choices of people and of process. For example, with the Algol-60 committee, process and results were exemplary, as were the people on that committee. (And a large reason for the success of that process — according to Dave Evans — was also Al Perlis.)
So I would not blame consensus here.
The very example you use — dealing with all manner of processes — is not a problem of consensus, but of several kinds of ignorance and tiny-mindedness blindly conspiring.
2.
Kathi Fisler | January 12, 2016 at 6:09 am
These efforts raise another concern for me: bloat. We cram so many topics in (to avoid seeming narrow, or to let everyone be heard, or whatever) that the only way to cover everything is to be very shallow in all of them. Does spending 15 minutes on each of a hundred topics actually result in useful learning?
Too many trees, not enough forest. The goal should not be to make sure that everything gets in, but more to make sure that stuff gets on the table and then prioritized, with many valuable ideas left on the floor. Of course, that hurts consensus. But what gets left out is as important as what gets put in. These efforts seem to forget that.
Kathi
3.
susan | January 12, 2016 at 9:52 am
If you remove Hadi from the conversation this might work. The man is all ego and no substance.
4.
alfredtwo | January 28, 2016 at 12:49 pm
Hadi is not really involved in the framework development.
5.
kickrg | January 19, 2016 at 9:57 am
>> We’re developing frameworks based on what we have taught and not on what we should teach.
As we reflect on past discussions in the computer science educational community, we can probably all recall “visions” that in hindsight, were destined to lead us astray. There is danger in teaching based on visions that are not embraced by the community. We should all keep exploring new paths, but teach what experience tells us will work for students we have, not hypothetical students whose backgrounds and experiences are what we would like them to be.
6.
alanone1 | January 19, 2016 at 10:26 am
The community is already really astray from completely inadequate conceptions and constricted views of the *computing* that is before us. It already has terrible visions!
And, worrying about other poor visions that might lead astray is a bit like noting that most people don’t play tennis well — or read well! — and thus there is no point in looking at what the few experts at each do. (There are real experts in “visions” just like most other human activities.)
But, let’s suppose that there are no more real visionaries — say, of the caliber of Doug Engelbart or John McCarthy — left. We still need to understand that computing is inherently *meta*, especially digital computing that uses programming. It is not just about accomplishing something from existing tools and materials, but *making* the tools and materials needed — languages, environments, concepts, etc. — that allow goals to be done both well and to extend gracefully into the future.
This idea cannot be complained about in the same vein as “visions that might not work out”. *Meta* is inherent in computing itself, and has still gotten short shrift from most practitioners pretty much since stored program computers started happening. But, again, please don’t look at the middle of the bell curve for guidance here!
I think it is up to “computer educators” to try to really understand the deep implications of having computing, and that the future can really be anticipated very well without knowing specifics just by making sure that new practitioners can handle *meta*. The ability to handle *meta* kills some of the allure and deadly embrace of vendor and longstanding tools, and allows thoughts about “what else do I need?” to be had.
7. President Obama Discovers Coding – Yippee! : Stager-to-Go | February 2, 2016 at 12:42 am
[…] …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. Guzdial, M. (2016) Developing a Framework to Define K-12 CS Ed: It’s about consensus not vision. […]
8.
How to Participate in the K12 CS Framework Review Process | Computing Education Blog | February 3, 2016 at 8:02 am
[…] mentioned the K12 CS Framework Process a couple of times before (see this blog post). It’s now available for public […]
9.
New ISTE Standards emphasize computational thinking with a better definition | Computing Education Blog | August 12, 2016 at 7:54 am
[…] 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 […]
10.
K-12 CS Framework: Best as we can expect. Maybe as good as we need. | Computing Education Blog | October 18, 2016 at 7:03 am
[…] This has been an 11 month long process — see first blog post about the framework, first blog post on the process, and the post after my last meeting with the writers as an advisor. The whole framework can be […]
11.
Stanford is NOT switching from Java to JavaScript: I was mistaken | Computing Education Research Blog | February 19, 2018 at 7:01 am
[…] lesson I learned from Mike Lach and others involved in the NGSS roll out is that all curricular decisions are political […]
12.
Frameworks and Standards can be limiting and long-lasting: Alan Kay was right | Computing Education Research Blog | January 21, 2019 at 7:01 am
[…] that we needed real computer science and that the Framework shouldn’t be about consensus (see post here). I disagreed with him. I saw it as a negotiation between academic CS and K-12 […]