16,306 research outputs found
Teaching programming with computational and informational thinking
Computers are the dominant technology of the early 21st century: pretty well all aspects of economic, social and personal life are now unthinkable without them. In turn, computer hardware is controlled by software, that is, codes written in programming languages. Programming, the construction of software, is thus a fundamental activity, in which millions of people are engaged worldwide, and the teaching of programming is long established in international secondary and higher education. Yet, going on 70 years after the first computers were built, there is no well-established pedagogy for teaching programming.
There has certainly been no shortage of approaches. However, these have often been driven by fashion, an enthusiastic amateurism or a wish to follow best industrial practice, which, while appropriate for mature professionals, is poorly suited to novice programmers. Much of the difficulty lies in the very close relationship between problem solving and programming. Once a problem is well characterised it is relatively straightforward to realise a solution in software. However, teaching problem solving is, if anything, less well understood than teaching programming.
Problem solving seems to be a creative, holistic, dialectical, multi-dimensional, iterative process. While there are well established techniques for analysing problems, arbitrary problems cannot be solved by rote, by mechanically applying techniques in some prescribed linear order. Furthermore, historically, approaches to teaching programming have failed to account for this complexity in problem solving, focusing strongly on programming itself and, if at all, only partially and superficially exploring problem solving.
Recently, an integrated approach to problem solving and programming called Computational Thinking (CT) (Wing, 2006) has gained considerable currency. CT has the enormous advantage over prior approaches of strongly emphasising problem solving and of making explicit core techniques. Nonetheless, there is still a tendency to view CT as prescriptive rather than creative, engendering scholastic arguments about the nature and status of CT techniques. Programming at heart is concerned with processing information but many accounts of CT emphasise processing over information rather than seeing then as intimately related.
In this paper, while acknowledging and building on the strengths of CT, I argue that understanding the form and structure of information should be primary in any pedagogy of programming
Contracts for Abstract Processes in Service Composition
Contracts are a well-established approach for describing and analyzing
behavioral aspects of web service compositions. The theory of contracts comes
equipped with a notion of compatibility between clients and servers that
ensures that every possible interaction between compatible clients and servers
will complete successfully. It is generally agreed that real applications often
require the ability of exposing just partial descriptions of their behaviors,
which are usually known as abstract processes. We propose a formal
characterization of abstraction as an extension of the usual symbolic
bisimulation and we recover the notion of abstraction in the context of
contracts.Comment: In Proceedings FIT 2010, arXiv:1101.426
A Survey of Languages for Specifying Dynamics: A Knowledge Engineering Perspective
A number of formal specification languages for knowledge-based systems has been developed. Characteristics for knowledge-based systems are a complex knowledge base and an inference engine which uses this knowledge to solve a given problem. Specification languages for knowledge-based systems have to cover both aspects. They have to provide the means to specify a complex and large amount of knowledge and they have to provide the means to specify the dynamic reasoning behavior of a knowledge-based system. We focus on the second aspect. For this purpose, we survey existing approaches for specifying dynamic behavior in related areas of research. In fact, we have taken approaches for the specification of information systems (Language for Conceptual Modeling and TROLL), approaches for the specification of database updates and logic programming (Transaction Logic and Dynamic Database Logic) and the generic specification framework of abstract state machine
A correspondence between rooted planar maps and normal planar lambda terms
A rooted planar map is a connected graph embedded in the 2-sphere, with one
edge marked and assigned an orientation. A term of the pure lambda calculus is
said to be linear if every variable is used exactly once, normal if it contains
no beta-redexes, and planar if it is linear and the use of variables moreover
follows a deterministic stack discipline. We begin by showing that the sequence
counting normal planar lambda terms by a natural notion of size coincides with
the sequence (originally computed by Tutte) counting rooted planar maps by
number of edges. Next, we explain how to apply the machinery of string diagrams
to derive a graphical language for normal planar lambda terms, extracted from
the semantics of linear lambda calculus in symmetric monoidal closed categories
equipped with a linear reflexive object or a linear reflexive pair. Finally,
our main result is a size-preserving bijection between rooted planar maps and
normal planar lambda terms, which we establish by explaining how Tutte
decomposition of rooted planar maps (into vertex maps, maps with an isthmic
root, and maps with a non-isthmic root) may be naturally replayed in linear
lambda calculus, as certain surgeries on the string diagrams of normal planar
lambda terms.Comment: Corrected title field in metadat
Rewriting Logic Semantics of a Plan Execution Language
The Plan Execution Interchange Language (PLEXIL) is a synchronous language
developed by NASA to support autonomous spacecraft operations. In this paper,
we propose a rewriting logic semantics of PLEXIL in Maude, a high-performance
logical engine. The rewriting logic semantics is by itself a formal interpreter
of the language and can be used as a semantic benchmark for the implementation
of PLEXIL executives. The implementation in Maude has the additional benefit of
making available to PLEXIL designers and developers all the formal analysis and
verification tools provided by Maude. The formalization of the PLEXIL semantics
in rewriting logic poses an interesting challenge due to the synchronous nature
of the language and the prioritized rules defining its semantics. To overcome
this difficulty, we propose a general procedure for simulating synchronous set
relations in rewriting logic that is sound and, for deterministic relations,
complete. We also report on two issues at the design level of the original
PLEXIL semantics that were identified with the help of the executable
specification in Maude
A design model for Open Distributed Processing systems
This paper proposes design concepts that allow the conception, understanding and development of complex technical structures for open distributed systems. The proposed concepts are related to, and partially motivated by, the present work on Open Distributed Processing (ODP). As opposed to the current ODP approach, the concepts are aimed at supporting a design trajectory with several, related abstraction levels. Simple examples are used to illustrate the proposed concepts
Full abstraction for fair testing in CCS
In previous work with Pous, we defined a semantics for CCS which may both be
viewed as an innocent presheaf semantics and as a concurrent game semantics. It
is here proved that a behavioural equivalence induced by this semantics on CCS
processes is fully abstract for fair testing equivalence. The proof relies on a
new algebraic notion called playground, which represents the 'rule of the
game'. From any playground, two languages, equipped with labelled transition
systems, are derived, as well as a strong, functional bisimulation between
them.Comment: 15 pages, to appear in CALCO '13. To appear Lecture notes in computer
science (2013
- …