"...But what do the top-rated schools do?": A survey of introductory computer science curricula
Our 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 arebased, 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 Ph.D. programs were listed as the top 30 by the 2007 U.S. News World Report ranking .1 While other surveys have focused on departments, salaries and degree production 0, 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: Institution Is the institution on quarters or semesters? Are the classes taught every semester? In the summer? What are the introductory, lower-division courses, and how do they map (if at all) to the standard CS0, CS1, CS2, etc? Is a literacy course available for students not interested in programming? What is the flexibility in the lower-division sequence? Are the courses part of a common-first-year? Is ethics taught in the introductory sequence? Is there a survey course available? Staff What staff is required to teach each course (faculty, teaching assistants, readers, lab assistants)? Are the instructors research faculty, teaching faculty, or graduate students? Are the courses taught by the same person every semester? Who teaches discussion sections / recitations? Labs? Demographics What are recent enrollment numbers? How much have those numbers dropped (if at all) recently? What are the drop / withdraw / failure rates? What is the demographic of the student body? Are any non-majors required to take the courses? What is the typical grade histogram for the course? Content What versions of what languages are taught? What are the textbooks used? Is there a feeling that the course is fresh or stale? When was the last major course facelift? What works really well and what is broken? What overhauls (if any) are planned for the courses? Delivery How many contact hours are there and what is the breakdown into lecture / lab / discussion? How are the labs run? (instructor-led vs. problem-driven)? Style What programming paradigms are covered? Is the first introduction to OOP an objects-first approach? Is there any pair programming (or other XP techniques)? Meta Is there an institutional or departmental grading guideline, e.g., that the average GPA needs to fall in a certain range, or that there should be a given distribution of As, Bs, etc.? What are the innovative techniques being deployed, e.g., multimedia data as first-class objects, a collaborative content-delivery system, active learning, graphics, etc? What questions are missing on this survey? Was there anything not captured by this survey you would like to add about your institution, staff, demographics, content, delivery or style? We found that the schools used a large variety of approaches, but there were some common themes and clusters that emerged. For example, the first courses had almost as many different textbooks as schools. This model is distinct from some upper-division courses, (e.g., Artificial Intelligence, Algorithms, or Graphics) in which most schools used the same reference textbook. We will present the common and unusual cases, as well as celebrate the innovation that is taking place at various institutions.
Sigcse 2007: 38th Sigcse Technical Symposium on Computer Science Education
Start / End Page
Digital Object Identifier (DOI)