Posts tagged ‘image of computer science’
I got beat up a bit after my talk at TTU Tapestry a couple weeks ago. Two teachers from the same school stopped me at lunch, after my keynote, and complained about how we at Georgia Tech run our CS1 for Engineers in MATLAB. “How can you expect students to be able to succeed in a programming course, with no high school CS? Why don’t you offer some starter course with no programming first?” I tried to explain that students do succeed in all three of our CS1’s with no previous programming experience, and our data suggest that students learn and succeed (e.g., relatively small percentage drop-out or fail) in these courses. (This is in sharp contrast to the Peter Norvig piece about learning Java in 21 days.)
As the teachers went on with their complaints about me and Georgia Tech, more of the story came out. Some of their students had gone to Georgia Tech in Engineering, had floundered in the CS for Engineers course, and were calling these high school teachers regularly for help. “They spend a huge amount of hours working in labs! More than others in their class, because they didn’t get the chance to take CS in high school. Some kids have band or cheerleading, and they can’t fit CS in. That shouldn’t mean that they have to spend so much extra time in lab to catch up!”
It’s that last argument that I had the most trouble with. Their students didn’t have the background knowledge in CS. It seems clear to me that those students should have to work harder than those that have the background knowledge. That the teachers thought that the extra work was unusual or extreme surprised me. There was an implicit assumption that, because these students didn’t get the background classes due to band and cheerleading, we at Georgia Tech should provide remedial classes. To be clear, it’s not that the CS wasn’t offered at their high school. Their school has two CS teachers. It’s just that cheerleading and band took priority over preparing for the Engineering program at Georgia Tech, which requires computer science.
What is the expectation of high school teachers for the workload in CS1? What is the expectation of high school teachers for what College CS classes will demand? Is it reasonable to expect Colleges to provide the introductory classes that others get in high school? Maybe it is reasonable for Colleges to provide more high school level classes, especially if we want to grow enrollment. But I do worry about the perspective that says that it’s reasonable to skip the intellectual background classes because of non-academic activities. I have nothing against non-academic activities like band and cheerleading. However, the non-academic activities are not an excuse for a lack of background knowledge for higher-education — and if you do miss the background classes, you should expect to have to work harder when you get to College.
A member of the SIGCSE mailing list asked the other day for recommendations on teaching a course on “HCI or Interaction Design.” We at Georgia Tech teach a variety of undergraduate and graduate courses like that, and I figured that lots of others do, too. I was surprised at some of the responses:
- “Our main theme was that computer scientists should know how to implement interfaces but should not try to design them. Frankly, I’ve not seen any evidence that has changed my mind since then.”
- “My personal experience with over 20 years of teaching GUIs is that CS students can be taught to be quite good at the software development aspects of GUIs, that they can be taught to at least understand good interaction design techniques, but that it does not really resonate with them and they do not tend to do it well, and that most of them are hopeless with respect to artistic design.”
Spending too much time in airports lately, I’ve been catching up on some of my TED video watching — the ones that everyone says I have to watch, but I didn’t have time until now. One of those that I watched recently was Stephen Wolfram’s on A New Kind of Science and Wolfram-Alpha. I realized that he’s really making a computing education argument. He explicitly is saying that computing is necessary for understanding the natural world, and all scientists need to learn about computation in order to make the next round of discoveries about how our universe works.
Really? CS is just another form of shop class? Really?
That response heartens Paula M. Krebs, a professor of English at Wheaton College, in Massachusetts, who said she has worried that higher education “could succumb to the language of utility.” Colleges shouldn’t be judged, she argued, on graduates’ first jobs out but rather on the intellectual foundation they provide.
After all, says Ms. Krebs, now an American Council on Education fellow at the University of Massachusetts, “no one thinks high school should be training for the work world only. No one advocates a high-school curriculum of just shop classes, or just computer-science courses. You have to take English, math, history.”
Getting high-quality computer science education into high school would likely smooth out undergraduate enrollment. Rather than the spikes that we get when a new computational technology makes waves, and the lulls when students realize that they don’t know what computer science is, we would have better-informed students. Getting computer science into all high schools would mean that a more diverse population would get to try out computer science, and may discover that they like it. But how do we get good computer science education into high schools? Maybe we take a lesson from Calculus.
In 2010, 245,867 students took the AP Calculus AB test (to contrast with 20,210 AP CS Level A test takers.) That’s evidence that there is a lot of calculus in high schools. How did that happen? Was there a drive to push calculus into all state’s curricula? (I don’t remember ever hearing about “Calculus in the Core”? :-) Was there a national effort to convert existing math teachers into Calculus teachers? Did the Colleges tell the high schools, “We need students who are calculus-literate”?
Here’s my take on how it happened, based on what histories I can find and the growth of Calculus II in high schools. Colleges and universities taught Calculus to undergraduates. The best high schools decided that they would start to teach Calculus, to better prepare their high-achieving students (back in the 1960’s). More colleges and more universities started requiring or expecting calculus. More and more high schools tried to raise their prestige by preparing students to teach calculus. Several organizations (College Board, NCTM, MAA) and universities today train teachers to teach calculus, because those teachers and their schools want it.
If we want high schools to teach computer science to college-bound students, colleges and universities must require computer science of all their students. If not require computer science of all undergraduate students, require it for admission–but be prepared to offer remedial classes, since so few high schools do offer good undergraduate-level computer science. If computer science is important enough for high school students, it’s important enough for undergraduate students.
Efforts like Computing in the Core and the new AP CS:Principles are great ideas, and I hope that they succeed, but they are top-down efforts. A stronger effect comes bottom-up. We want teachers and administrators to say, “My local college requires CS for everyone. I want my students to be well-prepared for college by already knowing CS when they get in the door!” The bottom-up effort is slower — it’s taken decades for calculus to infiltrate high schools to the level that it has. But it’s less expensive and makes change happen pervasively.
If we can’t convince our peers in the colleges and universities that computer science is important, how are we going to convince the high schools? And if we convince our colleges and universities, the high schools will likely follow. We can follow the Calculus lead.
This article from Nature has been leading to a lot of discussions where I’m at. It relates to the CRA’s call for more discussion about post-docs. Are we producing too many PhDs? Or should we preparing more PhD’s for non-academic jobs?
In some countries, including the United States and Japan, people who have trained at great length and expense to be researchers confront a dwindling number of academic jobs, and an industrial sector unable to take up the slack. Supply has outstripped demand and, although few PhD holders end up unemployed, it is not clear that spending years securing this high-level qualification is worth it for a job as, for example, a high-school teacher. In other countries, such as China and India, the economies are developing fast enough to use all the PhDs they can crank out, and more — but the quality of the graduates is not consistent. Only a few nations, including Germany, are successfully tackling the problem by redefining the PhD as training for high-level positions in careers outside academia.
This is clearly the report that Eric Roberts was referencing in his recent (very popular) guest post (over 20K page views!):
For the third year computer science enrollments have increased, ending the precipitous decline in enrollments that followed the bursting of the dot-com bubble in 2000-2001.
When that speculative bubble burst, the subsequent shakeout and unemployment in the tech industry sent enrollments plummeting, raised concerns that the U.S. competitiveness would suffer in the long-run. Enrollments are arching up, but are still well below the peak reached nearly 10 years ago.
The Computer Research Association (CRA), which tracks enrollments and graduation rates for computer science students, says enrollments in computer science programs were up last fall by 10%.