22 research outputs found

    Visual and Textual Programming Languages: A Systematic Review of the Literature

    Get PDF
    It is well documented, and has been the topic of much research, that Computer Science courses tend to have higher than average drop out rates at third level. This is a problem that needs to be addressed with urgency but also caution. The required number of Computer Science graduates is growing every year but the number of graduates is not meeting this demand and one way that this problem can be alleviated is to encourage students at an early age towards studying Computer Science courses. This paper presents a systematic literature review on the role of visual and textual programming languages when learning to program, particularly as a first programming language. The approach is systematic, in that a structured search of electronic resources has been conducted, and the results are presented and quantitatively analysed. This study will give insight into whether or not the current approaches to teaching young learners programming are viable, and examines what we can do to increase the interest and retention of these students as they progress through their education.Comment: 18 pages (including 2 bibliography pages), 3 figure

    A Language Designed for Programming I

    Get PDF
    The process of comprehending a problem, strategically developing a solution and translating the solution into an algorithm is arguably the single most important series of skills acquired during the education of an undergraduate computer science or information technology major. With this in mind, much care should be taken when choosing a programming language to deploy in the first University programming course. BLAKE, Beginners Language for Acquiring Key programming Essentials, is designed specifically for use in a Programming I class. BLAKE aids in enforcing fundamental object-oriented practices while simultaneously facilitating the transition to subsequent programming languages. BLAKE’s major features include; consistent parameter passing, single inheritance, non-redundant control structures, a simple development environment, and hardware independent data types. The syntax remains relatively small while still facilitating a straightforward transition to industry standard programming languages

    A Language Designed for Programming I

    Get PDF
    The process of comprehending a problem, strategically developing a solution and translating the solution into an algorithm is arguably the single most important series of skills acquired during the education of an undergraduate computer science or information technology major. With this in mind, much care should be taken when choosing a programming language to deploy in the first University programming course. BLAKE, Beginners Language for Acquiring Key programming Essentials, is designed specifically for use in a Programming I class. BLAKE aids in enforcing fundamental object-oriented practices while simultaneously facilitating the transition to subsequent programming languages. BLAKE’s major features include; consistent parameter passing, single inheritance, non-redundant control structures, a simple development environment, and hardware independent data types. The syntax remains relatively small while still facilitating a straightforward transition to industry standard programming languages

    The Future of iOS Development: Evaluating the Swift Programming Language

    Get PDF
    Swift is a new programming language developed by Apple for creating iOS and Mac OS X applications. Intended to eventually replace Objective-C as Apple’s language of choice, Swift needs to convince developers to switch over to the new language. Apple has promised that Swift will be faster than Objective-C, as well as offer more modern language features, be very safe, and be easy to learn and use. In this thesis I test these claims by creating an iOS application entirely in Swift as well as benchmarking two different algorithms. I find that while Swift is faster than Objective-C, it does not see the speedup projected by Apple. I also conclude that Swift offers many advantages over Objective-C, and is easy for developers to learn and use. However there are some weak areas of Swift involving interactions with Objective-C and the strictness of the compiler that can make the language difficult to work with. Despite these difficulties Swift is overall a successful project for Apple and should attract new developers to their platform

    Continuous Decomposition of Granularity for Neural Paraphrase Generation

    Full text link
    While Transformers have had significant success in paragraph generation, they treat sentences as linear sequences of tokens and often neglect their hierarchical information. Prior work has shown that decomposing the levels of granularity~(e.g., word, phrase, or sentence) for input tokens has produced substantial improvements, suggesting the possibility of enhancing Transformers via more fine-grained modeling of granularity. In this work, we propose a continuous decomposition of granularity for neural paraphrase generation (C-DNPG). In order to efficiently incorporate granularity into sentence encoding, C-DNPG introduces a granularity-aware attention (GA-Attention) mechanism which extends the multi-head self-attention with: 1) a granularity head that automatically infers the hierarchical structure of a sentence by neurally estimating the granularity level of each input token; and 2) two novel attention masks, namely, granularity resonance and granularity scope, to efficiently encode granularity into attention. Experiments on two benchmarks, including Quora question pairs and Twitter URLs have shown that C-DNPG outperforms baseline models by a remarkable margin and achieves state-of-the-art results in terms of many metrics. Qualitative analysis reveals that C-DNPG indeed captures fine-grained levels of granularity with effectiveness.Comment: Accepted to be published in COLING 202

    The Importance of Being Eelco

    Get PDF
    Programming language designers and implementers are taught that: semantics are more worthwhile than syntax, that programs exist to embody proofs, rather than to get work done, and to value Dijkstra more than Van Wijngaarden. Eelco Visser believed that, while there is value in the items on the left, there is at least as much value in the items on the right. This short paper explores how Eelco Visser embodied these values, and how he encouraged our work on the Grace programming language, supported that work withio Spoofax, and provided a venue for discussion within the WG2.16 Programming Language Design working group

    An Analysis of Introductory University Programming Courses in the UK

    Get PDF
    Data collected from 2016 survey of UK Computer Science Departments about 'first programming languages' and associated feature

    Language Choice in Introductory Programming Courses at Australasian and UK Universities

    Get PDF
    Parallel surveys of introductory programming courses were conducted in Australasia and the UK, with a view to examining the programming languages being used, the preferred integrated development environments (if any), and the reasons for these choices, alongside a number of other key aspects of these courses. This paper summarises some of the similarities and differences between the findings of the two surveys. In the UK, Java is clearly the dominant programming language in introductory programming courses, with Eclipse as the dominant environment. Java was also the dominant language in Australasia six years ago, but now shares the lead with Python; we speculate on the reasons for this. Other differences between the two surveys are equally interesting. Overall, however, there appears to be a reasonable similarity in the way these undergraduate courses are conducted in the UK and in Australasia. While the degree structures differ markedly between and within these regions -- a possible explanation for some of the differences -- some of the similarities are noteworthy and have the potential to provide insight into approaches in other regions and countries

    An Analysis of Introductory Programming Courses at UK Universities

    Get PDF
    Context: In the context of exploring the art, science and engineering of programming, the question of which programming languages should be taught first has been fiercely debated since computer science teaching started in universities. Failure to grasp programming readily almost certainly implies failure to progress in computer science.Inquiry: What first programming languages are being taught? There have been regular national-scale surveys in Australia and New Zealand, with the only US survey reporting on a small subset of universities. This the first such national survey of universities in the UK.Approach: We report the results of the first survey of introductory programming courses (N=80) taught at UK universities as part of their first year computer science (or related) degree programmes, conducted in the first half of 2016. We report on student numbers, programming paradigm, programming languages and environment/tools used, as well as the underpinning rationale for these choices.Knowledge: The results in this first UK survey indicate a dominance of Java at a time when universities are still generally teaching students who are new to programming (and computer science), despite the fact that Python is perceived, by the same respondents, to be both easier to teach as well as to learn.Grounding: We compare the results of this survey with a related survey conducted since 2010 (as well as earlier surveys from 2001 and 2003) in Australia and New Zealand.Importance: This survey provides a starting point for valuable pedagogic baseline data for the analysis of the art, science and engineering of programming, in the context of substantial computer science curriculum reform in UK schools, as well as increasing scrutiny of teaching excellence and graduate employability for UK universities
    corecore