424,936 research outputs found

    An Approach to Algebraic Semantics of Object-Oriented Languages

    Get PDF
    Studying the semantics of programming languages has a long tradition in computer science. Various approaches use various formalisms with various objectives. In the last two decades, algebraic specifications have requently been used to study functional as well as imperative languages, and, in particular, object-orientated ones, thereby often focusing on specific aspects and concepts of this programming paradigm. In this paper, we follow this tradition and develop an algebraic semantics of a sample object-oriented language. We thereby distinguish between the object-oriented concepts of the language to structure code, and the imperative ones to implement functionality and thus the algorithmic parts of the language. Therefore, our approach encompasses two steps: first, we develop an algebraic semantics of basic object-oriented principles, into which, secondly, the semantics of the language s imperative parts is embedded. Static semantic aspects are captured by structured algebraic specifications, whereas dynamic ones are reflected by many-sorted algebras. These aspects are treated as "second order" concepts and are thus interpreted within a model class of the underlying specification. The approach elaborated here can be employed to formalize the semantics of "standard" object-oriented languages such as Eiffel, Java, or C++

    Instructional strategies and tactics for the design of introductory computer programming courses in high school

    Get PDF
    This article offers an examination of instructional strategies and tactics for the design of introductory computer programming courses in high school. We distinguish the Expert, Spiral and Reading approach as groups of instructional strategies that mainly differ in their general design plan to control students' processing load. In order, they emphasize topdown program design, incremental learning, and program modification and amplification. In contrast, tactics are specific design plans that prescribe methods to reach desired learning outcomes under given circumstances. Based on ACT* (Anderson, 1983) and relevant research, we distinguish between declarative and procedural instruction and present six tactics which can be used both to design courses and to evaluate strategies. Three tactics for declarative instruction involve concrete computer models, programming plans and design diagrams; three tactics for procedural instruction involve worked-out examples, practice of basic cognitive skills and task variation. In our evaluation of groups of instructional strategies, the Reading approach has been found to be superior to the Expert and Spiral approaches

    Scaling the Management of Extreme Programming Projects

    Full text link
    XP is a code-oriented, light-weight software engineering methodology, suited merely for small-sized teams who develop software that relies on vague or rapidly changing requirements. Being very code-oriented, the discipline of systems engineering knows it as approach of incremental system change. In this contribution, we discuss the enhanced version of a concept on how to extend XP on large scale projects with hundreds of software engineers and programmers, respectively. Previous versions were already presented in [1] and [12]. The basic idea is to apply the "hierarchical approach", a management principle of reorganizing companies, as well as well-known moderation principles to XP project organization. We show similarities between software engineering methods and company reorganization processes and discuss how the elements of the hierarchical approach can improve XP. We provide guidelines on how to scale up XP to very large projects e.g. those common in telecommunication industry and IT technology consultancy firms by using moderation techniques.Comment: 7 pages, 4 figure

    MOSS, an evaluation of software engineering techniques

    Get PDF
    An evaluation of the software engineering techniques used for the development of a Modular Operating System (MOSS) was described. MOSS is a general purpose real time operating system which was developed for the Concept Verification Test (CVT) program. Each of the software engineering techniques was described and evaluated based on the experience of the MOSS project. Recommendations for the use of these techniques on future software projects were also given

    Draft Code of Universal Principles

    Get PDF

    Curriculum Guidelines for Undergraduate Programs in Data Science

    Get PDF
    The Park City Math Institute (PCMI) 2016 Summer Undergraduate Faculty Program met for the purpose of composing guidelines for undergraduate programs in Data Science. The group consisted of 25 undergraduate faculty from a variety of institutions in the U.S., primarily from the disciplines of mathematics, statistics and computer science. These guidelines are meant to provide some structure for institutions planning for or revising a major in Data Science
    corecore