Posts tagged ‘computing for all’

Why should we teach programming (Hint: It’s not to learn problem-solving)

At the CS for All Consortium Tuesday, Brenda Wilkerson presented this slide.

It says, “Computer science builds the mental discipline for breaking down problems, and solving them.”  I’m a huge fan of Brenda and think she’s done fabulous work in Chicago. She is a leader in bringing CS to All. I disagree with her claim. There have been lots of studies looking for transfer from teaching programming to general problem-solving skills, and it is simply not there. I talk about these in my book, I reference the Palumbo meta-review in this blog post, and NYTimes wrote about it this last spring. Like “learning styles” and “Latin teaches thinking,” this is a persistent myth that we have no support for.

I tweeted in response to Brenda’s slide, and several CS teachers asked me, “So why teach programming or computing at all?”  It’s a great question!  Here are some of my top reasons:

  1. To understand our world. The argument that Simon Peyton Jones made in England for their computer science curriculum is that Computer Science is a science like all the others. We teach Chemistry to students because they live in a world with chemical interactions. We teach Biology because they live in a world full of living things. We teach Physics because they live in a physical world. We should teach Computer Science because they live in a digital world.
  2. To study and understand processes. Alan Perlis (first ACM Turing Award laureate) argued in 1961 that everyone on every campus should learn to program. He said that computer science is the study of process, and many disciplines need people to know about process, from managers who work on logistics, to scientists who try to understand molecular or biological processes. Programming automates process, which creates opportunities to simulate, model, and test theories about processes at scale. Perlis was prescient in predicting computational science and engineering.
  3. To be able to ask questions about the influences on their lives. C.P. Snow also argued for everyone to learn computing in 1961, but with more foreboding. He correctly predicted that computers and computing algorithms were going to control important aspects of our lives. If we don’t know anything about computing, we don’t even know how to ask about those algorithms. It shouldn’t be magic.  Even if you’re not building these algorithms, simply knowing about them gives you power. C.P. Snow argues that you need that power.
  4. To use an important new form of literacy. Alan Kay made the argument in the 1970’s that computing is a whole new medium. In fact, it’s human’s first meta-medium — it can be all other media, and it includes interactivity so that the medium can respond to the reader/user/viewer. Computing gives us a new way to express ideas, to communicate to others, and to explore ideas.  Everyone should have access to this new medium.
  5. To have a new way to learn science and mathematics. Mathematics places a critical role in understanding our world, mostly in science. Our notation for mathematics has mostly been static equations. But code is different and gives us new insights. This is what Andy diSessa has been saying for many years. Bruce Sherin, Idit Harel, Yasmin Kafai, Uri Wilensky, and others have shown us how code gives us a powerful new way to learn science and mathematics. Bootstrap explicitly teaches mathematics with computing.  Everyone who learns mathematics should also learn computing, explicitly with programming.
  6. As a job skill. The most common argument for teaching computer science in the United States is as a job skill.  The original Code.org video argued that everyone should learn programming because we have a shortage of programmers. That’s just a terrible reason to make every school child learn to program. That’s what Larry Cuban was arguing this last summer. Tax payers should not be funding a Silicon Valley jobs program. Not everyone is going to become a software developer, and it doesn’t make any sense to train everyone for a job that only some will do. But, there’s some great evidence from Chris Scaffidi (that I learned about from Andy Ko’s terrific VL/HCC summary) showing that workers (not software developers) who program make higher wages than those comparable workers who do not. Learning to program gives students new skills that have value in the economy. It’s a social justice issue if we do not make this economic opportunity available to everyone.
  7. To use computers better. This one is a possibility, but we need research to support it. Everyone uses computers all the time these days. Does knowing how the computer works lead to more effective use of the computer?  Are you less likely to make mistakes? Are you more resilient in bouncing back from errors? Can you solve computing problems (those that happen in applications or with hardware, even without programming) more easily?  I bet the answer is yes, but I don’t know the research results that support that argument.
  8. As a medium in which to learn problem-solving. Finally, computer programming is an effective medium in which we can teach problem-solving. Just learning to program doesn’t teach problem-solving skills, but you can use programming if you want to teach problem-solving. Sharon Carver showed this many years ago. She wanted students to learn debugging skills, like being able to take a map and a set of instructions, then figure out where the instructions are wrong. She taught those debugging skills by having students debug Logo programs. Students successfully transferred those debugging skills to the map task. That’s super cool from a cognitive and learning sciences perspective. But her students didn’t learn much programming — she didn’t need much programming to teach that problem solving skill.But here’s the big caveat: They did not learn enough programming for any of the other reasons on this list!  The evidence we have says that you can teach problem-solving with programming, but students won’t gain more than that particular skill. That is a disservice to students.

I strongly agree with Brenda’s most important point: CS for All is a social justice issue. Learning computing is so important that it is unjust to keep it from some students. Currently, CS is disproportionately unavailable to poorer students, to females, and to minority ethnic groups. We need CS for All.

October 18, 2017 at 12:30 pm 4 comments

More Teachers, Fewer 3D Printers: How to Improve K–12 Computer Science Education 

A nice summary of where we’re at with CS Ed in the United States, where additional funding and effort should go, and where it shouldn’t.

Addressing the teacher shortage should be the number one use for the new funds allocated by the Trump administration, says Mark Stehlik, a computer science professor at Carnegie Mellon University. A lack of qualified teachers is the biggest barrier to CS education in the U.S., he says, and he thinks the problem is going to get worse. An earlier generation of CS educators has started to retire, and he says younger CS graduates “aren’t going into education because they can make twice or more working in the software industry.”

One solution could be to expand the reach of each CS educator through online classes. But “online curricula aren’t going to save the day, especially for elementary and high school,” Stehlik says. “A motivated teacher who can inspire students and provide tailored feedback to them is the coin of the realm here.”

Where the money should not be spent? On hardware and equipment. Laptops, robots, and 3D printers are important, says Code.org’s Yongpradit, “but they don’t make a CS class. A trained teacher makes a CS class. So money should be focused on training teachers and offering robust curriculum.”

Source: More Teachers, Fewer 3D Printers: How to Improve K–12 Computer Science Education – IEEE Spectrum

October 18, 2017 at 7:00 am 7 comments

Start from where they are: Rochester Institute of Tech Opens Center Focused on ‘Computing Science for All’ 

Paul’s last line below says it all.  If you want to teach CS to all majors, you start by looking at the computing needs in those disciplines. You don’t start by asking computing experts what they do. Bravo!

“The Golisano College embraces a vision in which the computing domain is accessible to everyone, regardless of discipline, disability or diverse background,” said Anne Haake, dean of the college, who is spearheading the launch of the center from within her college. CS professor Paul Tymann will serve as director.

“Computers have become part of the fabric of virtually every discipline, and I don’t think you can be successful in today’s society without having a basic understanding of how computing works,” said Tymann, in a press release. “That’s why we are looking to understand the computing needs of every discipline at RIT.”

Source: Rochester Institute of Tech Opens Center Focused on ‘Computing Science for All’ — Campus Technology

October 16, 2017 at 7:00 am Leave a comment

The state of women in computer science: An investigative report, featuring Barbara Ericson

The new TechRepublic report on women in computing is short but touches on a lot of important themes. Barb Ericson figures prominently in the report.

At Georgia Tech, every student is required to take one of three computer science intro courses: One for engineering majors, one for computer science majors, and one for all other students.

In the past, computer science was not taught in a very interesting way, Ericson said. And getting professors to change their habits after so much time proved difficult, she added.

Further, “a lot of instructors believe in the ‘geek gene’—that you’re born to do it or you’re not, and they often think women are not,” Ericson said. “Women can face an uphill climb from some of their professors or friends or family who are like, ‘Wait, what? Why are you doing this?'”

Intro courses should be interesting, creative, and social, and offer plenty of help, especially for women who tend to come in with less experience and less confidence, Ericson said.

Source: The state of women in computer science: An investigative report – TechRepublic

October 11, 2017 at 7:00 am Leave a comment

Unpacking models of what the $USD1.3B might achieve in Computing Education: We need long-term vision and will

I wrote my Blog@CACM post for September on the massive investments in CS Education announced last week (see post here): $200M/year from the US Department of Education announced by the White House on Monday, then $300M over five years from the Tech industry announced on Tuesday. I have read analyses saying that the money isn’t really promised or isn’t new (see concerns in this post), and others are shunning the initiative because of White House policies (see link here). I took the promises at face value. My post starts congratulating Hadi Partovi and Cameron Wilson of Code.org and Ivanka Trump who were behind these initiatives, then I offered two back-of-the-envelope models of what $1.3B in five years could do:

  • I extrapolated the New York City model (of a significant computing education experience to every child in every school within grade bands) to the whole of the US, which would likely take more than a magnitude more funding.
  • The funding is enough to pay for a CS teacher in every school, but I argued that it wouldn’t really work. We face a shortage of STEM teachers, and those few are the teachers that we can most likely recruit to CS. CS teacher attrition is so high that we couldn’t keep up with the losses, since we have so few mechanisms of pre-service CS teacher preparation.

I received many responses, queries, and criticisms of that blog post (from email, Facebook, and Twitter).  I am explaining and unpacking the CACM blog post here. I am not going to delete or change the CACM blog post. My mentor, Janet Kolodner, told me once not to dwell on any paper, trying to make it a masterpiece before publishing it. Rather, she suggested that we should just keep publishing. Explore lots of ideas in lots of papers, and publish as a way of thinking with a community. It’s okay to publish something you thought was right, and later find that it’s wrong — it documents the explored trails.

What I learned about the effort in NYC

I said that NYC was aiming to provide a quality computing learning experience for every student in every grade in every school, as I learned last October (and blogged about it here). I learned that the goal is now mandating a computing learning experience in every grade band, so not every year. It’s still a markedly different model than one teacher per school, and doesn’t change the costs considerably.

I learned that (as one might expect) that the effort in NYC is in both the NYC Department of Education and in CSNYC. It’s great that there are many people in the NY DoEd working on CS education! I was told on Twitter that some of what I attributed to CSNYC is actually in NY Department of Education. I don’t know what I mis-attributed, but I’m sure that it’s because I get confounded over “CSNYC” representing “the effort to provide CS education across NYC” and “the organization that exists to provide CS education across NYC.” I don’t understand the split between NYC DoEd and the CSNYC organization, and I’m not going to guess here. I am sure that it’s important for the people involved, but it’s not so important for the model and national analysis.

Explaining my Estimates in Contrast to Code.org’s

Code.org has made their model of the one-time cost of expanding access to K-12 computer science (CS) available at this Google doc. According to their model, it’s clear that the $1.3B is enough to make CS education available in every elementary and secondary school. They have more empirical data than anyone else on putting CS in whole districts, and their data suggest that costs are decreasing as they gain more efficiencies of scale.

Hadi challenged several points in my blog post on Facebook. I won’t replicate all of our exchange, and only include three points here:

  • I argue that we will probably have to pay future CS teachers more in the future, at least as teacher stipends. That prediction is based on trends I see in the states I work with and economics. States are facing teacher shortages, especially in STEM. Aman Yadav shared an article (see link here) that students studying to be teachers fell by 40% from the 2010-2011 academic year to the 2014-2015 academic year. If the supply of teachers is growing more slowly than the rate at which we’re trying to grow CS, we will have to provide incentives to make CS more attractive. Lijun Ni’s dissertation explored the barriers for teachers to become CS teachers (e.g., it’s a lot easier and more pleasant to stay a math teacher). Costs are likely to grow as the labor shortage increases.
  • Some of my costs are too high, e.g., I estimated the cost to develop a high school CS teacher as $10K, where NSF’s studies found it was closer to $8.6K. I used a ballpark 50% of high school CS teacher development for the costs of elementary school CS teacher development.  Since it’s clear that there is enough to prepare one CS teacher per school, I think my numbers are close enough.
  • I believe that extrapolating the NYC model across the country would be even more expensive than it is in NYC. Travel costs in NYC are much less than in rural America. While NYC is very diverse, the rest of the United States is just as diverse. I got to see Ann Leftwich at Indiana University on Saturday. She told me that some of the schools she works with resist teaching science at all! It’s really hard to convince them to teach CS. I expect that there is a similar lack of will to teach CS across the US.

Not all of my estimates are research-based. We don’t have research on everything. Changing all US schools happens so rarely that we do not have good models of how it works. I don’t think that the empirical data of what we have done before in CS Ed is necessarily predictive of what comes next, since most of our experience with CS Ed at-scale is in urban and suburban settings. Getting everywhere is harder. I have observed about “Georgia Computes!” — 1/3 of the high schools in GA got someone that Barbara trained in CS, and that’s likely the easiest 1/3. The next 2/3 will be harder and more expensive.

What I Missed Entirely

As Hadi correctly called me on, the biggest cost factor I missed is the development of curriculum. Back in July, I blogged about Larry Cuban’s analysis that suggested that we need to re-think how we are developing and disseminating CS curriculum in the United States (see link here). We have to develop a lot more curriculum in collaboration with schools, districts, and states nationwide. The US will never adopt a single curriculum nationwide for any subject — it’s not how our system was developed, and it’s why Common Core did not reach all 50 states. The US education system is always about tailoring, adapting, and working with local values and politics. Curriculum is always political.

Mike Zamansky just posted a blog post critiquing some of the curriculum he’s seeing in NYC (see post here). I don’t agree with Mike’s post, but I wholeheartedly agree with his posting. We should argue about curriculum, negotiate what’s best for our students, and create curriculum that works for local contexts.  There is going to be a lot of that nationwide as we take steps towards providing computing education to all students. The iteration and revision will be expensive, but it’s a necessary expense for sustainable, longterm computing education.

What should we do with the money

At a talk I gave at Indiana University on Friday, Katie Siek asked me my opinion. What do I want to see the funding be used for?

It would be great if some of that funding could start more pre-service CS teacher preparation programs. I have argued that we should fund chairs of CS Education in top Schools of Education (see post here). Germany uses this model — they create CS Education professors who will be there for a career, producing CS teachers, supporting local communities of CS teachers, and serving as national models. An endowed chair is $1-3M at most universities. That is not very expensive for a longterm impact.

I prefer an NYC-like model of reaching every student to the model of a teacher for every school. The data I’ve seen from our ECEP states suggests that most CS teachers teach only a single computing class, and that class is typically mostly white/Asian and male. One CS  teacher per school doesn’t reach all the female and under-represented minority students. Equity has to be a top priority in our choices for these funds, since CS education is so inequitable.

My greatest wish is for computational literacy to be woven into other disciplines, especially across all of STEM. I devoted my career to computing education because I believe in the vision of Seymour Papert, Cynthia Solomon, Alan Kay, and Andrea diSessa. Computational literacy can improve learning in science, mathematics, art, language, and other disciplines, too.

I don’t argue that computer science is more important than other STEM subjects. Rather, computing makes learning in all the other STEM subjects better.

I want us to teach real computational literacy across subjects, not just in the CS class hidden away, and not just in an annual experience. I recognize that that’s a long-term, expensive vision — probably two orders of magnitude beyond the current initiative. We need more long-term thinking in CS education, like building up the CS teacher development infrastructure and making the case to people nationwide for CS education. We are not going to solve CS for All quickly.

When the K-12 CS Framework effort launched back in 2015, I told the story here about a conversation I had with Mike Lach (see post here). He pointed out that the last time we changed all US schools, it was in response to the Civil Rights movement. That’s when we started celebrating MLK Jr Day and added African-American History month. He asked me to think about how much national will it took to make those changes happen. We don’t have that kind of national will in CS education in this country — yet. We have a lot more groundwork to do before we can reach CS education for all students or all schools, and funding alone is not going to get us there.

October 4, 2017 at 7:00 am 5 comments

Developer Bootcamps and Computing Education: Tech Done Right Podcast

I was so excited to be invited to do this podcast with Noel Rappin (my first PhD student) and Jeff Casimir who runs the Turing Academy bootcamp. I learned a lot about bootcamps from Jeff, whom I was pleased to learn is a data geek and measures things pretty carefully.  Two of my favorite insights:

  • Female students are more likely to graduate from the bootcamp. They are more likely than male graduates to leave before six months on the job.
  • Students who skip college and go straight to bootcamp (as Peter Thiel encourages students to do) have a harder time graduating and getting a job. That latter part might be ageism, bias against younger job-seekers.

I recommend the podcast — we had a fun discussion.

How do people learn computing? Who learns best from traditional computer science education and who from bootcamps? How can we teach people who are not developers but who need to learn some programming to do their jobs? Jeff Casimir, the founder of Turing academy, and Georgia Tech’s Mark Guzdial, one of the founders of the International Computing Education Research conference, join Noel to answer these questions and also explain why Excel is both the best and the worst thing in the world.

Source: Tech Done Right Episode 20: Developer Bootcamps and Computing Education with Jeff Casimir and Mark Guzdia

September 29, 2017 at 7:00 am 3 comments

The Negative Consequences of Brown v Board of Education: Integrating Computing Education

The second season of Revisionist History has just finished.  This season didn’t have the same multiple episodes with tight ties to the issues of education as last season (as I described in this blog post), there was one standout episode that does relate to our issues: Miss Buchanan’s Period of Adjustment.  The podcast deals with the negative consequences of the Brown v Board of Education Supreme Court case that declared that separate was not equal and forced schools to integrate.  The well-documented consequence of the integration was the closing of the schools for African-Americans and the firing of Black school teachers.  Gladwell first considers what the Brown family (named in the case) and the other families in the case actually wanted, and about the longterm impact that even today, there are disproportionately few African-American teachers in the US are African-American — and that leads to impacts on students.

When I studied Brown v Board of Education when I was a graduate student at the University of Michigan, we were taught a negative consequence that Gladwell barely touches on.  Gladwell mentions that there were few jobs for an educated Black person at the time of Brown v Board.  The Supreme Court’s decision, and the consequent firing of Black teachers, was an enormous blow to the African-American middle class in the United States.  Employment was lost at a large scale, and longterm impacts on wealth and prosperity can be measured today.

The connection to computer science education is part of the question of how do we reach everyone and help everyone to succeed.  Today’s computing education is de facto segregated — not in the sense of colored vs white classes, but in terms of only certain demographics are in CS classes and other demographics are not.

  • In many of the high schools we work with, even if white and Asian students are in the school population minority, the computer science classes are mostly white and Asian.
  • English CS classes are almost entirely male, maybe even more than in the US (described here).
  • US undergraduate CS classes don’t seem to be retaining women (blog post here).
  • Code.org classes have are almost half poor students (blog post here), and have excellent diversity (see their Medium post here). What are the rich students taking?  The diversity that Code.org is seeing is not reflected in undergraduate CS (see Generation CS report) which has little diversity and has mostly prosperous students. That’s important because undergraduate CS is the path that most students will take to the IT industry, which is mostly white/Asian and male.

How do we improve diversity in computing education?  Can we avoid a heavy-handed and expensive mandate like requiring CS for everyone? I side effect of requiring everyone to take CS might be that we get all the same kind of CS.  Can we provide equal access to everyone without the negative consequences that Gladwell describes from Brown v Board of Education?

Brown v Board of Education might be the most well-known Supreme Court decision, a major victory in the fight for civil rights. But in Topeka, the city where the case began, the ruling has left a bittersweet legacy. RH hears from the Browns, the family behind the story.

Source: Revisionist History Podcast

September 25, 2017 at 7:00 am 1 comment

Older Posts


Recent Posts

October 2017
M T W T F S S
« Sep    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Feeds

Blog Stats

  • 1,436,882 hits

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

Join 5,153 other followers

CS Teaching Tips