📄 ugradtas.txt
字号:
Using Undergraduates as Teaching Assistants in Introductory Programming Courses: An Update on the Stanford Experience Eric Roberts, John Lilly, and Bryan Rollins Department of Computer Science Stanford UniversityNOTEThis paper has been submitted to the Twenty-sixth SIGCSE TechnicalSymposium on Computer Science Education. Copyright is retained by theauthors prior to publication release.ABSTRACTThe introductory computer science classes at Stanford University have acombined annual enrollment of over 1000 students. Teaching introductoryprogramming to a population of this size requires significantinstructional support to ensure that students receive the individualattention most beginning programmers need. This paper describes theapproach that has evolved at Stanford for the introductory computerscience courses, which is based on the extensive use of advancedundergraduates to teach sections of the introductory course. In ourexperience, using undergraduates as part of the teaching staff hascreated an effective learning environment for both the students in theclasses and the undergraduate section leaders themselves.1. INTRODUCTIONFor more than a decade, the Computer Science Department at StanfordUniversity has used undergraduate students to supplement theinstructional staff in the introductory programming courses. Thetypical introductory course is assigned one lecturer, one graduateteaching assistant, and a large number of undergraduate courseassistants, called "section leaders." The lecturer is responsible forpresenting the class material and designing assignments and exams. Thegraduate TA helps the lecturer with course content and administration.The section leaders conduct weekly small-group discussion sections,grade assignments, and assist students working in the computer cluster.In 1988, Stuart Reges, then the director of Stanford's computer scienceeducation program, presented a paper at the SIGCSE conference describingStanford's initial experiences with the section-leading program[Reges88]. In that paper, Reges discusses the following advantages ofthe program: o Undergraduate section leaders are less expensive than traditional graduate TAs. o Undergraduate section leaders, having more recently been in the same position, are better able to establish a rapport with introductory students. o Undergraduates are more familiar with the Stanford computing facilities and curriculum than most graduate students.While these arguments continue to apply, our six additional years ofexperience have demonstrated several other positive features of thesection-leading program: o Having the opportunity to teach new students is of enormous benefit to the section leader as well. In the process of explaining concepts to each new class, the section leader's own understanding of those concepts grows dramatically. Similarly, encouraging students to use good programming style usually improves the section leader's programming style as well. Thus, the section-leading program becomes an integral part of the section leader's own undergraduate education. o The section-leading program has a salutary effect on the entire undergraduate department, even though only about 25 percent of CS majors participate in the program (which also includes students from many other fields). Their shared experience creates a strong connection among the section leaders, which gives rise to many activities that benefit the community as a whole. o The section leaders, occupying as they do a position of significant trust and responsibility, become role models for younger students. That modeling is all the more effective because the section-leader's role is one that an introductory student might assume, not in ten or twenty years, but in one or two. The fact that the path to becoming a section leader is well-marked gives many undergraduates a powerful incentive to succeed. o The section-leading program serves as a training ground for future lecturers. Seven of the 13 people hired as departmental lecturers over the past decade were formerly Stanford undergraduates involved in the section-leading program. By participating in the program, section leaders develop excellent teaching skills that serve them well in more advanced teaching positions.In short, we are more convinced than ever that using undergraduates assection leaders has significant pedagogical advantages, both for theintroductory classes and for the program as a whole. Moreover, otherschools such as Brown University and the University of Virginia arebeginning to rely more on undergraduates for teaching assistance. Thus,we thought it was appropriate to update the 1988 Reges paper and offer amore detailed analysis of the Stanford approach.2. INTRODUCTORY CS COURSES AT STANFORDIn order to appreciate the structure of the section-leading program andhow it fits into the curriculum, it is necessary to know something aboutthe Stanford computer science program as a whole and, in particular,about the scale at which it is conducted. At present, we estimate that75 percent of Stanford undergraduates take at least one introductoryprogramming course offered by the Computer Science Department. Toappeal to students with a wide range of interests and prior experience,the department offers several different introductory courses: CS105 Introduction to Computing CS106A Programming Methodology CS106B Programming Abstractions CS106X Accelerated 106A + 106BCS105 is intended for nontechnical students, most of whom are seeking tosatisfy Stanford's undergraduate requirement in technology and appliedscience. The CS106 courses offer a more traditional introduction toprogramming that follows reasonably closely the CS1/CS2 curriculumoutlined in Curriculum 78 [Austing79]. The CS106A/CS106B sequencecovers this material in two quarters and is designed for students withlittle or no programming experience. CS106X covers the same material ina single quarter and is designed for students with more extensiveprogramming backgrounds.[1]As at most universities, enrollments in Stanford's introductoryprogramming courses skyrocketed in the late 1970s and early 1980s,increasing by a factor of three in the decade between 1975 and 1985.Since 1985, enrollments in the introductory courses have remainedrelatively constant, as illustrated by the following table showing thetotal annual enrollment in all sections of CS106: Total CS106 Year Enrollment 85-86 1000 86-87 1119 87-88 959 88-89 1006 89-90 981 90-91 922 91-92 845 92-93 1016 93-94 1112From 1986 to 1991, enrollments in CS106 registered a downward trend.This decline, however, was reversed when we changed the programminglanguage from Pascal to C at the end of the 1991-92 year [Roberts93].It is also interesting to note that most undergraduates -- even thosewho are majoring or intend to major in a nontechnical field -- tend totake one of the CS106 courses rather than the nontechnically orientedCS105. Typically, only about 300 students take CS105 each year. Bycontrast, the combined enrollment in CS106A and CS106X (covering the twopaths through the CS106 sequence) is approximately three times thatsize.The CS106 series is popular because o The courses are regarded as highly practical, particularly now that they use ANSI C. o CS106 fulfills an Engineering School requirement, while CS105 does not. o CS106 has an excellent reputation in the undergraduate community for high-quality teaching.Course evaluation statistics support the good reputation of CS106. Thefollowing table summarizes the student ratings for all CS106 courses in1993-94 in comparison to all courses in the Engineering School: CS106 All engineering courses courses 1 (excellent) 63% 44% 2 (very good) 31% 34% 3 (good) 5% 14% 4 (fair) 1% 6% 5 (poor) 0% 2%As these statistics indicate, 94 percent of the respondents rate CS106Aas very good or excellent. In 1994, one of the undergraduate newspapersnamed CS106A as one of the five best courses at Stanford.The reputation of the CS106 courses is further enhanced by the section-leading program, which supports all the CS106 courses but not CS105,whose design is more conventional in that all teaching assistance issupplied by graduate TAs.[2] The section leaders act as ambassadors forthe CS106 program in the undergraduate community and encourage otherstudents to take those courses.3. RESPONDING TO LARGE ENROLLMENTSThe combined enrollment for all sections of CS106 in 1993-94 was 1112.Teaching introductory programming at this scale places considerabledemand on the resources of the Computer Science Department. Althoughcomputer science professors represent only two percent of the totaluniversity faculty, computer science courses account for five percent ofthe total student units, with much of the additional demand forinstruction coming from the introductory courses. This imbalancebetween faculty size and enrollments means that the Computer ScienceDepartment carries two and a half times the average instructional loadper faculty member -- a level that cannot be sustained withoutjeopardizing Stanford's preeminent position as a computer scienceresearch institution.To reduce the teaching load to a level more consistent with that in therest of the Engineering School, Stanford appoints lecturers tosupplement the regular faculty. Lecturers are chosen entirely on thebasis of demonstrated teaching ability and are not expected to conductresearch. The positions are renewable but not eligible for tenure.Currently, the department employs five lecturers, two of whom workpart-time, so the total lecturer strength is the equivalent of 4.25full-time positions. In addition, the Associate Chair for Education, afaculty-rank position within the department currently held by EricRoberts, oversees the entire teaching program.The lecturers, as talented as they are, would not be able to do such agood job with these large courses without assistance. Teachingintroductory programming effectively requires that students be able tointeract with someone who understands the material, particularly whenquestions arise in the context of a programming laboratory or a homeworkassignment. Introductory programming courses tend to require a largenumber of student contact hours, far more than would be possible if thelecturer had to cover this aspect of the class as well. At Stanford,most of the teaching support required for the introductory courses issupplied by the section-leading program, which is described in the nextsection.4. SECTION LEADERSIn a typical quarter, the Computer Science Department hiresapproximately 50 section leaders to staff the CS106 courses. At thebeginning of each quarter, every section leader is assigned to a sectionconsisting of approximately ten students. Throughout the quarter, thosestudents "belong" to that section leader, in that the section leader isresponsible for going over material with them in a weekly recitationsection, grading their programs, and being their link to the rest of theclass. For instance, if students feel lectures are covering the coursematerial too quickly or that particular topics have been a littleconfusing, the section leader can spend extra time on those topicsduring section that week and make the lecturer aware of the section'sconcerns. This feedback mechanism is extremely important for largelecture courses in which it is difficult for the lecturer to get anaccurate reading of the class as a whole. This structure provides allstudents with a small-group environment in which they are not merely onestudent in a sea of 300 others.For two hours a week, each section leader holds what we call "helperhours" in the campus computer cluster, where they are available to helpany student who is working on a CS106 assignment. These hours aredistributed among section leaders to cover approximately 70 hours perweek, with additional coverage during times of unusually heavy use. Webelieve that providing this type of readily available assistance isextremely important for computer science in particular. Students oftendiscover that they are having conceptual problems only when they reachan impasse at the computer. Having a staff member on call to explainconcepts, answer questions, and help the student discover the problemnot only makes an enormous difference in the level of studentunderstanding but also reduces the level of frustration associated withthe class. In essence, the existence of a large section-leadercommunity makes it possible for Stanford students to enjoy the benefitsof closed laboratories on a round-the-clock basis.The section leaders represent a diverse cross-section of the Stanfordundergraduate population. In educational status, they range fromsophomores to students spending an additional year to obtain both anundergraduate and a master's degree. Although many of the sectionleaders are computer science majors, a significant number come fromother fields, including biology, psychology, economics, political
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -