Posts tagged ‘high school CS’
White House Backs CS for All: Giving Every Student an Opportunity to Learn Through Computer Science For All
I don’t usually blog on a Saturday, but this is huge.
In this week’s address, the President discussed his plan to give all students across the country the chance to learn computer science (CS) in school. The President noted that our economy is rapidly shifting, and that educators and business leaders are increasingly recognizing that CS is a “new basic” skill necessary for economic opportunity. The President referenced his Computer Science for All Initiative, which provides $4 billion in funding for states and $100 million directly for districts in his upcoming budget; and invests more than $135 million beginning this year by the National Science Foundation and the Corporation for National and Community Service to support and train CS teachers. The President called on even more Governors, Mayors, education leaders, CEOs, philanthropists, creative media and technology professionals, and others to get involved in the efforts.
The argument made in Wired is an interesting one, and I partially buy it. Are high school and elementary schools the right places to teach programming to everyone? Does everyone at that level need to learn to program? What are we giving up by teaching coding? Here’s one possible scenario, a negative one but a likely one: We push CS into K-12 schools, but we can’t get everywhere. The rich schools are getting it first, so we run out of money so that we get to all rich schools and no poor schools. Computing education is now making larger the difference between the rich and the poor.
So is it wrong to teach a person to code? No. I don’t deny that coding is a useful skill to have in a modern ubiquitous computing society. It can help people personalize and understand the devices and services they use on a daily basis. It’s also good news that methods for teaching kids how to code are improving and becoming more effective, or that kids can ostensibly learn on their own when left to their own devices. The problem is elevating coding to the level of a required or necessary ability. I believe that is a recipe for further technologically induced stratification. Before jumping on the everybody-must-code bandwagon, we have to look at the larger, societal effects — or else risk running headlong into an even wider inequality gap. For instance, the burden of adding coding to curricula ignores the fact that the English literacy rate in America is still abysmal: 45 million U.S. adults are “functionally illiterate” and “read below a 5th grade level,” according to data gathered by the Literacy Project Foundation. Almost half of all Americans read “so poorly that they are unable to perform simple tasks such as reading prescription drug labels.” The reading proficiency of Americans is much lower than most other developed countries, and it’s declining.
Computational literacy is important, and school age is where to develop it. Programming can be a useful medium for learning the rest of STEM, so learning programming early can support later learning.
Eventually. That is the desired end-state.
We should focus on universal computing education in higher-ed before putting CS into K-12 classrooms: The problem is that we’re nowhere near that goal now. Less than 10% of NYC schools offer any kind of computer science, and less than 10% of US high schools offer AP CS. I argue that we should require computer science in colleges and universities in the US first, and then in K-12 classrooms, so that the teacher come out of undergraduate already knowing how to program and use it in their classes. I worry that if we can’t make required computer science happen in higher ed, the costs for getting it into all of K-12 are too large — so only the rich will get it. I worry also about the kinds of arguments we make. If we can’t make universal computational literacy happen in higher ed, what right do we have to force it on all the high schools and elementary schools? “This isn’t good for us, but it’s good for you”?
The biggest challenge in growing computing education in K-12 is finding enough teachers. Programs like TEALS are stop-gap measures. We need to recruit teachers to meet the needs in NYC. Most professional development programs are under-subscribed — there are lots of empty seats. How do we convince teachers to go take extra classes in computing, especially if they’re already an established teacher in some other discipline? If we taught everyone computing in undergraduate, we’d teach all the pre-service teachers. We wouldn’t have to do extra in-service professional development. (Pre-service education is much less expensive to implement than in-service. In-service teachers get paid to attend workshops. Pre-service is funded by tuition.)
We absolutely should be doing research on how to put computing into K-12 schools. I am concerned about the costs of large scale implementation before we know what we’re doing — both in terms of making it work, and in what happens when it doesn’t.
Literacy starts with community: Situated learning is a theory which explains why people learn. Students learn to join a community of practice. They want to be like people that they admire, to adopt their values and practices. Think about computing education from a situated learning perspective. Let’s imagine that reading has just been invented. It’s a powerful literacy, and it would be great to teach it to young kids so that they can use it for their whole lives and all their years of schooling. But if we try to teach it to them before many adults are reading and writing, it comes off as inauthentic. You can imagine a child thinking, “Why should I learn to read? The only people who read are monks and professors. I don’t want to be like that.” If few people read, then few people write. There’s not even much for the children to read.
I suspect that textual literacy was first learned by adults before it became a school subject. Adults learned to read and write. They wrote books and newspapers, and used reading in their daily lives. Eventually, it became obvious that children should be taught to read.
Today, children don’t see a world of computational literacy. Children don’t see many adults writing bits of code to do something useful or something beautiful or something enlightening. You can imagine a child thinking, “Why should I learn to program? The only people who program are geeky software developers and professors. I don’t want to be like that. And even if I did want to be like them, the geeky software developers don’t use Scratch or Blockly or App Inventor.” Students today are not immersed in a world of code to explore and learn from. Most programs that are available to study are applications. Studying existing programs today is like learning to read only with legal documents or the Gutenberg Bible. Where are the McGuffy Readers of code, or the Dr Seuss of imaginative programs? Those would be expected produces from a computationally literate society. A generation of college-educated programming professionals would help to create that society.
If you want students to gain literacy, place them in a community that is literate. That’s what Seymour Papert was talking about when he described Logo as a Mathland. We need a community of adults who program if we want children to grow up seeing programming as something natural, useful, and desirable.
The importance of getting it right: I was recently at a meeting for establishing a Framework for K-12 Computer Science Education, and Michael Lach spoke (see a description of him here). He warned curriculum writers and state/district leaders to go slow, to get it right. He pointed out that if we get it wrong, administrators and principals will decide that “Computing can’t be taught to everyone. It really is just for the geeky white boys.” And we’ll lose decades towards making computing education available to everyone. (Lach’s talk was deep and insightful — I’ll say more about it in a future blog post.) We have to get it right, and it’s better to go slow than to create computing education just for the rich.
We now have TWO ebooks supporting CS Principles (see website here) now available — one for teachers and one for students.
Our teacher ebook summer study is now ended. (Announcement about launching the study is here.) We’re crunching the data now. We’ve already learned a lot about what teachers want in an ebook. We learned where our user interface wasn’t obvious, and where we needed to explain more. We learned that teachers expect end-of-chapter exercises. We have used what we have learned so far to produce the two new ebooks.
STUDENT CSP EBOOK: About a year ago, we received additional NSF funding (from the Improving Undergraduate STEM Education (IUSE) program) to develop a student version of our CSP ebook. We have been running participatory design studies and gathering usability surveys from students to get input on what a student ebook should look like. We have now released the first version of the student ebook.
The student CSP ebook is available at http://interactivepython.org/runestone/static/StudentCSP/index.html It doesn’t require a login, but we recommend that teachers have their students login. Without a login, we store saved answers on the local computer, but if the student logs in, we save the answers by the student’s username. The course name is StudentCSP.
We recommend that teachers create a custom version of the student ebook for your students. This allows teachers to customize the ebook, assign homework, and view student’s progress, and even create additional assessments for students.
New Version TEACHER CSP EBOOK: We iterated on our teacher ebook at the same time that we were developing the student ebook. We hypothesize that the student CSP ebook may actually encourage teachers to complete the teacher ebook. We can imagine that teachers who use the student ebook might want to stay one step ahead of the students, e.g., “My students are starting Chapter 3 on Monday, so I better finish Chapter 3 this weekend.”
We have now created a second version of our teacher CSP ebook. This one is in lockstep with the student CSP ebook, includes all the end-of-chapter exercise answers and teacher notes (e.g., on how to teach particular concepts, common student difficulties, etc.). We are not making the second teacher ebook available openly (because it includes answers to the student problems).
Teachers, please contact us at firstname.lastname@example.org with the name and location of your school, and we’ll send you the URL.
We recommend that teachers create their own course for their students. See http://interactivepython.org/runestone/static/overview/instructor.html for why a teacher might want to build a custom course and how to do it.
- You must register on Runestone first at http://interactivepython.org/runestone/default/user/register. Enter StudentCSP as the course name. Be sure to record your username. We find that users often forget what they entered and assume it was their e-mail address — and it may not have been. You can also choose to sign in with your account on Google Plus, Facebook, Twitter, or several others.
- Then go to http://interactivepython.org/runestone/admin/index and select “Create your own Course”.
- Create a unique name for your course (use your school name and StudentCSP and year maybe), add a description, and your institution, and then select “CS Principles: Big Ideas in Programming by Mark Guzdial, Barbara Ericson, and Briana Morrison“.
- Leave the rest as defaults and click the “Submit” button. This will build a custom version of the student ebook for your students and it will have a unique URL and course name. You will be listed as the instructor and can look at the log files and view other information on the instructor page (you can get to this by clicking on the icon that looks like a head and shoulders and the top right of your screen when you are in the ebook).
The linked blog post below bemoans the fact that the AP CS is growing, perhaps at the expense of growth in AP Statistics. AP Stats is still enormously successful, but the part of the post that’s most interesting is the author’s complaints about what’s wrong with CS. I read it as, “Students should know that CS is not worthy of their attention.”
It’s always worthwhile to consider thoughtful critiques seriously. The author’s points about CS being mostly free of models and theories is well taken. I do believe that there are theories and models used in many areas of CS, like networking, programming languages, and HCI. I don’t believe that most CS papers draw on them or build on them. It’s an empirical question, and unfortunately, we have the answer for computing education research. A recent multi-national study concluded that less than half of the papers in computing education research draw on or build on any theory (see paper here).
Though the Stat leaders seem to regard all this as something of an existential threat to the well-being of their profession, I view it as much worse than that. The problem is not that CS people are doing Statistics, but rather that they are doing it poorly: Generally the quality of CS work in Stat is weak. It is not a problem of quality of the researchers themselves; indeed, many of them are very highly talented. Instead, there are a number of systemic reasons for this, structural problems with the CS research “business model.”
Hadi Partovi of Code.org has a blog post (see here) with data from their on-line classes. He’s making the argument that classroom teachers are super important for diversity and for student success.
Learning #1: Classrooms progress farther than students studying alone
In the graph below, the X axis is student age, the Y axis is their average progress in our courses. The blue line is students in classrooms with teachers. The red line is students studying without a classroom/teacher.
Learning #3: The ethnic backgrounds of students with teachers are impressively diverse
The data below doesn’t come from all students, because (for privacy reasons) we do not allow students to tell us their ethnic background. This chart was collected via an opt-in survey of teachers in the U.S. offering our courses, and as such is susceptible to inaccuracy. The picture it paints helps confirm our thesis that by integrating computer science into younger-aged classrooms in public schools, we can increase the diversity of students learning computer science.
A new survey from both CSTA and Oracle. None of the findings are too surprising. What’s probably surprising is that this picture doesn’t seem too different from past CSTA surveys (see list of all of them here). Efforts like the Hour of Code are reaching lots of students, but may not yet be making much impact on most schools and districts.
In addition, participants applied the term “computer science” to a vast array of topics and courses, many of which were submitted as “other” courses in response to the topics that were provided in the survey. Participants classified studies in business management, yearbook layout, artificial intelligence, robotics, office applications, and automated design as computer science courses. This broad use of “computer science” to encompass curriculum and courses that would not be considered “computer science” at a college/university or professional level indicates a need for educational community consensus on a common definition of computer science education and curricular content, lest we lead students or teachers to believe they are preparing students for college and careers when in fact, they are not. This perhaps begs the question whether “computer science” as a designation is being applied inappropriately for funding or other reasons.
Administrators stated that the most prevalent computer science course offered was Web Design and Development, followed by Intro to Computer Science with 54% of the schools offering it in grade 9, 47% offering it in grade 10, 39% offering it in grade 11, 37% offering it in grade 12, and only 27% offering at least one intro to CS course all four years. These were followed by computer graphics and programming. The top four content areas covered in computer science courses were listed as problem solving at 65%, ethical and social issues and graphics tied at 57%, and web development at 51%. However, analysis of algorithms came in at 35% as did testing and debugging. Each of these content areas are core to computer science and in particular programming.
One of the most important findings from the study suggests that better-funded schools are offering CS to their students at a far higher rate than low-income schools. This research verifies what was only previously suspected. Of the 27% of schools where the majority of students qualify for free or reduced lunch, 63% offer computer science courses. Of the 44% of schools where the majority of students do not qualify for free lunch, 84% offer computer science courses.
via CSTA – OracleSurvey.
There are lots of these kinds of lists around the beginning of a new year, but I thought that these predictions were interesting. I’m betting that the first one below is right, but I know a lot of people are betting against it. I’m seeing the second one in my discussions with K12 education policymakers in states. They want their students to come out with “job skills,” which is hard to do with an introduction to computing designed for students who have no previous background.
10. Online learning will grow modestly (Eduventures): The company predicts that enrollment in wholly online degree programs will be modest this year, with only 2 percent growth due mostly to uncertainty and indecision among adult learners. At the same time, the percentage of colleges entering the online market will grow very little, if at all. “Growth will be stunted due to increased regulatory concerns such as state authorization, competition from large adult-serving providers, and enrollment strategies incapable of keeping pace with the savvyness of today’s adult learners,” it stated. “Institutions will back away from online programming to focus on blended learning and improving quality and access for traditional age students.”
11. Outcomes will dominate (Eduventures): Eduventures research shows that in 2013, “career preparation” surpassed “academic strength” as the top priority for both students and parents in selecting a school. Adding to parent and student concerns, the government has increased its focus on this issue, including the possibility of Title IV funding consequences. “Look for schools to become more aggressive in differentiating themselves in reporting outcomes data in 2015,” said the company.