For many college students, learning a new programming language and using that language to solve complex problems in an efficient manner can be a difficult or even seemingly impossible task (Robins et al., 2003). For introductory computer programming classes, student failure rates of greater than 50% are not uncommon. Similarly, it is not uncommon for organizations to spend countless education dollars on existing programmers to learn a new programming language only to find that many employees are not capable of making successful transitions from one language to the next (i.e. COBOL to Java). Thus, it could be argued that these high failure rates result from inadequate approaches to teaching new programming languages.
This paper argues that current approaches for teaching new programming languages tend to concentrate too much effort on syntactical issues and not enough organized or explicit attention to other important issues. Such a position is supported by Wing (1990) where she argues that a lack of pragmatic and semantic consideration results in poor programming output. Similar conclusions have been reached by Wiedenbeck and Ramalingam (1999) where they report that students from programming classes have a strong comprehension of program function, but are weak in their ability to comprehend deep-rooted issues such as control flow and other important efficiency-related issues. In other words, current programming instruction tends to create an environment where students focus their attention on the syntax of various programming constructs such as structure, shape, logic, and the appearance of the actual code without explicitly understanding other important issues such as efficiency, meaning, purpose, and proper usage of such code. Thus, Robins et al. (2003) concluded that a strategy for improving student comprehension of programming constructs needs to be explicitly presented to the programming community.
As a result, this paper will present such a strategy using a fresh and organized approach for learning new programming languages. The approach presented in this paper uses semiotics as a theoretical lens for identifying the important issues that go beyond syntax issues alone and creates a conceptual model that could be used in both universities and organizational settings as a learning tool. The goal of this model is to create an organized approach for instructors that will force the explicit understanding of all surface level and deep rooted issues associated with various programming language constructs to their students. A student with a richer understanding of programming language constructs via an organized conceptual model may then be more capable of learning and adapting to the introduction of new languages in the future and will be more capable of creating elaborate and efficient programs.
To present such an approach this paper will first discuss semiotic concepts. This paper will then use semiotics as the governing theory to conduct a semiotic analysis in the context of learning a new programming language where the output of this analysis is an organized conceptual model.
Semiotics is the study of signs where a sign is defined as anything that has meaning to somebody in some respect or capacity (Pierce, 1948; Stamper, 1973). More specifically, semiotics can be defined as the discipline that helps in studying information, information flow (communication), and culture. In other words, semiotics enables an accurate interpretation of meanings through acts of signification (Barley, 1983; Manning, 1992; Falkenberg).
The field of semiotics was first introduced by the American philosopher Charles Morris in 1901 where he introduced the notion that a sign can be broken down into three levels of abstraction known as syntactics, semantics, and pragmatics (Zemanek, 1966). In his book, Signs, Language and Behavior, Morris (1955) defined these three levels as: (1) pragmatics--deals with the origin, uses and effects of signs within the behavior in which they occur; (2) semantics--deals with the signification of signs in all modes of signifying; and (3) syntactics--deals with combination of signs without regard for their specific significations or their relation to the behavior in which they occur. …