Posts tagged ‘#CS4All’

Are you talking to me? Interaction between teachers and researchers around evidence, truth, theory, and decision-making

In this blog, I’m talking about computing education research, but I’m not always sure and certainly not always clear about who I’m talking to. That’s a problem, but it’s not just my problem. It’s a general problem of research, and a particular problem of education research. What should we say when we’re talking to researchers, and what should we say when we’re talking to teachers, and where do we need to insert caveats or explain assumptions that may not be obvious to each audience?

From what I know of philosophy of science, I’m a post-positivist. I believe that there is an objective reality, and the best tools that we humans have to understand it are empirical evidence and the scientific method. Observations and experiments have errors and flaws, and our perspectives are biased. All theory should be questioned and may be revised. But that’s not how everyone sees the world, and what I might say in my blog may be perceived as a statement of truth, when the strongest statement I might make is a statement of evidence-supported theory.

It’s hard to bridge the gap between researchers and education. Lauren Margulieux shared on Twitter a recent Educational Researcher article that addresses the issue. It’s not about getting teachers access to journal articles, because those articles aren’t written to speak to nor address teachers’ concerns. There have to be efforts from both directions, to help teachers to grok researchers and researchers to speak to teachers.

I have three examples to concretize the problem.

Recursion and Iteration

I wrote a blog post earlier this month where I stated that iteration should be taught before recursion if one is trying to teach both. For me, this is a well-supported statement of theory. I have written about the work by Anderson and Wiedenbeck supporting this argument. I have also written about the terrific work by Pirolli exploring different ways to teach recursion, which fed into the work by Anderson.

In the discussion on the earlier post, Shriram correctly pointed out that there are more modern ways to teach recursion, which might make it better to teach before iteration. Other respondents to that post point out the newer forms of iteration which are much simpler. Anderson and Wiedenbeck’s work was in the 1980’s. That sounds great — I would hope that we can do better than what we did 30 years ago. I do not know of studies that show that the new ways work better or differently than the ways of the 1980’s, and I would love to see them.

By default, I do not assume that more modern ways are necessarily better. Lots of scientists do explore new directions that turn out to be cul-de-sacs in light of later evidence (e.g., there was a lot of research in learning styles before the weight of evidence suggested that they didn’t exist). I certainly hope and believe that we are coming up with better ways to teach and better theories to explain what’s going on. I have every reason to expect that the modern ways of teaching recursion are better, and that the FOR EACH loop in Python and Java works differently than the iteration forms that Anderson and Wiedenbeck studied.

The problem for me is how to talk about it.  I wrote that earlier blog post thinking about teachers.  If I’m talking to teachers, should I put in all these caveats and talk about the possibilities that haven’t yet been tested with evidence? Teachers aren’t researchers. In order to do their jobs, they don’t need to know the research methods and the probabilistic state of the evidence base. They want to know the best practices as supported by the evidence and theory. The best evidence-based recommendation I know is to teach iteration before recursion.

But had I thought about the fact that other researchers would be reading the blog, I would have inserted some caveats.  I mean to always be implicitly saying to the researchers, “I’m open to being proven wrong about this,” but maybe I need to be more explicit about making statements about falsifiability. Certainly, my statement would have been a bit less forceful about iteration before recursion if I’d thought about a broader audience.

Making Predictions before Live Coding

I’m not consistent about how much evidence I require before I make a recommendation. For a while now, I have been using predictions before live coding demonstrations in my classes. It’s based on some strong evidence from Eric Mazur that I wrote about in 2011 (see blog post here). I recommend the practice often in my keynotes (see the video of me talking about predictions at EPFL from March 2018).

I really don’t have strong evidence that this practice works in CS classes. It should be a pretty simple experiment to test the theory that predictions before seeing program execution demonstrations helps with learning.

  • Have a set of programs that you want students to learn from.
  • The control group sees the program, then sees the execution.
  • The experimental group sees the program, writes down a prediction about what the execution will be, then sees the execution.
  • Afterwards, ask both groups about the programs and their execution.

I don’t know that anybody has done this experiment. We know that predictions work well in physics education, but we know that lots of things from physics education do not work in CS education. (See Briana Morrison’s dissertation.)

Teachers have to do lots of things for which we have no evidence. We don’t have enough research in CS Ed to guide all of our teaching practice. Robert Glaser once defined education as “Psychology Engineering,” and like all engineers, teachers have to do things for which we don’t have enough science. We make our best guess and take action.

So, I’m recommending a practice for which I don’t have evidence in CS education. Sometimes when I give the talk on prediction, I point out that we don’t have evidence from CS. But not always. I probably should. Maybe it’s enough that we have good evidence from physics, and I don’t have to get into the subtle differences between PER and CER for teachers. Researchers should know that this is yet another example of a great question to be addressed. But there are too few Computing Education Researchers, and none that I know are bored and looking for new experiments to run.

Code.org and UTeach CSP

Another example of the complexity of talking to teachers about research is reflected in a series of blog posts (and other social media) that came out at the end of last year about the AP CS Principles results.

  • UTeach wrote a blog post in September about the excellent results that their students had on the AP CSP exam (see post here). They pointed out that their pass rate (83%) was much higher than the national average of 74%, and that advantage in pass rates was still there when the data were disaggregated by gender or ethnicity.
  • There followed a lot of discussion (in blog posts, on Facebook, and via email) about what those results said about the UTeach curriculum. Should schools adopt the UTeach CSP curriculum based on these results?
  • Hadi Partovi of Code.org responded with a blog post in October (see post here). He argued that exam scores were not a good basis for making curriculum decisions. Code.org’s pass rates were lower than UTeach’s (see their blog post on their scores), and that could likely be explained by Code.org’s focus on under-represented and low-SES student groups who might not perform as well on the AP CSP for a variety of reasons.
  • Michael Marder of UTeach responded with two blog posts. One conducted an analysis suggesting that UTeach’s teacher professional development, support, and curriculum explained their difference from the national average (see post here), i.e., it wasn’t due to what students were served by UTeach. A second post tried to respond to Hadi directly to show that UTeach did particularly well with underrepresented groups (see post here).

I don’t see that anybody’s wrong here. We should be concerned that teachers and other education decision-makers may misinterpret the research results to say more than they do.

  • The first result from UTeach says “UTeach’s CSP is very good.” More colloquially, UTeach doesn’t suck. There is snake oil out there. There are teaching methods that don’t actually work well for anyone (e.g., we could talk some more about learning styles) or only work for the most privileged students (e.g., lectures without active learning supports). How do you show that your curriculum (and PD and support) is providing value, across students in different demographic groups? Comparing to the national average (and disaggregated averages) is a reasonable way to do it.
  • There are no results saying that UTeach is better than Code.org for anyone, or vice-versa. I know of no studies comparing any of the CSP curricula. I know of no data that would allow us to make these comparisons. They’re hard to do in a way that’s convincing. You’d want to have a bunch of CSP students and randomly assign them to either UTeach and Code.org, trying to make sure that all relevant variables (like percent of women and underrepresented groups) is the same in each. There are likely not enough students taking CSP yet to be able to do these studies.
  • Code.org likely did well for their underrepresented students, and so did UTeach. It’s impossible to tell which did better. Marder is arguing that UTeach did well with underrepresented groups, and UTeach’s success was due to their interventions, not due to the students who took the test.  I believe that UTeach did well with underrepresented groups. Marder is using statistics on the existing data collected about their participants to make the argument about the intervention. He didn’t run any experiments. I don’t doubt his stats, but I’m not compelled either. In general, though, I’m not worried about that level of detail in the argument.

All of that said, teachers, principals, and school administrators have to make decisions. They’re engineers in the field. They don’t have enough science. They may use data like pass rates to make choices about which curricula to use. From my perspective, without a horse in the race or a dog in the fight, it’s not something I’m worried about. I’m much more concerned about the decision whether to offer CSP at all. I want schools to offer CS, and I want them to offer high-quality CS. Both UTeach and Code.org offer high-quality CS, so that choice isn’t really a problem. I worry about schools that choose to offer no CSP or no CS at all.

Researchers and teachers are solving different problems. There should be better communication. Researchers have to make explicit the things that teachers might be confused about, but they might not realize what the teachers are confused about. In computing education research and other interdisciplinary fields, researchers may have to explain to each other what assumptions they’re making, because their assumptions are different in different fields. Teachers may use research to make decisions because they have to make decisions. It’s better for them to use evidence than not to use evidence, but there’s a danger in using evidence to make invalid arguments — to say that the evidence implies more than it does.

I don’t have a solution to offer here. I can point out the problem and use my blog to explore the boundary.

June 15, 2018 at 1:00 am 5 comments

Some principals are getting interested in CS, but think pressure for CS is mostly coming from Tech companies

How do high school principals in small, medium and large districts view the Computer Science for All movement?

 

High school leaders in smaller districts are most enthusiastic about the trend, a new survey by the Education Week Research Center found. Overall, 30% of all principals say CS is not “on their radar,” and 32% say CS is an “occasional supplement or enrichment opportunity.”  I found the two graphs above interesting.  The majority of principals aren’t particularly excited by CS, and most principals think that it’s the Tech firms that are pushing CS onto schools, not parents.

Source: Principals Warm Up to Computer Science, Despite Obstacles

May 28, 2018 at 7:00 am 3 comments

The pushback begins: Who benefits from the push to teach every kid to code?

The pushback was inevitable.  Slate published a piece in December, “Who Benefits From the Push to Teach Every Kid to Code?” The article provides an answer in the subtitle, “Tech companies, for one.”

The article is more history lesson than explicit argument that the driver behind the current effort to promote computing is simply for Tech companies to bolster their bottom line.  It’s still an interesting piece and worth reading.

For some tech companies, this is an explicit goal. In 2016, Oracle and Micron Technology helped write a state education bill in Idaho that read, “It is essential that efforts to increase computer science instruction, kindergarten through career, be driven by the needs of industry and be developed in partnership with industry.” While two lawmakers objected to the corporate influence on the bill, it passed with an overwhelming majority.

Some critics argue that the goal of the coding push is to massively increase the number of programmers on the market, depressing wages and bolstering tech companies’ profit margins. Though there is no concrete evidence to support this claim, the fact remains that only half of college students who majored in science, technology, engineering, or math-related subjects get jobs in their field after graduation. That certainly casts doubt on the idea that there is a “skills gap“ between workers’ abilities and employers’ needs. Concerns about these disparities have helped justify investment in tech education over the past 20 years.

January 26, 2018 at 7:00 am 6 comments

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 Amy 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 28 comments

Unpacking models of what the $USD1.3B might achieve in Computing Education: We need long-term vision and will

I wrote my Blog@CACM post for September on the massive investments in CS Education announced last week (see post here): $200M/year from the US Department of Education announced by the White House on Monday, then $300M over five years from the Tech industry announced on Tuesday. I have read analyses saying that the money isn’t really promised or isn’t new (see concerns in this post), and others are shunning the initiative because of White House policies (see link here). I took the promises at face value. My post starts congratulating Hadi Partovi and Cameron Wilson of Code.org and Ivanka Trump who were behind these initiatives, then I offered two back-of-the-envelope models of what $1.3B in five years could do:

  • I extrapolated the New York City model (of a significant computing education experience to every child in every school within grade bands) to the whole of the US, which would likely take more than a magnitude more funding.
  • The funding is enough to pay for a CS teacher in every school, but I argued that it wouldn’t really work. We face a shortage of STEM teachers, and those few are the teachers that we can most likely recruit to CS. CS teacher attrition is so high that we couldn’t keep up with the losses, since we have so few mechanisms of pre-service CS teacher preparation.

I received many responses, queries, and criticisms of that blog post (from email, Facebook, and Twitter).  I am explaining and unpacking the CACM blog post here. I am not going to delete or change the CACM blog post. My mentor, Janet Kolodner, told me once not to dwell on any paper, trying to make it a masterpiece before publishing it. Rather, she suggested that we should just keep publishing. Explore lots of ideas in lots of papers, and publish as a way of thinking with a community. It’s okay to publish something you thought was right, and later find that it’s wrong — it documents the explored trails.

What I learned about the effort in NYC

I said that NYC was aiming to provide a quality computing learning experience for every student in every grade in every school, as I learned last October (and blogged about it here). I learned that the goal is now mandating a computing learning experience in every grade band, so not every year. It’s still a markedly different model than one teacher per school, and doesn’t change the costs considerably.

I learned that (as one might expect) that the effort in NYC is in both the NYC Department of Education and in CSNYC. It’s great that there are many people in the NY DoEd working on CS education! I was told on Twitter that some of what I attributed to CSNYC is actually in NY Department of Education. I don’t know what I mis-attributed, but I’m sure that it’s because I get confounded over “CSNYC” representing “the effort to provide CS education across NYC” and “the organization that exists to provide CS education across NYC.” I don’t understand the split between NYC DoEd and the CSNYC organization, and I’m not going to guess here. I am sure that it’s important for the people involved, but it’s not so important for the model and national analysis.

Explaining my Estimates in Contrast to Code.org’s

Code.org has made their model of the one-time cost of expanding access to K-12 computer science (CS) available at this Google doc. According to their model, it’s clear that the $1.3B is enough to make CS education available in every elementary and secondary school. They have more empirical data than anyone else on putting CS in whole districts, and their data suggest that costs are decreasing as they gain more efficiencies of scale.

Hadi challenged several points in my blog post on Facebook. I won’t replicate all of our exchange, and only include three points here:

  • I argue that we will probably have to pay future CS teachers more in the future, at least as teacher stipends. That prediction is based on trends I see in the states I work with and economics. States are facing teacher shortages, especially in STEM. Aman Yadav shared an article (see link here) that students studying to be teachers fell by 40% from the 2010-2011 academic year to the 2014-2015 academic year. If the supply of teachers is growing more slowly than the rate at which we’re trying to grow CS, we will have to provide incentives to make CS more attractive. Lijun Ni’s dissertation explored the barriers for teachers to become CS teachers (e.g., it’s a lot easier and more pleasant to stay a math teacher). Costs are likely to grow as the labor shortage increases.
  • Some of my costs are too high, e.g., I estimated the cost to develop a high school CS teacher as $10K, where NSF’s studies found it was closer to $8.6K. I used a ballpark 50% of high school CS teacher development for the costs of elementary school CS teacher development.  Since it’s clear that there is enough to prepare one CS teacher per school, I think my numbers are close enough.
  • I believe that extrapolating the NYC model across the country would be even more expensive than it is in NYC. Travel costs in NYC are much less than in rural America. While NYC is very diverse, the rest of the United States is just as diverse. I got to see Ann Leftwich at Indiana University on Saturday. She told me that some of the schools she works with resist teaching science at all! It’s really hard to convince them to teach CS. I expect that there is a similar lack of will to teach CS across the US.

Not all of my estimates are research-based. We don’t have research on everything. Changing all US schools happens so rarely that we do not have good models of how it works. I don’t think that the empirical data of what we have done before in CS Ed is necessarily predictive of what comes next, since most of our experience with CS Ed at-scale is in urban and suburban settings. Getting everywhere is harder. I have observed about “Georgia Computes!” — 1/3 of the high schools in GA got someone that Barbara trained in CS, and that’s likely the easiest 1/3. The next 2/3 will be harder and more expensive.

What I Missed Entirely

As Hadi correctly called me on, the biggest cost factor I missed is the development of curriculum. Back in July, I blogged about Larry Cuban’s analysis that suggested that we need to re-think how we are developing and disseminating CS curriculum in the United States (see link here). We have to develop a lot more curriculum in collaboration with schools, districts, and states nationwide. The US will never adopt a single curriculum nationwide for any subject — it’s not how our system was developed, and it’s why Common Core did not reach all 50 states. The US education system is always about tailoring, adapting, and working with local values and politics. Curriculum is always political.

Mike Zamansky just posted a blog post critiquing some of the curriculum he’s seeing in NYC (see post here). I don’t agree with Mike’s post, but I wholeheartedly agree with his posting. We should argue about curriculum, negotiate what’s best for our students, and create curriculum that works for local contexts.  There is going to be a lot of that nationwide as we take steps towards providing computing education to all students. The iteration and revision will be expensive, but it’s a necessary expense for sustainable, longterm computing education.

What should we do with the money

At a talk I gave at Indiana University on Friday, Katie Siek asked me my opinion. What do I want to see the funding be used for?

It would be great if some of that funding could start more pre-service CS teacher preparation programs. I have argued that we should fund chairs of CS Education in top Schools of Education (see post here). Germany uses this model — they create CS Education professors who will be there for a career, producing CS teachers, supporting local communities of CS teachers, and serving as national models. An endowed chair is $1-3M at most universities. That is not very expensive for a longterm impact.

I prefer an NYC-like model of reaching every student to the model of a teacher for every school. The data I’ve seen from our ECEP states suggests that most CS teachers teach only a single computing class, and that class is typically mostly white/Asian and male. One CS  teacher per school doesn’t reach all the female and under-represented minority students. Equity has to be a top priority in our choices for these funds, since CS education is so inequitable.

My greatest wish is for computational literacy to be woven into other disciplines, especially across all of STEM. I devoted my career to computing education because I believe in the vision of Seymour Papert, Cynthia Solomon, Alan Kay, and Andrea diSessa. Computational literacy can improve learning in science, mathematics, art, language, and other disciplines, too.

I don’t argue that computer science is more important than other STEM subjects. Rather, computing makes learning in all the other STEM subjects better.

I want us to teach real computational literacy across subjects, not just in the CS class hidden away, and not just in an annual experience. I recognize that that’s a long-term, expensive vision — probably two orders of magnitude beyond the current initiative. We need more long-term thinking in CS education, like building up the CS teacher development infrastructure and making the case to people nationwide for CS education. We are not going to solve CS for All quickly.

When the K-12 CS Framework effort launched back in 2015, I told the story here about a conversation I had with Mike Lach (see post here). He pointed out that the last time we changed all US schools, it was in response to the Civil Rights movement. That’s when we started celebrating MLK Jr Day and added African-American History month. He asked me to think about how much national will it took to make those changes happen. We don’t have that kind of national will in CS education in this country — yet. We have a lot more groundwork to do before we can reach CS education for all students or all schools, and funding alone is not going to get us there.

October 4, 2017 at 7:00 am 10 comments

Google study on the challenges for rural communities in teaching CS

Google continues their series of reports on the challenges of teaching CS, with a new report on rural and small-town communities in the US.  This is an important part of CS for All, and is a problem internationally.  The Roehampton Report found that rural English schools were less likely to have computing education than urban schools.  How do we avoid creating a computing education divide between urban and rural schools?

This special brief from our Google-Gallup study dives into the opportunities and challenges for rural and small-town communities. Based on nationally representative surveys from 2015-16, we found:

  • Students from rural/small-town schools are just as likely as other students to see CS as important for their future careers, including 86% who believe they may have a job needing computer science.

  • Rural/small-town parents and principals also highly value CS, with 83% of parents and 64% of principals saying that offering CS is just as or more important than required courses.

  • Rural/small-town students are less likely to have access to CS classes and clubs at school compared to suburban students, and their parents are less likely to know of CS opportunities outside of school.

  • Rural/small-town principals are less likely to prioritize CS, compared to large-city or suburban principals.

Source: Google for Education: Computer Science Research

September 4, 2017 at 7:00 am 1 comment

Universities need more Blacks: How do we know if we’re making progress?

The below article is pretty stunning — a sitting justice on the Supreme Court calling out an elite University for a lack of diversity.  This isn’t just about the University of Michigan. This isn’t about computing, but it could be. Sotomayor is speaking about an important social need, where computing is part of the problem.  We see that in the Generation CS report. We are falling further behind in getting African Americans into CS. (An interesting side note here that Georgia Tech alumna, Sarita Yardi (whom I mentioned in this blog post), just won an award at the University of Michigan for her work in promoting diversity.)

Daryl Chubin sent me a workshop report on “Better STEM Outcomes: Developing an Accountability System for Broadening Participation.” How would we know if we’re doing better?  We could measure participation rates in Universities, but that will take time to change.  How do you know if you’re doing the right things now for success later? For example, what would you measure at the high school level that would suggest progress towards broader participation in the future at the undergraduate level?  It’s a good question — we’re far from where we need to be, but we need to take meaningful steps towards the goal of broad participation in computing.

U.S. Supreme Court Justice Sonia Sotomayor on Monday said future diversity on college campuses is a key to diversifying society at large, noting the lack of black students at the University of Michigan is a “real problem.”

Sotomayor, the first Hispanic on the Supreme Court and daughter of Puerto Rican-born parents, was asked by a moderator what a university will need to look like in the years ahead to be inclusive and innovative.

“It’s going to look a lot like Michigan,” she said to applause, “but with even greater diversity.” The percentage of black undergraduate students at the University of Michigan has been pretty steady in recent years at less than 5 percent. Hispanics are 5.5 percent. White undergraduates are 65.4 percent.

Source: Sotomayor says University of Michigan needs more blacks

July 14, 2017 at 7:00 am 1 comment

From Design of Everyday Things to Teaching of Everyday People: Human error? Student error? No, Bad Design

We have to accept human behavior the way it is, not the way we would wish it to be.

Continue Reading June 26, 2017 at 7:00 am 19 comments

We need to separate Computing for All from Software Development: Claims that coding is not “fun,” it’s technically and ethically complex

The problem with the article linked below is that Code.org and the author mean two different things by the word “programming.”  Programming can be fun, insightful, sloppy, small, and still useful without demanding “superhuman focus” and “manic attention to detail.”  This is an issue I’ve talked about with respect to the thick line between programmer and user where most people will be in the future. I’m teaching an ethics course this summer — building software for others is technically and ethically complex, as the author states.  But building software as an end-user, as a hobbyist, as a scientist or engineer exploring an idea?  We need a different word.

Programming computers is a piece of cake. Or so the world’s digital-skills gurus would have us believe. From the non-profit Code.org’s promise that “Anybody can learn!” to Apple chief executive Tim Cook’s comment that writing code is “fun and interactive,” the art and science of making software is now as accessible as the alphabet.

Unfortunately, this rosy portrait bears no relation to reality. For starters, the profile of a programmer’s mind is pretty uncommon. As well as being highly analytical and creative, software developers need almost superhuman focus to manage the complexity of their tasks. Manic attention to detail is a must; slovenliness is verboten. Attaining this level of concentration requires a state of mind called being “in the flow,” a quasi-symbiotic relationship between human and machine that improves performance and motivation.

Source: Coding is not “fun,” it’s technically and ethically complex — Quartz

June 19, 2017 at 7:00 am 5 comments

Using tablets to broaden access to computing education: Elliot Soloway and truly making CS for All

I recently had the opportunity to visit with my PhD advisor, Elliot Soloway. Elliot has dramatically changed the direction of his research since we worked together. And he’s still very persuasive, because now I keep thinking about his challenge to push educational technology onto the least expensive devices.

When I worked with Elliot in the late 1980’s and early 1990’s, we emphasized having lots of screen real estate. Though the little Macintosh Plus was still popular through much of that time, Elliot was hooking up 21-inch, two page displays for all our development and at the high schools where we worked. The theoretical argument was the value of multiple-linked representations (like in this paper from Bob Kozma). By giving students multiple representations of their program and their design, we would facilitate learning across and between representations. The goal was to get students to see programming as design.

But in the mid 1990’s, Elliot changed his direction to emphasize inexpensive, handheld devices. I remember asking him why at the time, and he pointed out that you could give 10 students access to these low-cost devices for one of the higher-end devices. And access trumps screens.

Now, Elliot has a project, Intergalactic Mobile Learning Center, that produces software for learning that runs on amazingly inexpensive computers. Go to http://www.imlc.io/apps and try out their all-HTML software on any of your devices.

I purchased an Amazon Fire HD 8 tablet last year as a media consumption device (reading, videos, and music). For less than $100, it’s an amazingly useful device that I carry everywhere since it’s light and mostly plastic. Here’s some of IMLC’s software running on my inexpensive tablet.

Teaching Computer Science on a Tablet

I have been arguing in this blog that we need a greater diversity of teaching methods in computer science, to achieve greater diversity and to teach students (and reach students) who fail with our existing methods. Elliot’s argument for inexpensive tablets has me thinking about the value for computing education.

If our only CS teaching method is “write another program,” then a tablet makes no sense. Typing on a tablet is more difficult than on a laptop or desktop computer. I have been arguing that we can actually teach a lot about coding without asking students to program. If we expand our teaching methods to those that go beyond simply writing programs, then a tablet makes a lot of sense.

Could a focus on using tablets to teach computer science drive us to develop new methods? If more CS teachers tried to use tablets, might that lead to greater adoption of a diverse range of CS teaching methods?

Elliot’s argument is about bridging the economic and digital divide. Can we use the low cost of tablets to break down economic barriers to learning computer science? Computing education via tablets may be key to the vision of CS for All. We can outfit a whole classroom with tablets much more cheaply than buying even mid-range laptops for an elementary or middle school classroom.  There are people suggesting that if we buy kids iPads, we’ll improve learning (e.g., Los Angeles schools).  I’m making the inverse argument.  If we as computing curriculum/technology developers and teachers figure out how to teach computing well with tablets, we’ll improve learning for everyone.

I started checking out what I could do with my less than $100 tablet. I was amazed! Moore’s Law means that the low-end today is surprisingly capable.

GP, the new blocks-based programming language that I’ve been working with (see posts here and here), runs really well on my Fire HD 8 tablet. In fact, it runs better (more functionality, more reliable, greater stability) in the browser of my Fire tablet than the browser-based GP does on my iPad Pro (which costs about a magnitude more).  (There is an iOS version of GP which is fast and stable, but doesn’t have all the features of the browser-based version.)

GP running on a Fire HD 8 Tablet — two Media Computation projects (mirroring on left, removing red eye on right)

Our ebooks run well on the Fire HD 8 tablet. I can program Python in our ebook using the tablet. Our approach in the ebooks emphasizes modification to existing programs, not just coding from scratch. Tweaking text works fine on the tablet.

Running Python code on the Fire HD 8 Tablet

A wide range of CS education practice activities, from multiple choice questions to Parsons Problems, work well on the Fire HD 8.

Parsons Problem on Fire HD 8 Tablet

I tried out WeScheme on my Fire HD 8, too.

I bought the cheapest Chromebook I could find for this trip. I wanted a laptop alternative to take to China and for commuting on the Barcelona subway, rather than my heavier and more expensive MacBook Air. All of these browser-based tools (GP, Python programming in the ebook, Parsons Problems) run great on my $170 Acer Chromebook, plus I get a keyboard. Even a Chromebook would require different teaching and learning methods than what we use in many CS courses. I’m not going to run Eclipse or even JES on a Chromebook. (Though Emacs has been ported to the Chromebook, it only runs on certain Chromebooks and not mine). Google is aiming to merge Chromebook and Android development so that apps run on both. I don’t really understand all the differences between tablets and Chromebooks, but I do know that Chromebooks are becoming more common in schools.

A Chromebook costs about twice what a low-end tablet costs. While that is still much less than most laptops, twice is a big markup for a poor student or a budget-strapped school. It’s worth pushing for the lowest end.

CS education researchers, developers, and teachers should explore teaching computing with tablets. Some are doing this already. The next version of Scratch will run on mobile phones, and the current version will already run on some phones and tablets. Creating CS learning opportunities on low-end tablets will make computing education more affordable and thus accessible to a broader range of potential CS students.  My proposal isn’t about offering the poor a cheaper, low-quality alternative. Tablets force us to expand and diversify our teaching methods, which will lead us to create better and more accessible computing education for all.

June 14, 2017 at 7:00 am 9 comments

Hidden Figures of “Computer Science for All”

Nice piece by Ruthe on some of the heroes of the effort to make CS education available to everyone.

You might have noticed computer science and “coding” have become the cause du jour. Celebrities and athletes, governors and mayors, tech icons, and media giants have come out in support of reinvigorating K-12 computer science education in US schools. Coding is now a commonly known term and in January 2016, building on the momentum from the community, President Obama announced the Computer Science for All (CSforAll) initiative, a bold national call to make rigorous computer science (CS) education available to all American students and partner initiatives have formed nationwide including CS4TX, CS4RI, CodeVA and many more. CSforAll is here to stay.

Like every social movement in history, this change didn’t materialize overnight – and like the great social movements that have shaped our country – women have been integral to this movement. I am honored to present just a few of the “Hidden Figures” of K-12 computer science education.

Source: Hidden Figures of “Computer Science for All”

May 10, 2017 at 7:00 am Leave a comment

Report from Jan Cuny on Computer Science Education for Everyone: A Groundswell of Support

Jan Cuny wrote a blog post about where we are in the effort to provide CS education to everyone.  Next month is important for the CS for All effort — the first offering of the AP CS Principles exam is May 5.  Last I heard, over 46,000 students had turned in materials for their digital portfolios as part of the AP CSP exam.  I’m eager to hear how many actually take it!

Progress has been dramatic. Many school districts and states now require CS in all K-12 schools – examples include New York City, San Francisco, Broward County (FL), Rhode Island, Virginia, and in 2016, Chicago became the first major district to make CS a graduation requirement. Also in 2016, a new organization — CSforAll.org— formed to build community among national stakeholders and provide resources for parents, teachers, school districts, and education researchers. And the new AP CSP officially launched this year with 2,700 teachers, putting it on track to be the largest AP launch ever.

Source: Infosys Foundation USA – Media | Blog | Computer Science Education for Everyone: A Groundswell of Support

April 14, 2017 at 7:38 am Leave a comment

SIGCSE 2017 Preview: Ebooks, GP, EarSketch, CS for All, and more from Georgia Tech

I have written individual blog posts for each paper or other contributions at conferences like ICER or SIGCSE. Then sometimes, like this year, that’s just overwhelming. So please excuse me for talking about a bunch (I may not even get all of it) of Georgia Tech related CS Education work at SIGCSE 2017 this year. (Conference website is here, and program is here. The on-line program is really nice, which is here.)

Workshop 101: GP: A General Purpose Blocks-Based Language

Wednesday 7-10 pm: Room 618-619

I’m helping to organize a workshop with John Maloney, Yoshiki Ohshima, and Jens Mönig on GP. I blogged about GP here, and about the use of GP for Media Computation in a minimal manuals structure here. The workshop will be the first SIGCSE activity with GP. The plan is to move it into a public form next summer, and the team is looking for people who want to start using it for their classes.

Panel: The Role of CS Departments in The US President’s “CS for All” Initiative

Thursday 10:45-12: Room 6E

I was part of an effort at last year’s CRA Conference at Snowbird to get CS departments to participate in President Obama’s “CS for All” initiative (see blog post here). This year, Barbara Ericson, Rick Adrion, and Megean Garvin will tell us about how their CS departments are working to promote CS for All. I’m the moderator.

EarSketch: A STEAM-based Approach for Underrepresented Populations in High School Computer Science Education

Thursday 1:45-3:00: Room 615

Brian Magerko and Jason Freeman will present on EarSketch, which I just blogged about here. They are also presenting on Creativity in Authentic STEAM Education with EarSketch on Friday 1:45-3 in Room 612. And then again Saturday 10-10:45 as a demo, EarSketch, a web-application to teach Computer Science through Music

CS Principle Ebooks for Teachers and Students building on Educational Psychology Principles

Thursday 3-4:30 pm: NSF Showcase in Exhibition Space

Barb, Miranda Parker, and I will present our ebooks. I blogged about our ICER 2016 paper on ebooks here and our WiPSCE 2015 paper here).

BOF: Researching the K–12 Computer Science Framework

Thursday 5:30-6:20 pm: Room 613-614

I’m part of a BOF led by Pat Yongpradit of Code.org with Leigh Ann DeLyser of CSNYC and Kathi Fisler at Brown. The BOF session will allow researchers to discuss opportunities in K-12 CS ed research within five areas related to the implementation and future of the framework:

  • Equity and access
  • Learning progressions
  • Pedagogical content knowledge (Knowledge teachers need to teach CS)
  • Facilitating learning in other disciplines
  • Policy and implementation within K–12 education systems

Workshop 310: Using and Customizing Open-Source Runestone Ebooks for Computer Science Classes

Friday 7-10 pm: Room 612

Barb, Brad Miller, and Paul Resnick will present on the Runestone platform that we build our ebooks on. Brad built Runestone, and Paul uses and extends it frequently for his Informatics course at U. Michigan. This is the first time that they’re teaching others how to use the platform, which is a great sign of the maturation of Runestone — from researcher and early-adopters into something that all CS educators can use.

Designing and Studying of Maker Oriented Learning to Transform Advanced Computer Science
Saturday 10-11:30, NSF Showcase area in Exhibitions

Zane Cochran, a student of my colleague Betsy DiSalvo, will present some of his work on using maker spaces to improve CS education.

Concepts and Practices: Designing and Developing A Modern K12 CS Framework

Saturday 10:45-12: Room 611

My PhD student, Miranda Parker (who has been working on privilege issues and on the SCS1), and Leigh Ann Delyser (of CSNYC and CS for All fame) will present on the new K-12 CS Framework (see blog post here) and the research support for it.

Workshop 401: Evidence Based Teaching Practices in CS

Saturday 3-6 pm: Room 618-619

Briana Morrison is leading the effort with Cynthia Lee, Leo Porter, Beth Simon, and me to present CS teaching practices for which we have an evidence-base. We’re drawing a lot on our New Faculty Workshops material.

Workshop 404: How to Plan and Run Effective Teacher Professional Development

Saturday 3-6 pm: Room 612

(YES! Dueling workshops!)

Barb is working with Rebecca Dovi and Ria Galanos on how to teach CS teacher professional learning opportunities. Barb is using a lot of the material that she’s developed for “Train the Trainer” sessions as part of ECEP.

March 8, 2017 at 7:00 am 6 comments

Community college pathways to a four-year computer science degree: New Google Reports

My ECEP colleagues at the University of Massachusetts Amherst, Rick Adrion and Renee Fall, led a successful NSF alliance called CAITE.  One of CAITE’s most successful strategies to improve diversity at university-level CS was to make it easier for students to transfer from community colleges.  Community colleges are much more diverse.

The latest reports from Google tell us more about the obstacles that CS students still face in moving from community colleges to bachelor’s degrees, and how to make it easier.

Our latest research shows that students who attend community colleges on the way to computer science (CS) bachelor’s degrees encounter many challenges and obstacles along the way. But there are many ways for community colleges and four-year colleges to work together and with industry to remove these obstacles and support students seeking to transfer into CS majors. Today, we are releasing two complementary research reports that explore the pathways that community college students follow to a bachelor’s degree in CS. The reports also examine the experiences of these students and the opportunities that exist or that might be created to ensure their successful career advancement. Longitudinal Analysis of Community College Pathways to Computer Science Bachelor’s Degrees investigates the national landscape of CS students at community colleges in order to better understand student behaviors and institutional characteristics that support or hinder community college students’ efforts to attain a CS bachelor’s degree. The companion report, Student Perspectives of Community College Pathways to Computer Science Bachelor’s Degrees, takes a complimentary in-depth and qualitative look at the experiences of students from underrepresented groups at community colleges in California, a state that enrolls one quarter of all community college students in the U.S.

Source: Community college pathways to a four-year computer science degree

November 28, 2016 at 7:15 am Leave a comment

What research will you do for #CSforAll? White House call for commitments

Ruthe Farmer let me know that the White House Office of Science and Technology Policy (OSTP) is explicitly interested in getting research commitments in response to this call:

In less than two months, there will be another opportunity to celebrate, to mark progress, and to grow the coalition working to expand computer science. This Computer Science Education Week (CSEdWeek), taking place from December 5-11, schools, community organizations, families, companies, and government agencies-including the White House and Federal agencies like NASA, the National Science Foundation, the US Patent and Trademark Office, and the Department of Energy-will host events and activities to give students direct access to CS. This will include everything from Family Code Nights that engage parents and students in learning computer science together, to Hour of Code events at schools, in homes, and online worldwide, to events here at the White House highlighting making and computer science, bringing broadband internet access to all Americans, and using open data to drive innovation.

With your help, this upcoming CSEdWeek has the potential to be the largest and most successful to date and we look forward to hearing about your plans. One of the ways your organization can get involved is to commit to expand computer science in your community or nationally, with measurable, specific goals that uniquely utilize what you can do to spread opportunity.

If you have an action you want to undertake to support CS education, submit it here by November 14, 2016. We want to hear about remarkable strides being made in your community and how we can build on them!
https://www.whitehouse.gov/blog/2016/10/27/call-new-csforall-actions-during-computer-science-education-week

The Research+Practice Collaboratory led the ECEP State Teams last week in framing research questions relevant to the President’s CS for All initiative.  Below are some of my pictures from that effort, to prime thinking about the research questions that surround CS for All.  (I have a lot more to tell about last week’s meetings, but first I have to recover and recoup time lost to planning/logistics/travel.)

img_3925 img_3924 img_3928 img_3927

November 2, 2016 at 7:15 am 2 comments

Older Posts


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

Join 7,982 other followers

Feeds

Recent Posts

Blog Stats

  • 1,794,428 hits
September 2020
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  

CS Teaching Tips