Results 11 - 20
of
32
On the Difficulty of Really Considering a Radical Novelty
, 1995
"... The fundamental assumptions in Dijkstra's influential article on computing science teaching are challenged. Dijkstra's paper presents the radical novelties of computing, and the consequent problems that we must tackle through a formal, logic-based approach to program derivation. Dijkstra's main prem ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
The fundamental assumptions in Dijkstra's influential article on computing science teaching are challenged. Dijkstra's paper presents the radical novelties of computing, and the consequent problems that we must tackle through a formal, logic-based approach to program derivation. Dijkstra's main premise is that the algorithmic programming paradigm is the only one, in fact, the only possible one. It is argued that there is at least one other, the network-programming paradigm, which itself is a radical novelty with respect to the implementation of problems on computers. And, as one might expect of a radical alternative, it shows much of the conventional wisdom concerning computing science, which Dijkstra variously attacks and dispenses, to be special pleading; not universals of computing at all. Finally, we explore what is known of this new paradigm in order to see what light it sheds on the fundamental problems that computing really does present to us. Not surprisingly, some b...
Mental Models of Recursion
, 2003
"... Recursion is a fundamental concept of Computer Science that is difficult to teach and learn. Students have many misconceptions about recursion and construct mental models of recursion which are non-viable. A mental model is a student's mental representation of recursion and it provides them with pre ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Recursion is a fundamental concept of Computer Science that is difficult to teach and learn. Students have many misconceptions about recursion and construct mental models of recursion which are non-viable. A mental model is a student's mental representation of recursion and it provides them with predictive and explanatory powers about recursion. A mental model is non-viable if it does not allow a student to accurately and consistently represent the process of recursion.
IT'S ALL IN THE LANGUAGE (Yet Another Look at the Choice of Programming Language for Teaching Computer Science)
- Journal of Computing in Small Colleges, Volume 12, Number 4
, 1997
"... The choice of which programming language to use in introductory computer science courses is guaranteed to spark debate in the computer science community. Programming languages used in computer science instruction have followed various trends or fads within the computing industry. The language choice ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
The choice of which programming language to use in introductory computer science courses is guaranteed to spark debate in the computer science community. Programming languages used in computer science instruction have followed various trends or fads within the computing industry. The language choice has often been between languages which are currently in wide use by industry for software production. While it is true that computer science education has a responsibility to achieve a balance between providing training in current practices within the field and core concepts and theory, it is felt that computer science education should not be overly influenced by popular trends when choosing a programming language to use in the teaching of introductory computer science. This paper offers other criteria for the choice of language together with examples. 1 1 This paper appears in the Journal of Computing in Small Colleges, Volume 12, Number 4, Pages 58-74, March 1997. Copyright c fl1997 by ...
Three Paradigms of Computer Science
, 2007
"... Abstract. We examine the philosophical disputes among computer scientists concerning methodological, ontological, and epistemological questions: Is computer science a branch of mathematics, an engineering discipline, or a natural science? Should knowledge about the behaviour of programs proceed dedu ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Abstract. We examine the philosophical disputes among computer scientists concerning methodological, ontological, and epistemological questions: Is computer science a branch of mathematics, an engineering discipline, or a natural science? Should knowledge about the behaviour of programs proceed deductively or empirically? Are computer programs on a par with mathematical objects, with mere data, or with mental processes? We conclude that distinct positions taken in regard to these questions emanate from distinct sets of received beliefs or paradigms within the discipline: — The rationalist paradigm, which was common among theoretical computer scientists, defines computer science as a branch of mathematics, treats programs on a par with mathematical objects, and seeks certain, a priori knowledge about their ‘correctness ’ by means of deductive reasoning. — The technocratic paradigm, promulgated mainly by software engineers, defines computer science as an engineering discipline, treats programs as mere data, and seeks probable, a posteriori knowledge about their reliability empirically using testing suites. — The scientific paradigm, prevalent in the branches of artificial intelligence, defines computer science as a natural (empirical) science, takes programs to be entities on a par with mental processes, and seeks a priori and a posteriori knowledge about them by combining formal deduction and scientific experimentation. We demonstrate evidence corroborating the tenets of the scientific paradigm, in particular the claim that program-processes are on a par with mental processes. We conclude with a discussion in the influence that the technocratic paradigm has been having over computer science.
Non-Programmed Computation
, 1995
"... A modern computer can calculate many orders of magnitude faster and more accurately than humans. Not only do they reproduce with advantage human computational ability, they compute in the same way as we do --- i.e. a computation is typically viewed as an automatic manipulation of symbol structures, ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
A modern computer can calculate many orders of magnitude faster and more accurately than humans. Not only do they reproduce with advantage human computational ability, they compute in the same way as we do --- i.e. a computation is typically viewed as an automatic manipulation of symbol structures, the same symbol structures that we would use, and manipulated in the same ways at the conceptual level. Non-programmed computation (NPC), or non-algorithmic computation, represents a radical departure from this otherwise universal of automatic computation. This paper introduces this computational alternative, gives examples of its use, and outlines an area of significant practical applicability --- the domain of `data-defined' problems. 1 Introduction There are many rather different ways to use computers to perform computations, but they all spring from a single notion: that of reproducing our conscious computational procedures within a physical device. The clear benefits that spring from t...
The Specification of "Specification"
, 1995
"... The notion of "specification" plays a key role in the developing science of computing. It is typically considered to be the keystone in the software development process. However, there is no single, generally agreed meaning of "specification" that bears close scrutiny. Instead there is a variety ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
The notion of "specification" plays a key role in the developing science of computing. It is typically considered to be the keystone in the software development process. However, there is no single, generally agreed meaning of "specification" that bears close scrutiny. Instead there is a variety of different, although partially interlocking and overlapping interpretations of the term. We catalogue this varietal profusion and attempt to lay bare both the sources and consequences of each major alternative. We attempt to present the full range of possibilities, and the biases inherent in each style of interpretation. By initiating debate on the meaning of "specification" (and several other important terms) we would hope that a well-defined consensus will eventually emerge to replace the current very unsatisfactory state of affairs in which a science and a technology are being built on shaky foundations. 1 The most deadly thing in software is the concept : : : that you are goi...
My program is correct but it doesnt run: A review of novice programming and a study of an introductory programming paper
, 2001
"... Contents 1.0 Introduction 2.0 Learning to program 2.1 Overview 2.1.1 Experts vs. novices 2.1.2 Knowledge vs. strategies 2.1.3 Comprehension vs. generation 2.1.4 Procedural vs. object--oriented 2.1.5 Other 2.2 Novice programmers 2.2.1 The task 2.2.2 Mental models and processes 2.2.3 Novic ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Contents 1.0 Introduction 2.0 Learning to program 2.1 Overview 2.1.1 Experts vs. novices 2.1.2 Knowledge vs. strategies 2.1.3 Comprehension vs. generation 2.1.4 Procedural vs. object--oriented 2.1.5 Other 2.2 Novice programmers 2.2.1 The task 2.2.2 Mental models and processes 2.2.3 Novice capabilities and behavior 2.2.4 Kinds of novice 2.3 Novice learning and teaching in CS1 2.3.1 Goals and progress 2.3.2 Course design and teaching methods 2.3.3 Alternative methods and curricula 2.4 Summary 3.0 A study of an introductory programming paper 3.1 The design of COMP103 3.1.1 Context 3.1.2 Lectures and knowledge 3.1.3 Laboratory sessions and strategy 3.1.4 Summary 3.2 The study 3.2.1 Background 3.2.2 Method 3.3 Results 3.3.1 Lab based problem tallies 3.3.2 Trends 3.3.3 Other observations 4.0 Discussion 4.1 Kinds of novice 4.2 Knowledge, strategies, and effective teaching and learning 4.3 A framework 5.0 Summary References
The Efficacy of a Low-Level Program Visualisation Tool for Teaching Programming Concepts to Novice C Programmers
, 2000
"... It is widely agreed that learning to program is difficult. Program visualisation tools make visible aspects of program execution which are often hidden from the user. While several program visualisation tools aimed at novice programmers have been developed over the past decade there is little empiri ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
It is widely agreed that learning to program is difficult. Program visualisation tools make visible aspects of program execution which are often hidden from the user. While several program visualisation tools aimed at novice programmers have been developed over the past decade there is little empirical evidence showing that novices actually benefit from their use [1]. In this paper we describe a "Glass-box Interpreter" called Bradman. An experiment is presented which tests the efficacy of Bradman in assisting novice programmers learn programming concepts. We show that students that used the glass-box interpreter achieved greater understanding of some programming concepts than those without access. We also give evidence that the student's ability to assimilate new concepts was enhanced by exposure to the glass-box interpreter. This is experimental confirmation that such tools are beneficial in helping novices learn programming.
Towards Adjusting Informatics Education to Information Era
, 1997
"... Since the very beginning of the modern computing era, the scientific and educational community in informatics has been in a continuous search for a proper philosophy, viewpoints, aims, contents, methods and tools. Advances in software, communication and h ardware have played by that search the m ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Since the very beginning of the modern computing era, the scientific and educational community in informatics has been in a continuous search for a proper philosophy, viewpoints, aims, contents, methods and tools. Advances in software, communication and h ardware have played by that search the most influencing role, with theory advances having only secondary and declining impacts --- in spite of the remarkable success of theory, quite well recognized by the community at large. The recent developments and advances in computing, communication and informatization of the society point out strongly, that # This paper is slightly extended version of the invited paper for IFIP TC3 WG3.2 Workshop "Informatics as a discipline and in other disciplines: What is in common?" to be held in August 1997 in Entschende, The Netherlands. Most of this work has been done during the first author's stay at the University of Karlsruhe in 1996 and his affiliation with the Institut of Mathematics of ...
Teaching the construction of correct programs using invariant based programming
- In SEEFM07: South-East European Worshop on Formal Methods, Thessaloniki
, 2007
"... Abstract. In most computer science curricula, formal reasoning about program correctness is taught separately from practical programming, and is thus by most students considered a purely theoretical activity. It has been a challenge to convince students of the practical applicability of formal metho ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Abstract. In most computer science curricula, formal reasoning about program correctness is taught separately from practical programming, and is thus by most students considered a purely theoretical activity. It has been a challenge to convince students of the practical applicability of formal methods. We present here an effort to apply Invariant Based Programming (IBP), a visual and practical program construction and verification methodology, in an introductory formal methods course as part of a pilot study at ˚Abo Akademi University. The course introduces a minimum of notational overhead, and allows the student to reason about correctness using mathematical concepts with which they are already familiar (such as set theory). We have used a programming environment with theorem prover support (SOCOS) to increase student confidence in the correctness of the program components that they construct. We evaluate the course using a mixed method approach, and provide data which show that IBP is well suited for teaching introductory formal methods. 1

