In December, I had the honor of providing a keynote talk at the CUE.NEXT Workshop in Washington, D.C. The goal of the CUE.NEXT workshop series is to envision the future of computing in undergraduate education. At their website, organizers Larry Birnbaum, Susanne Hambrusch, and Clayton Lewis describe the purpose of the workshop:
Computing and Computer Science have become relevant to undergraduate education in all disciplines. Academic institutions are challenged to meet the demand of the growing and increasingly diverse student body seeking to learn more about computing, computer science, and the role of computation in their own disciplines. Courses and curricula aimed at teaching the fundamental technologies of Computer Science to CS majors often do not meet the needs of this wider student audience… The goal of the CUE.NEXT workshops is to initiate a national dialog on the role of computing in undergraduate education. Computing educators and CS departments, as well as colleagues and academic units representing other stakeholder disciplines, will work together to understand and address the challenges.
U.S. academic institutions participating in the workshop send a team of CS and other-than-CS faculty who go through iterations of smaller breakout sessions to develop approaches for providing CS education to the other-than-CS undergraduates. I was only there for the day, so I participated in two breakout sessions and gave my keynote. The first breakout session was amazing — I learned a whole set of new perspectives about the challenges of growing CS education in K-12 in the U.S.
Providing Computing Education to K-12 Teachers
The first breakout sessions were organized by discipline. All three of the CUE.NEXT workshops include faculty interested in STEM, Engineering, humanities, arts & media, economics, and social sciences. I went to a breakout session on Education. Around the table was a bit more than a dozen education faculty who were interested in providing new or developing teachers (pre-service) with the computing education that they would need.
Because of my work with the ECEP Alliance, I know education faculty who are pushing for computing in teacher development, and I’m reasonably familiar with the teacher policies in a handful of states. The education faculty around the table at the CUE.NEXT workshop were from states I wasn’t familiar with. They were faculty in mathematics and science education who were dealing with new demands for computing education. This was a very different sample of education faculty than I had worked with before.
I’ll structure my report in terms of quotes I have in my notes.
"Lots of education faculty think CS is going to go away."
I was surprised by that. I think of computing education as a new literacy (described here), and while we’re currently pretty small (see numbers here), we’re growing. CS education for all is inevitable — or so I thought. There have been lots of education fads over the years. Many education faculty think that teaching programming is just the latest.
"CS isn’t real or relevant, vs. hammer to nail."
There several comparisons between computer science and shop classes. Shop classes include things like woodworking and automotive repair. Those are real and deal with concrete things. Computer science doesn’t seem nearly as real or relevant to the teachers in their programs.
"I’m teaching elementary school, so I don’t need programming."
The education faculty around my table saw that as a problem — that the teachers focused on elementary school saw programming as being scary, and not really necessary or helpful. They talked about using cute robots as a way of drawing in elementary school teachers.
"Science education is so packed. We can’t fit programming in."
Most of the requirements in teacher professional development programs in the states represented around the table are fixed by state law or regulation. The schools have few options. Particularly in programs in science and mathematics, there are no electives. All the classes are required. There is simply no place for another course to teach computer science. If we want science and mathematics teachers (among others) to learn about computing, we have to integrate it into their existing classes. We heard about faculty fitting programming into science or mathematics methods ("how to teach X") courses or into educational technology courses.
"Less trying to teach programming to teach programming, and more programming to serve the domain."
Nobody around the table with me was trying to teach future computer science teachers. They had no resources to do that. They were teaching future teachers to use programming to serve the domains that they’re teaching.
I asked the science ed faculty around the room what integration approaches they were using: Bootstrap Physics, or Project GUTS for Middle School Science, or CT-STEM with NetLogo, or something else? There was a long pause, then one professor spoke up:
"I don’t know most of the words you just said."
The projects that have grown out of computing education are mostly unknown to math and science educators. The education faculty around the table with me were just "growing their own." They were working with Scratch or App Inventor and trying to map from science standards in their state to computing activities.
There was a long discussion about the barriers to entry for teachers. Mathematics classes are a barrier. A lot of potential future teachers never make it past their mathematics classes. When math content is taught by education faculty, the future teachers do better, but it creates a huge load on the education faculty. Burnout is a significant problem. The education faculty are worried that computer science might become the next barrier to teachers.
If we really want pre-service teachers to learn about computer science, these are the lessons that we have to hear. We have to learn about their problems and help to address them.
We don’t need CS faculty to teach CS
My keynote slides are here:
I started out with a review of the state of high school CS education today, just to make the point that very few US high school students ever take a CS course. If you want your undergraduates to learn CS, you’ll have to put it into your undergraduate curriculum.
I told three stories: About how we designed the Media Computation course for liberal arts majors at Georgia Tech, about the need for Computational Literacy, and about how CS pedagogy will have to change to reach other-than-CS majors. (The last part is available as a video here.)
I ended with a claim that undergraduate teachers of computer science do not have to be computer science faculty. The most important knowledge that a CS teacher needs is about the practices of computing within that discipline. CS faculty likely know about software development practices. They don’t necessarily know how computing is used in science, engineering, mathematics, liberal arts, or social sciences. The next most important knowledge is called pedagogical content knowledge — how to teach CS well. CS faculty tend not be well-informed about how to teach CS well (as described in this blog post). It’s not clear that there’s an advantage in having the CS faculty teaching the non-CS majors — and we don’t have the capacity in US universities. We should share the load.