Revamp the Computer Science Curriculum Leads to Shortage of Teachers

<p>The section I find most interesting is quoted:</p>

<p>
[quote]
“The old-fashioned way of computer science is, ‘We’re going to teach you a bunch of stuff that is fundamental and will be long-lasting but we won’t tell you how it’s applied,’ ” said Michael Zyda, director of the University of Southern California’s GamePipe Laboratory, a new games program in the computer science major. With the rejuvenated classes, freshman enrollment in computer science at the university grew to 120 last year, from 25 in 2006.</p>

<p>Still, computer science graduates do not come close to filling the jobs available. Technology is one of the few bright spots in the economy, with jobs growing at double the rate of job growth over all, according to federal statistics. And colleges say they do not have enough resources or professors to teach interested students. Meanwhile, the programs woefully lag in attracting women and many minorities, though the share of computer science degrees granted to women climbed 2.5 percentage points last year to 14 percent.

[/quote]
</p>

<p><a href="http://www.nytimes.com/2011/06/11/technology/11computing.html?_r=1%5B/url%5D"&gt;http://www.nytimes.com/2011/06/11/technology/11computing.html?_r=1&lt;/a&gt;&lt;/p>

<p>The article mentions schools like Stanford, UW, which are large and well-funded school. I took a look at CS @ Stanford, and looks pretty interesting:
Program</a> Sheets</p>

<p>What do you guys think of the bold part of the quote? This past semester I took Software Design, and my professor gave a six-week Android design project. It was very nice. At first I didn't expect any good outcomes because the professor himself doesn't really know how to program Android. He often confuses himself. But the motivation pushes the students to be creative and learn as much as possible from the Internet. I forgot to mention that my professor is over 85 years old. I won't mention his name.... and please don't reveal his name if you are guessing right now.</p>

<p>At my school the CS professors are more focused in image processing and robotics. Cryptography is getting more popular because of the two additional young professors. Very few of our students find any of those classes interesting enough to prepare them for the industry. I often hear my underclassman complain about how professors are not interested in making students to MAKE things. They complain they are taught to fill in the blanks instead. They feel like CS at our school is only preparing the students for graduate school.</p>

<p>This also brings up a interesting debate: ** adjunct or tenure**. It was an article in our school's magazine recently. Many students find adjunct more helpful because many of them take the teaching more seriously than the tenure, and the average age of the adjunct is much younger than the average age of the tenure. I don't know any adjuncts teaching CS at my school, because the rest of the positions are filled by the graduate students. Graduate students also tend to more like adjunct as many of them are young and they try their best to teach. </p>

<p>Is it really that we can't find any good teachers? What do you guys think?</p>

<p>-- EDIT --
I missed out the part of the curriculum. I understand the needs of some of the advanced theoretical CS courses. But what is your opinion about the typical CS curriculum?</p>

<p>The tech bubble crash of the early 2000s probably scared a lot of potential CS students away. (Of course, those that went instead to civil engineering when it was the hot field in 2005 graduated in 2009 into the real estate and construction bubble crash.)</p>

<p>As far as the curriculum goes, there can be considerable variation. Some schools have a long list of specified courses for CS majors. Others (e.g. Stanford, based on the link you posted) have various options of concentrations to give students the ability to emphasize what they are interested in. Others (e.g. Berkeley) have very few specific course requirements beyond the introductory courses; students have a large amount of freedom in choosing advanced level CS courses.</p>

<p>

</p>

<p>I agree that there’s a problem with not having enough professors to teach. Stanford in particular has this problem, as its CS department is marginally smaller than those at CMU and MIT, and since it’s nearly doubled the number of declared CS majors in two years. But it’s working on the problem: the CS department got approval from the university to hire 10 new professors in a wide variety of areas in CS. This is especially important since many of Stanford’s big-name professors (like McCarthy, Feigenbaum, Knuth, Ullman, etc.) have gone emeritus. Of course it still has plenty of big names, but with the increase in students, it has to replenish its faculty faster.</p>

<p>Regarding adjuncts, I think the Stanford equivalent of it - lecturers - work pretty well. Most students love Stanford’s intro CS lecturers like Julie Zelenski, Jerry Cain, and Bob Plummer. The grad students and sometimes undergrads who lecture for CS are also pretty great on the whole. If Stanford can keep recruiting great lecturers (both full-time ones and student-lecturers), this method will continue to be a great way for students to learn intro CS.</p>

<p>I definitely don’t think it’s true that all departments are about “learn the fundamentals, not the application” - maybe that’s how USC is, but not Stanford, MIT, CMU, etc. At Stanford, they definitely emphasize application along the way, and not just in application-focused classes. CS 103, discrete math, does focus on how the problems in computability, complexity, etc. are important in more applicable terms. CS 109, probability, focuses on how statistics/probability are applied in CS contexts, like a spam filter. Most upper-div classes focus on the knowledge/skills in addition to the application.</p>

<p>It’s probably true that many of the budding CS programs, the ones who are trying to play catch-up like Yale’s, will focus on “what are the fundamentals that others have decided they need to know?” because they’re focused on getting the bare essentials down to create an adequate program. In time, those programs will place more emphasis on a combination of knowledge and skills as they relate both to theory and application. It takes time.</p>

<p>But for the other more established CS departments, they already have a strong emphasis on making students make things. At Stanford, nearly every class has programming assignments (even upper-div theory classes), and most classes are final project-based: an open-ended requirement to get students to create. It usually means lots of researching, coding, doing a writeup, presenting, etc. I’m sure other CS schools follow this model as well.</p>