Posts tagged ‘computing education research’
An interesting set of research questions!
This weekend CSTA Chair Deborah Seehorn and I were attending the ACM Education Council meetings and, as part of the meeting, we participated in a group discussion about critical questions in computer science education research led by CSTA Past Chair Steve Cooper.
Our discussion group consisted of Deborah Seehorn from the North Carolina Department of Public Instruction, Steve Cooper from Stanford University, Dan Garcia from Berkeley, and myself. Because we all have deep roots in K-12 computer science education, the list of questions we came up with covered a breadth of issues and reflect the deep need for research-grounded solutions to the issues we now face.
Last month, I wrote about the new NSF program Improving Undergraduate Stem Education (see NSF page on IUSE here). I talked to Jane Prey about this program a couple weeks ago, and she was concerned. She said that lots of people are expressing doubt about applying for a program that only has a single page description–not the standard multi-page solicitation.
That’s exactly why this is the time to apply! IUSE doesn’t have a solicitation this year, but most likely will in future years. That means that anything goes this year! If you have any idea that you want to get funded, THIS is the year to apply.
The program description is wonderfully broad:
- Want to work on broadening participation in computing? It’s there: “broadening participation of individuals and institutions in STEM fields.”
- Want to work on after school programs, service learning, new ways of structuring your department, formal education research, new ways of measuring learning? It’s all there: “experiential learning, assessment/metrics of learning and practice, scholarships, foundational education research, professional development/institutional change, formal and informal learning environments.”
Want to work on teacher professional development, or even adult learners? It’s there: “educating a STEM-literate populace, improving K-12 STEM education, encouraging life-long learning, and building capacity in higher education.”
In short, the lack of a formal solicitation means that there are few barriers. You should go for it.
From here on, this is my advice based on talking with NSF program managers and having written (rejected mostly, but a bunch accepted) proposals. This is not coming from NSF:
- You need to demonstrate that your proposal has intellectual merit and broader impacts. That’s part of any NSF proposal.
- No, there’s nothing there that says you must have evaluation, but if you read phrases like “empirically validated teaching practices,” you have to believe that funded proposals will have good evaluation. You can probably be competitive without an external evaluator if you come up with a good evaluation plan in the proposal body itself. If you don’t know how to do this, bring in an external evaluator.
- The really tough part of applying to a program without a solicitation is deciding how much to budget. Here’s me just gazing into a crystal ball: Smaller but realistic budgets have the greatest chance of getting funded. If you can do your project in $100-200K/year for two to three years, you increase your odds of getting funded. I think there’s a psychological barrier for review committees at a $1M proposal, so stay below that or make your really proposal great.
The big message is: Apply on February 4, 2014. Take this rare opportunity to get your wildest and most exciting ideas on the table at NSF.
Excellent post and interesting discussion at Neil Brown’s blog, on the question of the role of types for professional software developers and for students. I agree with his points — I see why professional software developers find types valuable, but I see little value for novice programmers nor for end-user programmers. I have yet to use a typing system that I found useful, that wasn’t just making me specify details (int vs Integer vs Double vs Float) that were far lower level than I cared about nor wanted to care about.
This paper is getting a lot of discussion here at Georgia Tech:
In preliminary research, professors at Harvey Mudd College haven’t found that students learn more or more easily in so-called flipped courses than in traditional classes, USA Today reports. In flipped courses, students watch professors’ lectures online before coming to class, then spend the class period in discussions or activities that reinforce and advance the lecture material.
Earlier this year, the National Science Foundation gave four professors at the college in Claremont, Calif., a three-year grant for $199,544 to study flipped classrooms. That research isn’t complete yet, but the professors already tried flipping their own classes last year and found “no statistical difference” in student outcomes.
The reason why it’s generating a lot of discussion is because we know that it can make a difference to flip a classroom. Jason Day and Jim Foley here at Georgia Tech did a careful and rigorous evaluation of a flipped classroom seven years ago (see IEEE paper on their study). We all know this study and take pride in it — it was really well done. It can work. The Harvey Mudd study also shows that it can be done in a way that it doesn’t work.
That’s really the story for all educational technology. It can work, but it’s not guaranteed to work. It’s always possible to implement any educational technology (or any educational intervention at all) in such a way that it doesn’t work.
The UChicago OS4CS study is now finished, and they have now summarized across all the components. The main five challenges are:
1. There is no shared understanding of what Computer Science is.
2. More comprehensive, quality, instructional resources are needed.
3. Computer science is not prioritized in schools. (An issue that I considered when explaining the lack of CS Ed in the US.)
4. There is a need for more CS teachers.
5. CS teachers are isolated.
THE “BUILDING AN OPERATING SYSTEM FOR COMPUTER SCIENCE” (OS4CS) STUDY
was designed as a collaborative research and communication effort to establish a more comprehensive understanding of our nation’s current high school computer science (CS) teaching population, the support they have, and contexts in which they teach. The OS4CS study has five major components: (1) the Professional Development (PD) Landscape Study; (2) the Teacher Capacity Study; (3) Stories from the Field; (4) the CS in Schools Study; and (5) the Design Studio. While each component of the study can be examined independently, when considered together they complement each other, providing a broad view of the issues affecting CS education as viewed through the lenses of different stakeholders. The study includes perspectives from teachers, PD providers, school administrators, community leaders, and others.
I have a theory that predicts when (if?) we will see more computing education research students in the US. I think that it might also help understand when computer science education (e.g., an AP course in CS) might reach the majority of US high schools.
Why are there so few CS Ed research students in the US?
Recently, I hosted a visit from Dr. Nick Falkner (Associate Dean (IT), Faculty of Engineering, Mathematical and Computer Sciences) and Dr. Katrina Falkner (Deputy Head and Director of Teaching, School of Computer Science) from the University of Adelaide. We got to talking about the lack of CS education research (CER) graduate students in the United States. There are lots of PhD students studying CER in Australasia, Europe, and Israel. To offer a comparison point, when we visited Melbourne in 2011, they had just held a doctoral consortium in CS Ed with 20 students attending, all from just the Melbourne area. The ICER doctoral consortium at UCSD in August had 14 students, and not all 14 were from the US. The Australasian Computing Education will have its own DC, and they’re capping enrollment at 10, but there are far more CER PhD students than that in the region. I get invitations regularly to serve on review committees for dissertations from Australia and Europe, but rarely from the US.
Why is CER so much more popular among graduate students outside of the US? I’ve wondered if it’s an issue of funding for research, or how graduate students are recruited. Then it occurred to us.
Check out the Falkners’ titles: Associate Dean, Deputy Head (Katrina will be Head of School next year), Director. I remarked on that, and Nick and Katrina started naming other CS education research faculty who were Chairs, full Professors, and Deans and Directors in Australia. We went on naming other CS education researchers in high positions in New Zealand (e.g., Tim Bell, Professor and Deputy Head of Department), England (e.g., the great Computing Education Group at Kent), Denmark (e.g., Michael Caspersen as Director of the Center for Science Education), Sweden (e.g., CS Education Research at Uppsala), Finland, Germany, and Israel.
Then I was challenged to name:
- US CS Education researchers who are full Professors at research intensive universities;
- US CS Education researchers who are Chairs of their departments or schools;
- US CS Education researchers who are Deans or Center Directors.
I’m sure that there would be some quibbling if I tried to name US researchers in these categories. I don’t think anyone would disagree that none of these categories requires more than one hand to count — and I don’t think anyone needs more than a couple fingers for that last category.
We have great computing education researchers in the United States. Few are in these kinds of positions of visible prestige and authority. Many in the ICER community are at teaching institutions. Many who are at research intensive universities are in teaching track positions.
Computing Education Research is not as respected in US universities as it is in other countries. In these other countries, a graduate student could pursue computing education research, and might still be able to achieve tenure, promotion, and even an administrative position in prestigious institutions. That’s really rare in the United States.
There are many reasons why there isn’t more CER in research-intensive universities. Maybe there’s not enough funding in CER (which is an outcome of lack of respect/value). Most people don’t buy into computing for all in the US. Unless there’s more CER in schools, maybe we don’t need much CER in Universities. I’m actually not addressing why CER gets less respect in the US than in other countries — I’m hypothesizing a relationship between two variables because of that lack of respect.
The status of CER is definitely on the mind of students when they are considering CER as a research area. I’ve lost students to other areas of research when they realize that CER is a difficult academic path in the US. My first CS advisor at U-Michigan (before Elliot Soloway moved there) was strongly against my plans for a joint degree with education. “No CS department will hire you, and if they do, they won’t tenure you.” I succeeded into that first category (there was luck and great mentors involved). It’s hard for me to say if my personal path could ever reach categories 2 or 3, and if barriers I meet are due more to my research area than my personal strengths and weaknesses. All I can really say for sure is that, if you look around, there aren’t many CER people in those categories, which means that there is no obvious evidence to a graduate student that they can reach those kinds of success.
So, here’s my hypothesis:
Hypothesis: We will see more computing education research graduate students in the US when CER is a reasonable path to tenure, promotion, and advancement in research-intensive US universities.
Why is there so little computing education in US high schools?
Other countries have a lot more computing education in their high schools than we do in the United States. Israel, New Zealand, Denmark, and England all have national curricula that include significant computer science. In Israel, you can even pursue a software engineering track in high school. They all have an advantage over the US, since we have no national curricula at all. However, Germany, which has a similarly distributed education model, still has much more advanced computing education curricula (the state of Bavaria has a computing curriculum for grades 6-12) and CS teacher professional development. What’s different?
I suspect that there are similar factors at work in schools as in Universities. Computing education is not highly valued in US society. That gets reflected in decisions at both the University and school systems. I don’t know much about influence relationships between the University and the K-12 system. I have suggested that we will not have a stable high school CS education program in the United States without getting the Schools of Education engaged in teacher pre-service education. I don’t know how changes in one influence the other.
However, I see a strong correlation, caused by an external social factor — maybe some of those I mentioned earlier (not enough funding for CER, don’t need more CER, etc.). Professors and University administrators are not separate from their societies and cultures. The same values and influences are present in the University as in the society at large. What the society values has an influence on what the University values. If a change occurs in the values in the society, then the University values will likely change. I don’t know if it works in the other way.
So here’s where I go further out on a limb:
Second Hypothesis: We will see the majority of US high schools offering computer science education (e.g., AP CS) when CER is a reasonable path to tenure, promotion, and advancement in research-intensive US universities.
Here are two examples to support the hypothesis:
- Consider Physics. No one doubts the value of physics. Within society, we’re willing to spend billions to find a Higgs Boson, because we value physics. Similarly, we strive to offer physics education to every high school student. Similarly, physics faculty can aspire to become Deans and even University Presidents. Physics is valued by society and the University.
- Consider Engineering Education Research. Twenty years ago, engineering education research was uncommon, and it had little presence in K-12 schools. Today, there are several Engineering Education academic units in the US — at Purdue, Clemson, and Virginia Tech. (There’s quite a list here.) Engineering education researchers can get tenured, promoted, and even become head of an engineering education research academic unit. And, Engineering is now taught in K-12 schools. Recently, I’ve been involved in an effort to directly interview kids in schools that offer AP CS. We can hardly find any! Several of the schools in the Atlanta area that used to offer AP CS now offer Engineering classes instead. (Maybe the belief is that engineers will take care of our CS/IT needs in the US?) Engineering has a significant presence in K-12 education today.
I don’t think that this hypothesis works as a prescriptive model. I’m not saying, “If we just create some computing education research units, we’ll get CS into high schools!” I don’t know that there is much more CS Ed in schools in Australia, Sweden, or Finland than in the US, where CER is a path to advancement. I hypothesize a correlation. If we see changes at the Universities, we’ll be seeing changes in schools. I expect that the reverse will also be true — if we ever see the majority of US high schools with CS, the Universities will support the effort. But I thnk that the major influencer on both of these is the perception of CER in the larger society. I’m hypothesizing that both will change if the major influence changes.
(Thanks to Briana Morrison, Barbara Ericson, Amy Bruckman, and Betsy DiSalvo on an earlier draft of this post.)
I got to see some of this when I visited Indiana last year. It’s really interesting — young children (kindergarten) play at understanding systems by exploring how bees work.
The National Science Foundation has awarded over $999,000 to three Indiana University faculty members for a unique effort intended to shed light on how children best learn about complex systems and how new technologies can best serve that learning.
The NSF is granting the money to Kylie Peppler and Joshua Danish, both assistant professors in the Learning Sciences program at the IU School of Education, and Armin Moczek, associate professor in the Department of Biology in the IU College of Arts and Sciences. Specifically, the project will develop electronically enhanced puppets, or “e-puppets,” that allow students to simulate biological phenomena such as honeybees collecting nectar or ants scavenging for food. Work on “Design and Implementation (DIP) BioSim: Developing a Wearable Toolkit for Teaching Science Through Embodied Play” begins immediately.
Congratulations! Well-deserved! Here’s a link to the original paper.
Brad A. Myers, professor in the Human-Computer Interaction Institute, will be honored for the second year in a row as the author of a Most Influential Paper at the IEEE Symposium on Visual Languages and Human-Centric Computing, (VL/HCC). He is the first person to win the award twice since it was established in 2008.
Myers and his co-authors — former students Andrew Ko, the first author, is now an assistant professor at the University of Washington, and Htet Htet Aung, now a principal user experience designer at Harris Healthcare Solutions in the Washington, D.C., area — will receive the Most Influential Paper award at VL/HCC 2013, Sept. 15-19 in San Jose, Calif. The symposium is the premier international forum for research on how computation can be made easier to express, manipulate, and understand.
Their 2004 paper, “Six Learning Barriers in End-User Programming Systems,” focused on barriers to learning programming skills beyond the programming languages themselves. Their study of beginning programmers identified six types of barriers: design, selection, coordination, use, understanding, and information. This deeper understanding of learning challenges, in turn, supported a more learner-centric view of the design of the entire programming system.
The announcement is good news:
Congratulations Tennessee! This year, for the first time, the State of Tennessee Board of Education allows high school computer science courses to count towards graduation requirements. Now, Advanced Placement Computer Science A satisfies a math requirement for all high Tennessee high school students.
Then there’s a claim later on the same page, “In these states, enrollment in computer science is higher (particularly among women and students of color), compared to the other states.” That claim is intriguing. Where’d they get this data? I’d love to get CS enrollment data by state! So I followed the link to this PDF.
Where I found this graph:
I don’t know where one can get AP CS class size data. I’ve not seen that from the College Board. As far as I can tell from the AP Report to the Nation, the College Board doesn’t have enrollment data. What could they be counting to get these results, using variables from the College Board?
The numbers looked close to something that I’d seen in Barb’s data. So, I tried an analysis with Barb’s spreadsheet of AP CS data. I created a “CountsCS” variable (1=on the Code.org list, 0=everyone else), and looked at the number of AP CS test takers in a state divided by the number of schools passing AP CS audit in the state. I think of this as the “yield” — the number of actual test-takers by teacher (assuming one teacher per school, which is pretty much the rule for AP CS). Below are the yield distributions for 2012 (with average and +/- standard deviation). These numbers look pretty close to the above, so I’m guessing that this is what they’re counting (for some year previous to 2012). It is true that the average yield (not enrollment) for CountCS states is higher than for non-CountCS states. There isn’t a statistically significant difference, though (using t-test with a 95% confidence interval).
It could be that these distributions will become more distinct over time. Some states (like Tennessee) have just made CS count. It will take years to see an impact.
Digging deeper, I looked at the number of test-takers by state in terms of whether the state counts CS. Below is the distribution. There is on average more test-takers in states that count CS, but the distribution is broad. There isn’t a statistically significant difference.
Given that the test-takers are not significantly different based on whether a state counts CS or not, I didn’t think that the minority or female numbers would either. It is true that there are on average more women test-takers from states that count CS, but the distribution is large. The difference is not statistically significant. The CountCS states include Vermont (which had 1 female AP CS test-taker in 2012), but does not include North and South Dakota, each of which had 2 female AP CS test-takers in 2012. (Alaska, Mississippi, Montana, and Wyoming all had zero female AP CS test-takers, and none of them count CS.) I didn’t see significant differences based on under-represented minority groups.
If we really want to show that counting CS matters, we’d really want to do it a different way entirely. We should compare the same state pre/post making the decision to count CS. Even then, we’d want to give it a few years to filter through the system (e.g., Juniors and Seniors in high school are unlikely to change their plans for graduation to take CS as soon as it counts). I do believe that counting CS towards high school graduation will increase the number of students taking CS, but measuring that impact is challenging.
How young can we teach kids to code? Is it worth teaching really young kids to code? The argument below is missing the whole point of the difference between natural and artificial languages. Programming requires specification of details that do not occur in natural language (as seen in John Pane’s work, and related to the “Communicating with Aliens” problem). Why should our evolved language acquisition systems help with that?
The article linked below is pretty good as these things go, but they’re missing a lot of nuance in what it means “to code.”
- The article argues that students can start learning computer science “before they learn to read and write.” What does it mean to learn computer science then? Can we talk about manipulating symbol systems? About notation? If you pull out literacy, what are you teaching?
- The reports I’ve read about kids learning to program (like Roy Pea’s reports from decades ago, to Yasmin Kafai’s reports on students working in Scratch) suggest that young kids who “program” tend to build sequences of statements, with few conditionals or loops or defining named chunks of code (functions or procedures or whatevers). Is that what most of us think about when we’re suggesting “learn to code”?
- So, let’s say that you successfully teach some 5-6 year old to write some programs that we’d agree looks like “coding.” Do you really expect that to have an impact 20 years later when they reach working age (as is suggested as the potential value in the article below)? Especially if there’s almost no use of programming in formal education over the following 12 years?
I am not convinced that we can fruitfully teach five or six year olds to code — though it’s certainly worth exploring and experimenting with. I would not expect it to have much effect, though. If we had a school system that used code in interesting and powerful ways across the curriculum, then starting to teach kids to program at five or six as steps toward computational literacy would make lots of sense. But if only 12% of US high schools have computer science, and far fewer middle and elementary schools have it, and CS is still just this little class in the corner that doesn’t connect to anything else — then you can’t expect the coding that happens at that age to have much effect.
But that pessimism is at odds not only with the experiences of Gibson and other pioneering teachers but also with the science of language acquisition. Extensive research has shown that because young brains are so adept at picking up languages, it’s best to introduce children to foreign tongues as early as possible. This is why so many ambitious parents are now clamoring for kindergartens that offer intensive Mandarin—they want to give their kids the best possible shot at learning a key language of the Asian century.
What those parents likely don’t realize is that the same neural mechanisms that make kids sponges for Mandarin likely also make them highly receptive to computer languages. Kindergartners cannot become C++ ninjas, but they can certainly start to develop the skills that will eventually cement lifelong fluency in code.
This isn’t really a part of my live coding series, but maybe it’s a good transition. I recently re-found this tech report, that I wrote in 1989–on teaching Logo by having kids build music, collaborative. We didn’t have the lovely separation of program and process that the live coders have, but we did have an interesting opportunity to play with music and phrasing and chords and computing with children (ages 9-11, roughly).
When ten students are exploring music in the same small room, the discovery of harmonies and disharmonies is almost guaranteed. The students soon discovered that songs played together sound different than when each is played separately. The Atari 800 supports multiple voice sounds, and in some classes we used multiple voice play statements. Ironically, even in those classes where we used the full capabilities of the Atari, the students seem to prefer single voices emitting from multiple computers than multiple voices emitting from a single computer.
When students remarked on the sound of multiple computers playing simultaneously, I would set up some joint music projects. First, I would explain to the students how to calculate the length of a song; that is, the sum of the durations in the song. So play [c 20 e 30 rest 10 g 40] has a duration of 100 (20+30+10+40).
We had various multiple-computer activities based on the length of songs in these classes. One of the first was to have each student write a song whose length was a large number, say, 500. The students were to enter their songs and the command to play them, but to wait before hitting the Return key. On the count of three, all the students would press Return at once.
The resulting song was always interesting. The younger students and those less confident in mathematics tended to play only two or three notes, each with a long duration. The older students and those wishing to show off would tend to write long songs with shorter durations (e.g., five or ten beats per note). When the group song was played, the younger students’ part became a background (sometimes harmonious, mostly dischordant) for the older students’ melody.
Three of the nights of the Dagstuhl Seminar on Live Coding included performances. Several of these combined live coders with analogue instruments (guitar, piano, cello, and even kazoo), which was terrific to watch.
I found one of their practices fascinating, with real potential for the computer science classroom. Alex Maclean introduced it as “Mexican Roulette,” because they first did it at a live coding event in Mexico City. Live coders take turns (the roulette part) at a shared computer connected to speakers at the front of the room.
- The first live coder types in some line of code generating music, and gets it running. From now on, there is music playing.
- The next live coder changes the code any way she or he wants. The music keeps playing, and changes when the second coder then evaluates the code, thus changing the process. Now the third coder comes up, and so on.
- If a live coder is unsure, just a few constants might be changed.
- If a live coder makes a syntax error, the music continues (because the evaluation that would change the process fails), and the next coder can fix it. You can see the error messages on the right in the picture above, which I took mid-way through the roulette.
- If a live coder makes a mistake (at one point, someone created quite a squeal), the next live coder can fix it. Or embellish it.
What I found most promising about this practice is that (to use Briana Morrison’s phrase for this) nothing is ever wrong here. The game is to keep the music going and change it in interesting ways. Responsibility for the music is shared. Mistakes are part of the process, and are really up for definition. Is that a mistake, or an exploration of a new direction? This activity encourages playing with syntax and semantics, in a collaborative setting. It relies on the separation of program and process — the music is going, while the next live coder is figuring out the change. This could be used for learning any language that can be used for live coding.
I have a lot more that I want to think through and share about the seminar. I’m doing a series of blog posts this week on live coding to give me an opportunity to think through some of these issues.
I saw four sets of computing education research questions in live coding. These are unusual research questions for me because they’re Vygotskian and non-Constructionist.
Live coding is about performance. It’s not an easy task. The live coder has to know their programming language (syntax and semantics) and music improvisation (e.g., including listening to your collaborator and composing to match), and use all that knowledge in real-time. It’s not going to be a task that we start students with, but it may be a task that watching inspires students. Some of my research questions are about what it means to watch the performance of someone else, as opposed to being about students constructing. I’ve written before about the value of lectures, and I really do believe that students can learn from lectures. But not all students learn from lectures, and lectures work only if well-structured. Watching a live coding performance is different — it’s about changing the audience’s affect and framing with respect to coding. Can we change attitudes via a performance?
Vygotsky argued that all personal learning is first experienced at a social level. Whatever we learn must first be experienced as an interaction with others. In computing education, we think a lot about students’ first experience programming, but we don’t think much about how a student first sees code and first sees programming. How can you even consider studying a domain whose main activity you have never even seen? What is the role of that coding generating music, with cultural and creative overtones? The social experience introducing computing is important, and that may be something that live code can offer.
Here are four sets of research questions that I see:
- Making visible. In a world with lots of technology, code and programmers are mostly invisible. What does it mean for an audience to see code to generate music and programming as a live coder? It’s interesting to think about this impact for students (does it help students to think seriously about computing as something to explore in school?) and for a more general audience (how does it change adults’ experience with technology?).
- Separating program and process. Live coding makes clear the difference between the program and the executing process. On the first day, we saw performances from Alex MacLean and Thor Magnusson, and an amazing duet between Andrew Sorensen at Dagstuhl and Ben Swift at the VL/HCC conference in San Jose using their Extempore system. These performances highlighted the difference between program and process. The live coders start an execution, and music starts playing in a loop. Meanwhile, they change the program, then re-evaluate the function, which changes the process and the music produced. There is a gap between the executing process and the text of the program, which is not something that students often see.
- Code for music. How does seeing code for making music change student’s perception of what code is for? We mostly introduce programming as engineering practice in CS class, but live coding is pretty much the opposite of software engineering. Our biggest challenges in CS Ed are about getting students and teachers to even consider computer science. Could live coding get teachers to see computing as something beyond dry and engineering-ish? Who is attracted by live coding? Could it attract a different audience than we do now? Could we design the activity of live coding to be more attractive and accessible?
- Collaboration. Live coding is a collaborative practice, but very different from pair programming. Everybody codes, and everybody pays attention to what the others are doing. How does the collaboration in live coding (e.g., writing music based on other live coders’ music) change the perception of the asocial nature of programming?
I’ll end with an image that Sam Aaron showed in his talk at Dagstuhl, a note that he got from a student in his Sonic Pi class: “Thank you for making dull lifeless computers interesting and almost reality.” That captures well the potential of live coding in computing education research — that activity is interesting and the music is real.
Interesting claim below. Do we believe that being able to build a JIT compiler will be a critical threshold for programming in 2040? Or will programming become so much a literacy, that there will be people who can just write grocery lists and letters to Grandma and there will be Shakespeares? I’m predicting a broader spread, not a higher bar.
The FizzBuzz problem described below is pretty interesting, a modern day version of the Rainfall problem. I will bet that the results claimed for FizzBuzz are true, but I haven’t seen any actual studies of it yet.
While that may be true today, what will matter far more in the future is the quality of programmers, not the quantity. Any programmer who can’t hack together a JIT compiler in 2040 will be as useless as a programmer who can’t solve FizzBuzz today.
Thanks to Elizabeth Patitsas for this piece. Fascinating experiment — people solve the exact same math problem differently if the context is “whether a skin cream works” or “whether gun control laws work,” depending on their politics. The statement below is an interesting interpretation of the results and relates to my questions about whether computing education research actually leads to any change.
For study author Kahan, these results are a fairly strong refutation of what is called the “deficit model” in the field of science and technology studies—the idea that if people just had more knowledge, or more reasoning ability, then they would be better able to come to consensus with scientists and experts on issues like climate change, evolution, the safety of vaccines, and pretty much anything else involving science or data (for instance, whether concealed weapons bans work). Kahan’s data suggest the opposite—that political biases skew our reasoning abilities, and this problem seems to be worse for people with advanced capacities like scientific literacy and numeracy. “If the people who have the greatest capacities are the ones most prone to this, that’s reason to believe that the problem isn’t some kind of deficit in comprehension,” Kahan explained in an interview.