Archive for May, 2018

A Place to Get Feedback and Develop New Ideas: WIPW at ICER 2018

Everybody’s got an idea that they’re sure is great, or could be great with just a bit of development. Similarly, everyone has hit a tricky crossroads in their research and could use a little nudge to get unstuck. The ICER Work in Progress workshop is the place to get feedback and help on that idea, and give feedback and help to others on their cool ideas. I did it a few years ago at the Glasgow ICER and had a wonderful day. You learn a lot, and you get a bunch of new insights about your own idea. As Workshop Leader (and the inventor of the ICER Work in Progress workshop series) Colleen Lewis put it, “You get the chance to borrow the brains of some really awesome people to work on your problem.”

Colleen is the Senior Chair again this year, and I’m the Junior Chair-in-Training.

The workshop is only one day and super-fun. If you’re attending ICER this year, please apply for the Work in Progress workshop! https://icer.hosting.acm.org/icer-2018/work-in-progress/ The application is due June 8 (it’s just a quick Google form).

Let Colleen or me know if you have questions!

May 30, 2018 at 7:00 am 2 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

Andrew McGettrick receives 2018 ACM Presidential Award for contributions to computing education

Don Gotterbarn, Andrew McGettrick and Fabrizio Gagliardi will receive 2018 ACM Presidential Awards.

Andrew McGettrick, honored for his unwavering commitment to computer science education—particularly in terms of its quality, breadth, and access—for generations of students worldwide. McGettrick served as chair of ACM’s Education Board and Education Council for over 15 years, leaving an indelible imprint as a passionate advocate for equipping computer science students with the knowledge, skills, and tools to succeed in the field. During his tenure, he steered the development of key curricula in computer science and software engineering. In recent years, he has played an instrumental role in championing European educational efforts and professional societies, through his work with ACM’s Europe Council and Informatics Europe. McGettrick was one of the leading forces behind the Informatics for All initiative, an acclaimed report that explores strategies for Informatics education in Europe at all levels.

I am so thrilled to see Andrew receive this award. It’s so well-deserved.  The paragraph above gives a good summary, but doesn’t capture how Andrew has had such an impact in computing education.  He’s a diplomat, tireless and stalwart.  He’s such a nice guy. He draws you in, talks to you, listens to you, recognizes your concerns, and helps reach a position that meets everyones’ needs.  I worked with him for several years on some of his initiatives, and was always impressed with his thoughtfulness, kindness, and work ethic. Few people I know have had such broad impact on computing education, across multiple continents.

Congratulations to Andrew!

Source: Three leaders will receive 2018 ACM Presidential Awards for contributions to computer ethics, education and public policy

May 25, 2018 at 7:00 am Leave a comment

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 19 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 24 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 19 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


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

Join 7,966 other followers

Feeds

Recent Posts

Blog Stats

  • 1,783,869 hits
May 2018
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
28293031  

CS Teaching Tips