Archive for November 11, 2009
New NSF grant to Snodgrass and Denning to Advance Computing as a Science
“The problem with computer science is that a few people think it equals programming. It’s the same as someone thinking that all of mathematics is algebra,” said Snodgrass, the principal investigator on the grant. “But that doesn’t emphasize the great ideas behind computer science, and that’s what we want to bring out in this grant.”
via Professor Working to Advance Computing as a Science | UANews.org.
What makes programmers happy? Students? Standards vs. Flexibility
I think the fundamental thing that set Rails apart was a culture of putting the programmer first. The idea that Web programming should be fun and that programmers should be enjoying themselves.
The culture bred ideas like Convention over Configuration, where we standardized all the things that programmers do most of the time for most applications anyway.
What makes programmers happy? The Ruby on Rails creator says that it is, in part, creating standards (“Conventions”) that do things for the students. Another school of thought is that programmers want flexibility. These seem to be contrasting perspectives to me. I suppose that the middle ground is that programmers want things that they don’t want to do already done for them, and they want flexibility with the things that they want to do. My bet is that those things (what programmers want to deal with, and what they don’t want to deal with) vary from domain-to-domain, maybe even programmer-to-programmer. Hard to design for.
What do we want for students? Do we want lots of things done for them, or provide them with small pieces (like Lego blocks) that they can put together in a wide variety of different patterns? Do they want standards or do they want flexibility? What do we as teachers want for them? Should we have structures that are in place, so that students can’t build anything but what they do build is supported (I’m thinking Alice and Scratch here, as examples)? Or should we give them maximal flexibility so that they can assemble things and come to understand from the bottom-up (I’m thinking Pascal and the hardware-first approach of Patt and Patel)?
Bigger question: Should the answers to these things be different? Is the balance of standards and flexibility that works for programmers what we also want for students? I’m not suggesting the exact same tools are right for both novices and for experienced programmers, but I am wondering if the balance between what’s provided and what’s flexible might be similar.
Marlene Scardamalia and Carl Bereiter of the University of Toronto’s Ontario Institute for Studies in Education (OISE) have been arguing for years for “higher levels of agency” for children. Think about what you do when you have a question: You go find a source (a website, a book, or an expert) and ask your questions to learn the answer. Think about what we do with children in most classrooms: You find children who don’t know the questions or answers, put them in front of teachers who know both the questions and the answers, then the teacher asks the children questions. Scardamalia and Bereiter want to find ways to put children in the former situation.
What would Scardamalia and Bereiter want to see for computing education? I suggest that the analogy is that we think about students as wanting to build something, and we’re about giving them the tools to build that something with as much support and as little irrelevant detail as possible. But how do we get students to learn what’s useful and important for them, that they might not realize they need or that might not arise when they build yet-another-video-game? That’s the real challenge of placing more agency in the hands of the students — how do you get them to use that agency wisely?
Recent Comments