Computer science education is far bigger than maker education: A post in lieu of a talk #InfyXRoads

I was scheduled to speak this Thursday in the final plenary panel of the Infosys Foundations USA CrossRoads 2018 conference (see program here). My father passed away on May 10, and we just had the funeral Friday May 18, so I apologized and cancelled the trip. I had already thought about what I wanted to say, so here’s a blog post in lieu of a panel presentation.

The session is “Why Teach CS? Why Teach Making?” with Yasmin Kafai, Quincy Brown, and Colleen Lewis. The session was inspired in part by my blog post listing the reasons for teaching programming, and was framed in our preliminary discussions as a debate. Is there a difference between CS education and Maker education? Yasmin was tasked with making the argument that they are pretty much the same. I disagree with that position. Colleen was moderating, and Quincy was still keeping her cards close to her chest — I don’t know what position she’s going to take Thursday.

If our goal is to teach the basics of programming, sure, maker education (where we teach students to make physical devices with embedded computation, such as e-textiles, robotics, or Lego Mindstorms devices) and the kind of computing education that I see reflected in the K-12 CS Framework is pretty much the same. There’s some CS education in there. Students learn the basics of sequential execution, conditionals, and looping. But that’s not the same as computer science education.

If our goal is to change students attitudes towards technology, then sure, maker education may be even more effective than computing education for getting students to see the technology in their world. By making their own technology, students may increase their self-efficacy, and help them to feel that they can and should have control over the technology in their lives. But again, that’s not the same as teaching students computer science.

The big ideas of computer science are much bigger than maker education. Here are three examples.

The questions that Alan Turing was trying to answer when he invented the Turing Machine were “What is computable? What are the limits of mathematics? What is not computable? Is even human intelligence computable?” These are as meta as you can get. This is the heart of computer science, as the science of abstraction. These aren’t ideas students currently explore in maker education. Maybe they could, but certainly don’t require a maker context.

One of the most powerful ideas associated with Turing Machines is that any computer can simulate any other computer, including being many other computers with many processes. That’s the big idea that Alan Perlis was talking about in 1961 when he talked about computer science as the study of process. That’s one of the big ideas behind object-oriented programming as Alan Kay defined it.  We don’t explore simulation in maker education, and it’s hard to imagine how we might.

 

Ada Lovelace was the world’s first computer programmer. More than that, she was the first to realize that computers were about programming anything. Quoting from her Wikipedia page:

Ada saw something that Babbage in some sense failed to see. In Babbage’s world his engines were bound by number…What Lovelace saw—what Ada Byron saw—was that number could represent entities other than quantity. So once you had a machine for manipulating numbers, if those numbers represented other things, letters, musical notes, then the machine could manipulate symbols of which number was one instance, according to rules. It is this fundamental transition from a machine which is a number cruncher to a machine for manipulating symbols according to rules that is the fundamental transition from calculation to computation—to general-purpose computation—and looking back from the present high ground of modern computing, if we are looking and sifting history for that transition, then that transition was made explicitly by Ada in that 1843 paper.

Maker education isn’t about general computation. It’s about computing associated with sensors and actuators. Computer science education is about computing everything, from numbers to letters to musical notes. Having to connect the computation to a device made by the student limits the space of what you might compute. Computer science is about representation and abstractions on representations. Everything can be defined in terms of bits. That’s a big idea.  You can probably teach that concept in maker education, but it can be taught (and more easily) without tying it to maker education.

Most of us know Grace Hopper’s name today, but probably more for her iconic status and as the namesake for the Grace Hopper Conference than for what she actually did. Admiral Grace Hopper led the effort to create compiled programming languages, including (eventually) COBOL. There are so many big ideas in here, but let’s just take two.

  • Automatic programming means that you have a program specified in one language (like COBOL or Java or Scratch) and you use that as input to a program that generates another language written in another language (used to be machine language, but JavaScript is probably more common today). A compiler is a program that inputs a program and generates another a program. That is a powerful, meta idea that students do not typically see in maker education. Could we teach about compilers in maker education?  Maybe, but “making” is certainly not the easiest and most obvious way to talk about compilers — it’s another way computing education is bigger than maker education.
  • COBOL was about making programming accessible by using words and concepts familiar to the end users. (It was also about designing a compiled language that would work on any underlying computer, which connects back to Turing’s machine.) Designing for others who are not you and have different expertise than you is one of the most fundamental ideas of human-computer interface design today. Do we get to that in maker education? That big idea occurs more often in non-maker contexts, e.g., making apps for others and using user-centered design to get there.

Bottomline: CS education is so much bigger than maker education. You can explore a lot of computer science using student-made devices as a context. Ben Shapiro has shown that he can have kids playing with powerful modern-day computing ideas from networking to machine learning, all using student-made devices. That’s serious CS education. But it’s not all of CS education, and you can do CS education apart from student-made devices. Maker and CS education are not one-to-one.

There is an equity component here. We often talk about Ada Lovelace and Grace Hopper when we talk about the women who were part of the creation of computer science. We do them a disservice if we only remember them as early members of a category “women in computing.” It’s important to recognize what they actually did, what they contributed to computer science — and we should teach that. What Lovelace and Hopper did mattered, and we demonstrate that it mattered by teaching it and explaining why it’s important.  Ideas like data representation and compilers are not today taught in maker education, are not easily taught in maker education, and can certainly be taught without maker education.

The big ideas that Turing, Lovelace, and Hopper created and explored are not new. This shouldn’t be the realm of advanced CS any more.  An important goal of computer science education should be to teach these foundational ideas of computer science.  I don’t think we know how to get there yet, but that should be our goal. We should be teaching the computer science developed by the people we hold up as heroes, leaders, and role models.

We can teach a lot with maker education, but let’s make sure that we don’t miss out on what CS education is about. Maker education is a great idea. It’s a terrific context for learning some of CS. If we only focus on the intersection of maker and CS education, we might miss the other, far bigger ideas that are in computer science.

May 21, 2018 at 7:00 am 7 comments

Is there a “hype cycle” for educational programming languages?

As a longtime Smalltalk-er, I loved this piece: “The 50-year Gartner Hype Cycle for Smalltalk

Interesting how the hype cycle applies to Smalltalk:

  • Technology Trigger — the hype began with the famous 1981 BYTE cover and continued throughout the 1980s.
  • Peak of Inflated Expectations — in the 1990s, Smalltalk became the biggest OOP language after C++ and even IBM chose it as the centrepiece of their VisualAge enterprise initiative to replace COBOL.
  • Trough of Disillusionment — Java derailed Smalltalk by being: 1) free; and 2) Internet-ready. Free Squeak (1996) and Seaside web framework (2002) were not enough to save it.
  • Slope of Enlightenment — Pharo was released in 2008 and became the future of Smalltalk, thanks to its remarkable pace of evolution. We are still in this phase, which requires continuing and sustained advocacy.
  • Plateau of Productivity — we are waiting for this phase, perhaps in the next decade. I am sanguine.

Educational programming languages (or maybe just programming languages’ use in education) don’t seem to follow this curve at all.  Does a programming language ever “come back” once it has left classrooms?  Logo? Pascal?  Even if there’s a “Trough of Disillusionment” (e.g., when we realized just how hard C++ and Java are), we still see longterm use. Even if we later realize how good something was (e.g., Logo for integration into curriculum), it doesn’t come back.

I wonder what the similar curve looks like for programming languages in education.

May 18, 2018 at 7:00 am 8 comments

Scale or Fail: Making national CS education work in Switzerland

Alex Repenning has the CACM Viewpoints Education column this month where he sets out a bold challenge — scale CS education to a national scale, or fail at making CS education work for all.

K–12 computer science Education (CSed) is an international challenge with different countries engaging in diverse strategies to reach systemic impact by broadening participation among students, teachers and the general population. For instance, the CS4All initiative in the U.S. and the Computing at School movement in the U.K. have scaled up CSed remarkably. While large successes with these kinds of initiatives have resulted in significant impact, it remains unclear how early impact becomes truly systemic. The main challenge preventing K–12 CSed to advance from teachers who are technology enthusiasts to pragmatists is perhaps best characterized by Crossing the Chasm, a notion anchored in the diffusion of innovation literature. This chasm appears to exist for CSed. It suggests it is difficult to move beyond early adopters of a new idea, such as K–12 CSed, to the early majority. Switzerland, a highly affluent, but in terms of K–12 CSed somewhat conservative country, is radically shifting its strategy to cross this chasm by introducing mandatory pre-service teacher computer science education starting at the elementary school level.

Three fundamental CSed stages are characterized by permutations of self-selected/all and students/teachers combinations. It took approximately 20 years to transition through these stages. Each stage is described here from a more general CSed perspective as well as my personal perspective.

Source: Scale or Fail

May 14, 2018 at 7:00 am 1 comment

Feeling disadvantaged in CS courses at University of XXX

Even at Berkeley, the home of the great course emphasizing CS teaching for everyone, The Beauty and Joy of Computing, there are students who don’t feel that they belong in CS.  See the post quoted and linked below.

Of course, the story below is not about Berkeley.  This is about the slow pace of change, and how difficult it is to get whole CS departments to buy into the vision of “CS for All.”

CS 61A was a completely different story.

Last fall, I had the opportunity to work as a lab assistant for Data 8: “Foundations of Data Science,” and I couldn’t help but notice the difference in atmosphere between the students in Data 8 and my own experience in CS 61A.

Data 8 is one of the alternative courses offered for UC Berkeley students who are new programmers. Data 8 and CS 10: “The Beauty and Joy of Computing” are offered to students who want to test the waters of programming before jumping into 61A.

Data 8 uses Python, just like 61A. But the concepts are taught more slowly so new programmers can really understand how to use these concepts properly in their code.

Source: Column | Feeling disadvantaged in CS courses at UC Berkeley

May 11, 2018 at 7:00 am 7 comments

Why are CS students so hard to nudge? A theory for why it’s so hard to promote a growth mindset in CS1

Pearson took a lot of heat recently for trying to improve students’ mindset in My Programming Lab.  I’m slightly worried about the ethics of their “embedded experiment.” I’m more worried that it didn’t work.

Titled “Embedding Research-Inspired Innovations in EdTech: An RCT of Social-Psychological Interventions, at Scale,” the study placed 9,000 students using MyLab Programming into three groups, each receiving different messages from the software as they attempted to solve questions. Some students received “growth-mindset messages,” while others received “anchoring of effect” messages. (A third control group received no messaging at all.) The intent was to see if such messages encouraged students to solve more problems. Neither the students nor the professors were ever informed of the experiment, raising concerns of consent.

The “growth mindset messages” emphasized that learning a skill is a lengthy process, cautioning students offering wrong answers not to expect immediate success. One example: “No one is born a great programmer. Success takes hours and hours of practice.” “Anchoring of effect” messages told students how much effort is required to solve problems, such as: “Some students tried this question 26 times! Don’t worry if it takes you a few tries to get it right.”

As Education Week reports, the interventions offered seemingly no benefit to the students. Students who received no special messages attempted to solve more problems (212) than students in either the growth-mindset (174) or anchoring groups (156). The researchers emphasized this could have been due any of a variety of factors, as the software is used differently in different schools.

Source: Pearson Embedded a ‘Social-Psychological’ Experiment in Students’ Educational Software [Updated]

Beth Simon and her colleagues tried a similar experiment, reported at ICER 2008.  They did get informed consent.  They tried a similar kind of “nudge” to get students to adopt a growth mindset.  It didn’t work for Beth et al., either.

I advised Kantwon Rogers’ MS in HCI project, where he tried to nudge CS1 students (both on-line and off-line) to have a greater sense of “belongingness” in CS.  Similar to these previous studies, he sent email prompts to students — some just encouraged study skills, and others promoted a sense that they belongs and could succeed in CS.  In almost all of his conditions, belongingness dropped.

What’s going on here?  Why are CS students so impervious to these prompts that have been successful in other settings?

I have a theory.  There’s a notion in the behavioral sciences literature that you get more success changing behavior or promoting attitudes by reducing barriers than by prompting for desired behavior or attitudes.  The analogy is to a large boulder that you want to move: You can push it and push it, or you can just dig away the dirt from the bottom.  The latter is likely to get the boulder rolling without as much effort.

Here’s my theory: Introductory CS classes have systemic issues that encourage a fixed mindset and discourage a sense of belongingThere are too many signals to students that they can’t succeed, that they can’t get better, and that they don’t belong — perhaps especially in times of rising enrollment. Mere nudges are not going to move the boulder.  We’re going to have to remove the barriers to belonging, self-efficacy, and the sense that students can succeed at CS.

 

May 7, 2018 at 7:00 am 17 comments

Ever so slowly, diversity in computing jobs is improving: It’ll be equitable in a century

A great but sobering blog post from Code.org. Yes, computing is becoming more diverse, but at a disappointingly slow rate. Is it possible to go faster? Or is this just the pace at which we can change a field?

According to the Bureau of Labor Statistics, yes, but very slowly. We’ve analyzed the Current Population Survey data from the past few years to see how many people are employed in computing occupations, and the percentage of women, Black/African American, and Hispanic/Latino employees.

What did we find? There are about 5 million people employed in computing occupations, 24% of whom are women, and 15% of whom are Black/African American or Hispanic/Latino.

Since 2014, the trends in representation, although small, have been moving in the right direction — all three groups showed a tiny increase in representation. However, changes would need to accelerate significantly to reach meaningful societal balance in our lifetimes. If the current pace of increases continue, it would take over a century* until we saw balanced representation in computing careers.

Source: Is diversity in computing jobs improving? – Code.org – Medium

May 4, 2018 at 7:00 am 1 comment

Indian Supreme Court rules that CS degrees cannot be provided on-line

On-line CS degrees cannot be on par with face-to-face CS degrees, rules the highest court in India.

What makes an online class worse than a face-to-face class?  I think that there’s a good bit of evidence that they are worse for many students, e.g., the NYTimes article about how on-line classes hinder students needing remedial help. I’m interested in the research question of why on-line classes have such differential results from face-to-face classes — it isn’t obvious to me.  But the court’s rules says that on-line classes always are worse, and even that they always will be.  There’s a design space to explore, and it’s short-sighted to rule that on-line is always worse and never on par.

But how should the court have ruled? We need a measure of quality such that we can compare the results of the two degrees.  It’s hard to figure out what such a measure might be — maybe success in work, or employability, or even a measure of skill or content knowledge.  Any reasonable measure would be better than making a decision based on the medium.

(Thanks to Amy Bruckman for sending me this article.)

The Court affirmed the findings of the Punjab and Haryana High Court which had given a similar ruling two years ago, stating that a degree in the subject of ‘computer science’ from a distance learning course could not be considered on par with one attained by attending regular classes.

The verdict came on a batch of appeals challenging the orders of the High Courts of Orissa and Punjab and Haryana by which the former held the degrees in engineering obtained by serving diploma holders through distance learning mode offered by certain deemed universities to be valid, whereas the latter termed such degrees to be invalid.

The top court also directed the University Grants Commission (UGC) to restrain such institutions from using the word ‘University’ within one month from today, observing that commercialisation of education “seriously affects the credibility of standards in education, eroding power and essence of knowledge and seriously affecting excellence and merit”.

Source: Cannot provide technical education through correspondence, rules Supreme Court

April 30, 2018 at 7:00 am Leave a comment

Older Posts


Recent Posts

May 2018
M T W T F S S
« Apr    
 123456
78910111213
14151617181920
21222324252627
28293031  

Feeds

Blog Stats

  • 1,508,411 hits

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

Join 5,263 other followers

CS Teaching Tips