Toward a Framework of Programming

Fcm Lau · 2009

As a major topic in information technology education, computer programming has been taught to both major and non-major students in universities. While there has been ongoing debate on whether students should be taught pro-gramming (Soloway, 1993), the literature shows that learning to program poses a lot of difficulties to novices (Bonar & Soloway, 1989). Dijkstra (1989) describes programming as “radical novelty” in which our usual strategy of metaphors and analogies simply does not apply. Pea (1986) identifies three types of conceptual bugs which are rooted in a superbug where “there is a hidden mind somewhere in the programming language that has intelligent interpretive powers”.Why is learning to program so difficult? One difficulty is that learning to program needs the acquisition of a multitude of inter-related skills. Jenkins (2002) argues that program-ming is a complicated task, which requires the mastery of a number of skills such as problem solving, abstraction, mathematical logic and testing, debugging and so forth. A novice programmer simply lacks these skills. More impor-tantly, success in learning to program demands knowledge of computer itself. Ben-Ari (1998) points out that students lack a viable mental model to learn programming. On the other hand, undue emphasis is placed on the learning of programming syntax (Deek, 1999). In this article, we will focus on approaches of teaching computer programing. Winslow (1996) introduced the term “programming peda-gogy” in his paper. Although programming pedagogy is not explicitly defined in the paper, the term here refers to any instructional methods and strategies which are used to teach students introductory programming. Due to these reasons, programming pedagogy calls for special attention.

Read the paper · More papers on PaperTik