Asee peer logo

Teaching Computer Programming Effectively

Download Paper |


1997 Annual Conference


Milwaukee, Wisconsin

Publication Date

June 15, 1997

Start Date

June 15, 1997

End Date

June 18, 1997



Page Count


Page Numbers

2.385.1 - 2.385.8

Permanent URL

Download Count


Request a correction

Paper Authors

author page

Byron S. Gottfried

Download Paper |

NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract

Session 1253

Teaching Computer Programming Effectively Using Active Learning

Byron S. Gottfried University of Pittsburgh


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.


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.

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