Posts tagged ‘pre-service’

Computing Education Lessons Learned from the 2010’s: What I Got Wrong

There’s a trend on Twitter over the last few weeks where people (especially the academics I follow) tweet about their accomplishments over the last 10 years. They write about the number of papers published, the number of PhD students graduated, and the amount of grant money they received. It’s a nice reflective activity which highlights many great things that have happened in the 2010’s.

I started this blog in June 2009, so most of it has been written in the 2010’s. The most interesting thing I find in looking back is what I got wrong. There were lots of things that I thought were true, ideas that I worked on, but I later realized were wrong. Since I use this blog as a thinking space, it’s a sign of learning that I now realize that some of that thinking was wrong. And for better or worse, here’s a permanent Internet record.

There are the easy ones — the ones I’ve been able to identify in blog posts as mistakes. There was the time I said Stanford was switching from Java to JavaScript. I should have fought for more CS in the K-12 CS Framework. And I should have been saying “multi-lingual” instead of “language independent” for years. And there was the blog post where I just listed the organizational mistakes I’d made.

The more interesting mistakes are the ones that are more subtle (at least to me), that took me years to figure out, and that maybe I’m still figuring out:

Creating pre-service CS teacher programs would be easy. I thought that we could create programs to develop more pre-service computer science teachers. We just needed the will to do it. You can find posts from me talking about this from 2010 and from 2015. I now realize that this is so hard that it’s unlikely to happen in most US states. My Blog@CACM post this month is about me getting schooled by a group of education faculty in December. We are much more likely to integrate CS into mathematics or science teacher programs than to have standalone CS teacher professional development — and even that will require an enormous effort.

CS for All is about Access. I used to think that the barrier to more students taking CS was getting CS classes into high schools. You can find me complaining about how there were too few high school CS classes in 2016. I really bought into the goal of CS10K (as I talked about in 2014). By 2018, I realized that there was a difference between access and participation. But now we have Miranda Parker’s dissertation and we know that the problem is much deeper than just having teachers and classes. Even if you have classes, you might not get students taking them, or it may just be more of the same kinds of students (as the Roehampton Report has shown us). Diverse participation is really hard.

Constructionism is the way to use computing in education. I grew up as a constructionist, both as a “technically precocious boy” and as a researcher. Seymour Papert wrote me a letter of recommendation when I graduated with my PhD. My post on constructionism is still one of the most-read. In 2011, I thought that the One Laptop Per Child project would work. I read Morgan Ames’ The Charisma Machine, and it’s pretty clear that it didn’t.

The idea of building as a way of learning makes sense. It’s at the heart of Janet Kolodner’s Learning by Design, Yasmin Kafai’s work, Scratch, and lots of other successful approaches. But if you read Seymour carefully, you’ll see that his vision is mostly about learning mathematics and code, through teaching yourself code. That only goes so far. It doesn’t include everyone, and at the worst implementations of his vision, it leaves out teachers.

I was in a design meeting once with Seymour, where he was arguing for making a new Logo implementation much more complicated. “Teachers will hate it!” several of us argued. “But some students will love it,” he countered. Seymour cared about the students who would seek out technical understanding, without (or in spite of) teachers, as he did.

Constructionism in the Mindstorms sense only works for a small percentage of students, which is what Ames’ story tells us. Some students do want to understand the computer soup-to-nuts, and that’s great, and it’s worthwhile making that work for as many students as possible. But I believe that it still won’t be many students. Students care about lots of other things (from business to design, from history to geography) that don’t easily map to a focus on code and mathematics. I still believe in the value of having students program for learning lots of different things, but I’m no longer convinced that the “hard fun” of Logo is the most useful or productive path for using the power of computing for learning. I am less interested in making things for just a few precocious students, especially if teachers hate it. I believe in making things with teachers.

The trick is to define Computational Thinking. Then there’s Computational Thinking. I thought that the problem was that we didn’t have a clear definition. If we had that, we could do studies in order to measure the value (if any) of CT. I blogged about definitions of it in 2011, in 2012, in 2016, and in 2019. I’ve written and lectured on Computational Thinking. The paper I wrote last Fall with Alan Kay, Cathie Norris, and Elliot Soloway may be the last that I will write on CT. I realized that CT is just not that interesting as a research topic (especially with no well-accepted definition) compared to the challenge of designing computation for better thinking. We can try to teach everyone about computational thinking, but that won’t get as far as improving the computing to help everyone’s thinking. Fix the environment, not the people.

But I could be wrong on that, too.

January 13, 2020 at 7:00 am 47 comments

Require CS at University in order to Get CS into K-12 (Revisited)

I wrote a blog post in Blog@CACM in 2011: If You Want High School CS, Require Undergraduate CS.  Everything we’ve seen since then makes me more convinced this is a viable path to providing high-quality CS education for every student.

There is a growing body of evidence that every student at University will need computing. The recent report from Burning Glass and Oracle Academy shows how much in demand CS skills are, far beyond just those who will be professional software developers. Teaching everyone about computing would help in addressing Cathy O’Neill’s calls for more people to be investigating the algorithms controlling our lives. The argument for why University involvement is necessary for K12 CS Ed is based on an observation made recently by Code.org: We are not producing enough CS teachers in University. If everyone took CS at University, that would also reach pre-service teachers. That would make it easier for those teachers to teach CS in the future.

Requiring CS at University may help with the bigger cultural and perception problem.  In England, we see that schools aren’t offering CS even if it’s part of the required curriculum, and students (especially females) aren’t taking it (see the Royal Society report from last month).  The problem is that we’re trying to shoehorn CS into a culture that isn’t asking for it, or rather, the students (and schools) don’t perceive a need for CS. This is a form of the same problem that came up when we were talking about getting more formal methods into software development practice. All professionals should understand the role of computing in our society and how to use computing as a literacy: To express ideas, to share ideas, and to use in developing ideas.

Schools follow society. Society is rarely (if ever) changed by schooling. If you want a computationally literate society, convince the adults. If most professionals use computing, the same professionals that students want to be like, then there is a social reason to learn computing. Social demand to prepare K-12 students in that literacy makes it more likely for that literacy to succeed in K-12 education.  Trying to teach all students something that society doesn’t value for everyone is counter to situated learning theory.  Students (even K-12 students) are engaged in legitimate peripheral participation — their “job” is to figure out what is expected of them in society. If they don’t see computational literacy broadly in society, students don’t get the message that it’s important for everyone to learn.

When I make this suggestion to University faculty, I often hear the argument, “Anything you require of students, they will hate.” Then they tell me an anecdote of some student who hated a requirement, or of some personal experience of a class they hated. I know of no empirical evidence that says that this is generally true. We do have empirical evidence that says it’s false. Mike Hewner’s work found that US students take required classes in order to discover what they like, and they make curricular choices based on what they like.

We are already seeing students from all over campus flooding into our classes (see the Generation CS report and the National Academies report). We are already learning how to manage the load. It’s already happening in some Universities that most or all students at University are taking CS. Why not require it so that we get the Education students who we may not be seeing yet in CS classes?

Instead of using Universities to make CS education work, we are pouring money into CS Ed via in-service professional development — a tenfold increase in England, and $1.5B in the next five years in the US.  In general, more money in education alone doesn’t change things. We have to think about systems, policies, and our educational ecosystem. Universities are part of that educational ecosystem.

Universities play a role in K-12 education in all other subjects. We have to involve them in order to create sustainable K-12 Computer Science education.

December 15, 2017 at 7:00 am 1 comment

Universities aren’t preparing enough computer science teachers, and we have no path to get there

Not really a surprising claim, but I still think that we’re not talking enough about this. No K-12 subject is taught nationwide without producing teachers from universities. We simply cannot create sustainable K-12 CS education without universities producing CS teachers (called “pre-service teacher professional development”). Currently, we produce new CS teachers by recruiting existing teachers from other subjects (called “in-service teacher professional development”). None of our models for growing CS nationwide currently have a plan to replace in-service with pre-service (as described in this blog post).

Looking for answers, we examined the state-by-state data on the number of graduates prepared to teach various subjects. We found that in 2016, only 75 teachers graduated from universities equipped to teach computer science. Compare that to the number of graduating teachers prepared in mathematics (12,528) and the sciences (11,917 across general science, biology, chemistry, physics, and earth science).

Source: Universities aren’t preparing enough computer science teachers

November 24, 2017 at 7:00 am 7 comments

Why we need schools of education for a stable future for computing ed

I’ve mentioned before how much we need schools of education to guarantee the future stability of computing education.  The new CSTA report on certification makes the point better than I do.

I just wrote a Blog@CACM post explaining why we in CS need collaboration with schools of education.  We don’t want to be in the business of certifying teachers.  We certainly do not have the background to prepare teachers for a lifelong career in education.  That’s what pre-service education faculty do.

How we get from here to there is an interesting question.  Michelle Friend suggests that we start by finding (or getting hired) faculty in science and mathematics education who are interested in starting computing programs.  Few schools would be willing to take the risk of establishing computing education programs or departments today.  They might exist one day, but they’ll probably grow out of math or science ed — just as many CS departments grew out of math or science or engineering roots.

Given that (in the US) we lose close to 50% of our STEM teachers within the first five years of teaching, we have to establish reliable production of CS teachers, if we don’t want CS10K to be only CS5K five years later.  To establish that reliable production, we need schools of education.

 

 

August 23, 2013 at 1:39 am 6 comments


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,038 other followers

Feeds

Recent Posts

Blog Stats

  • 2,014,398 hits
May 2022
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

CS Teaching Tips