137,578 research outputs found

    Structural Induction Principles for Functional Programmers

    Full text link
    User defined recursive types are a fundamental feature of modern functional programming languages like Haskell, Clean, and the ML family of languages. Properties of programs defined by recursion on the structure of recursive types are generally proved by structural induction on the type. It is well known in the theorem proving community how to generate structural induction principles from data type declarations. These methods deserve to be better know in the functional programming community. Existing functional programming textbooks gloss over this material. And yet, if functional programmers do not know how to write down the structural induction principle for a new type - how are they supposed to reason about it? In this paper we describe an algorithm to generate structural induction principles from data type declarations. We also discuss how these methods are taught in the functional programming course at the University of Wyoming. A Haskell implementation of the algorithm is included in an appendix.Comment: In Proceedings TFPIE 2013, arXiv:1312.221

    Bricklayer: An Authentic Introduction to the Functional Programming Language SML

    Full text link
    Functional programming languages are seen by many as instrumental to effectively utilizing the computational power of multi-core platforms. As a result, there is growing interest to introduce functional programming and functional thinking as early as possible within the computer science curriculum. Bricklayer is an API, written in SML, that provides a set of abstractions for creating LEGO artifacts which can be viewed using LEGO Digital Designer. The goal of Bricklayer is to create a problem space (i.e., a set of LEGO artifacts) that is accessible and engaging to programmers (especially novice programmers) while providing an authentic introduction to the functional programming language SML.Comment: In Proceedings TFPIE 2014, arXiv:1412.473

    kLog: A Language for Logical and Relational Learning with Kernels

    Full text link
    We introduce kLog, a novel approach to statistical relational learning. Unlike standard approaches, kLog does not represent a probability distribution directly. It is rather a language to perform kernel-based learning on expressive logical and relational representations. kLog allows users to specify learning problems declaratively. It builds on simple but powerful concepts: learning from interpretations, entity/relationship data modeling, logic programming, and deductive databases. Access by the kernel to the rich representation is mediated by a technique we call graphicalization: the relational representation is first transformed into a graph --- in particular, a grounded entity/relationship diagram. Subsequently, a choice of graph kernel defines the feature space. kLog supports mixed numerical and symbolic data, as well as background knowledge in the form of Prolog or Datalog programs as in inductive logic programming systems. The kLog framework can be applied to tackle the same range of tasks that has made statistical relational learning so popular, including classification, regression, multitask learning, and collective classification. We also report about empirical comparisons, showing that kLog can be either more accurate, or much faster at the same level of accuracy, than Tilde and Alchemy. kLog is GPLv3 licensed and is available at http://klog.dinfo.unifi.it along with tutorials

    Project based learning on industrial informatics: applying IoT to urban garden

    Get PDF
    Copyright (c) 2018 IEEEThe fast evolution of technologies forces teachers to trade content off for self-learning. PBL is one of the best ways to promote self-learning and simultaneously boost motivation. In this paper, we present our experience introducing project-based learning in the last year subject. New Internet of Things (IoT) topic allows us to carry out complete projects, integrating different technologies and tools. Moreover, the selection of open-source and standard free technologies makes easy and cheap the access to hardware and software platforms used. We carefully have picked communication, data management, and programming tools that we think would be attractive to our students. They can start making fast prototyping with little initial skills and, at the same time, these are serious and popular tools widely used in the industry. In this paper, we report on the design of a project-based learning for our course and the impact this has on the student satisfaction and motivation. Surveys taught us that tuning the courses towards developing real projects on the field, has a large impact on acceptance, learning objectives achievements and motivation towards the course content.”I Plan Propio Integral de Docencia de la Universidad de Málaga” y Proyecto de Innovación Educativa PIE17/085, de la Universidad de Málaga. Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech

    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

    Teaching Programming and Design-by-Contract

    Get PDF
    This paper summarizes the experience of teaching an introductory course to programming by using a correctness by construction approach at Innopolis University, Russian Federation. In this paper we claim that division in beginner and advanced groups improves the learning outcomes, present the discussion and the data that support the claim.Comment: 21th International Conference on Interactive Collaborative Learnin

    A short note on quantifying and visualizing yearly variation in online monitored temperature data

    Get PDF
    The paper demonstrates how seasonal variation in sequentially arriving temperature data can be visualized by the specification of landmarks and subsequent time warping. We exemplify the idea with water temperature data from the river Wupper in northwestern Germany and with air temperature data from Berlin, Germany. Landmarks are thereby based on temperature thresholds. The method allows to assess whether the seasonal variation is running ahead or behind the average
    • …
    corecore