Posts tagged ‘BPC’

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

This is a revision of the original post. Several readers pointed out on Twitter that my original post was insensitive. It read like an attack on Brenda, a woman of color, from a senior white guy (me). That was not my intent, and I apologize for that. I am grateful to Joseph P. Wilson who helped me understand how to avoid that impression. I can’t change the post that went out yesterday, but I will be more careful in future blog posts.


At the CS for All Consortium Celebration Tuesday, Brenda Wilkerson gave the closing keynote. The full livestream of the CS for All Summit is available here, and it includes Brenda’s talk. I’m a huge fan of Brenda, and she’s done fabulous work in Chicago. She is a leader in bringing CS to All.

I have not seen Brenda’s talk or any of the livestream. My experience of the Consortium Celebration was through reading the Twitter stream as I found time during the day. Brenda had one slide (which you can see in the tweet linked here) that I disagreed with, and because it’s an important point, I’m going to respond to it here.

It says, “Computer science builds the mental discipline for breaking down problems, and solving them.” There are few studies that test this claim as “computer science,” but there have been lots of studies looking for transfer from teaching programming to general problem-solving skills. Probably the first study investigating this claim is Roy Pea and Midian Kurland’s paper On the cognitive effects of learning computer programming. You can find this claim in a paper by Henry Walker to which I responded in this blog. You can see it in posts all over the Internet, from this blog post to this article from a teacher in England. There is a strong belief out there that learning computer science, and programming called out specifically, leads to new problem-solving and “a new way to think.”

There is simply not evidence in support of these claims. 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 learning computing leads to problem-solving skills, and we have no support the claim.

I tweeted in response to Brenda’s slide, and several CS teachers asked me, “So why teach programming or computing at all?”  That’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.

Certainly there are more reasons than these, and I’ve seen several in the response to this blog post, and some in the comments below.

This was just one slide in Brenda’s talk. Her overall point was much more broader and more significant. I strongly agree with Brenda’s key 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 7 comments

Study says multiple factors work together to drive women away from STEM

I wrote recently in a blog post that we don’t know enough why women aren’t going into computing, and I wrote in another blog post that CRA is finding that we lose women over the years of an undergraduate degree in CS.  Here’s an interesting study offering explanations for why we are not getting and keeping women:

The study analyzed a large, private university on the East Coast, using data from 2009-16, broken down semester-by-semester to track students’ changes in grades and majors in as close to real time as possible. While other studies have suggested that women came out of high school less prepared, or that increasing female STEM faculty could help provide women mentors, the Georgetown study didn’t support those findings.

“Women faculty don’t seem to attract more women into a field, and that was sort of sad news for us,” Kugler said. “We were hoping we could make more of a difference.”

One of the reasons women might feel undue pressure in STEM fields might actually be because of how recruiting and mentoring is framed. Many times, those efforts actually end up reinforcing the idea that STEM is for men.“Society keeps telling us that STEM fields are masculine fields, that we need to increase the participation of women in STEM fields, but that kind of sends a signal that it’s not a field for women, and it kind of works against keeping women in these fields,” Kugler said.

And while many STEM majors are male-dominated, the framing of recruitment and mentorship efforts can sometimes paint inaccurate pictures for STEM fields that aren’t male-dominated, and contribute to an inaccurate picture for STEM as a whole, the paper says:

While men may not have a natural ability advantage in STEM fields, the numerous government and other policy initiatives designed to get women interested in STEM fields may have the unintended effect of signaling to women an inherent lack of fit.

While computer science, biophysics and physics tend to be male-dominated, Kugler said, neurobiology, environmental biology and biology of global health tend to be female-dominated.

Source: Study says multiple factors work together to drive women away from STEM

October 13, 2017 at 7:00 am 1 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

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

The challenge of retaining women in computing: The 2016 Taulbee Survey: Supplementary Report on Course-level Enrollment

The Computing Research Association (CRA) has just released a supplement to their 2016 Taulbee Survey report.  They now are collecting individual course data, which gives them more fine-grained numbers about who is entering the major, who is retained until mid-level, and who makes it to the upper-level.  Previously, they mostly just had enrollment and graduation data.  These new data give them new insights.  For example, we are getting more women and URM in computing, but we are not retaining them all.

Except in the introductory course for non-majors, the median percentage of women in courses at each level was either fairly constant or increasing [from previous years]. The most notable increase was in the mid-level course, where the median percentage of women went from 17.4 in 2015 to 20.0 in 2016. The median percentage of women in the upper-level course also increased, from 14.1 to 15.9 percent. We see a slight drop-off from the median percentage of women in the introductory course for majors in 2015 (21.0 percent) to the median percentage of women in the mid-level course in 2016 (20.0 percent), and a somewhat larger drop-off between the median percentage of women in the mid-level course in 2015 (17.4 percent) and the median percentage of women in the upper-level course in 2016 (15.9 percent).  Because the median percentage at each level is for a single representative course, not for all students at that level, some of the differences between levels may be attributable to the specific courses on which the institutions chose to report. Overall, however, this trend of decreasing representation of women at higher course levels is congruent with other data.

Source: The 2016 Taulbee Survey: Supplementary Report on Course-level Enrollment – CRA

September 18, 2017 at 7:00 am 4 comments

British girls “logging off” from CS: What’s the real problem?

The BBC reports (in the article linked below) that the “revolution in computing education has stalled.”  The data from England (including the Roehampton Report, discussed in this blog post) do back up that claim — see the quotes at the bottom.

In this post, I’m reflecting on the response from the British Computer Society. “We need to do more with the curriculum to show it’s not just a nerdy boys’ subject. We’ve got to show them it’s about real problems like climate change and improving healthcare.”  There are some interesting assumptions and warrants in these statements.  Do girls avoid CS because they think it’s a boys’ subject, or because it’s not about real problems?  How does the curriculum “show” that it is (or isn’t) a “nerdy boys’ subject”?  If the curriculum emphasized “real problems,” would it no longer be a “nerdy boys’ subject”?  Are these at all connected? Would making CS be like “climate change and improving healthcare” attract more female students?

First, I’d like to know if the girls choosing ICT over CS are actually saying that it’s because CS is “a nerdy boys’ subject,” and if the girls know anything about the curriculum in CS.  In our research, we found that high school students know very little about what actually happens in undergraduate CS, and undergraduate students in CS don’t even know what’s in their next semester’s classes. Changing the curriculum doesn’t do much good if the girls’ decisions are being made without knowing about the curriculum.  The former claim, that CS is perceived by girls as a “nerdy boys’ subject,” is well-supported in the literature.  But is that the main reason why the girls aren’t enrolling?

Do we know that this a curriculum issue at all? The evidence suggests that there are other likely reasons.

  • Maybe it’s not the curriculum’s “problem” focus, but the “learning objective” focus. Do the girls percieve that the point of the course is to become part of the Tech industry as a professional programmer?  Maybe girls are more interested in broadening their potential careers and not limiting their options to IT?  ICT can be used anywhere.  CS might be perceived as being about being a software developer.
  • Are the girls seeing mass media depictions of programming and deciding that it’s not for them?  A 2016 ICER paper by Colleen Lewis, Ruth Anderson, and Ken Yasuhara explored the reasons why students might not feel that they have a good “fit” with CS (see ACM paper link here).  But are those the reasons why women might not even try CS? Maybe they have had experiences with programming and decided that they didn’t fit? Or maybe the decided that syntax errors and unit tests are just tedious and boring?
  • Are the girls seeing mass media depictions of the Tech industry and deciding that they’d rather not be a Googler or work at Uber? They are probably hearing about things like the Damore memo at Google. Whether they think he’s right or not, maybe girls are saying that they just don’t want to bother.
  • Do the girls have more choices, and CS is simply less attractive in comparison?  It may be that girls know that CS is about solving real problems, but they’d rather solve real problems in law, medicine, or business.
  • Do the girls perceive that wages are not rising in the Tech industry?  Or do the girls perceive that they can make more money (perhaps with fewer negative connotations) as a lawyer, doctor, or businessperson?

I have heard from some colleagues in England that the real problem is a lack of teachers.  I can believe that having too few teachers does contribute to the problem, but that raises the same questions at another level.  Why don’t teachers teach computer science?  Is it because they don’t want to be in the position of being “vocational education,” simply preparing software developers?  Or are teachers deciding that they are dis-interested in software development, for themselves or for their students?  Or are the teachers looking at other areas of critical need for teachers and decide that CS is less attractive?

Bottom line is that we know too little, in the UK or in the US (see Generation CS), about what is influencing student and teacher decisions to pursue or to avoid classes in computing. The reality doesn’t matter here — people make decisions based on their perceptions.

In England, entries for the new computer science GCSE, which is supposed to replace ICT, rose modestly from 60,521 in 2016 to 64,159 this year. Girls accounted for just 20% of entries, and the proportion was a tiny bit lower than last year.

ICT entries fell from 84,120 to 73,099, which you would expect as the subject is disappearing from the national curriculum. But it had proved more attractive to girls. Even there, the proportion of female entries fell from 41% to 39%.

Combine the two subjects, and you find that the number studying either subject has fallen by over 7,000 in the past year. Back in 2015 more than 47,000 girls were getting some kind of computing qualification, and that has fallen to about 41,000 – just 30% of the total.

Source: Computer science: Girls logging off – BBC News

September 15, 2017 at 7:00 am 8 comments

It’s not about Google. Our diversity efforts aren’t working

The sexist “internal memo” from Google has been filling my social media feeds for the last few days. I’m not that excited about it.  Within every organization, there will be some people who disagree with just about any policy.  The enormous screed is so scientifically incorrect that I have a hard time taking it seriously.  

For example, the memo claims that the gap between men and women in CS is due to biology. That can’t be when there are more women than men in CS, especially in the Middle East and Northern Africa.  I saw a great study at NCWIT a few years ago on why programming is seen as women’s work in those parts of the world — it’s detailed work, done inside, sometimes with one other person. It looks like sewing or knitting. When told that programmers were mostly male in the US, the participants reportedly asked, “What’s masculine about programming?”  There’s an interesting take from four scientists who claim that everything that the internal memo says is correct.

The positive outcome from this memo is Ian Bogost’s terrific essay about the lack of diversity in Tech, from industry to higher education. It’s not about Google. It’s that our diversity efforts are having little impact. Ian explains how our problem with diversity is deeply rooted and influences the historical directions of computing. I highly recommend it to you.

These figures track computing talent more broadly, even at the highest levels. According to data from the Integrated Postsecondary Education Data System, for example, less than 3 percent of the doctoral graduates from the top-10 ranked computer science programs came from African American, Hispanic, Native American, and Pacific Islander communities during the decade ending in 2015.

Given these abysmal figures, the idea that diversity at Google (or most other tech firms) is even modestly encroaching on computing’s incumbents is laughable. To object to Google’s diversity efforts is to ignore that they are already feeble to begin with.

Source: A Googler’s Anti-Diversity Screed Reveals Tech’s Rotten Core – The Atlantic

August 9, 2017 at 7:00 am 13 comments

Older Posts


Recent Posts

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

Feeds

Blog Stats

  • 1,438,900 hits

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

Join 5,154 other followers

CS Teaching Tips