294 research outputs found
Comparing approaches to generic programming in Haskell
Abstract. The last decade has seen a number of approaches to datatype-generic programming: PolyP, Functorial ML, ‘Scrap Your Boilerplate’, Generic Haskell, ‘Generics for the Masses’, etc. The approaches vary in sophistication and target audience: some propose full-blown programming languages, some suggest libraries, some can be seen as categorical programming methods. In these lecture notes we compare the various approaches to datatype-generic programming in Haskell. We introduce each approach by means of example, and we evaluate it along different dimensions (expressivity, ease of use, etc).
Design Considerations for Building a Scalable Digital Version of a Multi-player Educational Board Game for a MOOC in Logistics and Transportation
With more flexible and large-scale learning environments, new design requirements for games emerge. Massive Open Online Courses (MOOCs) are one of the most important innovations in the learning field. Still, it is a challenge to motivate learners and to keep them motivated in such huge learning environments. To address this challenge, we redesigned a board game targeting at an integrated view on disruption and communication management in an intermodal transportation situation. From the redesign, we have learned that an online game works better with fewer roles, requires immediate feedback, and an engaging way of challenge to keep players motivated. Our findings can inform the design of games for large groups of players in an online environment.Green Open Access added to TU Delft Institutional Repository ‘You share, we take care!’ – Taverne project https://www.openaccess.nl/en/you-share-we-take-care Otherwise as indicated in the copyright section: the publisher is the copyright holder of this work and the author uses the Dutch legislation to make this work public.Policy AnalysisOrganisation & Governanc
Tool Support for Refactoring Functional Programs
Refactorings are source-to-source program transformations which change program structure and organisation, but not program functionality. Documented in catalogues and supported by tools, refactoring provides the means to adapt and improve the design of existing code, and has thus enabled the trend towards modern agile software development processes. Refactoring has taken a prominent place in software development and maintenance, but most of this recent success has taken place in the OO and XP communities. In our project, we explore the prospects for Refactoring Functional Programs, taking Haskell as a concrete case-study. This paper discusses the variety of pragmatic and implementation issues raised by our work on the Haskell Refactorer. We briefly introduce the ideas behind refactoring, and a set of elementary functional refactorings. The core of the paper then outlines the main challenges that arise from our aim to produce practical tools for a decidedly non-toy language, summarizes our experience in trying to establish the necessary meta-programming infrastructure and gives an implementation overview of our current prototype refactoring tool. Using Haskell as our implementation language, we also offer some preliminary comments on Haskell programming-in-the-large
Parsifal a Game Opera: Experiential Learning in Gameful Performance Art
Richard Wagner’s Parsifal was recently rewritten and performed as a‘game opera’.We used observations, questionnaires, and interviews to study howthe 700+ audience were facilitated to experientially learn about the show’s mainthemes: compassion and collaboration. This case study contributed to ourunderstanding how performance art may improve games for learning and trainingpurposes, many of which now are notoriously ‘boring’. We concluded thatperformance art’s main contribution, in particular to games discussing fundamentalvalues such as compassion, is to captivate players and ‘lure’ them intotheir natural behaviour. Thus the Parsifal game opera emotionally confronted itsaudience with their – callous and selfish – behaviour and intensified their learningthrough embodied experiences. However, some players lacked time and supportto (collectively) reflect on their experiences and lacked catharsis. Therefore, werecommend using gameful performance art for learning and training purposes,provided that all activities in experiential learning are sufficiently facilitated.Post-print versionPolicy Analysi
The Generic Haskell user's guide, Version 1.60 - Diamond release
Software development often consists of designing datatypes around which functionality is
added. Some functionality is datatype specific, whereas other functionality is defined on
almost all datatypes in a way that depends only on the structure of the datatype. A function
that works on many datatypes in this manner is called a generic (or polytypic) function.
Examples of generic functionality include editing, pretty-printing or storing a value in a
database, and comparing two values for equality.
Since datatypes often change and new datatypes are introduced, we have developed Generic
H ASKELL, an extension of the functional programming language Haskell [11] that supports
generic definitions, to save the programmer from (re)writing instances of generic functions.
The original design of Generic H ASKELL is based on work by Ralf Hinze [3]. The current
release is based on recent work by Dave Clarke, Johan Jeuring and Andres L¨oh [10, 9]. It
extends Haskell with, among other things, a construct for defining type-indexed values. These
values can be specialised to all Haskell datatypes, facilitating wider application of generic
programming than provided by earlier systems such as PolyP [8]
Alessandro De Gloria
The editorial of this issue of the International Journal of Serious Games is the last one signed by our Editor in Chief and Founder, Prof. Alessandro De Gloria. Alessandro passed away in Genova, Italy, on March 20th, few days after his 68th birthday.
He founded the Serious Games Society and served as its first President, then as Honorary President. He founded also the Games and Learning Alliance Conference, of which he was the first General Chair and Honorary Chair.
We mourn a great friend, and a pioneer researcher and creative teacher, with a broad, constructive vision and outstanding team-building skills. The good he made will remain in time
Feedback genereren in leeromgevingen voor algebra
Het gebruik van leeromgevingen bij het wiskundeonderwijs in algebra is de afgelopen jaren toegenomen. Het geven van feedback, bijvoorbeeld door een diagnose van een stap die een leerling heeft gezet te stellen, een hint te geven, of een volledige uitwerking van een opgave te geven, is binnen veel van deze omgevingen niet mogelijk, of zeer arbeidsintensief om te specificeren. In dit artikel presenteren Johan Jeuring en Bastiaan Heeren het Ideas-raamwerk, waarmee leeromgevingen automatisch feedback kunnen geven. Voor het geven van feedback wordt gebruik gemaakt van fundamentele concepten uit de wiskunde en informatica, zoals herschrijfstappen, views of normaalvormen en herschrijfstrategieën. Door het probleem van het geven van feedback te transformeren naar het ontleden van gebruikersstappen aan de hand van een herschrijfstrategie, wordt gebruik gemaakt van kennis over ontleden om automatisch feedback te geven
Generic Programming
Generic programming techniques have always been of interest, both to practitioners and to theoreticians, but only recently have generic programming techniques become a specific focus of research in the functional and object-oriented programming language communities. The IFIP TC2 Working Conference on Generic Programming, held at Schloss Dagstuhl, Germany, on 11th and 12th July 2002, brought together leading researchers in generic programming from around the world, and featured papers capturing the state of the art in this important emerging area. The conference was sponsored by IFIP Technical Committee 2, and organized in cooperation with Working Group 2.1 on Algorithmic Languages and Calculi. This book contains revised versions of the papers that were presented at the conference
Pattern matching without K
Dependent pattern matching is an intuitive way to write programs and proofs in dependently typed languages. It is reminiscent of both pattern matching in functional languages and case analysis in on-paper mathematics. However, in general it is incompatible with new type theories such as homotopy type theory (HoTT). As a consequence, proofs in such theories are typically harder to write and to understand. The source of this incompatibility is the reliance of dependent pattern matching on the so-called K axiom - also known as the uniqueness of identity proofs - which is inadmissible in HoTT. The Agda language supports an experimental criterion to detect definitions by pattern matching that make use of the K axiom, but so far it lacked a formal correctness proof. In this paper, we propose a new criterion for dependent pattern matching without K, and prove it correct by a translation to eliminators in the style of Goguen et al. (2006). Our criterion both allows more good definitions than existing proposals, and solves a previously undetected problem in the criterion offered by Agda. It has been implemented in Agda and is the first to be supported by a formal proof. Thus it brings the benefits of dependent pattern matching to contexts where we cannot assume K, such as HoTT. It also points the way to new forms of dependent pattern matching, for example on higher inductive types. © 2014 ACM.sponsorship: This research is partially funded by the Research Fund KU Leuven, and by the Research Foundation - Flanders under grant number G004321N. Jesper Cockx and Dominique Devriese both hold a Ph.D. fellowship of the Research Foundation - Flanders (FWO).status: Publishe
- …
