4 research outputs found

    Improving responsiveness in mobile apps via refactoring for asynchrony (invited talk)

    No full text

    Old Meets New: Media in Education – Proceedings of the 61st International Council for Educational Media and the XIII International Symposium on Computers in Education (ICEM&SIIE'2011) Joint Conference

    Get PDF
    A conferência ICEM&SIIE'2011 foi organizada pela Universidade de Aveiro (Portugal) – membro do European Consortium of Innovative Universities – e pretendeu reunir investigadores, professores e outros profissionais, a nível nacional e internacional, em torno de um tema aglutinador que pretendeu despoletar e colocar a tónica da discussão na dualidade ―old/new‖, ou seja, os participantes foram convidados a discutir: - os media na educação em ambas as perspetivas, mais tradicionais ou modernas, com incidência numas ou noutras ou, ainda, numa perspetiva comparativa; - a conjugação, adaptação e adoção dos media consoante os contextos e objetivos de utilização; - o que os media implicam em termos de tecnologia, barreiras profissionais e /ou sociais; - a relação custo-benefício da utilização dos media em contexto de aprendizagem; - os media em função dos diversos contextos educativos e dos perfis de aprendizagem dos alunos. Para a conferência foram selecionados 76 artigos organizados em 15 sessões paralelas, 13 posters e 9 workshops. A conferência caracterizou-se pelo caráter internacional dos contributos, reunindo 38 artigos em português, 32 em língua inglesa e 6 em espanhol. Estas atas encontram-se organizadas de acordo com o programa da conferência. Em primeiro lugar incluem-se os artigos (full paper e short paper) por sessão, seguem-se os posters e, finalmente, o resumo relativo aos workshops.The ICEM&SIIE'2011 conference was organised by the University of Aveiro (Portugal) – a member of the European Consortium of Innovative Universities – and aimed at gathering researchers, teachers and other professionals, at national and international level, around a focal topic that might trigger and centre the discussion on the ―old/new‖ duality of media in education. Participants were invited to discuss: - old and new media in education, in isolation or comparatively; - how old and new media in education can be combined, adopted and adapted; - what old and new media in education imply in terms of technological, professional and social barriers; - what cost-benefit relationships old and new media in education entail; - how to compare old and new media in education given their particular educational contexts and the students' learning profiles. 76 papers were selected and organised in 15 paralel sessions, 13 posters and 9 workshops. The conference is characterized by the international character of contributions, gathering 38 papers in Portuguese, 32 in English and 6 in Spanish. These procedings are organised according to the programme of the conference. First we find the full and short papers, per session, then posters and finally the abstracts for the workshops

    Language Support for Distributed Functional Programming

    Get PDF
    Software development has taken a fundamental turn. Software today has gone from simple, closed programs running on a single machine, to massively open programs, patching together user experiences byway of responses received via hundreds of network requests spanning multiple machines. At the same time, as data continues to stockpile, systems for big data analytics are on the rise. Yet despite this trend towards distributing computation, issues at the level of the language and runtime abound. Serialization is still a costly runtime affair, crashing running systems and confounding developers. Function closures are being added to APIs for big data processing for use by end-users without reliably being able to transmit them over the network. And much of the frameworks developed for handling multiple concurrent requests byway of asynchronous programming facilities rely on blocking threads, causing serious scalability issues. This thesis describes a number of extensions and libraries for the Scala programming language that aim to address these issues and to provide a more reliable foundation on which to build distributed systems. This thesis presents a new approach to serialization called pickling based on the idea of generating and composing functional pickler combinators statically. The approach shifts the burden of serialization to compile time as much as possible, enabling users to catch serialization errors at compile time rather than at runtime. Further, by virtue of serialization code being generated at compile time, our framework is shown to be significantly more performant than other state-of-the-art serialization frameworks. We also generalize our technique for generating serialization code to generic functions other than pickling. Second, in light of the trend of distributed data-parallel frameworks being designed around functional patterns where closures are transmitted across cluster nodes to large-scale persistent datasets, this thesis introduces a new closure-like abstraction and type system, called spores, that can guarantee closures to be serializable, thread-safe, or even have custom user-defined properties. Crucially, our system is based on the principle of encoding type information corresponding to captured variables in the type of a spore. We prove our type system sound, implement our approach for Scala, evaluate its practicality through a small empirical study, and show the power of these guarantees through a case analysis of real-world distributed and concurrent frameworks that this safe foundation for closures facilitates. Finally, we bring together the above building blocks, pickling and spores, to form the basis of a new programming model called function-passing. Function-passing is based on the idea of a distributed persistent data structure which stores in its nodes transformations to data rather than the distributed data itself, simplifying fault recovery by design. Lazy evaluation is also central to our model; by incorporating laziness into our design only at the point of initiating network communication, our model remains easy to reason about while remaining efficient in time and memory. We formalize our programming model in the form of a small-step operational semantics which includes a precise specification of the semantics of functional fault recovery, and we provide an open-source implementation of our model in and for Scala
    corecore