Posts tagged ‘computing for everyone’
Really interesting point from Joanna Goode. “CS for All” should not mean “One Kind of CS that All have to take.” Her notion of “CS for Each” goes further than the multiple CS1’s that we have at Georgia Tech. Seymour Papert talked about the value of a personal relationship with a discipline, and I think that’s the direction that Joanna is steering us.
But, as all the students gain access to computer science learning, teachers are charged with the task of teaching each student based on the lived experiences, prior knowledge, and the wonders of the world that the child brings to the classroom. Developing a computer science classroom that welcomes each child requires a culturally responsive pedagogy that views diversity as a strength that should be integrated within the curriculum. Additional instructional supports for English language learners and students with disabilities should be developed and shared to support teachers in a CS for Each model.
Great interview with Sebastian Thrun. I particularly found fascinating his candid response to this important question.
That doesn’t sound like democratizing education, if only the affluent can afford the version that works.
I would be careful to say this is not democratizing it. Any alternative path is actually much more expensive. We managed to lower the cost by a factor of ten. Going to the extreme and saying it has to be absolutely free might be a bit premature. I care about making education work. Everything else being equal, I would love to do this at the lowest possible price point. Where we’ve converged is right. You don’t need a college degree anymore. I would be careful with the conclusion that this is the end of democratization. We still have the free model for students. It just doesn’t work as well — it’s just a fact.
The article posted below is a carefully-considered (not a “Rah! Rah! Let’s Code!”) and intriguing consideration of the role of coding in modern notion of literacy. I particularly liked the idea below. Is Annettee Vee right? Does knowing about coding inform your ability to think about things to code? I suspect that’s true, but it’s an empirical question. It’s much nearer transfer, and is not as much of a stretch as looking for evidence of general problem-solving skills from programming (which is very rare) or applying a computational framework for understanding the world (i.e., computational thinking).
The happy truth is, if you get the fundamentals about how computers think, and how humans can talk to them in a language the machines understand, you can imagine a project that a computer could do, and discuss it in a way that will make sense to an actual programmer. Because as programmers will tell you, the building part is often not the hardest part: It’s figuring out what to build. “Unless you can think about the ways computers can solve problems, you can’t even know how to ask the questions that need to be answered,” says Annette Vee, a University of Pittsburgh professor who studies the spread of computer science literacy.
I was at the NSF CS10K Evaluators meeting earlier this summer, and we got to talk about important research questions. Someone suggested the issue of learning progressions. How do students move from Scratch or Alice or Blockly to Java or C++? One of the evaluators, whose background is entirely in education and evaluation, asked, “Professional programmers don’t use Scratch and Alice?” We explained what professional programmers really do. “Then why are we teaching Scratch and Alice, especially if we don’t know how the transfer works?!?”
The tension between what languages are “useful” (read: “we use them today in industry”) and what languages are helpful for learning has always existed in CS Ed. I’ve recommended the blog below to several people this summer, including reading the comments from the developers who push back — “Yeah, stop with Alice and teach real languages!” I agree with the post’s author, but I see that, even in the CS10K project, the notion that we should teach what’s vocationally useful is strong.
At the NSF CS10K Evaluators meeting, I got to wondering about a different question. Most of our evaluators come from science and math education projects, where you teach the way the world is. If you have trouble teaching students that F=ma, you better just find a new way to teach it. I told the evaluators that I hope their results inform the design of future programming languages. Computer science is a science of the artificial, I explained. If you find that mutable variables are hard to understand, we can provide programming languages without them. If the syntax of curly braces on blocks is too subtle for novices to parse (as I predict from past research findings), we can fix that, too. I got confused looks. The idea that the content and the medium could be changed is not something familiar to this audience. We have to figure out how to close that loop from the evaluators to the designers, because it’s too important an opportunity to base our language design for novices on empirical results.
It is a school’s job to churn out students who will be able to walk into a job in industry on day one and work in whatever language/paradigm is flavour du jour.
WRONG! We’re here to teach children the core concepts of Computer Science. Working on that basis to produce someone with employable skills is your job. Do you expect Chemistry students to walk out of school ready to begin work in a lab? Should we stop using Scratch as a teaching language because nobody programs with it in industry? Of course not, so please stop recommending that we should be teaching using Scala/JSON/whatever is currently flavour of the month.
There are lots of claims about the benefits of introducing computing early. This article in the NYTimes (even just the quote below) considers several of them:
- Important for individual students’ future career prospects. That seems unlikely, that elementary school CS would lead to better career prospects.
- Influence countries’ economic competitiveness. There might be a stronger argument here. Elementary school is about general literacy. There is likely an economic cost to computing illiteracy.
- Technology industry’s ability to find qualified workers. By putting computing into elementary school? Does industry want to hire kids who know Scratch and Alice? As Elliot suggested, it’s mostly a video game to young kids.
- “Exposing students to coding from an early age helps to demystify an area that can be intimidating.” I strongly agree with that one. We know that kids have weird ideas about CS, and seeing any real CS has a dramatic impact (especially on under-represented groups).
- “Breaks down stereotypes of computer scientists as boring geeks.” Maybe. Not all exposure to real computing leads to breaking down stereotypes. Sometimes they’re enhanced. I think this can happen, but we have to be careful to make it work.
- “Programming is highly creative.” True.
- “Studying it can help to develop problem-solving abilities.” False.
- “Equip students for a world transformed by technology.” Maybe. Does teaching kids about technology when they’re 8 prepare them for entering the workforce 10 years later? If computing literacy matters, that’s true. But I don’t believe that playing with Blockly in 3rd grade “equips” you with much. Most technology doesn’t look like Blockly.
We do have to make our message clear, and it should be a message that’s supported by research. If the computing education policy-and-PR machine ignores the research, we’re showing more disrespect for the field of computing education research and makes it even harder to establish reforms.
Around the world, students from elementary school to the Ph.D. level are increasingly getting acquainted with the basics of coding, as computer programming is also known. From Singapore to Tallinn, governments, educators and advocates from the tech industry argue that it has become crucial to hold at least a basic understanding of how the devices that play such a large role in modern life actually work.
Such knowledge, the advocates say, is important not only to individual students’ future career prospects, but also for their countries’ economic competitiveness and the technology industry’s ability to find qualified workers.
Exposing students to coding from an early age helps to demystify an area that can be intimidating. It also breaks down stereotypes of computer scientists as boring geeks, supporters argue. Plus, they say, programming is highly creative: Studying it can help to develop problem-solving abilities, as well as equip students for a world transformed by technology.
I don’t believe the main propositions of the article below. Not all STEM education will lead to more women discovering an interest in IT. Putting computing as a mandatory subject in all schools will not necessarily improve motivation and engagement in CS, and it’s a long stretch to say that that will lead to more people in IT jobs.
I addressed the quote below, by Ashley Gavin, in my Blog@CACM post for this month: The Danger of Requiring CS in US K-12 Schools.
“You make it an option, the girl is not going to take it. You have to make it mandatory and start it at a young age,” says Ashley Gavin, curriculum director at Girls Who Code, a nonprofit working to expose more girls to computer science at a young age that has drawn support from leading tech firms such as Google, Microsoft and Intel.
“It’s important to start early because, most of the fields that people go into, they have exposure before they get to college. We all study English before we get to college, we all study history and … social studies before we get to college,” Gavin says. “No one has any idea what computer science is. By the time you get to college, you develop fear of things you don’t know. Therefore early exposure is really important.”
The California state legislature is attempting to affect change to computer science education in California, and for all the right reasons. They’re getting the message that computer science is what drives innovation and economic growth in California, and that the demand for computer science graduates in California far exceeds supply. There are simply not enough students prepared or preparing to join this high tech workforce. They’re also starting to understand that computer science needs to count for something other than an elective course for more schools to offer it and for more students to take it – especially girls and underrepresented students of color. What they may not quite understand yet is that there aren’t enough teachers prepared to teach computer science in K-12, although one assemblyman spoke of the need for a single subject teaching credential in computer science, so maybe someday we’ll get there … baby steps!
So, it was exciting in Sacramento last week as the Assembly and Senate Education Committees passed a handful of CS-related bills with flying colors and broad bi-partisan support! ACCESS (the Alliance for California Computing Education in Students and Schools) was on hand to help provide analysis and information. Many thanks to Josh Paley, a computer science teacher at Gunn High School in Palo Alto and a CSTA advocacy and leadership team member, who provided substantive testimony on two priority bills*. Josh provided compelling stories of students who had graduated and gone on to solve important problems using their CS skills. Amy Hirotaka, State Policy and Advocacy Manager, of Code.org, Andrea Deveau, Executive Director of TechNet, and Barry Brokaw, lobbyist for Microsoft also testified on these bills. It was also exciting to see a wide range of organizations supporting this important discipline.
All of the following CS-related bills passed out of committee, all but one with unanimous approval:
1) AB 1764* (Olsen and Buchanan) would allow school districts to award students credit for one mathematics course if they successfully complete one course in computer science approved by the University of California as a “category c” (math) requirement for admissions. Such credit would only be offered in districts where the school district requires more than two courses in mathematics for graduation, therefore, it does not replace core math requirements.
2) AB 1539* (Hagman) would create computer science standards that provide guidance for teaching computer science in grades 7-12.
3) AB 1540 (Hagman) establishes greater access to concurrent enrollment in community college computer science courses by high school students.
4) AB 1940 (Holden) establishes a pilot grant program to support establishing or expanding AP curriculum in STEM (including computer science) in high schools with such need (passed with two noes).
5) AB 2110 (Ting) requires computer science curriculum content to be incorporated into curriculum frameworks when next revised.
6) SB1200 (Padilla) would require CSU and request UC to establish a uniform set of academic standards for high school computer science courses, to satisfy the “a-g” subject requirements, as defined, for the area of mathematics (“c”) for purposes of recognition for undergraduate admission at their respective institutions.
7) ACR 108 (Wagner) would designate the week of December 8, 2014, as Computer Science Education Week (passed on consent).
AB 1530 (Chau), to be heard by the Assembly Education Committee on April 23, would encourage the Superintendent of Public Instruction to develop or, as needed, revise a model curriculum on computer science, and to submit the model curriculum to the State Board of Education for adoption (specifically focuses on grades 1-6).
Anyone really interested in hearing the bill presentation, testimony and supporters can see it here:
Senate Education Committee: http://calchannel.granicus.com/MediaPlayer.php?view_id=7&clip_id=2012
Assembly Education Committee: http://calchannel.granicus.com/MediaPlayer.php?view_id=7&clip_id=2019
I’ll plan another update once these bills move further.