Archive for May, 2014
High school CS teachers need to read and trace code, not develop software
My May 2014 Blog@CACM post, “What it takes to be a successful high school computer science teacher” sneaks up on a radical suggestion, that I’ll make explicitly here. High school computer science teachers need to be able to read and trace code. They don’t necessarily need to know much about writing code, and they certainly don’t need to know how to be software developers.
As we are developing our CSLearning4u ebook, we’re reviewing a lot of our prior research on the practices of successful CS teachers. What do we need to be teaching teachers so that they are successful? We don’t hear successful CS teachers talking much about writing code. However, the successful ones read code a lot, while the less-successful ones do not. Raymond Lister has been giving us evidence for years that there’s a developmental path from reading and tracing code that precedes writing code.
Yes, I’m talking about taking a short-cut here. I’m suggesting that our worldwide professional development efforts for high school teachers should emphasize reading and tracing code, not writing code. Our computer science classes do the reverse of that. We get students writing code as soon as possible. I’m suggesting that that is not useful or necessary for high school teachers. It is easier for them to read and trace code first (Lister’s studies) and it’s what they will need to do most often (our studies). We can reduce costs (in time and effort) of this huge teacher development effort by shuffling our priorities and focusing on reading.
(We do know from studies of real software engineers that they read and debug more than they write code. Maybe it would be better for everyone to read before writing, but I’m focusing on the high school teachers right now.)
Google finally discloses its diversity record, and it’s not good: Everybody else?
Google is going to take a lot of heat for these low numbers, but let’s not forget how long the computing industry has hidden and actively protected its diversity numbers. Kudos to Google for coming forward! Now, Apple, Amazon, and Facebook? (Thanks to Rick Adrion for sending me this link.) And then let’s get to work on making this better.
In an industry that has been famously guarded about its workplace diversity, Google on Wednesday disclosed its record when it comes to hiring women, African-Americans and Hispanics. The data reveals statistics that the company itself admits are too low and strikingly below other industry averages. Women comprise just 17 percent of its global tech workforce, according to data Google published on its website and released exclusively to the PBS NewsHour. When it comes to leadership, women only account for 21 percent of the top positions in the company, which has a workforce of just under 50,000 people.
via Google finally discloses its diversity record, and it’s not good | PBS NewsHour.
Adding Coding to the Curriculum: Considering the claims
There are lots of claims about the benefits of introducing computing early. This article in the NYTimes (even just the quote below) considers several of them:
- Important for individual students’ future career prospects. That seems unlikely, that elementary school CS would lead to better career prospects.
- Influence countries’ economic competitiveness. There might be a stronger argument here. Elementary school is about general literacy. There is likely an economic cost to computing illiteracy.
- Technology industry’s ability to find qualified workers. By putting computing into elementary school? Does industry want to hire kids who know Scratch and Alice? As Elliot suggested, it’s mostly a video game to young kids.
- “Exposing students to coding from an early age helps to demystify an area that can be intimidating.” I strongly agree with that one. We know that kids have weird ideas about CS, and seeing any real CS has a dramatic impact (especially on under-represented groups).
- “Breaks down stereotypes of computer scientists as boring geeks.” Maybe. Not all exposure to real computing leads to breaking down stereotypes. Sometimes they’re enhanced. I think this can happen, but we have to be careful to make it work.
- “Programming is highly creative.” True.
- “Studying it can help to develop problem-solving abilities.” False.
- “Equip students for a world transformed by technology.” Maybe. Does teaching kids about technology when they’re 8 prepare them for entering the workforce 10 years later? If computing literacy matters, that’s true. But I don’t believe that playing with Blockly in 3rd grade “equips” you with much. Most technology doesn’t look like Blockly.
We do have to make our message clear, and it should be a message that’s supported by research. If the computing education policy-and-PR machine ignores the research, we’re showing more disrespect for the field of computing education research and makes it even harder to establish reforms.
Around the world, students from elementary school to the Ph.D. level are increasingly getting acquainted with the basics of coding, as computer programming is also known. From Singapore to Tallinn, governments, educators and advocates from the tech industry argue that it has become crucial to hold at least a basic understanding of how the devices that play such a large role in modern life actually work.
Such knowledge, the advocates say, is important not only to individual students’ future career prospects, but also for their countries’ economic competitiveness and the technology industry’s ability to find qualified workers.
Exposing students to coding from an early age helps to demystify an area that can be intimidating. It also breaks down stereotypes of computer scientists as boring geeks, supporters argue. Plus, they say, programming is highly creative: Studying it can help to develop problem-solving abilities, as well as equip students for a world transformed by technology.
A stunningly beautiful connection between music and computing: Jason Freeman’s “Grow Old”
My eldest child graduated from college this last year, and I’m feeling my first half-century these days. That may be why I was particularly struck by the themes in Jason Freeman’s beautiful new work. I recommend visiting and reading the page, and you’ll get why this is so cool, even before you listen to the music. It’s not live coding — it’s kind of the opposite. It’s another great example of using music to motivate the learning of computing.
Why can’t my music grow old with me?
Why does a recording sound exactly the same every time I listen to it? That makes sense when recordings are frozen in time on wax cylinders or vinyl or compact discs. But most of the music I listen to these days comes from a cloud-based streaming music service, and those digital 1s and 0s are streamed pretty much the same way every time.
In this world of infinitely malleable, movable bits, why must the music always stay the same? From day to day and year to year, I change. I bring new perspectives and experiences to the music I hear. Can my music change with me?
This streaming EP is my attempt to answer these questions. Once a day, a simple computer program recreates each track. From one day to the next, the changes in each track are usually quite subtle, and you may not even notice a difference. But over longer periods of time — weeks, months, or years — the changes become more substantial. So when you return to this music after a hiatus, then it, like you, will have changed.
Constructionism for Adults
Constructionism–the N word as opposed to the V word–shares constructivism’s connotation of learning as “building knowledge structures” irrespective of the circumstances of the learning. It then adds the idea that this happens especially felicitously in a context where the learner is consciously engaged in constructing a public entity, whether it’s a sand castle on the beach or a theory of the universe.
- Seymour Papert and Idit Harel “Situating Constructionism”
Most researchers exploring constructionism study children. Mitchel Resnick, Yasmin Kafai, Uri Wilensky, Amy Bruckman, Idit Harel, and other academic offspring of Seymour Papert have studied how children learn through construction in a variety of media, from Scratch to e-textiles. The semi-annual Constructionism and Creativity Conference talks about “students” not “children” on the Constructionism history page, but the proceedings from the 2012 conference show that it’s about children’s learning, both formal and informal.
I’ve grown up constructionist-by-association, rather than by training. I got to work with Seymour and with Mitchel for a short time on the design for LCSI Microworlds. Yasmin is one of my oldest friends, from even before she went to work with Idit and Seymour. I worked from a constructionist perspective here at Georgia Tech with Amy Bruckman and Janet Kolodner.
Nowadays, I work mostly with adult learners — undergraduates, end-user programmers, and high school teachers. There’s nothing in Seymour’s definition that prohibits applying constructionism to adults. Their learning should be “especially felicitous” when they are “constructing a public entity.” But I don’t think that constructionism for adults is the same as constructionism for children.
I can identify examples (as an existence proof) that constructionism can work for adults as well as children.
- Teachers know that if you want to learn a new subject, sign up to teach the new subject. Constructing the course and teaching it to others is a great way of developing that knowledge.
- Programmers take on new projects to learn a new method, language, context, or community. My former PhD student, Mike Hewner, wanted to know what professional game development was like. Because he’s an exceptional software engineer, he was able to land himself an internship with a game company one summer (with no prior game experience), explicitly to learn game development.
I see three big differences in adult constructionism from child constructionism, and they’re related.
(1) Saving Face I’m learning to play the ukulele. I bought it about a few months ago, and am playing it daily. I’m learning a huge amount, both in terms of the skill and concepts needed to play, but also at a meta level about music. The ukulele makes me think about timing, strumming, and chord patterns in a different way, and now I listen to all kinds of stringed instruments in a different way. It’s helping me to sing better, since I can more easily hear when I’m at the wrong pitch and I hear rhythm differently when I’m strumming.
But I am not learning to play ukulele as a public artifact. I’m frightened by the thought of playing in public. Only my family has ever heard me play.
Adele Goldberg worked on one of the iterations of the UK Open University’s introductory computing course, and she told me that distance learning opportunities were most important for adults. She pointed out that adults work for decades to develop their careers and their prestige. It’s really hard for them to then put their hands up in a physical classroom to ask a question and risk being found out as not knowing. There’s a recent Freakonomics podcast that claims that the three hardest words to say in the English language are: “I don’t know.”
Constructionism for kids is all about the public aspect. The Scratch website plays a role in students sharing their work, downloading others’ projects, remixing and sharing back what they found. Collaboration and public sharing has always played a big role in stories of constructionist learning. Maybe this is why work in Constructionism tends to focus at the youngest children, because the social standing and peer pressure issues increase as the kids get older.
Adults have face in a different way than children. We can still learn from construction, but we might not want it to be as public in the same way as children. We might not want to even publicly remix, or others might learn what we’re doing.
(2) Presumption of Expertise I’ve mentioned before in this blog that I’ve been singing in my church choir. I often feel ignorant — and embarrassed at my ignorance. There is so much about singing in a choir that is assumed when you are an adult, from how to sing into a microphone to how to harmonize by hearing the melody. We teach these things to children, because we know that they don’t have the basics. We expect them to be novices at most things.
As an adult engaging in an activity, we are presumed not to be novices. If you sing in a choir, the assumption is that you must have sung in choirs before –“You all know the basics.” But if you’re starting out in a new domain, you may not. Even when I admit my ignorance (hard to do because of the issue of face) and ask questions, the director quickly forgets my lack of background — a couple things get explained, and then the presumption of expertise comes back. I look like all the other adults there. It’s not like a classroom of similarly-aged students where the teacher can assume a similar background. Adults have radically different backgrounds. I recently served on the advisory board for a science and engineering learning project that used Lego robotics context. The most common teacher professional development question was about the Lego. These teachers had not played with Lego as children, were uncomfortable with it, and had to spend extra (unexpected from the researchers’ perspective) time to learn to use Lego.
Constructionism depends on learning in the context of construction. The goal of the learning isn’t the construction itself. It’s construction as something to think with. As Seymour put it, you can’t think about thinking without thinking about something. But if you don’t know how to construct, then most of the activities of construction don’t fall into the background, and then it’s hard to think about the artifact being constructed and to learn from that process. Children learn through Lego and Scratch after they get the basics of how to put blocks together (in both physical and virtual forms). Adult teachers who learn from constructing lectures and adult programmers who learn from constructing software only learn after they’re comfortable with course design and programming. When you first design a course, you’re learning about course design, and less about the content. Few people will learn to program by joining an open source development effort.
The problem of expecting expertise shows up often in undergraduate education. In undergraduate computer science courses, we expect students to know about mathematic concepts from algebra, trigonometry, geometry, and even calculus. If students don’t know those concepts, we expect them to “pick them up” on their own, and their grades suffer. When they fail, we complain that “these students don’t have the right background.” If they don’t have the basic background, it’s hard to move forward. Think about it from a developmental perspective, instead of our more common judgmental “hold the standard” perspective. Where does the student get the knowledge that we expect but they “missed”? If an adult misses the basics, is that it? They’ve simply missed out for this lifetime? How does an adult fit in learning Algebra 1 (for example) if he missed out earlier?
Because of the presumption of expertise, we adult learners tend to gravitate to constructionist learning opportunities where we do know the basics. Teachers have taught before, so they can learn by teaching something new. Mike Hewner is an excellent software engineer, so simply shifting to a new domain was an enjoyable challenge.
Or, we tackle project where adults with no expertise are expected, like learning a foreign language or introductory web design. But if I as an adult decided to learn how to build a bookcase from lumber, it’s not clear where I’d go to get the basic knowledge of carpentry that I lack. Go to the local DIY store and there’s an assumption that you did shop as a kid and that you know how to hammer and saw efficiently.
Maybe this is why it’s so hard for adults to jump into a new career, to start over, to construct new prestige. We lose face because we give up our former prestige. But as we live longer, there is time enough to develop new prestige, a new face.
(3) Time and Responsibility. I saved the most obvious difference for last. In our modern society, we do the majority of formal education before our citizens develop responsibilities around home, family, and career, when they can devote time to learning. Adults are swamped with responsibilities and do not have much time to devote to learning.
Constructionism is not an efficient form of learning. Learning can happen “irrespective of the circumstances of the learning” (as Seymour says). One can learn from reading a book or attending a lecture. Building through construction can be a motivating context for learning, and it can lead to deep learning. But there are more efficient forms of learning, like individual tutoring and guided instruction. We can get better learning from mastery learning.
Adults need efficient learning. Efficient learning fits better into the time available. Learning occurs more efficiently with a teacher or mentor, who can design learning, guide learning, provide useful feedback, and cut-off dead-ends and wasted time. But the first two differences make it more difficult for adults to get the guidance that a good teacher can provide. Adult learners are less likely to seek out a teacher and ask their questions. It’s hard for teachers to recognize adult learner’s needs, because they presume expertise.
Sure, some adults will spend lots of time in “inefficient” constructionist learning activities, like model railroads, recreational mathematics, and the Society for Creative Anachronism. What are the conditions under which that happens? Obviously, leisure time is necessary — time that the adult feels can be spared from other responsibilities. What if the adult wants to learn something “real” (e.g., something that aids in meeting responsibilities, like perhaps skills towards a new job or promotion), then they are unlikely to choose a constructionist route. They might choose a MOOC, or some vocational form of learning that is more authentic.
Conclusion: I do believe that constructionism is an “especially felicitous” way to learn. It’s fun to learn through constructionism. Constructionist learning tends to be deep learning. We do want adults to be able to use constructionist learning.
Constructionism can work for adults, but it’s more challenging. There are different issues than with children. Adults have less time to spend on learning and more responsibilities. They may not have the basic construction skills and knowledge in the medium of choice for constructionist learning, which is necessary to learn through construction. They are less likely to ask for and receive the help that makes learning for effective and efficient. They are less likely to share, if that sharing might expose their lack of understanding. Constructionism is a particularly fun way to learn, but the costs of constructionism may be greater for adults than the utility provided.
As we live longer, the challenges of learning as adults becomes more of a problem. If people are going to live to 80 or 90, it’s less believable that you will learn all the basics you will ever need for whatever career(s) you might be interested in by the time you are 21. There’s time enough for a second career. We need to make opportunities sufficient to learn for that career, too.
Boycotting a science conference because program is all-male
Salon.com wrote about the boycott that’s emerging because a major chemistry conference is all male. The linked article, from the President of the University of Cincinnati, talks about what’s needed to retain and grow women in STEM. I wouldn’t have guessed that we’d have this problem in Chemistry before Computer Science.
The recent threat to boycott an upcoming international chemistry conference because of its all-male speaking program reminds us how far we still have to go when it comes to women in the science, technology, engineering and math (STEM) fields. The challenge remains that many STEM professions remain male-dominated, especially in academia.
via Campuses must create formal networks for female STEM professors (essay) | Inside Higher Ed.
Technology’s Man Problem: An important issue for NCWIT
I’m speaking today at the NCWIT Summit, and this is a good article from NYTimes to re-read before the summit:
After the Titstare presentation, a commenter calling himself White_N_Nerdy wrote on Reddit, “I’m honestly trying to understand why anyone says that females are ‘needed’ in the tech industry.” He continued: “The tech community works fine without females, just like any other mostly male industry. Feminists probably just want women making more money.”
Online gathering spots for engineers, like Reddit, Hacker News and 4chan, where people often post anonymously, can feel like hostile territory for women.
Fake Geek Guys: A Message to Men About Sexual Harassment
An important message to post on the first day of the NCWIT Summit for 2014. There is a significant role for guys in making the culture better for women. Do read the whole article — it’s frightening.
How do we fight this war? We stop enabling. We check ourselves and, when necessary, wreck ourselves. Do you know a guy who’s hate-following women on Twitter just to troll them? You check him. Do you know a guy who’s writing disgusting screeds to women journalists because they don’t like the same things he likes? You check him. Do you know a professional whose discourse with women in his field is loaded with gender-specific language and condescension that could enable further abuse? You check him. Are your Twitter followers identifying you as a sympathetic ear for their sexist views? You check yourself. Is your website’s message board a cesspool of ignorance and hate? You check it like you actually give a damn. Do you know a guy who’s sending rape threats to women for any reason? Oh, you report that guy.
Let me make it plain:
A woman objecting to the content of a comic book — even if you think she’s dead wrong — does not rise to the occasion of vicious name calling and rape threats.
via Fake Geek Guys: A Message to Men About Sexual Harassment.
NSF funding for junior faculty in first two years
Computing education (CE21) researchers are explicitly encouraged in this solicitation. It’s a nice idea to try to deal with the low success rates of NSF proposals these days.
With the goal of encouraging research independence immediately upon obtaining one’s first academic position after receipt of the PhD, the Directorate for Computer and Information Science and Engineering (CISE) will award grants to initiate the course of one’s independent research. Understanding the critical role of establishing that independence early in one’s career, it is expected that funds will be used to support untenured faculty or research scientists (or equivalent) in their first two years in an academic position after the PhD. One may not yet have received any other grants in the Principal Investigator (PI) role from any institution or agency, including from the CAREER program or any other award post-PhD. Serving as co-PI, Senior Personnel, Post-doctoral Fellow, or other Fellow does not count against this eligibility rule. It is expected that these funds will allow the new CISE Research Initiation Initiative PI to support one or more graduate students for up to two years.
Those Who Say Code Does Not Matter are Wrong
Bertrand Meyer is making a similar point to Amy Ko’s argument about programming languages. Programming does matter, and the language we use also matters. Meyer’s goes on to suggest that those saying that “code doesn’t matter” may be just rationalizing that they continue to live with antiquated languages. It can’t be that the peak of human-computer programming interfaces was reached back in New Jersey in the 1970’s.
Often, you will be told that programming languages do not matter much. What actually matters more is not clear; maybe tools, maybe methodology, maybe process. It is a pretty general rule that people arguing that language does not matter are simply trying to justify their use of bad languages.
via Those Who Say Code Does Not Matter | blog@CACM | Communications of the ACM.
Reading, Writing, Arithmetic, and Lately, Coding: But mostly a video game (Elliot Soloway)
Elliot gets it right in his NYtimes quote from this last weekend. Young kids who code are probably not learning much computer science that might lead to future jobs. Rather, they’re “programming” as if it’s a video game. That’s not at all bad, but it makes less believable the argument that we need coding in skills to improve the future labor force.
The spread of coding instruction, while still nascent, is “unprecedented — there’s never been a move this fast in education,” said Elliot Soloway, a professor of education and computer science at the University of Michigan. He sees it as very positive, potentially inspiring students to develop a new passion, perhaps the way that teaching frog dissection may inspire future surgeons and biologists.
But the momentum for early coding comes with caveats, too. It is not clear that teaching basic computer science in grade school will beget future jobs or foster broader creativity and logical thinking, as some champions of the movement are projecting. And particularly for younger children, Dr. Soloway said, the activity is more like a video game — better than simulated gunplay, but not likely to impart actual programming skills.
via Reading, Writing, Arithmetic, and Lately, Coding – NYTimes.com.
Teaching Code in the Classroom – Room for Debate – NYTimes.com
Remarkable debate on the NYTimes website about “Should coding be part of the elementary school curriculum?” All the debaters have very short statements, and they’re disappointing.
- Hadi Partovi claims “By high school, it can be too late” and “Students learn fast at a young age, before stereotypes suggest coding is too difficult, just for nerds, or just for boys” — I don’t agree with either statement. We have lots of examples of women and under-represented minority students discovering CS in high school. It’s not at all clear that students learn everything quickly when they’re young — quantum physics and CS might both be beyond most second graders.
- But John C. Dvorak’s claim that “This is just another ploy to sell machines to cash-strapped school districts” is also clearly wrong. The computer manufacturers are not playing a significant role in the effort to push computing into schools.
Take a look and see what you think. It’s exciting to have this kind of debate in the NYTimes!
Despite the rapid spread of coding instruction in grade schools, there is some concern that creative thinking and other important social and creative skills could be compromised by a growing focus on technology, particularly among younger students. Should coding be part of the elementary school curriculum?
via Teaching Code in the Classroom – Room for Debate – NYTimes.com.
Happy 50th Birthday to BASIC, the Programming Language That Made Computers Personal
A really fun article, with videos of lots of classic Basic systems running.
Kemeny believed that these electronic brains would play an increasingly important role in everyday life, and that everyone at Dartmouth should be introduced to them. “Our vision was that every student on campus should have access to a computer, and any faculty member should be able to use a computer in the classroom whenever appropriate,” he said in a 1991 video interview. “It was as simple as that.”
via Fifty Years of BASIC, the Programming Language That Made Computers Personal | TIME.com.
The personal cost of applying for research grants
For academics, this study falls in the category of “Duh! Who didn’t know that?!?” But it might not be obvious to non-academics. NSF hit-rates are below 10% in most fields. Proposals take tons of time to put together (way more than a conference paper, on par with a journal paper), and you have to keep producing them until you get hits in a research-intensive university. When hit rates were around 30%, you’d do four proposals and could expect one to hit. Nowadays, you’re doing over 10, and then you’re still not sure you’ll get funded. It’s a huge cost.
The pressure to win high-status funding means that researchers go to extraordinary lengths to prepare their proposals, often sacrificing family time and personal relationships. During our research into the stressful process of applying for research grants, one researcher, typical of many, said, “My family hates my profession. Not just my partner and children, but my parents and siblings. The insecurity despite the crushing hours is a soul-destroying combination that is not sustainable.”
via The personal cost of applying for research grants | Higher Education Network | Guardian Professional.
Hackathon models that draw in women
I had some off-blog responses to my post about women in hackathons. Here are a couple of them:
- Shriram Krishnamurthi sent me an article about Brown’s hackathon. It was 35% female, and all of the attendees said that they’d come back.
- Yasmin Kafai told me about StitchFest.org at Penn where they doubled the number of women attendees by including e-textiles.
These both look interesting and successful, in terms of drawing more women in. I’m still left with questions. Why do a large-number-of-hours hackfest/stitchfest at all? The Brown article does give a reason: to build community. I do believe that a sleepless all-nighter experience can build community. Are there other, maybe better ways?
Are these replicable models? Both of these examples are at Ivy League institutions. Both of these efforts had significant corporate sponsorship. The Brown hackathon had a professional engineer to work with almost every student group. Can other schools duplicate that draw? There are interventions that are easier at an Ivy League institution. The Harvard CS50 experience is absolutely amazing, but will Facebook sponsor pizza party coding sessions for every school in the US, and is Microsoft willing to host every school at the NERD Center? I know I’m at Georgia Tech, so I need to watch for being painted with the same brush. Not everything we do is easily replicated elsewhere. We explicitly design for replicability and measure it.
Maybe there is value in hackathons, and maybe it can even play a role in improving diversity in computing. Microsoft and Code.org are supporting hackathons for women. If we’re going to do this, we should articulate the desired value and role, design for it, and test to see if it’s happening. I’d rather not believe that hackathons are simply there, part of the new computing culture, and now we can only learn how to make them as not-awful as possible.
Recent Comments