Information Technology Reference
In-Depth Information
Table 3.5 Rigid and soft facets of the concept of variable
Rigid facets
Soft facets
Variable name Syntax rules
The need for a name
What a meaningful name is and why it is important
Variable value
Type rules, memory
allocation
A variable has a single value at any point but it can
change over time
Assignment
Syntax rules
The need for assignment
The importance of an initial assignment to variables
levels of abstraction be formally described? And how the decision of a specific data
structure that fits for the solution of a given problem can be instructed? To grasp the
essence of soft ideas and the way in which they differ from rigid concepts, it is suffi-
cient to compare the answers to the above questions with answers to questions such
as the following: Is it possible to formulate the syntax of a programming language?
What is the formal definition of a heap? In most cases, syntax rules are considered
as rigid facets while semantics rules—as soft facets.
Having said this, it should be noted that computer science concepts are neither
soft nor rigid; rather, each computer science concept has some soft aspects and
some rigid aspects. Table 3.5 reflects this idea with respect to the concept of vari-
able. Nevertheless, some computer science concepts, such as the one mentioned
above, lend themselves to be softer than others.
In fact, soft ideas are part of any profession, including all fields of science and
engineering. In computer science, however, soft and rigid concepts are tightly con-
nected. This connection is required mainly due to the frequent need to implement
a problem solution in some programming language and due to the high cognitive
complexity involved in the field. This cognitive complexity can be partially ex-
plained by the fact that in many cases the objects of thoughts are implemented by
an intangible entity—that is, software. In this spirit, Dijkstra's ( 1986 ) indicates that
a computer scientist should move through many levels of abstraction, starting at the
level represented by the machine and ending at the level of abstraction represented
by the human thinking.
Due to the special role of soft ideas in computer science, computer science pro-
fessionals include the discussion of soft ideas as part of the discipline; consequently,
their teaching should not be neglected.
3.7.2
Computer Science Soft Ideas in the MTCS Course
Though the centrality of soft concepts within the computer science community is
highly acknowledged, due to the nature of computer science soft ideas, it is not a
trivial matter to teach such concepts.
First, it is not easy to explain the essence of soft ideas, nor is it easy to explain
how and when they should be approached or utilized. Unlike rigid ideas, such as
some aspects of complexity and programming, soft concepts cannot be expressed
 
Search WWH ::




Custom Search