-A A +A


Subscribe to ComputingEd feed ComputingEd
How do people understand computing, and how can we improve that understanding?
Updated: 3 hours 26 min ago

Constructivism vs. Constructivism vs. Constructionism

11 hours 38 sec ago

I wrote the below in 1997. I’m surprised that I still find references to it from time-to-time. That website may be going away soon, so I thought I’d put it here (only very slightly edited) in case others may find it useful.

I’d like to offer my take on the meaning of these words. I hear them used in so many ways that I often get confused what others mean by them.

Constructivism, the cognitive theory, was invented by Jean Piaget. His idea was that knowledge is constructed by the learner. There was a prevalent idea at the time (and perhaps today as well) that knowledge is transmitted, that the learner was copying ideas read or heard in lecture directly into his or her mind. Piaget theorized that that’s not true. Instead, learning is the compilation of complex knowledge structures. The learner must consciously make an effort to derive meaning, and through that effort, meaning is constructed through the knowledge structures. Piaget liked to emphasize learning through play, but the basic cognitive theory of constructivism certainly supports learning through lecture — as long as that basic construction of meaning takes place.

I don’t know who invented the notion of Constructivism, the educational philosophy, but it says that each students constructs their own, unique meaning for everything that is learned. This isn’t the same as what Piaget said. Piaget’s theory does not rule out the possibility that you and I may construct exactly the same meaning (i.e., exactly the same knowledge constructions) for some concept or domain. The philosophy of constructivism say that learners will construct their own unique meanings for concepts, so it is not at all reasonable to evaluate students as to how well they have all met some normative goal. (Radical constructivists go so far as to say that the whole concept of a curriculum makes no sense since we cannot teach anyone anything — students will always simply create their own meaning, regardless of what teachers do.) Philosophical constructivists emphasize having students take control of their own learning, and they de-emphasize lecture and other transmissive forms of instruction. This philosophical approach gets complicated by varying concepts of reality: If we all interpret things differently, is there any correct reality?

From my perspective, the assumption of constructivists is currently an untestable hypothesis. We know of no way to peer into someone’s mental constructions. Until we can, we do not know if you and I think about the concept of velocity differently or the same.

Constructionism is more of an educational method which is based on the constructivist learning theory. Constructionism, invented by Seymour Papert who was a student of Piaget’s, says that learning occurs “most felicitously” when constructing a public artifact “whether a sand castle on the beach or a theory of the universe.” (Quotes from his chapter “Situating Constructionism” in the book “Constructionism” edited by Papert and Idit Harel.) Seymour does lean toward the constructivist learning philosophy in his writings, where he talks about the difficulty of conveying a complex concept when the reader is going to construct their own meaning. In general, though, his claim is more about method. He believes that students will be more deeply involved in their learning if they are constructing something that others will see, critique, and perhaps use. Through that construction, students will face complex issues, and they will make the effort to problem-solve and learn because they are motivated by the construction.

The confusion that I and others have about these terms stems from (a) similar looking words and (b) meaning at different levels of the word construct. Piaget was talking about how mental constructions get formed, philosophical constructivists talk about how these constructions are unique (noun construction), and Papert is simply saying that constructing is a good way to get mental constructions built. Levels here are shifting from the physical (constructionism) to the mental (constructivism), from theory to philosophy to method, from science to approach to practice.

How CS differs from other STEM Disciplines: Varying effects of subgoal labeled expository text in programming, chemistry, and statistics

Fri, 03/16/2018 - 07:00

My colleagues Lauren Margulieux and Richard Catrambone (with Laura M. Schaeffer) have a new journal article out that I find fascinating. Lauren, you might recall, was a student of Richard’s who applied subgoal labeling to programming (see the post about her original ICER paper) and worked with Briana Morrison on several experiments that applied subgoal labeling to textual programming and Parson’s problems (see posts on Lauren’s defense and Briana’s).

In this new paper (see link here), they contrast subgoal labels across three different domains: Chemistry, statistics, and computer science (explicitly, programming).  I’ve been writing lately about how learning programming differs from learning other STEM disciplines (see this post here, for example). So, I was intrigued to see this paper.

The paper contrasts subgoal labeled expository text (e.g., saying explicitly as a heading Compute Average Frequency) and subgoal labeled worked examples (e.g., saying Compute Average Frequency then showing the equation and the values and the computed result).  I’ll jump to the punchline with the table that summarizes the result:

Programming has high complexity.  Students learned best when they had both subgoal labeled text and subgoal labeled worked examples. Either one alone didn’t cut it. In Statistics, subgoal labeled examples are pretty important, but the subgoal labeled text doesn’t help much.  In Chemistry, both the text and the worked examples improve performance, and there’s a benefit to having both.  That’s an argument that Chemistry is more complex than Statistics, but less complex than Programming.

The result is fascinating, for two reasons.  First, it gives us a way to empirically order the complexity of learning in these disciplines. Second, it gives us more reason for using subgoal labels in programming instruction — students just won’t learn as well without it.


Announcing Barbara Ericson’s Defense on Effectiveness and Efficiency of Parsons Problems and Dynamically Adaptive Parsons Problems: Next stop, University of Michigan

Mon, 03/12/2018 - 07:00

Today, Barbara Ericson defends her dissertation. I usually do a blog post talking about the defending student’s work as I’ve blogged about it in the past, but that’s really hard with Barb.  I’ve written over 90 blog posts referencing Barb in the last 9 years.  That happens when we have been married for 32 years and collaborators on CS education work for some 15 years.

Barb did her dissertation on adaptive Parsons problems, but she could have done it on Project Rise Up or some deeper analysis of her years of AP CS analyses. She chose well. Her results are fantastic, and summarized below. (Yes, she does have six committee members, including two external members.)

Starting September 1, Barbara and I will be faculty at the University of Michigan. Barb will be an assistant professor in the University of Michigan School of Information (UMSI). I will be a professor in the Computer Science and Engineering (CSE) Division of the Electrical Engineering and Computer Science Department, jointly with their new Engineering Education Research program. Moving from Georgia Tech and Atlanta will be hard — all three of our children will still be here as we leave. We are excited about the opportunities and new colleagues that we will have in Ann Arbor.

Title: Evaluating the Effectiveness and Efficiency of Parsons Problems and Dynamically Adaptive Parsons Problems as a Type of Low Cognitive Load Practice Problem

Barbara J. Ericson

Human-Centered Computing

School of Interactive Computing

College of Computing

Georgia Institute of Technology

Date: Monday, March 12, 2018

Time: 12pm – 3pm

Location: TSRB 222


Dr. Jim Foley (Advisor, School of Interactive Computing, Georgia Institute of Technology)

Dr. Amy Bruckman (School of Interactive Computing, Georgia Institute of Technology)

Dr. Ashok K. Goel (School of Interactive Computing, Georgia Institute of Technology)

Dr. Richard Catrambone (School of Psychology, Georgia Institute of Technology)

Dr. Alan Kay (Computer Science Department, University of California, Los Angeles)

Dr. Mitchel Resnick (Media Laboratory, Massachusetts Institute of Technology)


Learning to program can be difficult and time consuming.  Learners can spend hours trying to figure out why their program doesn’t compile or run correctly. Many countries, including the United States, want to train thousands of secondary teachers to teach programming.  However, busy in-service teachers do not have hours to waste on compiler errors or debugging.  They need a more efficient way to learn.

One way to reduce learning time is to use a completion task.  Parsons problems are a type of code completion problem in which the learner must place blocks of correct, but mixed up, code in the correct order. Parsons problems can also have distractor blocks, which are not needed in a correct solution.  Distractor blocks include common syntax errors like a missing colon on a for loop or semantic errors like the wrong condition on a loop.

In this dissertation, I conducted three studies to compare the efficiency and effectiveness of solving Parsons problems, fixing code, and writing code. (Editor’s note: I blogged on her first study here.) I also tested two forms of adaptation. For the second study, I added intra-problem adaptation, which dynamically makes the current problem easier.  For the last study, I added inter-problem adaptation which makes the next problem easier or harder depending on the learner’s performance.  The studies provided evidence that students can complete Parsons problems significantly faster than fixing or writing code while achieving the same learning gains from pretest to posttest.  The studies also provided evidence that adaptation helped more learners successfully solve Parsons problems.

These studies were the first to empirically test the efficiency and effectiveness of solving Parsons problems versus fixing and writing code.  They were also the first to explore the impact of both intra-problem and inter-problem adaptive Parsons problems.  Finding a more efficient and just as effective form of practice could reduce the frustration that many novices feel when learning programming and help prepare thousands of secondary teachers to teach introductory computing courses.

Exploring the question of teaching recursion or iterative control structures first

Fri, 03/09/2018 - 07:00

Someone raised the question on the SIGCSE Members list: Which should we teach first, iteration or recursion?

I offered this response:

The research evidence suggests that one should teach iterative control structures before recursion, IF you’re going to teach both.  If you are only going to teach one, recursion is easier for students.  If you teach recursion first, the evidence (Kessler & Anderson, 1986; Wiedenbeck, 1989) suggests that it becomes harder to learn the iterative control structures.

The push back I got was, “Surely, we have better data than 30 year old studies?!?”  Here was my reply:

I agree that it would be great to do these studies again.  Given that we have an experiment and a successful replication, it could be an MS or advanced undergrad project to replicate one of those earlier experiments.

For myself, I don’t expect much difference.  As you say, student brains have stayed the same.  While the languages have changed, the basic iterative control structures (for, while, repeat) haven’t changed much in modern languages from what they were in C and even Pascal.  Curriculum may be a factor, and that would be interesting to explore.

Two directions that I think would be great to explore in this space:

(1) The Role of Block-Based Languages: As you say, the previous research found that iterative control structures are syntactically complicated for novices.  But multiple studies have found that block-based iterative structures are much easier for novices than text-based versions.  What if we went recursion->block iteration->text iteration?  Would that scaffold the transition to the more complicated text-based iterative control structures?

(2) The Role of High-Level Functions: I don’t know of any studies exploring high-level functions (like the ones that Kathi Fisler used to beat the Rainfall Problem, or even map/reduce/filter) in the development of understanding of recursion and iterative control structures.  High-level functions have a fixed form, like for/repeat/while, but it’s a simpler, functional form.  Could we teach high-level functions first, to lead into recursion or iterative control structures?  Or maybe even teach recursion or iterative control structures as two different ways of implementing the high-level functions?

In general, there are too many questions to explore and too few people asking these questions with empirical data. We might rely on our teaching experience to inform our answers to these questions, but as Neil Brown showed us (see CACM Blog post this month that talks about this result), higher-education CS teachers are actually way off when it comes to estimating what students find hard.

SIGCSE-Members, please consider asking some of these questions on your campus with your students. There are well-formed questions here that could be answered in a laboratory study that could be encapsulated in a single semester.  The students will get the opportunity to do empirical research with humans, which is a useful skill in many parts of computing.

The state of the field in pre-college computer science education: Highly recommended Google report

Mon, 03/05/2018 - 13:00

Google has just released a report: Pre-College Computer Science Education: A Survey of the Field (available here).  The report is authored by Paulo Blikstein of Stanford.  The report is innovative, developed with an unusual method.  It’s terrific, and I highly recommend it.

Paulo started out with a pretty detailed survey document about the state of the literature in computer science education. He covered from the 1967 launch of Logo to modern day.  Then he interviewed 14 researchers in the field (I was one). These were detailed interviews, where the interviewees got to review the transcript afterwards.  Paulo integrated ideas and quotes from the interviews into the document.  Here comes the really cool part: he put the whole thing on a Google doc and let everyone comment on it.

When I got the call to the review the document, I just skimmed it.  It looked pretty good to me.  But then the debates started, and the fights broke out.  That Google doc had some of the longest threads of comments I’ve ever seen.  After a few weeks, Paulo closed the comments, and then integrated the threads into the document.  So now, it’s not just a serious survey paper, brought up to date with interviews.  It’s also a record of significant debate between over a dozen researchers, where the tensions and open questions were surfaced.

This is the document to read to figure out what should come next in computing education research.  I will recommend it to all of my students.

Of course, it’s not perfect.  The researchers interviewed tended towards the Logo/MIT/constructionist perspective.  The emphasis was on the US, though there were a couple of non-US interviewees.  If someone was to do this again (which I don’t recommend for a few years — it’ll take us awhile just to work on this agenda), I’d recommend including interviews with a wider range of folks:

  • We need to hear more voices from the evidence-based learning perspective, those inspired by Carl Wieman.  I’m thinking about people like Beth Simon, Leo Porter, Cynthia Lee, Christine Alvarado, and Dan Zingaro.
  • There’s no one on this list that I think would label themselves as a cognitive tutors or Learning at Scale researcher.  We need to hear from people like Mehran Sahami and Ken Koedinger.
  • I’m so glad that we have voices from the UK in this document, but if you’re going to go international, you have to include voices from the Nordic (e.g., Michael Caspersen, Jens Bennedsen, Lauri Malmi, Juha Sorva, and probably several from Upcerg, the world’s largest academic CS Ed research group), from Israel (e.g., Moti Ben-Ari, Judith Gal-Ezer, Yifat Kolikant, and Orit Hazzan), and from Australasia (e.g., Katrina Falkner, Ray Lister, Tim Bell).  The reality is that CS Ed Research is far larger outside the US than inside the US. There are more CS Ed researchers with a more diverse range of opinions outside the US.

I’m sure that I’m forgetting important voices, but this is enough to say that this report is a good first effort at bringing in a range of perspectives.  There are other important voices needed, if you really want to understand the state of CS education research at the pre-college level.

As it is, it’s still a fascinating and important report.  I’m biased — my thoughts and words are in there.  There is a range of opinions in there. I don’t agree with everything in there.  Paulo did a good job capturing the tensions around computational thinking, and I’m much more positive about blocks-based programming languages than are other voices in the report.

I highly recommend reading the report.


What can the Uber Gender Pay Gap Study tell us about improving diversity in computing?

Mon, 03/05/2018 - 07:00

The gig economy offers the ultimate flexibility to set your own hours. That’s why economists thought it would help eliminate the gender pay gap. A new study, using data from over a million Uber drivers, finds the story isn’t so simple.

Source: What Can Uber Teach Us About the Gender Pay Gap? – Freakonomics

A fascinating Freakonomics podcast tells us about why women are paid less than men (by about 7%) on Uber.  They ruled out discrimination, after looking at a variety of sources.  They found that they could explain all of that 7% from three factors.

They found that even in a labor market where discrimination can be ruled out, women still earn 7 percent less than men — in this case, roughly 20 dollars an hour versus 21. The difference is due to three factors: time and location of driving; driver experience; and average speed.

The first factor is that women choose to be Uber drivers in different places and at different times than men.  Men are far more often to be drivers at 3 am on Saturday morning. The second factor is particularly interesting to me.  Men tend to stick around on Uber longer than women, so they learn how to work the system. The third factor is that men drive faster, so they get more rides per hour.

When someone from Uber was asked about how they might respond to these results, he focused on the second factor.

But for example, you could imagine that if we make our software easier to use and we can steepen up the learning curve, then if people learn more quickly on the system, then that portion of the gap could be resolved via some kind of intervention. But that’s just an example. And we’re not there yet with our depth of understanding, to just simply write off the gender gap as a preference.

Improving learning might help shrink the gender pay gap.  Obviously, I’m connecting this to computing education here.  What role could computing education play in reducing gaps between males and females in computing?  We have reason to believe that our inability to teach programming well led to the gender gap in computing.  Could we make things better if we could teach computing well?

Here are two thoughts exploring that question.

  1. We know (e.g., from Unlocking the Clubhouse) that men tend to sink more time into programming, which can give them a lead in undergraduate education (what Jane Margolis has called ‘preparatory privilege‘).  What if we could teach programming more efficiently?  Could we close that gap?  If we had a science of teaching programming, we could improve efficiency so that a few hours of focused effort in the classroom might lead to more effective learning of tens of hours of figuring out how to compile under Debian Linux.
  2. When I first started thinking about the “phonics of computing education” and our ebooks, I was inspired by work from Caroline Simard that suggested that helping female mid-level managers keep up their technical skills could help them to progress in the tech industry.  Female mid-level managers have less time to invest in technical learning, and at the mid-level, technical education still matters.  If you have a project that needs a new toolset, you’ll more likely give it to the manager who knows that toolset.  If we could teach female mid-level technical managers more effectively and efficiently, could they make it into the C-suite of tech companies?

Maybe better computing education could be an important part of improving diversity, along multiple paths.

The Role of Encouragement for Success in Computing Education, and how that differs by demographics

Fri, 03/02/2018 - 07:00

A new report from NSF tells us a story that we’ve heard before — encouragement is a critical aspect of developing the confidence to succeed in CS. We found this in our statewide study in 2010, and Joanne Cohoon found this to be critical in her work. In our work, we found that encouragement was more critical for under-represented group.  The new Google study tells us that the encouragement is not received equally.  The important part of Joanne’s work is that the encouragement could come from teachers of any agenda.  This report is part of the growing trend to study the importance of affect in succeeding in computing education.

Students who have been told by parents or teachers they would be good at computer science (CS) are 2.5 to three times more likely to be interested in learning CS in the future, but students do not receive this encouragement equally. Additionally, despite positive perceptions about the CS field, lower personal perceptions of skills in math and science and a self-perceived low ability to learn CS may contribute to a gap in interest in CS among underrepresented groups that starts as early as age 14. This report summarizes key differences in interest in and confidence to learn CS among seventh- to 12th-grade students from underrepresented groups — girls, Black students and Hispanic students — as well as the level of encouragement to learn CS that these groups receive from key influencers such as parents and teachers, based on 2015- 2016 surveys.

Source: Google Report: Encouraging Students Toward Computer Science Learning

Confusion over the forms of programming problems: Mathematics/Physics versus CS

Mon, 02/26/2018 - 07:00

I’m teaching Media Computation again this semester, about 250 students (over 50% female) in a huge lecture hall.  It’s hard to wander the room to answer questions, especially during peer instruction, but we do it anyways.

I’ve been thinking a lot about one question on the first quiz in week #2 of the class.  All my students are Georgia Tech undergraduates but not-CS majors, so, very smart, lots of math and science background, but almost no programming background.

Here was one of the two problems that had the lowest score. Students were to write down what this program would print.

def computeSalary():  rate = 10.00  hours = 40  salary = hours * rate  hours = 30  print salary  increase = 1.00  salary = hours * (rate + increase)  print salary

I suspect most teachers would think that this is a pretty standard first semester, even first couple weeks problem. I certainly did. I even discussed almost the exact same program in lecture.

The most common wrong answer was to write only what the second print statement generated. The first print statement was ignored.

During the last 5-10 minutes of the quiz, almost everyone was gone, and I answered lots of questions from the remaining students — picking my way through the narrow aisles in the lecture hall. They were struggling, so one might expect that they would try to get clues by asking questions. This was a problem that they asked lots of questions about.

I was struck by the words that students used when they described what was the one number that they were writing. One told me that the number she wrote down was the “result” of the function. Another told me that that was the “answer.” I came away with the sense that the students were thinking about the program as a mathematics function or a physics story problem.

We often talk about how computer programs might lead to misconceptions for students because of flawed transfer from mathematics. For example, Python functions have mutable data, use the “=” sign in a non-mathematical way, and have side effects. I wonder if the confusion here is about the similarity in form of the problem. Students see a series of equations in math, or a description of a situation in physics, and the answer is a number, an answer, a single result. Not so with programs — it’s a series of statements (like those others), but there may be more than one thing that the program does. We’d need to do real research to see if there is anything to this, not just me noting anecdotal comments from a half dozen students.

What Universities Must Do to Prepare Computer Science Teachers: UTeach leads a multi-university group to grow computing education

Fri, 02/23/2018 - 07:00

Kimberly Hughes, Director of the UTeach Institute at The University of Texas at Austin has written a blog post about a multi-university effort to grow CS education. They have an interesting set of recommendations. I look forward to seeing the white paper that the blog post promises!

In-service teacher professional development has been key to the explosive growth of K–12 CS education offerings, but the role of universities in the preparation of computer science teachers is absolutely critical if we are going to address the current shortage of CS teachers at scale and with any kind of lasting impact. Yet there are precious few exemplars on which to model new programs. Partly this has been a chicken and egg problem. For example, the UTeach program at UT Austin has had an undergraduate pathway to CS certification for more than ten years. But with so little demand for CS teachers at secondary schools throughout the state, very few students were recruited and prepared. Now that the demand for CS teachers is increasing, UTeach Austin and other UTeach partner universities are ramping up and expanding their efforts.

Source: What Universities Must Do to Prepare Computer Science Teachers: Networked Improvement in Action

SIGCSE 2018 Preview: Black Women in CS, Rise Up 4 CS, Community College to University CS, and Gestures for Learning CS

Wed, 02/21/2018 - 07:00

While I’m not going to be at this year’s SIGCSE, we’re going to have a bunch of us there presenting cool stuff.

On Wednesday, Barb Ericson is going to this exciting workshop, CS Education Infrastructure for All: Interoperability for Tools and Data Analytics, organized by Cliff Shaffer, Peter Brusilovsky, Ken Koedinger, and Stephen Edwards. Barb is eager to talk about her adaptive Parsons Problems and our ebook work.

My PhD student, Amber Solomon, is presenting at RESPECT 2018 (see program here) on a paper with Dekita Moon, Amisha Roberts, and Juan Gilbert, Not Just Black and Not Just a Woman: Black Women Belonging in Computing. They talk about how expectations of being Black in CS and expectations as a woman in CS come into conflict for the authors.

On Thursday, Barb is presenting her paper (with Tom McKlin) Helping Underrepresented Students Succeed in AP CSA and Beyond, which are the amazing results from the alumni study from her Project Rise Up effort to help underrepresented students succeed at Advanced Placement CS A. When Barb was deciding on her dissertation topic, she considered making Rise Up her dissertation topic, or adaptive Parsons problems. She decided on the latter, so you might think about this paper as the dissertation final chapter if she had made Rise Up her dissertation focus. Project Rise Up grew from Barb’s interest in AP CS A and her careful, annual analysis of success rates in AP CS A for various demographics (here is her analysis for 2017). It had a strong impact (and was surprisingly inexpensive), as seen in the follow-on statistics and the quotes from the students now years after Rise Up. I recommend going to the talk — she has more than could fit into the paper.

On Friday, my PhD student, Katie Cunningham, is presenting with her colleagues from California State University Monterey Bay and Hartnell College, Upward Mobility for Underrepresented Students: A Model for a Cohort-Based Bachelor’s Degree in Computer Science.  The full author list is Sathya Narayanan, Katie, Sonia Arteaga, William J. Welch, Leslie Maxwell, Zechariah Chawinga, and Bude Su. They’re presenting the “CSin3” program which drew in students from traditionally underrepresented groups and helped them earn CS degrees with remarkable success: A three year graduation rate of 71%, compared to a 22% four-year graduation rate, as well as job offers from selective tech companies. The paper describes the features of the program that made it so successful, like its multi-faceted support outside the classroom, the partnership between a community college and a university, and keeping a cohort model. The paper has been recognized with a SIGCSE 2018 Best Paper Award in the Curricula, Programs, Degrees, and Position Papers track.

On Friday, my colleague Betsy DiSalvo is going to present at the NSF Showcase some of the great work that she and her student, Kayla des Portes, have been doing with Maker Oriented Learning for Undergraduate CS.

On Saturday, my EarSketch colleagues are presenting their paper: Authenticity and Personal Creativity: How EarSketch Affects Student Persistence with Tom McKlin, Brian Magerko, Taneisha Lee, Dana Wanzer, Doug Edwards, and Jason Freeman.

Also on Saturday, Amber with her undergraduate researchers, Vedant Pradeep and Sara Li, are presenting a poster which is also a data collection activity, so I hope that many of you will stop by. Their poster is The Role of Gestures in Learning Computer Science. They are interested in how gesture can help with CS learning and might be an important evaluation tool — students who understand their code, tend to gesture differently when describing their code than students who have less understanding. They want to show attendees what they’ve seen, but more importantly, they want feedback on the gestures they’ve observed “in the wild.” Have you seen these? Have you seen other gestures that might be interesting and useful to Amber and her team? What other kinds of gestures do you use when explaining CS concepts? Please come by and help inform them about the gestures you see when teaching and learning CS.

Stanford is NOT switching from Java to JavaScript: I was mistaken

Mon, 02/19/2018 - 07:00

Last April, I wrote a blog post saying that Stanford was abandoning Java for JavaScript in their intro course (see post here).  The post was initiated by an article in the Stanford Daily. The post caused quite an uproar, way more than I expected. More than one Stanford faculty member reached out to me about it.  In particular, Marty Stepp told me that I was definitely wrong, that Stanford would mostly be teaching Java in a year. I promised that if I was wrong a year later, I would write another post correcting my first post.

It’s been a year, and I was wrong. Stanford is NOT abandoning Java for JavaScript.

I’m glad I was wrong, but it has nothing to do with Java or JavaScript.

I heard about the possible switch to JavaScript several months before from a Stanford faculty member.  When I saw the Stanford Daily article, I thought it was okay to talk about it. Marty told me at the time that I was wrong, and that the article was ill informed.  Still another Stanford faculty member wrote me about the tensions over this issue.

A lesson I learned from Mike Lach and others involved in the NGSS roll out is that all curricular decisions are political decisions.  A framework might be based on scientific expertise, but what is actually taught is about choice and vision — different opinions of how we interpret where we are now and what we want in the future.  If you haven’t heard about the politics of curricular choices before, I highly recommend Schoolhouse Politics.

I am not at Stanford, so I don’t know how curricular decisions have been made and were made here. I based my post on talking with some Stanford faculty and reading the Stanford Daily article.  I predicted that the forces pushing for JavaScript would end up changing the curriculum. They didn’t (or haven’t so far).  The Stanford lecturers are excellent, and they are the ones actually teaching those classes. I’m glad that they get to continue teaching the classes the way that they think is most valuable.

Below is what Marty wrote me about the courses at Stanford, and a link to the Stanford course offerings, showing that Stanford is still primarily a Java house:

This calendar year our CS1 Java course is still quite clearly the dominant course. Nick Parlante is also teaching two smaller experimental offerings of a Python class in our winter and spring quarters. There may be another experimental JavaScript and/or Python course on the books for fall, but it certainly will not be the main class; the CS1 in Java will continue to be so throughout all of the next academic year. Currently no plan is under way to change that, though we certainly are open to evolving our courses in the long term like any other school would be. I would like to note that the state of intro at Stanford is exactly as was described to you by myself and others 10 months ago.


Governor of Rhode Island explains why we should teach programming to everyone

Fri, 02/16/2018 - 07:00

Gina Raimondo, the governor of Rhode Island, was on Freakonomics Radio a few weeks ago. Stephen Dubner challenged their plans to offer computing education at all grade levels in every district.  She had a strong response. Dubner’s question is good. We still don’t have the empirical evidence for the value of teaching computing to everyone. We should do that research — not to figure out if Raimondo made the right bet, but to tune what we’re doing to make sure that we get the maximum benefit for the investment.

I recommend the whole interview.

DUBNER: So, I hear about this kind of thinking a lot, and I certainly understand the appeal and the resonance. But I do also wonder if there’s a proven upside of having everyone learn computer science or programming. It strikes me a little bit like the equivalent of having every student in America during the boom of the internal combustion engine learn to take apart a carburetor. And then I think, if you look at the history of economics and progress, that one of the main strengths of economic progress is the division of labor and specialization, rather than everybody chasing after the latest trends. So I’m curious what the evidence was that inspired that move of yours.

RAIMONDO: I think of it as access and exposure, and also just providing people with a basic level of essential skills. So, everyone has to take math. They may become a writer, they may become an actor, but they ought to have a certain basic level of math skills. First of all, because it’s an essential skill to function. And by the way, they might like math. I think digital skills are the same thing. No matter what job you have, you have to have some basic familiarity with computer skills and digital skills. And so it is as essential in this economy as any other skill that we teach. But also, we know — and there’s loads of data on this girls, people of color, and low-income folks are less likely to go into I.T. fields, which tend to be higher-paying. However, if they’re exposed to some computer training, they’re much more likely to go into the field and do well at it.

Source: How to Be a Modern Democrat — and Win – Freakonomics

Teasing out the meaning of “online classes” — Online Courses Are Harming the Students Who Need the Most Help: NYTimes

Mon, 02/12/2018 - 07:00

The NYTimes published an interesting piece on the state of online education today. Increasingly, online education is being used in schools as a response to students failing in face-to-face, traditional classrooms.  If you’re not making it in the regular class, try it again in the online class.  The article describes how that’s not working. Students who fail in traditional classes need more personal contact and support, not less.

I love that the name of the column where this article appeared is called “The Economic View,” because that’s exactly what it is.  We do now how to teach every student well — give each child a well-educated teacher for their particular subject (Bloom’s two-sigma effect). We can’t afford that, so we make do with less.  But we should aim to do no harm.  Current practice with online classes is clearly doing harm.

The NYTimes article is reporting on empiricism.  We cannot empirically determine what might online classes become. The author, Susan Dynarski of the University of Michigan, is reporting on current practice and on the result of policy.  Can online classes help students?  Absolutely, and the OMS CS is a good example of that.  Can we build online classes that work better for students who struggle with traditional classes?  Maybe — it’s hard to see them in this study. At the ECEP 2018 meeting, Caitlin Dooley (Associate Superintendent for Georgia) said that their online classes do better than face-to-face classes, in part because of caring (“mama bear”) teachers who support the students outside of the online classes.  The online classes that Susan Dynarski is studying are clearly not working well for struggling students.  There may already be models that work well, but they’re swamped in a general study of policy across different kinds of online classes.  Dynarski’s article may just be telling us that the current average practice is insufficient. There may be better models (maybe still in research) that could correct these ills.

Dynarski’s article is fascinating and is sounding an important alarm. It should be even greater motivation for those of us who are working to invent better online education.

Online education helps school districts that need to save money make do with fewer teachers. But there is mounting evidence that struggling students suffer.

In the fully online model, on the other hand, a student may never be in the same room with an instructor. This category is the main problem. It is where less proficient students tend to run into trouble. After all, taking a class without a teacher requires high levels of self-motivation, self-regulation and organization. Yet in high schools across the country, students who are struggling in traditional classrooms are increasingly steered into online courses.

Source: Online Courses Are Harming the Students Who Need the Most Help

Finding a home for computing education in US Schools of Education: Priming the Computing Teacher Prompt

Fri, 02/09/2018 - 07:00

Please sign up join us for an event to launch our report and share:

Priming the Computing Teacher Pump: Integrating Computing Education into Schools of Education

This report focuses on Schools of Education (rather than Departments or Colleges of Computer Science/Computing) for creating pathways for CS teacher education.

We challenge US teacher education programs to innovate and integrate a new discipline into their programs. What we propose is nothing less than a change to the American Education canon. Such enormous change will require innovating in different ways, using different models and strategies, before we find models that work. The report, Priming the Pump, will highlight examples of integration from across the United States, and provide concrete recommendations for discussion.

With the expansion of computing education in mainstream K-12 schools, the current training mechanisms for teachers quickly will fall short of supporting a sustainable pipeline of teachers for the scale many cities and states have committed to.

Location: Microsoft Times Square – 11 Times Square, New York, NY

Date + Time: Thursday, April 12th, 2018; 3PM – 6PM ET



Apply to Attend and for possible travel funding: Formal Invite to Follow Upon Receipt of Registration


Highlights from Priming the Computer Teacher Pump

What do teachers need to know about computing? The question of what teachers need to know about computing should be at the core of developing both the structure and content of teacher preparation programs.”

Teacher Development Models for Computing Education: Currently, few models exist in the United States for the development of rigorous computing education teachers, especially focused on computer science or computational thinking, within schools of education.”

CS Education in Teacher Education: Schools of Education face a number of challenges in terms of preparing more computer science teachers. Trends over the last decade have shown a general lack interest from graduating students in pursuing a career as a teacher. In a 2016 national survey, The National Education Association reported that the number of students planning to major in education in 2014 dropped to an historic low of 4.2%.”

“Preparing Educational Leaders to Support CS Education: There is urgency around preparing administrators and other educational leaders with the knowledge and skills needed to support computer science teaching and learning for all students. To successfully do this, computer science education must be fully established within the complex and multi-layered United States school system.”



Leigh Ann DeLyser

NYC Foundation for CS Education (CSNYC)

Joanna Goode

University of Oregon

Mark Guzdial

Georgia Institute of Technology

Yasmin Kafai

University of Pennsylvania

Aman Yadav

Michigan State University

Education is About Providing Hope to Everyone: Contrasting the Lost Einsteins and Kennett, Missouri

Mon, 02/05/2018 - 07:00

I’ve had two articles bouncing around in my head that offer contrasting views of higher education and for me, of the purpose for computing education.

In “Lost Einsteins: The Innovations We’re Missing,” the NYTimes tells us about unequal access to opportunity in the United States.  We do not have a meritocracy. Our inventors, patent holders, and innovators overwhelmingly are male, white, and upper income. Two children of equal ability do not get the same access to opportunity, if one is poor, female, or from a minority group. That opportunity includes higher education, access to funding, and the social capital of figuring out how to file a patent or produce an invention.

Women, African-Americans, Latinos, Southerners, and low- and middle-income children are far less likely to grow up to become patent holders and inventors. Our society appears to be missing out on most potential inventors from these groups. And these groups together make up most of the American population.  The groups also span the political left and right — a reminder that Americans of different tribes have a common interest in attacking inequality.

In “A Dying Town: Here in a corner of Missouri and across America, the lack of a college education has become a public-health crisis,” the Chronicle of Higher Education tells us the story of Kennett, Missouri, a town with little hope and few college degrees.  Perhaps it’s correlation, but maybe it’s causation. Only one in 10 adults in Kennett, MO has a four-year degree.  The article points out the correlates for attaining a college degree. There are decreased mortality rates with college attendance.

It would be easy to say this is just about being poor, but people who study the phenomenon say it’s not that simple. Yes, having a job — and the paycheck and health insurance that come with it — matters. Those aren’t all that make a difference, however. Better-educated people live in less-polluted areas, trust more in science, and don’t as frequently engage in risky behaviors. Have a college degree and you’re more likely to wear a seat belt and change the batteries in your smoke alarm.

Both of them are sad stories. I’m struck by the differences in the desired goal in each.  In “Lost Einsteins,” we are told about the innovations and inventions we all are missing out on, because access to opportunity (including higher education) is so biased. In “A Dying Town,” we’re told that everyone need access to the opportunity for higher education.  In Kennett, MO, a college degree means hope, and hope means life — literally.

In “Lost Einsteins,” opportunities like higher education are about creating inventors and innovators. In “A Dying Town,” opportunities like higher education are about improving quality and length of life.  Contrast these perspectives as being like coaching a sports champion and providing public health. I made a similar contrast in my book Learner-Centered Design of Computing Education in how we think about computing education.  Many CS teachers are trying to produce innovators, inventors, champions, and Tech heroes — they want their students to go to the great Tech companies, or invent the next must-have app, or start a company that will be worth millions if not billions.  I argue that we have a much greater need to provide everyone with the computing literacy that they need to be successful in the 21st Century.  It is important to coach the champions, but not at the cost of providing the public health that everyone needs.

I’m curious about the relationship between college degrees and the health issues in Kennett, MO.  I have taught undergraduates for over 25 years.  I’ve never taught anyone to wear a seat belt or to change the batteries in their smoke alarms.  Where did they learn that?  Is it just because they’re smarter after they get the degree?  Or were they prone to do those things anyway, because they were the kind that sought out higher education?  I don’t know, but if it’s causal, we have to be careful not to lose those important side benefits of a college degree as we downsize higher education.  As we get rid of the teachers for the MOOCs, and get rid of the campus for virtual space, we might also get rid of whatever intangibles that lead a college graduate to make the right choices in life, like wearing a seat belt and having a long, healthy, and productive life.

Will be missing my friends at SIGCSE 2018 — Preparing for What’s Next

Fri, 02/02/2018 - 07:00

I am not going to SIGCSE 2018.  I haven’t missed SIGCSE in a lot of years, and I’m sorry to miss it this year.  SIGCSE is the biggest computing education conference in the world, and it’s the best place to hear what’s going on in CS classes and the United States — and to possibly influence what’s going on.  I’m particularly sorry because I owe Owen Astrachan a beer and dinner.  I lost our bet about Code.org and CSP Curricula.  I have to find another time to pay up.

I’m not going because it’s a time of change for me.  I don’t know for sure what I’m going to be doing next. This post is another in the (perhaps wearisome) series of posts where I explored what a post-full professor should do and my failure CV.

There are two forcing functions for the change:

  • My wife and research partner, Barbara Ericson, is finishing her PhD on adaptive Parsons problems.  She is going to shift her emphasis from being Director of CS Outreach to more research.
  • Our role in ECEP is ending in September.  From “Georgia Computes!” to ECEP, we have been doing work in Broadening Participation in Computing (BPC) for over a dozen years.  We want to move on. Others will carry ECEP further.  I started doing work in BPC as a natural next step from my research on making computing education for a broader audience (e.g., Media Computation).  Different kinds of research and leadership are important for the next steps of BPC Alliance work.

SIGCSE may not be as big a part of my academic life, depending on what comes next for me. I may do more Engineering Education Research in the future.  I may get more involved in preparing future CS teachers. My research directions are changing. I will continue to work towards Computing Education for All, and I’m interested in studying and developing different ways of getting there. The proposals I’m submitting these days are about doing work that looks like Bootstrap. I’d like to do more in applying computing (specifically, programming) as a notation and tool for learning in disciplines other than computer science. Venues other than SIGCSE may be the right places for this kind of work.

It’s going to be a great SIGCSE, and I’m thrilled that my student, Katie Cunningham, is co-author on a paper that will be receiving a Best Paper Award. Sorry I won’t be there to see all my SIGCSE friends this year.


ECEP 2018: Measuring and Making Progress on Broadening Participation in Computing

Mon, 01/29/2018 - 07:00

The 2018 Annual Meeting of the Expanding Computing Education Pathways (ECEP) Alliance was at Georgia Tech January 26-27. ECEP is an NSF-funded alliance to broaden participation in computing. We had about 90 participants, state leaders from 16 states and Puerto Rico. Attendees were from a range of positions, from state departments of education, state boards of education, STEM centers, non-profits, Governor’s offices, University professors, and CS teachers from elementary or high school. The focus at this meeting was to define what it means to broaden participation in computing (BPC) education for each state. The state teams worked at defining what data variables they needed in order to inform their BPC goals, and how they would know (by looking at those data) if they were making progress towards those goals.  You can see the play-by-play with pictures via Twitter hashtag #ECEP2017.

I learned so much at this event. I’m still processing all of it, but here are some of the things that are standing out to me right now.

Caitlin Dooley from Georgia Department of Education gave a terrific talk about the challenges in Georgia.  She made the argument that CS is the equity issue of our age.  She said that the challenge of getting CS teachers into poorer (low-SES) and rural districts is that teachers are leaving when they have the skillsets. The challenge is to have good school leaders to retain teachers.

Anne DeMallie from Massachusetts gave a compelling talk about how they’re integrating CS across the curriculum, especially in elementary school. Massachusetts and New Jersey are two states that integrated their CS and Digital Literacy standards, trying to make it easier for schools to integrate CS education. I liked the framework she offered on how to think about integrating CS into other subjects: exist, enhance, and extend.

I was impressed by the states who are setting concrete, measurable goals. Alabama has set a goal of every high school student having access to CS education by 2022. South Carolina plans to provide access to CS education in every middle and high school in five years. Maryland has a detailed 15 year plan that gets every student access to high-quality CS education with certified high school teachers. (Seen below, presented by Megean Garvin.)

Kamau Bobb of Constellations gave our keynote (as a “fireside chat” with Debra Richardson). His talk was exciting and challenging.  He pointed out that high school CS isn’t going to get kids into University. Pushing CS instead of math and science isn’t helping students get admission to higher education.  Schools aren’t held accountable for CS — they’re being held accountable for math, science, and language arts learning. CS has to play a role in meeting student and school needs.

Kamau pointed out that “Segregation is an immutable truth.”  One of the stories he told was to about textual literacy.  During Reconstruction (starting 1865), leaders realized the critical need for all African-Americans to learn to read.  The Georgia Literacy Project to address the dramatic literacy gap was just started in 2010 — 145 years later.  How long will it take us to achieve equitable access to computing education?

Most of the time was spent in working meetings — state teams sitting down with data reports, developing plans for broadening participation in CS, and grounding the plans in what data they have and what trends they expect to see in those data. The challenges of gathering data on the ground are huge.  I was sitting with one state where a CS teacher on the team pointed out that she had 85 students this year. The Department of Education person from that state did a search, and found that none of those students showed up in their database.  Other states pointed out how hard it is to compare data across states.  We use AP CS data for these kinds of comparisons, but in some states (like Arkansas), all AP exams are paid for by the state. That means that more kids are taking the exam, which means that the pass rates have a different context.

The amount of support for CS Education from each state varies dramatically. Many states have no one in the Department of Education who is informed about CS. Here in Georgia, we have one full-time CS coordinator, which is terrific. In Arkansas, they have nine full-time CS specialists to help teachers.

It was energizing to be with so many passionate leaders who are working to improve computing education in their state.  It’s also amazing to see how much work there is to go to reach everyone with high-quality computing education.

This was the last ECEP meeting organized by this group of NSF Principal Investigators. Rick Adrion, Renee Fall, Barbara Ericson, and I are done when the existing ECEP grant runs out at the end of September.  We’ve worked with a new team of PI’s to help them build a proposal for ECEP 2.  The amazing Sarah Dunton, the manager of our state and territory alliance, will continue in ECEP 2. The PIs for ECEP 2 are Carol Fletcher, Anne Leftwich, Debra Richardson, Maureen Biggers, and Leigh Ann DeLyser.  We’re hoping that they get funded and continue to help states make progress on implementing and broadening computing education.

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

Fri, 01/26/2018 - 07:00

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.

Should computer science fulfill a foreign language admissions requirement?

Mon, 01/22/2018 - 07:00

An Atlanta-area PBS station did an article at the end of last year praising Georgia’s stance allowing CS to count as a foreign language: Is Computer Science A Foreign Language? Ga. Says Yes, Sees Boost In Enrollment | 90.1 FM WABE

The GT director of admissions was interviewed about this requirement in Insider HigherEd and had a much more reasonable take:

Rick Clark, director of undergraduate admissions at Georgia Institute of Technology, said he saw value in the steps by Georgia to encourage more study of computer science in elementary and secondary school.

“I like that kids, even in eighth and ninth grade, who are planning their path through school would take these courses, because basic coding and language will set them up for opportunities upon high school graduation that they would not have otherwise,” Clark said.

In fact, he said his concern is that access to computer science is unequal in Georgia high schools. Most of those who not only take a course, but are able to take Advanced Placement in computer science, are in the metro Atlanta area, Clark said. Georgia Tech is worried about these inequities and is exploring ways to use online instruction to make sure those outside the Atlanta area have access.

At the same time, Clark said, the push for computer science should not be viewed as either/or with foreign languages. He said Georgia Tech is “looking for students who demonstrate that international vision and interest,” and that he finds many of those applicants who are taking AP computer science in high school are also pursuing foreign language instruction as advanced levels.

More than half of Georgia Tech students participate in study abroad, he noted, and 10 percent of undergraduates are from outside the United States. “We are intent upon enrolling students who in high school chose to seek out that global perspective,” he said.

Source: Should computer science fulfill a foreign language admissions requirement?

What does it mean for Computer Science to be harder to learn than other STEM subjects?

Fri, 01/19/2018 - 07:00

I made an argument in my Blog@CACM Post for this month that “Learning Computer Science is Different than Learning Other STEM Disciplines,” and on Twitter, I explicitly added “It’s harder.”

In my Blog@CACM post, I thought it was a no-brainer that CS is harder:

  1. Our infrastructure for teaching CS is younger, smaller, and weaker  (CS is so new, and we don’t have the decades of experience to figure out how to do it well yet.)

  2. We don’t realize how hard learning to program is (The fact that the Rainfall problem seems easy, but it’s clearly not easy, means that CS teachers don’t know how to estimate yet what’s hard for students, so our classes are probably harder than we mean them to be.)

  3. CS is so valuable that it changes the affective components of learning (Classes that are stuffed full of both CS majors and non-majors means that issues of self-efficacy, motivation, and belonging are much bigger in CS than in other STEM disciplines.)

The push back was really interesting.  People pointed out that they took CS classes and math classes, or CS and physics, and CS seemed easy in comparison.  They may be right, but that’s self-report on introspection by people who succeeded at both classes.  My point is that we are probably flunking out (or students are giving up, or opting out) of CS at much higher rates than any other STEM subject, because of the reasons I give.  We’re really using two different measures of “harder” — harder to succeed, or harder in retrospect once succeeded.

I only have a qualitative argument for “It’s harder.” I’m not sure how one would even evaluate the point empirically.  Any suggestions?  How could we measure when one subject is harder than another?

It’s not an important question to answer which is harder, CS vs math, or CS vs physics. A much more important and supportable claim is that CS “is harder” than it needs to be.  We have a lot of extraneous complexity and cognitive load in learning CS.