A primary goal of quantum computerscience is to find an explanation for the fact that quantum computers are more powerful than classical computers. In this paper I argue that to answer this question is to compare algorithmic processes of various kinds and to describe the possibility spaces associated with these processes. By doing this, we explain how it is possible for one process to outperform its rival. Further, in this and similar examples little is gained in subsequently (...) asking a how-actually question. Once one has explained how-possibly, there is little left to do. (shrink)

The author has surveyed a quarter of the accredited undergraduate computerscience programs in the United States. More than half of these programs offer a “social and ethical implications of computing” course taught by a computerscience faculty member, and there appears to be a trend toward teaching ethics classes within computerscience departments. Although the decision to create an “in house” computer ethics course may sometimes be a pragmatic response to pressure from (...) the accreditation agency, this paper argues that teaching ethics within a computerscience department can provide students and faculty members with numerous benefits. The paper lists topics that can be covered in a computer ethics course and offers some practical suggestions for making the course successful. (shrink)

This article presents an in-depth analysis of past and present publishing practices in academic computerscience to suggest the establishment of a more consistent publishing standard. Historical precedent for academic publishing in computerscience is established through the study of anecdotes as well as statistics collected from databases of published computerscience papers. After examining these facts alongside information about analogous publishing situations and standards in other scientific fields, the article concludes with a list (...) of basic principles that should be adopted in any computerscience publishing standard. These principles would contribute to the reliability and scientific nature of academic publications in computerscience and would allow for more straightforward discourse in future publications. (shrink)

This paper describes the major components of ImpactCS, a program to develop strategies and curriculum materials for integrating social and ethical considerations into the computerscience curriculum. It presents, in particular, the content recommendations of a subcommittee of ImpactCS; and it illustrates the interdisciplinary nature of the field, drawing upon concepts from computerscience, sociology, philosophy, psychology, history and economics.

We characterize abstraction in computerscience by first comparing the fundamental nature of computerscience with that of its cousin mathematics. We consider their primary products, use of formalism, and abstraction objectives, and find that the two disciplines are sharply distinguished. Mathematics, being primarily concerned with developing inference structures, has information neglect as its abstraction objective. Computerscience, being primarily concerned with developing interaction patterns, has information hiding as its abstraction objective. We show that (...) abstraction through information hiding is a primary factor in computerscience progress and success through an examination of the ubiquitous role of information hiding in programming languages, operating systems, network architecture, and design patterns. (shrink)

There are many branches of philosophy called "the philosophy of X," where X = disciplines ranging from history to physics. The philosophy of artificial intelligence has a long history, and there are many courses and texts with that title. Surprisingly, the philosophy of computerscience is not nearly as well-developed. This article proposes topics that might constitute the philosophy of computerscience and describes a course covering those topics, along with suggested readings and assignments.

In this paper I argue that whether or not a computer can be built that passes the Turing test is a central question in the philosophy of mind. Then I show that the possibility of building such a computer depends on open questions in the philosophy of computerscience: the physical Church-Turing thesis and the extended Church-Turing thesis. I use the link between the issues identified in philosophy of mind and philosophy of computerscience (...) to respond to a prominent argument against the possibility of building a machine that passes the Turing test. Finally, I respond to objections against the proposed link between questions in the philosophy of mind and philosophy of computerscience. (shrink)

We examine the philosophical disputes among computer scientists concerning methodological, ontological, and epistemological questions: Is computerscience 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 computerscience 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 and has come to dominate much of the discipline, defines computerscience 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 computerscience 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 computerscience. (shrink)

There are many branches of philosophy called “the philosophy of X,” where X = disciplines ranging from history to physics. The philosophy of artificial intelligence has a long history, and there are many courses and texts with that title. Surprisingly, the philosophy of computerscience is not nearly as well-developed. This article proposes topics that might constitute the philosophy of computerscience and describes a course covering those topics, along with suggested readings and assignments.

Computerscience is an engineering science whose objective is to determine how to best control interactions among computational objects. We argue that it is a fundamental computerscience value to design computational objects so that the dependencies required by their interactions do not result in couplings, since coupling inhibits change. The nature of knowledge in any science is revealed by how concepts in that science change through paradigm shifts, so we analyze classic paradigm (...) shifts in both natural and computerscience in terms of decoupling. We show that decoupling pervades computerscience both at its core and in the wider context of computing at large, and lies at the very heart of computerscience’s value system. (shrink)

There are many branches of philosophy called “the philosophy of X,” where X = disciplines ranging from history to physics. The philosophy of artificial intelligence has a long history, and there are many courses and texts with that title. Surprisingly, the philosophy of computerscience is not nearly as well-developed. This article proposes topics that might constitute the philosophy of computerscience and describes a course covering those topics, along with suggested readings and assignments.

"This book offers a high interdisciplinary exchange of ideas pertaining to the philosophy of computerscience, from philosophical and mathematical logic to epistemology, engineering, ethics or neuroscience experts and outlines new problems ...

Abstract: Laws of computerscience are prescriptive in nature but can have descriptive analogs in the physical sciences. Here, we describe a law of conservation of information in network programming, and various laws of computational motion (invariants) for programming in general, along with their pedagogical utility. Invariants specify constraints on objects in abstract computational worlds, so we describe language and data abstraction employed by software developers and compare them to Floridi's concept of levels of abstraction. We also consider (...) Floridi's structural account of reality and its fit for describing abstract computational worlds. Being abstract, such worlds are products of programmers' creative imaginations, so any "laws" in these worlds are easily broken. The worlds of computational objects need laws in the form of self-prescribed invariants, but the suspension of these laws might be creative acts. Bending the rules of abstract reality facilitates algorithm design, as we demonstrate through the example of search trees. (shrink)

The essays included in the special issue dedicated to the philosophy of computerscience examine new philosophical questions that arise from reflection upon conceptual issues in computerscience and the insights such an enquiry provides into ongoing philosophical debates.

In this paper I attempt to cast the current program verification debate within a more general perspective on the methodologies and goals of computerscience. I show, first, how any method involved in demonstrating the correctness of a physically executing computer program, whether by testing or formal verification, involves reasoning that is defeasible in nature. Then, through a delineation of the senses in which programs can be run as tests, I show that the activities of testing and (...) formal verification do not necessarily share the same goals and thus do not always constitute alternatives. The testing of a program is not always intended to demonstrate a program's correctness. Testing may seek to accept or reject nonprograms including algorithms, specifications, and hypotheses regarding phenomena. The relationship between these kinds of testing and formal verification is couched in a more fundamental relationship between two views of computerscience, one properly containing the other. (shrink)

The aim of this article is to indicate that the ideas of Leonardo Torres y Que­vedo presented in his short Essays on Automatics constitute essential link between early Babbage’s concepts of analytical engine and modern computerscience. These ideas include definition of automatics, classification of automata, theoretical basis for robotics, electromechanical engineering, modern concept of chatbot, the importance of algorithm and last but not least floating point arithmetic.

Linear Logic is a branch of proof theory which provides refined tools for the study of the computational aspects of proofs. These tools include a duality-based categorical semantics, an intrinsic graphical representation of proofs, the introduction of well-behaved non-commutative logical connectives, and the concepts of polarity and focalisation. These various aspects are illustrated here through introductory tutorials as well as more specialised contributions, with a particular emphasis on applications to computerscience: denotational semantics, lambda-calculus, logic programming and concurrency (...) theory. The volume is rounded-off by two invited contributions on new topics rooted in recent developments of linear logic. The book derives from a summer school that was the climax of the EU Training and Mobility of Researchers project 'Linear Logic in ComputerScience'. It is an excellent introduction to some of the most active research topics in the area. (shrink)

Taking Brian Cantwell Smith’s study, “Limits of Correctness in Computers,” as its point of departure, this article explores the role of models in computerscience. Smith identifies two kinds of models that play an important role, where specifications are models of problems and programs are models of possible solutions. Both presuppose the existence of conceptualizations as ways of conceiving the world “in certain delimited ways.” But high-level programming languages also function as models of virtual (or abstract) machines, while (...) low-level programming languages function as models of causal (or physical) machines. The resulting account suggests that sets of models embedded within models are indispensable for computer programming. (shrink)

Part I presents a model of interactive computation and a metric for expressiveness, Part II relates interactive models of computation to physics, and Part III considers empirical models from a philosophical perspective. Interaction machines, which extend Turing Machines to interaction, are shown in Part I to be more expressive than Turing Machines by a direct proof, by adapting Gödel's incompleteness result, and by observability metrics. Observation equivalence provides a tool for measuring expressiveness according to which interactive systems are more expressive (...) than algorithms. Refinement of function equivalence by observation of outer interactive behavior and inner computation steps is examined. The change of focus from algorithms specified by computable functions to interaction specified by observation equivalence captures the essence of empirical computerscience. Part II relates interaction in models of computation to observation in the natural sciences. Explanatory power in physics is specified by the same observability metric as expressiveness in interactive systems. Realist models of inner structure are characterized by induction, abduction, and Occam's Razor. Interactive realism extends the hidden-variable model of Einstein to hidden interfaces that provide extra degrees of freedom to formulate hypotheses with testable predictions conforming with quantum theory. Greater expressiveness of collaborative computational observers (writers) than single observers implies that hidden-interface models are more expressive than hidden-variable models. By providing a common foundation for empirical computational and physical models we can use precise results about computational models to establish properties of physical models. Part III shows that the evolution in computing from algorithms to interaction parallels that in physics from rationalism to empiricism. Plato's cave metaphor is interactively extended from Platonic rationalism to empiricism. The Turing test is extended to TMs with hidden interfaces that express interactive thinking richer than the traditional Turing test. Interactive (nonmonotonic) extensions of logic such as the closed-world assumption suggest that interactiveness is incompatible with monotonic logical inference. Procedure call, atomicity of transactions, and taking a fixed point are techniques for closing open systems similar to "preparation" followed by "observation" of a physical system. Pragmatics is introduced as a framework for extending logical models with a fixed syntax and semantics to multiple-interface models that support collaboration among clients sharing common resources. (shrink)

This volume presents the proceedings from the Eleventh Brazilian Logic Conference on Mathematical Logic held by the Brazilian Logic Society (co-sponsored by the Centre for Logic, Epistemology and the History of Science, State University of Campinas, Sao Paulo) in Salvador, Bahia, Brazil. The conference and the volume are dedicated to the memory of professor Mario Tourasse Teixeira, an educator and researcher who contributed to the formation of several generations of Brazilian logicians. Contributions were made from leading Brazilian logicians and (...) their Latin-American and European colleagues. All papers were selected by a careful refereeing processs and were revised and updated by their authors for publication in this volume. There are three sections: Advances in Logic, Advances in Theoretical ComputerScience, and Advances in Philosophical Logic. Well-known specialists present original research on several aspects of model theory, proof theory, algebraic logic, category theory, connections between logic and computerscience, and topics of philosophical logic of current interest. Topics interweave proof-theoretical, semantical, foundational, and philosophical aspects with algorithmic and algebraic views, offering lively high-level research results. (shrink)

This paper contains a discussion of striking similarities between influential philosophical concepts of the past and the approaches currently employed in selected areas of computerscience. In particular, works of the Pythagoreans, Plato, Abelard, Ash’arites, Malebranche and Berkeley are presented and contrasted with such computerscience ideas as digital computers, object-oriented programming, the modelling of an object’s actions and causality in virtual environments, and 3D graphics rendering. The intention of this paper is to provoke the (...) class='Hi'>computerscience community to go off the beaten path in order to find inspiration for the development of new approaches in software engineering. (shrink)

At a conference, two engineering professors and a philosophy professor discussed the teaching of ethics in engineering and computerscience. The panelists considered the integration of material on ethics into technical courses, the role of ethical theory in teaching applied ethics, the relationship between cases and codes of ethics, the enlisting of support of engineering faculty, the background needed to teach ethics, and the assessment of student outcomes. Several audience members contributed comments, particularly on teaching ethical theory and (...) on student assessment. (shrink)

In the paper some applications of Gödel's incompleteness theorems to discussions of problems of computerscience are presented. In particular the problem of relations between the mind and machine (arguments by J.J.C. Smart and J.R. Lucas) is discussed. Next Gödel's opinion on this issue is studied. Finally some interpretations of Gödel's incompleteness theorems from the point of view of the information theory are presented.

This paper describes the major components of ImpactCS, a program to develop strategies and curriculum materials for integrating social and ethical considerations into the computerscience curriculum. It presents, in particular, the content recommendations of a subcommittee of ImpactCS; and it illustrates the interdisciplinary nature of the field, drawing upon concepts from computerscience, sociology, philosophy, psychology, history and economics.

Tylman has recently pointed out some striking conceptual and methodological analogies between philosophy and computerscience. In this paper, I focus on one of Tylman’s most convincing cases, viz. the similarity between Plato’s theory of Ideas and the object-oriented programming paradigm, and analyze it in some more detail. In particular, I argue that the platonic doctrine of the Porphyrian tree corresponds to the fact that most object-oriented programming languages do not support multiple inheritance. This analysis further reinforces Tylman’s (...) point regarding the conceptual continuity between classical metaphysical theorizing and contemporary computerscience. (shrink)

This paper discusses how facet-like structures occur as a commonplace feature in a variety of computerscience disciplines as a means for structuring class hierarchies. The paper then focuses on a mathematical model for facets (and class hierarchies in general), called formal concept analysis, and discusses graphical representations of faceted systems based on this model.

We review some of the history of the computability theory of functionals of higher types, and we will demonstrate how contributions from logic and theoretical computerscience have shaped this still active subject.

Dialogue theory, although it has ancient roots, was put forward in the 1970s in logic as astructure that can be useful for helping to evaluate argumentation and informal fallacies.Recently, however, it has been taken up as a broader subject of investigation in computerscience. This paper surveys both the historical and philosophical background of dialoguetheory and the latest research initiatives on dialogue theory in computerscience. The main components of dialogue theory are briefly explained. Included is a classification of (...) the main types of dialogue that, it is argued, should provide the central focus for studying many important dialogue contexts in specific cases. Following these three surveys, a concluding prediction is made about the direction dialogue theory is likely to take in the next century, especially in relation to the growing field of communication studies. (shrink)

Investigations into inter-level relations in computerscience, biology and psychology call for an *empirical* turn in the philosophy of mind. Rather than concentrate on *a priori* discussions of inter-level relations between 'completed' sciences, a case is made for the actual study of the way inter-level relations grow out of the developing sciences. Thus, philosophical inquiries will be made more relevant to the sciences, and, more importantly, philosophical accounts of inter-level relations will be testable by confronting them with what (...) really happens in science. Hence, close observation of the ever-changing reduction relations in the developing sciences, and revision of philosophical positions based on these empirical observations, may, in the long run, be more conducive to an adequate understanding of inter-level relations than a traditional *a priori* approach. (shrink)

This book looks at the ways in which conditionals, an integral part of philosophy and logic, can be of practical use in computer programming. It analyzes the different types of conditionals, including their applications and potential problems. Other topics include defeasible logics, the Ramsey test, and a unified view of consequence relation and belief revision. Its implications will be of interest to researchers in logic, philosophy, and computerscience, particularly artificial intelligence.

The integration of computerscience, biology, and engineering has resulted in the emergence of rapidly growing interdisciplinary fields such as bioinformatics, bioengineering, DNA computing, and systems and synthetic biology. Ideas derived from computerscience and engineering can provide innovative solutions to biological problems and advance research in new directions. Although interdisciplinary research has become increasingly prevalent in recent years, the scientists contributing to these efforts largely remain specialists in their original disciplines and are not fully capable (...) of covering the many facets of multidisciplinary problems, which impedes the development of truly integrated solutions. It would be .. (shrink)

This reader contains the extended abstracts of the seminars organised for the “ComputerScience and IT with/for Biology” Seminar Series, held at the Faculty of ComputerScience, Free University of Bozen-Bolzano, from October to December 2005. Slides of the presentations are available online at: www.inf.unibz.it/krdb/biology.

Computerscience only became established as a field in the 1950s, growing out of theoretical and practical research begun in the previous two decades. The field has exhibited immense creativity, ranging from innovative hardware such as the early mainframes to software breakthroughs such as programming languages and the Internet. Martin Gardner worried that "it would be a sad day if human beings, adjusting to the Computer Revolution, became so intellectually lazy that they lost their power of creative (...) thinking" (Gardner, 1978, p. vi-viii). On the contrary, computers and the theory of computation have provided great opportunities for creative work. This chapter examines several key aspects of creativity in computerscience, beginning with the question of how problems arise in computerscience. We then discuss the use of analogies in solving key problems in the history of computerscience. Our discussion in these sections is based on historical examples, but the following sections discuss the nature of creativity using information from a contemporary source, a set of interviews with practicing computer scientists collected by the Association of Computing Machinery’s on-line student magazine, Crossroads. We then provide a general comparison of creativity in computerscience and in the natural sciences. (shrink)