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.
Add comment November 11, 2009
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?
Add comment November 11, 2009
The Origins of APL – 1974 Video
A really interesting interview with Kenneth Iverson and others on the development of APL. What’s striking is that APL was invented as a human-to-human communication tool, used mostly in classrooms, which was years later turned into a programming language: The Origins of APL – 1974 Video by Catherine – MySpace Video.
Add comment November 10, 2009
The need for hybrids: A call for more DBR
I’ve been thinking a lot about two of the papers at Informatics Education Europe last week.
First paper: Faculty at UPC Barcelona decided that students were coming into CS2 with insufficient problem-solving skill. The decided that part of the problem is that paper-based tests lead to grading based on student intent instead of on the actual code, e.g., we let students get away with more errors. They decided to move to a pure “problem-oriented approach” for their CS1. Students are given 100 worked example problems, and 200 problems to solve. Students submit their solutions on-line, and get feedback on how well their programs succeeded against a test suite. First test is free, all others dock points if unsuccessful.
The project was successful in that students coming into CS2 have much better problem-solving skills. Unfortunately, only 20-25% of the students make it through.
That result surprised me, given what we know about worked examples research. How much do students make use of the worked examples? Answer: Almost none at all. Students just try to solve the problems, and don’t actually try to learn anything.
Second paper: The Open University in The Netherlands actually teaches their CS1 face-to-face, for the most part. Teacher and students drive to some common location and conduct classes in small groups of about 30. They decided to try an experiment where they ran the classes completely on-line. One section of 13 was asynchronous — students posted to a threaded discussion group. Another section of 15 met in a synchronous forum with text chat and a shared whiteboard. At the end of the 12 week term, the asynchronous class went from 13 down to 1, while the synchronous class went from 15 to 10, which was the drop-out rate that they normally have with face-to-face classes.
While these are both really interesting papers, nobody would ever want to do these classes as described again. They make for interesting papers, where they only try one pure approach: Just problems, just synchronous, just asynchronous. A real, successful class would be a hybrid of different approaches.
- Got an expensive face-to-face class? Add some synchronous on-line activities in lieu of some lectures.
- Got an asynchronous class where students are dropping out? Add some synchronous and even face-to-face sessions to build up motivation.
- If students don’t read the problems, add some assignments where students have to demonstrate that they read, not just coded. Add some lectures where problems are discussed.
Why don’t we read more papers like that? Because hybrids don’t play well with our sense of rigorous experimental research. We want to know exactly what inputs influenced what outcomes. We want to know that problems or asynchronous discussions failed or succeeded, period. Making it work doesn’t make for a paper that gets accepted in many forums.
The learning sciences community faced this same problem. You can do a study that answers a question and results in a publication, but doesn’t really result in successful classroom. Or you can mix things up so that it really works, but then you can’t get the results published. They defined a model of research called design-based research (DBR), first proposed by Alan Collins and Ann Brown. The idea is to build a classroom that works. Through a process of measuring and iterating, or drawing off particular hypotheses to test in laboratory experiments, you develop evidence for what factors are influencing what outcomes. DBR recognizes, however, that good solutions tend to have multiple interacting factors.
We need hybrid approaches. Pure approaches only lead to good papers. We have too many challenges in computing education to aim for only good papers. We need great papers that show working educational contexts that other can replicate, where the factors are messy and will take us a while to tease apart and understand completely. Documenting how we get it right and finding someplace to publish those papers are the first step. Understanding it factor-by-factor is a later step.
Add comment November 10, 2009
BLOG@CACM on second day of Informatics Education Europe
I blogged the second day of Informatics Education Europe at BLOG@CACM. The second day focused on accreditation, expanding enrollments, student engagement, parellelism, and interdisciplinarity. Pictures are now available from the second day.
Add comment November 6, 2009
BLOG@CACM on first day of IEE IV
I’m blogging the Informatics Education Europe conference IV on BLOG@CACM. You can read my first day report there. Pictures from the first day are available here.
Add comment November 6, 2009
Talk on Meeting Everyone’s Needs for Computing
I just gave a talk at Informatics Education Europe IV in Freiburg, Germany, on Meeting everyone’s need for computing: IEEIV-ComputingForAll-Oct2009-v5.ppt
My story in this talk is that we have a bigger computing education problem than just being concerned about the number and diversity of students who are majoring in computing or informatics. The “bigger” problem is the number of people who program and who want to learn more computer science, but who do not want to become CS majors or learn to be software engineers. A paper out of CMU predicts that we’ll have around 3 million software developers in the US in 2012, and about 13 million end-user programmers. There are four times as many people who will want to know some CS and some programming (from Brian Dorn’s graphics designers, to computational scientists and engineers, to high school teachers), but reject software engineering. I argue that we should care about them, too, and that approaches like Media Computation will reach and help these audiences.
The questions went on and on, eating up 10 minutes of our coffee break. The part that got people stirred up was, “Are you giving up on getting women into software engineering?” and “Don’t you think we need software engineers, too?!?” And of course, I agree, we desperately need software engineers and more diversity in computing — that’s what I’m focusing on in “Georgia Computes!“ However, I really do believe that we are missing an opportunity to have impact and to improve the world, if we don’t also teach those people who want computing, but do not want to be professional software engineers.
There were also questions about implications of this model. “Are you suggesting whole new degree programs, to ‘hide’ the informatics or computing?” I said that I wasn’t about “hiding” anything, and while we are finding that new degree programs like Computational Media are successful, I mostly see the need for new classes. “Do you design contextualized computing from the careers back, or from student perceptions forward?” We started from the former, but shifted to the latter. The problem is that students don’t really know what their careers are really about. When we talk to engineering students about modeling differential equations in code, they don’t really believe us — they themselves don’t know what engineers do with code. So we end up having to explain to them what the career choices they’ve made are, what practitioners in that field really do.
I’ve been asked to blog the conference on Blog@CACM. I’ll link back here.
4 comments November 5, 2009
Georgia Board of Regents accepts APCS as “counting”
Just found a great piece of email in my (massive!) unread pile from the Board of Regents of the University System of Georgia.
Here’s the latest on the AP CS. After much thought and discussions on the AP CS course, we have decided to accept the AP CS course as a 4th course for admission to the USG institutions. However, the course will be listed in a separate category.
To follow up…..I do have a question for you. Would it be helpful to the students and our institutions if the AP CS course was to be accepted as a fourth science course only, or as a fourth science OR math course? We would like to do what’s best for the students and our institutions.
This could hardly be a better answer for us. Computing is something different, so it gets a new category. Of course, yes, we have asked for the “science OR math” option — which also matches with the understanding that computing has aspects of both, and helps students with either.
There’s another step yet. This is the University saying, “This will count for University admissions.” Next, the Georgia Department of Education has to say, “And we’ll count that for high school graduation.” Normally, that should be nearly automatic, but creating a whole new category of courses may take some more convincing. We’ll keep you informed.
2 comments November 5, 2009
Filling the Doughnut-Hole with Computing Education
When Barb was a little girl, her grandfather was mayor for 10 years of Ubly, a small town (no traffic light, just one blinking light in the center of town) in the “Thumb” of Michigan. The town had a movie theater, a grocery, and a thriving social community. Today, Ubly is much quieter. The movie theater and grocery have both gone. Most of the farmers have gone from Ubly.
Yesterday, Barb and I visited Soppe-le-Haut and Soppe-le-Bas in France, the towns where that grandfather’s ancestors came from. Both town are small but thriving, with a few dozen homes each. Each home has a barn. Most of those barns contain tractors. Almost all of the homes have chickens, cows, or horses in their yards.
I don’t really understand the economics of that difference. Why did American small farms fall to large corporate farms, while Europe retained their small farms? Why did Barb’s grandfather’s town shrink while his ancestors town thrived?
A new book by Patrick J. Carr and Maria J. Kefalas is also concerned about the declining rural America. Their new book Hollowing Out the Middle and the interview with them in this week’s Newsweek describes their suggested solution. In part, they would like to see rural communities draw back young families, with a strong Internet infrastructure, to support telecommuting. Information technology is one of their targeted industries.
Why doesn’t that just happen? In keeping with a recent theme of this blog, these authors point out that the rural education system is aimed at supporting the “best and brightest,” and ignoring the bottom half of the students — who are most likely to stay.
First, by changing their attitudes toward their high-school graduates. Small towns traditionally put all their efforts behind the smart students (whom the authors label “Achievers”), pushing them out to four-year universities in cities, where they are much more likely to succeed and, unfortunately for the town, much more likely to stay. Students who are less accomplished or driven are given little support, but they are also the ones who are most likely to remain in their small towns post-graduation. In order to make sure these kids succeed, and thus benefit the community, the authors argue, they need to be better trained in areas such as computer technology, health care, sustainable agriculture, and green energy, areas geared toward the modern global economy.
I suggest that we do not currently know how to make these authors’ vision come to fruition. Our CS1 methods lose the bottom 30-50% of the students. Those are the students that these authors would like to see become the backbone of the rural economy in the United States, telecommuting to become part of distributed software development teams. We need to develop teaching methods that lead to success for a greater number of students, to educate the “rest” of the students, for visions like this to succeed.
Add comment November 4, 2009
Frank Zappa says Programming is Art
I saw this in a storefront in Luzern, Switzerland yesterday:
It was the quote that caught my eye, “Art is making something out of nothing and selling it.” I found it attributed to Frank Zappa. Programming is pretty much “making something out of nothing and selling it,” which says that Frank Zappa and Donald Knuth agree — programming is art.
Add comment November 3, 2009



