Information Technology Reference
In-Depth Information
• Stage C: Individual reflection (submitted online)
1. In what ways is your list of soft skills similar to those of your classmates?
2. Suggest five habits of teaching that you will adopt as a Computer
Science teacher to promote the soft skills of your prospective students.
3.6
Programming Paradigms
A paradigm is a way of doing and seeing things, a framework of thought in which
one's world or reality is interpreted. 11 The concept paradigm became popular in
the scientific world mainly following Kuhn's book The Structure of Scientific
Revolution (Kuhn 1962 ), in which he used this term with respect to a concep-
tual world view that consists of formal theories, classic experiments, and trusted
methods.
The topic of programming paradigms is a multifaceted notion and includes as-
pects of mental processes; problem-solving strategies; interrelations between para-
digms, programming languages, programming style, and more. We note that while a
programming paradigm is a heuristic for solving algorithmic problems, a program-
ming language is a means of expression for a programming paradigm.
The concept of programming paradigm is defined in different ways (see, e.g.,
Abelson et al. 1996 ; Ambler et al. 1992 ; Floyd 1979 ; Sethi 1996 ; Tucker and
Noonan 2002 ; Van Roy and Haridi 2004 ; Watt 1990 ), each emphasizing different
aspects of the concept. The following definition, for example, which is composed of
several of the resources mentioned above, summarizes the major points:
Programming paradigms are heuristics used for solving algorithmic problem. A
programming paradigm analyzes a problem through specific lens, and based on this
analysis, formulates a solution for the given problem by breaking the solution down
to specific building blocks and defining relationships among them.
We mention several major programming paradigms: procedural (imperative),
object-oriented, functional, logical, and concurrent.
Many researchers emphasize the importance of both teaching the subject of pro-
gramming paradigms to students and exposing students to a number of program-
ming paradigms (Carey and Shepherd 1988 ; Floyd 1979 ; Haberman and Ragonis
2010 ; Van Roy et al. 2003 ). We mention three reasons that explain the importance
attributed to the learning of several programming paradigms: the development of
cognitive tools, the ability to explore the same concept/problem within different
paradigms improves learners' understating of the said concept/problem, and increas-
ing learners' flexibility in problem-solving processes of different kinds of problems.
At the same time, there are programming language courses that emphasize the
programming language aspect, while less attention is paid to the programming para-
digm aspect. This can be explained by the fact that the concept of a programming
11 Based on Stolin and Hazzan ( 2007 ).
 
Search WWH ::




Custom Search