Posts tagged ‘computing for everyone’
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.
It’s almost a race to the bottom — which do people care less about, learning programming or learning a modern language?
The teaching of computer coding should be prioritised over modern languages, according to a survey of British adults.
Twice as many thought teaching computer coding in school should be a priority than the number who saw Mandarin Chinese as more important. Coding was the top choice for 52%, against 38% who favoured French lessons, 32% Spanish, 25% German and 24% Mandarin.
The poll was published by code.org, a campaign to introduce children and parents to coding. It has created Hour of Code, a series of free tutorials designed to show students the basics of programming in an hour.
Nice post from Ran Libeskind-Hadas, Chair of Computer Science at Harvey Mudd College, on the importance of computer science for everyone on campus.
College students across all fields are quickly recognizing two important facts: Every well educated citizen should understand something about the computationally-pervasive world in which we live. Second, computing skills are likely to be useful across virtually all disciplines including the arts, humanities, and social sciences.
Many of these students discover computing late in their college lives and/or have other constraints that prevent them from taking more than one or two computing courses. Those students, I believe, are not ideally served by traditional CS 1 and 2 courses which are often designed as the stepping stones of a computer science major. While implementing a queue as a doubly-linked list is probably important for a CS major (although one could reasonably argue that it still doesn’t have to be presented in CS 1), it’s almost certainly not the highest priority for a social scientist or a biologist.
I got to see a build of ScratchJr at the NSF CE21 PI’s meeting in January — it’s really fun. Attractive, responsive, and well thought through, as one would expect with this team.
Coding (or computer programming) is a new type of literacy. Just as writing helps you organize your thinking and express your ideas, the same is true for coding. In the past, coding was seen as too difficult for most people. But we think coding should be for everyone, just like writing.
As young children code with ScratchJr, they learn how to create and express themselves with the computer, not just interact with it. In the process, children develop design and problem-solving skills that are foundational for later academic success, and they use math and language in a meaningful and motivating context, supporting the development of early-childhood numeracy and literacy.
With ScratchJr, children aren’t just learning to code, they are coding to learn.