E.W. Dijkstra Archive: on the Cruelty of Really Teaching Computing Science
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Advancing Automatic Programming: Regeneration, Meta-Circularity, and Two-Sided Interfaces
SOFTNET 2019 Advancing Automatic Programming: Regeneration, Meta-circularity, and Two-Sided Interfaces HERWIGMANNAERT NOVEMBER 2 7 , 2 0 1 9 • Automatic Programming • Toward Automatic Regeneration • Creating Meta-Circular Regeneration • On Meta-Programming Interfaces ADVANCING AUTOMATIC PROGRAMMING • Concluding Facts and Thoughts Overview • Questions and Discussion • Automatic Programming • Concept and Trends • Remaining Challenges • Toward Automatic Regeneration ADVANCING AUTOMATIC PROGRAMMING • Creating Meta-Circular Regeneration • On Meta-Programming Interfaces Overview • Concluding Facts and Thoughts • Questions and Discussion Automatic Programming • Automatic programming: • The act of automatically generating source code from a model or template • Sometimes distinguished from code generation, as performed by a compiler • Has always been a euphemism for programming in a higher-level language than was then available to the programmer [David Parnas] • Also referred to a generative or meta-programming • To manufacture software components in an automated way • It is as old as programming itself: System.out.println(“Hello world.”); System.out.println(“System.out.println(\“Hello world.\”);”); The Need for Automatic Programming • Goal is and has always been to improve programmer productivity • In general, to manufacture software components in an automated way, in the same way as automation in the industrial revolution, would: • Increase programming productivity • Consolidate programming knowledge • Eliminate human programming errors • Such -
The Machine That Builds Itself: How the Strengths of Lisp Family
Khomtchouk et al. OPINION NOTE The Machine that Builds Itself: How the Strengths of Lisp Family Languages Facilitate Building Complex and Flexible Bioinformatic Models Bohdan B. Khomtchouk1*, Edmund Weitz2 and Claes Wahlestedt1 *Correspondence: [email protected] Abstract 1Center for Therapeutic Innovation and Department of We address the need for expanding the presence of the Lisp family of Psychiatry and Behavioral programming languages in bioinformatics and computational biology research. Sciences, University of Miami Languages of this family, like Common Lisp, Scheme, or Clojure, facilitate the Miller School of Medicine, 1120 NW 14th ST, Miami, FL, USA creation of powerful and flexible software models that are required for complex 33136 and rapidly evolving domains like biology. We will point out several important key Full list of author information is features that distinguish languages of the Lisp family from other programming available at the end of the article languages and we will explain how these features can aid researchers in becoming more productive and creating better code. We will also show how these features make these languages ideal tools for artificial intelligence and machine learning applications. We will specifically stress the advantages of domain-specific languages (DSL): languages which are specialized to a particular area and thus not only facilitate easier research problem formulation, but also aid in the establishment of standards and best programming practices as applied to the specific research field at hand. DSLs are particularly easy to build in Common Lisp, the most comprehensive Lisp dialect, which is commonly referred to as the “programmable programming language.” We are convinced that Lisp grants programmers unprecedented power to build increasingly sophisticated artificial intelligence systems that may ultimately transform machine learning and AI research in bioinformatics and computational biology. -
Turing's Influence on Programming — Book Extract from “The Dawn of Software Engineering: from Turing to Dijkstra”
Turing's Influence on Programming | Book extract from \The Dawn of Software Engineering: from Turing to Dijkstra" Edgar G. Daylight∗ Eindhoven University of Technology, The Netherlands [email protected] Abstract Turing's involvement with computer building was popularized in the 1970s and later. Most notable are the books by Brian Randell (1973), Andrew Hodges (1983), and Martin Davis (2000). A central question is whether John von Neumann was influenced by Turing's 1936 paper when he helped build the EDVAC machine, even though he never cited Turing's work. This question remains unsettled up till this day. As remarked by Charles Petzold, one standard history barely mentions Turing, while the other, written by a logician, makes Turing a key player. Contrast these observations then with the fact that Turing's 1936 paper was cited and heavily discussed in 1959 among computer programmers. In 1966, the first Turing award was given to a programmer, not a computer builder, as were several subsequent Turing awards. An historical investigation of Turing's influence on computing, presented here, shows that Turing's 1936 notion of universality became increasingly relevant among programmers during the 1950s. The central thesis of this paper states that Turing's in- fluence was felt more in programming after his death than in computer building during the 1940s. 1 Introduction Many people today are led to believe that Turing is the father of the computer, the father of our digital society, as also the following praise for Martin Davis's bestseller The Universal Computer: The Road from Leibniz to Turing1 suggests: At last, a book about the origin of the computer that goes to the heart of the story: the human struggle for logic and truth. -
INTRODUCTION to PL/1 PL/I Is a Structured Language to Develop Systems and Applications Programs (Both Business and Scientific)
INTRODUCTION TO PL/1 PL/I is a structured language to develop systems and applications programs (both business and scientific). Significant features : v Allows Free format v Regards a program as a continuous stream of data v Supports subprogram and functions v Uses defaults 1 Created by Sanjay Sinha Building blocks of PL/I : v Made up of a series of subprograms and called Procedure v Program is structured into a MAIN program and subprograms. v Subprograms include subroutine and functions. Every PL/I program consists of : v At least one Procedure v Blocks v Group 2 Created by Sanjay Sinha v There must be one and only one MAIN procedure to every program, the MAIN procedure statement consists of : v Label v The statement ‘PROCEDURE OPTIONS (MAIN)’ v A semicolon to mark the end of the statement. Coding a Program : 1. Comment line(s) begins with /* and ends with */. Although comments may be embedded within a PL/I statements , but it is recommended to keep the embedded comments minimum. 3 Created by Sanjay Sinha 2. The first PL/I statement in the program is the PROCEDURE statement : AVERAGE : PROC[EDURE] OPTIONS(MAIN); AVERAGE -- it is the name of the program(label) and compulsory and marks the beginning of a program. OPTIONS(MAIN) -- compulsory for main programs and if not specified , then the program is a subroutine. A PL/I program is compiled by PL/I compiler and converted into the binary , Object program file for link editing . 4 Created by Sanjay Sinha Advantages of PL/I are : 1. Better integration of sets of programs covering several applications. -
Chemical Formula
Chemical Formula Jean Brainard, Ph.D. Say Thanks to the Authors Click http://www.ck12.org/saythanks (No sign in required) AUTHOR Jean Brainard, Ph.D. To access a customizable version of this book, as well as other interactive content, visit www.ck12.org CK-12 Foundation is a non-profit organization with a mission to reduce the cost of textbook materials for the K-12 market both in the U.S. and worldwide. Using an open-content, web-based collaborative model termed the FlexBook®, CK-12 intends to pioneer the generation and distribution of high-quality educational content that will serve both as core text as well as provide an adaptive environment for learning, powered through the FlexBook Platform®. Copyright © 2013 CK-12 Foundation, www.ck12.org The names “CK-12” and “CK12” and associated logos and the terms “FlexBook®” and “FlexBook Platform®” (collectively “CK-12 Marks”) are trademarks and service marks of CK-12 Foundation and are protected by federal, state, and international laws. Any form of reproduction of this book in any format or medium, in whole or in sections must include the referral attribution link http://www.ck12.org/saythanks (placed in a visible location) in addition to the following terms. Except as otherwise noted, all CK-12 Content (including CK-12 Curriculum Material) is made available to Users in accordance with the Creative Commons Attribution-Non-Commercial 3.0 Unported (CC BY-NC 3.0) License (http://creativecommons.org/ licenses/by-nc/3.0/), as amended and updated by Creative Com- mons from time to time (the “CC License”), which is incorporated herein by this reference. -
Model Based Software Development: Issues & Challenges
Model Based Software Development: Issues & Challenges N Md Jubair Basha 1, Salman Abdul Moiz 2 & Mohammed Rizwanullah 3 1&3 IT Department, Muffakham Jah College of Engineering & Technology, Hyderabad, India 2IT Department, MVSR Engineering College, Hyderabad, India E-mail : [email protected] 1, [email protected] 2, [email protected] 3 Abstract - One of the goals of software design is to model a system in such a way that it is easily understandable . Nowadays the tendency for software development is changing from manual coding to automatic code generation; it is becoming model-based. This is a response to the software crisis, in which the cost of hardware has decreased and conversely the cost of software development has increased sharply. The methodologies that allowed this change are model-based, thus relieving the human from detailed coding. Still there is a long way to achieve this goal, but work is being done worldwide to achieve this objective. This paper presents the drastic changes related to modeling and important challenging issues and techniques that recur in MBSD. Keywords - model based software; domain engineering; domain specificity; transformations. I. INTRODUCTION domain engineering and application. The system described by a model may or may not exist at the time Model is an abstraction of some aspect of a system. the model is created. Models are created to serve Model-based software and system design is based on the particular purposes, for example, to present a human end-to-end use of formal, composable and manipulable understandable description of some aspect of a system models in the product life-cycle. -
Presentation on Key Ideas of Elementary Mathematics
Key Ideas of Elementary Mathematics Sybilla Beckmann Department of Mathematics University of Georgia Lesson Study Conference, May 2007 Sybilla Beckmann (University of Georgia) Key Ideas of Elementary Mathematics 1/52 US curricula are unfocused A Splintered Vision, 1997 report based on the TIMSS curriculum analysis. US state math curriculum documents: “The planned coverage included so many topics that we cannot find a single, or even a few, major topics at any grade that are the focus of these curricular intentions. These official documents, individually or as a composite, are unfocused. They express policies, goals, and intended content coverage in mathematics and the sciences with little emphasis on particular, strategic topics.” Sybilla Beckmann (University of Georgia) Key Ideas of Elementary Mathematics 2/52 US instruction is unfocused From A Splintered Vision: “US eighth grade mathematics and science teachers typically teach far more topic areas than their counterparts in Germany and Japan.” “The five surveyed topic areas covered most extensively by US eighth grade mathematics teachers accounted for less than half of their year’s instructional periods. In contrast, the five most extensively covered Japanese eighth grade topic areas accounted for almost 75 percent of their year’s instructional periods.” Sybilla Beckmann (University of Georgia) Key Ideas of Elementary Mathematics 3/52 Breaking the “mile-wide-inch-deep” habit Every mathematical skill and concept has some useful application has some connection to other concepts and skills So what mathematics should we focus on? Sybilla Beckmann (University of Georgia) Key Ideas of Elementary Mathematics 4/52 What focus? Statistics and probability are increasingly important in science and in the modern workplace. -
A Conceptual Framework for Investigating Organizational Control and Resistance in Crowd-Based Platforms
Proceedings of the 50th Hawaii International Conference on System Sciences | 2017 A Conceptual Framework for Investigating Organizational Control and Resistance in Crowd-Based Platforms David A. Askay California Polytechnic State University [email protected] Abstract Crowd-based platforms coordinate action through This paper presents a research agenda for crowd decomposing tasks and encouraging individuals to behavior research by drawing from the participate by providing intrinsic (e.g., fun, organizational control literature. It addresses the enjoyment) and/or extrinsic (e.g., status, money, need for research into the organizational and social social interaction, etc.) motivators [3]. Three recent structures that guide user behavior and contributions Information Systems (IS) reviews of crowdsourcing in crowd-based platforms. Crowd behavior is research [6, 4, 7] emphasize the importance of situated within a conceptual framework of designing effective incentive systems. However, organizational control. This framework helps research on motivation is somewhat disparate, with scholars more fully articulate the full range of various categorizations and often inconsistent control mechanisms operating in crowd-based findings as to which incentives are the most effective platforms, contextualizes these mechanisms into the [4]. Moreover, this approach can be limited by its context of crowd-based platforms, challenges existing often deterministic and rational assumptions of user rational assumptions about incentive systems, and behavior and motivation, which overlooks normative clarifies theoretical constructs of organizational and social aspects of human behavior [8]. To more control to foster stronger integration between fully understand the dynamics of crowd behavior and information systems research and organizational and governance of crowd-based projects, IS researchers management science. -
A Block Design for Introductory Functional Programming in Haskell
A Block Design for Introductory Functional Programming in Haskell Matthew Poole School of Computing University of Portsmouth, UK [email protected] Abstract—This paper describes the visual design of blocks for the learner, and to avoid syntax and type-based errors entirely editing code in the functional language Haskell. The aim of the through blocks-based program construction. proposed blocks-based environment is to support students’ initial steps in learning functional programming. Expression blocks and There exists some recent work in representing functional slots are shaped to ensure constructed code is both syntactically types within blocks-based environments. TypeBlocks [9] in- correct and preserves conventional use of whitespace. The design cludes three basic type connector shapes (for lists, tuples aims to help students learn Haskell’s sophisticated type system and functions) which can be combined in any way and to which is often regarded as challenging for novice functional any depth. The prototype blocks editor for Bootstrap [10], programmers. Types are represented using text, color and shape, [11] represents each of the five types of a simple functional and empty slots indicate valid argument types in order to ensure language using a different color, with a neutral color (gray) that constructed code is well-typed. used for polymorphic blocks; gray blocks change color once their type has been determined during program construction. I. INTRODUCTION Some functional features have also been added to Snap! [12] Blocks-based environments such as Scratch [1] and Snap! and to a modified version of App Inventor [13]. [2] offer several advantages over traditional text-based lan- This paper is structured as follows. -
Calculus Terminology
AP Calculus BC Calculus Terminology Absolute Convergence Asymptote Continued Sum Absolute Maximum Average Rate of Change Continuous Function Absolute Minimum Average Value of a Function Continuously Differentiable Function Absolutely Convergent Axis of Rotation Converge Acceleration Boundary Value Problem Converge Absolutely Alternating Series Bounded Function Converge Conditionally Alternating Series Remainder Bounded Sequence Convergence Tests Alternating Series Test Bounds of Integration Convergent Sequence Analytic Methods Calculus Convergent Series Annulus Cartesian Form Critical Number Antiderivative of a Function Cavalieri’s Principle Critical Point Approximation by Differentials Center of Mass Formula Critical Value Arc Length of a Curve Centroid Curly d Area below a Curve Chain Rule Curve Area between Curves Comparison Test Curve Sketching Area of an Ellipse Concave Cusp Area of a Parabolic Segment Concave Down Cylindrical Shell Method Area under a Curve Concave Up Decreasing Function Area Using Parametric Equations Conditional Convergence Definite Integral Area Using Polar Coordinates Constant Term Definite Integral Rules Degenerate Divergent Series Function Operations Del Operator e Fundamental Theorem of Calculus Deleted Neighborhood Ellipsoid GLB Derivative End Behavior Global Maximum Derivative of a Power Series Essential Discontinuity Global Minimum Derivative Rules Explicit Differentiation Golden Spiral Difference Quotient Explicit Function Graphic Methods Differentiable Exponential Decay Greatest Lower Bound Differential -
The Holy Spirit and the Physical Uníverse: the Impact of Scjentific Paradigm Shifts on Contemporary Pneumatology
Theological Studies 70 (2009) . THE HOLY SPIRIT AND THE PHYSICAL UNÍVERSE: THE IMPACT OF SCJENTIFIC PARADIGM SHIFTS ON CONTEMPORARY PNEUMATOLOGY WOLFGANG VONDEY A methodological shift occurred in the sciences in the 20th century that has irreversible repercussions for a contemporary theology of the Holy Spirit. Newton and Einstein followed fundamentally different trajectories that provide radically dissimilar frame- works for the pneumatological endeavor. Pneumatology after Einstein is located in a different cosmological framework constituted by the notions of order, rationality, relationality, symmetry, and movement. These notions provide the immediate challenges to a contemporary understanding of the Spirit in the physical universe. HPHE PARADIGM SHIFT IN SCIENCE from Ptolemaic to Copernican cosmo- Â logy is clearly reflected in post-Enlightenment theology. The wide- ranging implications of placing the sun instead of the earth at the center of the universe marked the beginnings of both the scientific and religious revolutions of the 16th century. A century later, Isaac Newton provided for the first time a comprehensive system of physical causality that heralded space and time as the absolute constituents of experiential reality from the perspective of both natural philosophy and theology.^ Despite the echoes WOLFGANG VONDEY received his Ph.D. in systematic theology and ethics at Marquette University and is currently associate professor of systematic theology in the School of Divinity, Regent University, Virginia. A prolific writer on Pneu- matology, ecclesiology, and the dialogue of science and theology, he has most recently published: People of Bread: Rediscovering Ecclesiology (2008); "Pentecos- tal Perspectives on The Nature and Mission of the Church" in "The Nature and Mission of the Church": Ecclesial Reality and Ecumenical Horizons for the Twenty- First Century, ed. -
Kednos PL/I for Openvms Systems User Manual
) Kednos PL/I for OpenVMS Systems User Manual Order Number: AA-H951E-TM November 2003 This manual provides an overview of the PL/I programming language. It explains programming with Kednos PL/I on OpenVMS VAX Systems and OpenVMS Alpha Systems. It also describes the operation of the Kednos PL/I compilers and the features of the operating systems that are important to the PL/I programmer. Revision/Update Information: This revised manual supersedes the PL/I User’s Manual for VAX VMS, Order Number AA-H951D-TL. Operating System and Version: For Kednos PL/I for OpenVMS VAX: OpenVMS VAX Version 5.5 or higher For Kednos PL/I for OpenVMS Alpha: OpenVMS Alpha Version 6.2 or higher Software Version: Kednos PL/I Version 3.8 for OpenVMS VAX Kednos PL/I Version 4.4 for OpenVMS Alpha Published by: Kednos Corporation, Pebble Beach, CA, www.Kednos.com First Printing, August 1980 Revised, November 1983 Updated, April 1985 Revised, April 1987 Revised, January 1992 Revised, May 1992 Revised, November 1993 Revised, April 1995 Revised, October 1995 Revised, November 2003 Kednos Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description. Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from Kednos Corporation or an anthorized sublicensor.