Milwaukee, Wisconsin
June 15, 1997
June 15, 1997
June 18, 1997
2153-5965
8
2.385.1 - 2.385.8
10.18260/1-2--6813
https://peer.asee.org/6813
2366
Session 1253
Teaching Computer Programming Effectively Using Active Learning
Byron S. Gottfried University of Pittsburgh
Summary
Over the past three years, we have learned how to provide effective instruction in computer programming within an active-learning environment. The use of active-learning does not in itself assure success in this area. However, we have found that we can provide effective instruction by utilizing a series of “mini-lectures” based upon carefully prepared examples that illustrate key features; by providing students with copies of the examples and encouraging them to write their own notes on the examples; by assigning simple in-class programming exercises that reinforce the material presented in the “mini-lectures;” and by supplementing the in-class activities with weekly programming assignments of a more comprehensive nature.
This paper describes each of these course characteristics in some detail. It also includes a list of features that work well, and another list of features, including some traditional teaching techniques, that we feel should be avoided.
Introduction
Ask most engineering graduates of the 1960s or 1970s what they remember most vividly about their undergraduate years, and they will probably recall, with nostalgia and some disdain, their experiences writing Fortran programs for a mainframe computer in a punched-card environment. During the 1980s, most engineering schools switched from mainframes to PCs and workstations, and some have adopted C or Pascal as their language of choice. At many schools, however, the methods used to teach programming have not changed, despite the dramatic changes in both the computing environment and the programming tools.
Experiences with Active Learning
At the University of Pittsburgh, all freshmen engineering students are required to take a course in C programming in their second semester, as a part of a common first year of study. Until three years ago, we had been teaching the course in much the same manner as in the 1960s and 70s: Two 50-minute lectures per week taught by a faculty member, and a two-hour lab per week taught by a graduate teaching assistant (TA). The lab session was largely devoted to answering questions (if there were any) about the weekly homework assignments. Classes were held in traditional classrooms, though the TAs occasionally took their students into a (somewhat underutilized) PC-based computer lab. Participating faculty were carefully screened, based upon their teaching ability and programming skills; some were experienced programmers,
Gottfried, B. S. (1997, June), Teaching Computer Programming Effectively Paper presented at 1997 Annual Conference, Milwaukee, Wisconsin. 10.18260/1-2--6813
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 1997 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015