Posts tagged ‘computing for everyone’
We have to teach where the students are: Response to “How We Teach Should Be Independent Of Who We Are Teaching”
Valerie Barr has great insights into computing education, especially with regards to diversity (e.g., see the blog post last CS Ed Week about alternative ways to view data about diversity in computing). I like what she has to say in her most recent Blog@CACM blog post, but I think the title is somewhat misleading.
“How we teach should be independent of who we are teaching” is clearly not true. No one would argue for teaching Linux kernel developing via all day long bootcamps in C to middle school students. Few people use CS Unplugged with machine learning graduate students. What Valerie is explicitly addressing in her blog post is an issue called essentialism.
As we continue efforts to diversify computing, we cannot afford to paint any group in a monochromatic way. We have to embrace the richness of today’s student population by making what we teach meaningful and relevant to them. There are women who want to geek out about hard-core tech, and there are men who care deeply about computing for the social good. There are students of all genders and ethnic and racial backgrounds who will be happy with an old-fashioned lecture, and those who will thrive on active learning with examples drawn from a range of cultures and application areas. Many students will be motivated by knowing how the techniques and subject matter they’re learning fit into their future workplace or life goals.
Here’s a definition of essentialism (from the Geek Feminism Wiki):
The concept of Essentialism states that there are innate, essential differences between men and women. That is, we are born with certain traits. This is often used as an explanation for why there are so few women in science and technology.
In contrast, the critical issue is who is in your classroom, what do they know, and what are their motivations. As How People Learn describes it:
There is a good deal of evidence that learning is enhanced when teachers pay attention to the knowledge and beliefs that learners bring to a learning task, use this knowledge as a starting point for new instruction, and monitor students’ changing conceptions as instruction proceeds.
This is hard to do. We can’t redesign every class for each new student population. What I think Valerie is admonishing us to do is to actually check and not assume certain interests and motivations because of the demographics of the students. When we were developing Media Computation, we did focus groups with students to get their feedback on our developing designs. We surveyed the students to get a sense of what they were interested in and what motivated them. Great work like Unlocking the Clubhouse suggested our starting point, but we did not assume that the majority-female class would have stereotypical responses. We checked with our student population, and we provided different kinds of media interactions to attract different kinds of students within our population.
It would be best if we could provide educational opportunities that meet each student’s needs individually. Short of that, we can design for the students who enter our classrooms, not for the stereotypes that we might expect.
The CS K-12 Framework was released Monday. This has been an 11 month long process — see first blog post about the framework, first blog post on the process, and the post after my last meeting with the writers as an advisor. The whole framework can be found here and a video about the framework can be found here:
A webinar about the Framework will be held on Wednesday, October 19, at 12 PM Pacific / 3 PM Eastern. Visit https://www.youtube.com/watch?v=wmxyZ1DFBwk for more details and to watch the webinar on the 19th.
I believe that this framework is about as good as we can expect right now. Pat Yongpradit did an amazing job engaging a broad range of voices in a short time. The short time frame was forced on the process by the state policymakers who wanted a framework, something on which they could hang their state standards and curricula. The NGSS veterans did warn us what could happen if we got it wrong, if we went too fast. Maybe the framework process didn’t go too fast.
The framework document is impressive — comprehensive, carefully constructed, with a rich set of citations. It’s teacher-centric, which may not be the best for a document to inform state standards, but that’s the constituency with the strongest voice in CS Ed today. There are too few CS Ed informed policymakers or district administrators to push back on things that might not work work. The CS Ed researchers are too few and too uncertain to have a strong voice in the process. Computer scientists (both professional and academic) generally ignored the process. The CS teachers had the greatest political influence.
I predicted in January that this would be a “safe list,” a “subset of CS that most people can agree to.” I was wrong. There’s a lot in there that I don’t see as being about computation. Like “Create team norms, expectations, and equitable workloads to increase efficiency and effectiveness” — that’s a high school computing recommendation? Like “Include the unique perspectives of others and reflect on one’s own perspectives when designing and developing computational products” — you can achieve that in high school?
Those “aspirational” statements (Pat’s word) mean that the writers went beyond defining a consensus document. They tried to push future CS education in the ways that they felt were important. Time will tell if they got it right. The framework fails if schools (especially under-resourced schools) decide that it’s too hard and give up, meaning that underprivileged kids will continue to get no CS education. If teachers and administrators work harder to provide more and better CS education because of this document, then the framework writers win.
This is an important document that will have a large influence. Literally, millions of schoolchildren in several states are going to have their CS education defined by this document.
Typing that statement gives me such a sinking feeling because we just don’t have the research evidence to support what’s in the framework.
When I went to meetings, I too often heard, “Of course, teachers and students can do this, because it works in my program.” So few computing education programs (e.g., packages of curriculum, professional development, assessment, and all the things teachers need like pacing guides and standards crosswalks) have scaled yet in diverse populations. Maybe it works in your program. But will it work when it’s not your program anymore? When it’s a national program? When states and districts take it over and make it their own? Will it still work?
And we want schools and districts to make things their own. That’s at the heart of the American educational system — we’re distributed and diverse, with thousands of experiments going on at once. I worry about how little knowledge about computing and computing education is out there, as guidance when schools and districts make it their own.
So, yeah, I’m one of those uncertain researchers, mumbling in the corner of this process, worrying, “This could go so wrong.” Maybe it won’t. Maybe this will be the first step towards providing a computing education for everyone.
The die is cast. Let’s see what happens.
Insightful interview with Richard Tapia. He understands issues about broadening participation in computing and talks about them frankly.
You have said, “Underrepresentation is a much greater danger to the health of the nation than to the health of the discipline.” Can you explain what you meant by that?
The disciplines of math and science are in good shape and will continue to flourish without the involvement of women and underrepresented minorities. Of course many of the applications will be impacted by the presence of women and minorities in these application areas. But the theory will continue to be healthy without the involvement of these groups. However, the backbone of America has been mathematics, science, and engineering. We have historically led the world in these areas. Our changing demographics show that the country is becoming not only more Hispanic but significantly more. If we do not involve women and minority groups in our backbone activity, we will have no one to do the work and the nation will most certainly suffer and lose global competitiveness.
Source: People of ACM – Richard Tapia
I’m not a big fan of the method in this paper — too little was controlled (e.g., what was being taught? how?). But I applaud the question. Where are things working and where are they not working when using coding to help students learn something beyond coding? We need more work that looks critically at the role of introducing computing in schools.
Nevertheless, there is a lack of empirical studies that investigate how learning to program at an early age affects other school subjects. In this regard, this paper compares three quasi-experimental research designs conducted in three different schools (n=129 students from 2nd and 6th grade), in order to assess the impact of introducing programming with Scratch at different stages and in several subjects. While both 6th grade experimental groups working with coding activities showed a statistically significant improvement in terms of academic performance, this was not the case in the 2nd grade classroom.
No, Really – Programming is Hard and CS Flipped Classrooms are Complicated: ITICSE 2016 Award-Winning Papers
I only recently started digging into the papers from the ITICSE 2016 conference (see Table of Contents link at ACM Digital Library here). There were two papers that caught my attention.
First, the best paper award went to one of my former PhD students, Brian Dorn: An Empirical Analysis of Video Viewing Behaviors in Flipped CS1 Courses, by Suzanne L. Dazo, Nicholas R. Stepanek, Robert Fulkerson, and Brian Dorn. Brian has this cool piece of technology where students can view videos, annotate them, be challenged to answer questions from specific places, and have discussions. They used this for teaching a flipped CS1 class, where students were required to watch videos before class and then engage in more active learning opportunities in class. The real trick, as you might imagine and that the paper goes into detail on, is getting students to watch the video. I liked both the techniques for prodding students to watch videos and the fascinating results showing the relationship between watching the videos and learning.
ITICSE 2016 recognized two “commended” papers this year. I haven’t found the listing of which papers they were, but I did learn that one of them is Learning to Program is Easy by Andrew Luxton-Reilly. I enjoyed reading the paper and recommend it — even though I disagree with his conclusions, captured in the paper title. He does a good job of exploring the evidence that programming is hard (and even uses this blog as a foil, since I’ve claimed several times that programming is hard), and overall, is a terrific synthesis of a bunch of computing education papers (40 references is a lot for a six page ITICSE paper).
His argument that programming is easy has two parts:
- First, children do it. As he says in the abstract, “But learning to program is easy — so easy that children can do it.” That’s a false comparison — what children do in programming is not the same definition of “programming” that is in most of the literature that Andrew cites. The evidence that programming is hard is coming mostly from higher-ed CS classes. What is going on in introductory University CS classes and what children do is dramatically different. We saw that in the WIPSCE 2014 Fields and Kafai paper, and those results were recently replicated in a recent ICER 2016 paper. These are two different activities.
- Second, what higher-education CS teachers expect at the end of the first course is too much. He presents significant evidence that what CS teachers expect is achieved by students, but at the end of the second course. The paper from Morrison, Decker, and Margulieux supports the argument that students think and work very differently and much more successfully by the end of the second CS course than in the first course.
I see Andrew’s argument as evidence that programming is hard. The problem is that Andrew doesn’t define the target. What level of ability counts as “programming”? I believe that level of ability described by the McCracken Working Group, by the FCS1/SCS1 exams, and by most teachers as the outcomes from CS1 (these are all cited by Andrew’s paper) is the definition of the lowest level of “programming ability.” That it takes two courses to reach that level of ability is what I would call hard.
I’ve been reading a terrific book, Proust and the Squid: The Story and Science of the Reading Brain by Maryanne Wolf. It’s the story of how humans invented reading, how we teach reading, and how reading changes our brains (physically and in terms of cognitive function). Oral language is easy. We are literally wired for that. Reading is hard. We are not wired for that, and much of the invention of reading is about inventing how to teach reading. Unless you can teach reading to a significant part of your population, you don’t develop a literate culture, and your written language doesn’t succeed.
Much of the invention of written language is about making it easier to learn and teach because learning to read is so hard. Have you ever thought about why our Latin alphabet is ordered? Why do we talk about the “ABC”‘s and sing a song about them? We don’t actually need them to be ordered to read. Ordering the alphabet makes it easier to memorize, and learning to read is a lot about memorization, about drill-and-practice to make the translation of symbols to sounds to words to concepts effortless (or at least, all System 1 in Kahneman terms). This makes it easier, but the task of learning to read and write is still a cognitively complex task that takes a significant amount of time to master. It’s hard.
Programming is hard like written language is hard. It’s not possible to program unless you know how to read. Programming is particularly hard because the concepts that we’re mapping to are unfamiliar, are not part of our daily experience. We only see it as easy because we have expert blind-spot. We have already learned these concepts and made those mappings. We have constructed understandings of iteration and conditional execution and variable storage. It is difficult for experts to understand how hard it is to develop those concepts. The evidence of children programming suggests that most children who program don’t have those concepts.
I remain unconvinced by Andrew’s argument, but I recommend the paper for a great summary of literature and an interesting read.
Every University Student should Learn to Program: Guzdial Arguing for CS for All in Higher Education
A colleague recently approached me and said, “It would be useful if Universities got involved in this CS for All effort. All Universities should offer courses aimed at everyone on campus. There should be a systematic effort to get everyone to take those classes.”
I agree, and have been making this argument for several years now. I spent a few minutes gathering the papers, blog posts, and book where I’ve made that argument over the last decade and a bit.
In 2002, Elliot Soloway and I argued in CACM that we needed a new way to engage students in intro programming: Teaching the Nintendo Generation to Program.
In 2003, I published the first paper on Media Computation: A media computation course for non-majors.
In 2004, Andrea Forte led the team studying the Media Computation class at GT:Computers for communication, not calculation: Media as a motivation and context for learning and A CS1 course designed to address interests of women.
In 2005, Andrea Forte and I presented empirical evidence about the courses we’d designed for specific audiences: Motivation and nonmajors in computer science: identifying discrete audiences for introductory courses. I published a paper in CACM about how the courses came to be at Georgia Tech: Teaching computing to everyone.
In 2008, I offered the historical argument for teaching everyone to program: Paving the Way for Computational Thinking.
We’ve published several papers about our design process: Imagineering inauthentic legitimate peripheral participation: an instructional design approach for motivating computing education and Design process for a non-majors computing course.
My 2013 ICER paper was a review of a decade’s worth of research on Media Computation: Exploring hypotheses about media computation
My keynote at VL/HCC 2015 was on how computing for all is a requirement for modern society: Requirements for a computing-literate society
My 2015 book is, to a great extent: an exploration of how to achieve CS for All: Learner-Centered Design of Computing Education: Research on Computing for Everyone.
In blog posts, it’s been a frequent topic of conversation:
- In 2011, I argued that it makes more sense to require CS at universities before pushing into K-12, because then all pre-service teachers have some CS which makes later PD much easier and cheaper: https://computinged.wordpress.com/2015/11/30/require-cs-at-universities-before-k-12-computational-community-for-everyone/ and https://computinged.wordpress.com/2011/05/17/if-you-want-cs-in-high-school-require-cs-in-college/
- In 2013, I pointed out that CS is becoming increasingly valuable outside of CS: https://computinged.wordpress.com/2013/12/10/why-are-english-and-lots-of-other-majors-studying-computer-science/
- One of my earlier Blog@CACM posts was on how students learn things in MediaComp that informs them about their world, not just about CS: http://cacm.acm.org/blogs/blog-cacm/26343-media-computation-for-creativity-and-surprises/fulltext
- On how CS is a value-added to a liberal education: http://cacm.acm.org/blogs/blog-cacm/101738-computer-science-as-value-added-to-a-liberal-education/fulltext
I don’t know how to convince University CS departments to do just about anything, but here are my contributions to the dialogs that I hope are happening at Colleges and Universities worldwide about how to prepare students to engage in computational literacy.
Ruthe Farmer at the Office of Science and Technology Policy (OSTP) has been working furiously towards today’s announcements. The Obama Administration is aiming to achieve the goal of CSforAll, and with only a few months left before the new Administration takes off, they’re showing what they’ve put in place today. The full details on all the announcements are here. There’s a webcast at 1 pm EDT today here. The biggest deal to me is the establishment of the CSforAll Consortium (see website here) which is meant to carry on the initiative, no matter who wins in November.
To mark this progress, and celebrate new commitments in support of the President’s initiative, the White House is hosting a summit on Computer Science for All. Key announcements being made today include:
More than $25 million in new grants awarded from the National Science Foundation (NSF) to expand CS education;
A new CSforAll Consortium of more than 180 organizations, which will connect stakeholders with curriculum and resources, as well as track progress towards the goal of Computer Science for All; and
New commitments from more than 200 organizations, ranging from expanded CS offerings within the Girl Scouts of the USA that could reach 1.4 million girls per year, to Code.org supporting professional development for 40,000 additional teachers, to new collaborations to bring CS to students in a variety of settings from African-American churches to family coding nights to tribal Head Start programs to students as Chief Science Officers.