Archive for June 5, 2017

Belief in the Geek Gene may be driven by Economics and Educational Inefficiency, plus using blocks to cross language boundaries

I visited China in the first part of May. I was at Peking University (PKU) in Beijing for a couple days, and then the ACM Celebration of the Turing Award in China (TURC) in Shanghai. I mentioned the trip in this earlier blog post. I wrote a blog post for CACM on a great panel at TURC. The panelists discussed the future of AI, and I asked about the implications for computing education. Are we moving to a future where we can’t explain to students the computing in their daily lives?

A highlight of my trip was spending a day with students and teachers at PKU. I taught a seminar with 30+ advanced undergraduates with Media Computation (essentially doing my TEDxGeorgiaTech talk live). It was great fun. I was surprised to learn that several of them had learned programming first in high school in Pascal. Pascal lives as a pedagogical programming language in China!

Perhaps the most striking part of my seminar with the undergraduates was how well the livecoding examples worked (e.g., I wrote and manipulated code as part of the talk).  All the PKU students knew Java, most knew C++, some knew Python — though I knew none of that when I was planning my talk. I wanted to use a tool that would cross programming language boundaries and be immediately understandable if you knew any programming languages. I used a blocks-based language.  I did my livecoding demonstration entirely in GP. I tested their knowledge, too, asking for predictions (as I do regularly, having read Eric Mazur’s work on predictions before demos) and explanations for those predictions.  They understood the code and what was going on. The funky sound and image effects cross language barriers.  Students laughed and oohed at the results.  Isn’t that remarkable that it worked, that I could give a livecoding demonstration in China and get evidence that the students understood it?

The most interesting session at PKU was talking with faculty interested in education about their classes and issues. I’ve always wondered what it’s like for students to learn programming when English is not their native language, and particularly, when the characters are very different. I asked, “Is it harder for your students to learn programming when the characters and words are all English?” The first faculty to speak up insisted that it really wasn’t an issue. “Our students start learning English at age 6!” said one. But then some of the other faculty spoke up, saying that it really was a problem, especially for younger students. In some middle schools, they are using Squeak with Chinese characters. They told me that there was at least one programming language designed to use Chinese characters, but the other faculty scoffed. “Yi is not a real programming language.” There was clearly some disagreement, and I didn’t follow all the nuances of the argument.

Then the Geek Gene came up in the conversation. One of the most senior faculty in the room talked about her challenges in teaching computer science. “Some students are just not suited to learning CS,” she told me. I countered with the evidence of researchers like Elizabeth Patitsas that there is no “Geek Gene.” I said, “We have no evidence that there are students who can’t learn programming.” She had an effective counter-argument.

“We do not have all the time in the world. We cannot learn everything in our lifetime. How much of a lifetime should a student spend learning programming? There are some students who cannot learn programming in the time available. It’s not worth it for them.”

I had not thought of the Geek Gene as being an economic issue. Her argument for the Geek Gene is not necessarily that students cannot learn programming. They may not be able to learn programming in the time available and using the methods we have available. This is not Geek Gene as only some students can learn to program. This is Geek Gene as economic limitation — we can’t teach everyone in the resources available.

I have an answer to that one. Want to reach more students? Either expand the time it will take to teach them, or use more effective methods!  This is the same response that I had offered to my colleague, as I described in an earlier blog post.

That insight gave me a whole new reason for doing our work in efficient CS education, like the greater efficiency in using subgoal-based instruction. The work of Paul Kirschner and Mike Lee & Andy Ko also emphasizes more CS learning in less time. If we can teach the same amount of CS in less time, then we can expand the number of students who can learn enough CS with a given amount of resource (typically, time). If we can’t convince teachers that there is no Geek Gene, maybe we can give them more effective and efficient teaching methods so that they see fewer students who don’t seem have the Geek Gene, i.e., who can learn enough CS in a single semester.

Below, evidence I was really at TURC

June 5, 2017 at 7:00 am 7 comments


Recent Posts

June 2017
M T W T F S S
« May    
 1234
567891011
12131415161718
19202122232425
2627282930  

Feeds

Blog Stats

  • 1,399,664 hits

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

Join 5,067 other followers

CS Teaching Tips