Summarizing the Research on Designing Programming Languages to be Easier to Learn: NSF CS Ed Community Meeting
February 2, 2016 at 8:58 am 5 comments
I’m at the NSF STEM+Computing and Broadening Participation in Computing Community Meeting. At our ECEP meeting on Saturday, we heard from White House Champion of Change Jane Margolis. She did a great job of getting our states to think about how to change their state plans to emphasize diversity and equity — more on that in a future blog post.
I moderated a panel yesterday on how to integrate computing education into schools of education. Here’s the description of the session — again, more later on this.
Integrating Computing Education into Preservice Teacher Development Programs
(Mark Guzdial (moderator), Leigh Ann DeLyser, Joanna Goode, Yasmin Kafai, Aman Yadav)
For computing education to become ubiquitous and sustainable in US K-12 schools, we need schools of Education to teach computing.
- What should we be teaching to preservice teachers?
- Where should we teach CS methods in preservice teacherdevelopment?
- How do we help schools of Ed to hire and sustain faculty who focus on computing education?
Panelists will talk about how CS Ed is being integrated into their preservice teacher development programs, and about alternative models for addressing these questions.
Yesterday, our other computing education research Champion of Change, Andreas Stefik presented a summary of the empirical evidence on how to design programming languages to make them easier to learn. Follow the link below to get to the two-page PDF pamphlet he produced for his presentation — it’s dense with information and fascinating.
This pamphlet is designed to provide an overview of recent evidence on human factors evidence in programming language design. In some cases, our intent is to dispel myths. In others, it is to provide the result of research lines.
Entry filed under: Uncategorized. Tags: BPC, computing education research, NSF, programming languages, teachers, women in computing.
1.
Mark Guzdial | February 2, 2016 at 2:29 pm
Stefik shared a summary paper with me, too: http://www.cs.cmu.edu/~NatProg/papers/CHI2016-SIG-ProgLang-Usability.pdf
2.
Guy Haas | February 3, 2016 at 10:59 am
Thanks for the links. I’ve spent an hour bringing up and scanning papers referenced, and following references in them, a few levels deep. There has been so much written regarding programming languages and and novice experience. I can spend weeks going through just a subset of what I’ve found, the most promising looking stuff.
But, in my experience, a big obstacle is political and parental bias for schools to teach the industry’s hottest languages. There is so much pressure put on teachers to use Java or C++ just because it is used heavily in industry. Parents, especially, are very vocal in this area. “I want Johnny learning Java because that’s what’s used in the real world!”
3.
lizaloop | February 3, 2016 at 4:04 pm
Three cheers for the Computer Science Ed Community. We need to promote knowledge and skill in all aspects of CS, IT and professional-level programming. That said, permit me to share some hesitations about the approach.
My first problem with this initiative is that it seems you want to prepare teachers for yesterday’s schools. Teaching in a distance learning environment is quite different from classroom methods of ‘present-drill-correct-test-remediate’. Yes, I know today’s schools are still mostly classroom based. But huge numbers of learners are smart-mobile-enabled and this installed base is growing. Wouldn’t we get up to speed more efficiently if we:
a) taught non-coding teachers to be debugging dummies, coaches and resource managers and
b) enlisted the best coding teachers to create open educational resources that all teachers and students could use?
My second problem is that, although everyone should have the opportunity to learn to code, most people will never be very good at it. Historically, most programmers were self-taught and those who find work in the computing industry are likely to be way above average intelligence. Where does that leave the rest of the universe of universal education? This is why I advocate teaching everyone ‘computer literacy’ as a general education subject and ‘computer science’ as a specialty. What I hope we don’t end up with is poorly-skilled beginning programmers trying to teach whiz-kids with the result that everyone is frustrated and the kids convinced that school is a waste of their time. Especially in computer science we need to promote lifelong learning and relearning that is not dependent on a ‘sage on the stage’.
4.
Mark Guzdial | February 3, 2016 at 5:26 pm
Liza, I advocate developing more than one kind of computing education. My new book, Learner-Centered Design of Computing Education, describes how graphic designers, teachers, STEM learners, and office workers learn programming differently and for different purposes — different languages, different parts of programming, different styles of use. There isn’t just one dimension of “poorly-skilled beginning programmers” and “whiz kids.” We should ban “CS-lite” from our vocabulary.
I strongly disagree about the focus on distance education. The latest research shows that geography matters — students are much less likely to take advantage of education opportunities that are not physically close to them.
5.
lizaloop | February 3, 2016 at 6:22 pm
Thanks for your thoughtful reply, Mark. I’ll read your book. I’m not always right but I often provoke conversation!