Practice + paradigms

Philip M. Dorin · ACM SIGCSE Bulletin · 1997

BackgroundT hroughout the 1970's and early 1980's, the computer science sequence at Loyola Marymount University began with a traditional course in programming --one semester using, for example, Pascal --followed by a course in data structures and algorithms.Each course had a lecture-type format; assignments involved the design and implementation of self-contained programs, in the first course, and abstract data types (packages) plus programs in the second course.Instructors had almost no direct involvement in the student's programming process; rather, the instructor always graded a finished program, with little effect on whether the student used sensible structures, or careful design methodology, or, at a more mundane level, whether the student indented statements and made liberal use of comments.About ten years ago we inserted a new course between the two: a programming workshop, conducted in the lab, one student per workstation, with the teacher circulating continually among the dozen or so students, offering real-time instruction.Teachers in the subsequent data structures course have reported a qualitative improvement in the programming styles and skills of the students.As the course has matured, a theme has emerged for selecting problems for the class: with each new assignment we try to introduce a new programming or design paradigm.

Read the paper · More papers on PaperTik