...but what do the top-rated schools do? A Survey of Introductory Computer Science Curricula
Jeremy R Huddleston, Dan Garcia and Jeffrey Forbes1
The computer science field continues to be blessed (and plagued) with continual curriculum change, from languages to techniques (objects first) to perspectives ("sage on the stage" vs. "guide on the side"). Particular emphasis has been spent crafting and re-crafting our introductory curricula . This makes sense, since that not only defines the foundation upon which our upper-division courses are based, but is exactly where we attract (or lose) our best students who had not considered majoring in computer science. With enrollments declining, retaining our fence-sitting prospective majors takes on that much more importance.
When considering curriculum change at the introductory level, it often helps to look around at successful programs to see what they do. We surveyed the schools whose computer science PhD programs were listed as the top 30 by the 2007 U.S. News & World Report ranking .
While other surveys have focused on departments, salaries and degree production , ours tried to capture the important aspects of each institution's lower-division curriculum. First, we looked at the material on each department's web page and course pages when accessible. We followed that initial sweep by asking representative faculty at each institution to report on the following questions, divided into seven major categories:
- Was the institution on quarters or semesters?
- Were the classes taught every semester? In the summer?
- What were the introductory, lower-division courses?
- Was a literacy course available for students not interested in programming?
- Was there flexibility in the lower-division sequence?
- Were the courses part of a "common-first-year"?
- Was ethics taught in the introductory sequence?
- Was there a "survey" course available?
- What were recent enrollment numbers?
- How much have those numbers dropped (if at all) recently?
- What were the demographics of the student body?
- Were any non-majors required to take the courses?
- What staff was required to teach each course (faculty, teaching assistants, readers, lab assistants)?
- Were the instructors research or teaching faculty?
- Were the courses taught by the same person every semester?
- Who taught discussion sections / recitations? Labs?
- What versions of what languages were taught?
- What were the textbooks used?
- Was there a feeling that the course was "fresh" or "stale"?
- When was the last major course facelift?
- Were any overhauls planned for any courses, or would they remain relatively constant (for, say, 3 years)?
- How many contact hours were there and what was the breakdown into lecture / lab / discussion?
- How were the labs run? (instructor-led vs problem-driven)?
- What programming paradigms were covered?
- Was the first introduction to OOP an objects-first approach?
- Was there any pair programming (or other XP techniques)?
- Were there any innovative techniques being deployed, e.g., multimedia data as first-class objects, a collaborative content-delivery system, etc?
- What question was missing on this survey?
- Was there anything not captured by this survey you would like to add about your institution, demographics, staff, content, delivery, or style?
- The Joint Task Force on Computing Curricula, "Computing Curricula 2001," Journal on Educational Resources in Computing, Vol. 1, No. 3es, September 2001.
- "America's Best Graduate Schools 2007," U.S. News & World Report, Washington, DC, 2006.
- "2004-2005 Taulbee Survey," Computing Research News, Vol. 18, No. 3, May 2006.
1CS, Duke University