673 research outputs found

    Teaching functional patterns through robotic applications

    Get PDF
    We present our approach to teaching functional programming to First Year Computer Science stu- dents at Middlesex University through projects in robotics. A holistic approach is taken to the cur- riculum, emphasising the connections between different subject areas. A key part of the students’ learning is through practical projects that draw upon and integrate the taught material. To support these, we developed the Middlesex Robotic plaTfOrm (MIRTO), an open-source platform built using Raspberry Pi, Arduino, HUB-ee wheels and running Racket (a LISP dialect). In this paper we present the motivations for our choices and explain how a number of concepts of functional programming may be employed when programming robotic applications. We present some students’ work with robotics projects: we consider the use of robotics projects to have been a success, both for their value in reinforcing students’ understanding of programming concepts and for their value in motivating the students

    Teaching functional patterns through robotic applications

    Get PDF
    We present our approach to teaching functional programming to First Year Computer Science stu- dents at Middlesex University through projects in robotics. A holistic approach is taken to the cur- riculum, emphasising the connections between different subject areas. A key part of the students’ learning is through practical projects that draw upon and integrate the taught material. To support these, we developed the Middlesex Robotic plaTfOrm (MIRTO), an open-source platform built using Raspberry Pi, Arduino, HUB-ee wheels and running Racket (a LISP dialect). In this paper we present the motivations for our choices and explain how a number of concepts of functional programming may be employed when programming robotic applications. We present some students’ work with robotics projects: we consider the use of robotics projects to have been a success, both for their value in reinforcing students’ understanding of programming concepts and for their value in motivating the students

    MIRTO: an open-source robotic platform for education

    Get PDF
    This paper introduces the MIddlesex RoboTic platfOrm (MIRTO), an open-source platform that has been used for teaching First Year Computer Science students since the academic year 2013/2014, with the aim of providing a physical manifestation of Software Engineering concepts that are often delivered using only abstract or synthetic case studies. In this paper we provide a detailed description of the platform, whose hardware specifications and software libraries are all released open source; we describe a number of teaching usages of the platform, report students’ projects, and evaluate some of its aspects in terms of effectiveness, usability, and maintenance

    MIRTO: an open-source robotic platform for education

    Get PDF
    This paper introduces the MIddlesex RoboTic platfOrm (MIRTO), an open-source platform that has been used for teaching First Year Computer Science students since the academic year 2013/2014, with the aim of providing a physical manifestation of Software Engineering concepts that are often delivered using only abstract or synthetic case studies. In this paper we provide a detailed description of the platform, whose hardware specifications and software libraries are all released open source; we describe a number of teaching usages of the platform, report students’ projects, and evaluate some of its aspects in terms of effectiveness, usability, and maintenance

    Towards cyber-physical systems as services: the ASIP protocol

    Get PDF
    The development of Cyber-Physical Systems needs to address the heterogeneity of several components that interact to build a single application. In this paper we present a model to enable easy integration and interaction of micro-controllers. Specifically, we describe the Arduino Service Interface Protocol (ASIP), we provide an implementation and client libraries for Java, Racket and Erlang, together with the description of a practical example

    Towards cyber-physical systems as services: the ASIP protocol

    Get PDF
    The development of Cyber-Physical Systems needs to address the heterogeneity of several components that interact to build a single application. In this paper we present a model to enable easy integration and interaction of micro-controllers. Specifically, we describe the Arduino Service Interface Protocol (ASIP), we provide an implementation and client libraries for Java, Racket and Erlang, together with the description of a practical example

    Programming the MIRTO robot with neurons

    Get PDF
    MIRTO is a new, inexpensive, open-source robot. The specification, the necessary libraries, and sample code are freely available. It has been used to teach undergraduate students programming and as an extensible base platform for students engineering robots. While it is typically programmed in traditional programming languages, it has also been driven by simulated neurons; point neurons have been used to follow a line. Since neurons are the basis of animal cognition, using them as the basis of a cognitive architecture is a promising idea. The neural MIRTO line following system can be extended into a larger more cognitive neural agent as a way forward in neural cognitive architectures

    Development and Evaluation of a Simulation Tool for Robotics Education

    Get PDF
    This IQP is aimed at constructing a virtual robotic simulator and then testing its effectiveness as a learning tool. After researching other simulators, the team developed a simulator called Lua Visual. To determine if Lua Visual could be used as learning tool, the team tested how both high school and college students reacted to the software. The results suggested that simulators like Lua Visual would be very useful for robotics education. Video of the simulator can be found here: http://www.youtube.com/watch?v=cG5vG_-0UY

    Four approaches to teaching programming

    No full text
    Based on a survey of literature, four different approaches to teaching introductory programming are identified and described. Examples of the practice of each approach are identified representing procedural, visual, and object-oriented programming language paradigms. Each approach is then further analysed, identifying advantages and disadvantages for the student and the teacher. The first approach, code analysis, is analogous to reading before writing, that is, recognising the parts and what they mean. It requires learners to analyse and understand existing code prior to producing their own. An alternative is the building blocks approach, analogous to learning vocabulary, nouns and verbs, before constructing sentences. A third approach is identified as simple units in which learners master solutions to small problems before applying the learned logic to more complex problems. The final approach, full systems, is analogous to learning a foreign language by immersion whereby learners design a solution to a non-trivial problem and the programming concepts and language constructs are introduced only when the solution to the problem requires their application. The conclusion asserts that competency in programming cannot be achieved without mastering each of the approaches, at least to some extent. Use of the approaches in combination could provide novice programmers with the opportunities to acquire a full range of knowledge, understanding, and skills. Several orders for presenting the approaches in the classroom are proposed and analysed reflecting the needs of the learners and teachers. Further research is needed to better understand these and other approaches to teaching programming, not in terms of learner outcomes, but in terms of teachers’ actions and techniques employed to facilitate the construction of new knowledge by the learners. Effective classroom teaching practices could be informed by further investigations into the effect on progression of different toolset choices and combinations of teaching approache

    Taking Arduino to the Internet of things: the ASIP programming model

    Get PDF
    Micro-controllers such as Arduino are widely used by all kinds of makers worldwide. Popularity has been driven by Arduino’s simplicity of use and the large number of sensors and libraries available to extend the basic capabilities of these controllers. The last decade has witnessed a surge of software engineering solutions for “the Internet of Things”, but in several cases these solutions require computational resources that are more advanced than simple, resource-limited micro-controllers. Surprisingly, in spite of being the basic ingredients of complex hardware–software systems, there does not seem to be a simple and flexible way to (1) extend the basic capabilities of micro-controllers, and (2) to coordinate inter-connected micro-controllers in “the Internet of Things”. Indeed, new capabilities are added on a per-application basis and interactions are mainly limited to bespoke, point-to-point protocols that target the hardware I/O rather than the services provided by this hardware. In this paper we present the Arduino Service Interface Programming (ASIP) model, a new model that addresses the issues above by (1) providing a “Service” abstraction to easily add new capabilities to micro-controllers, and (2) providing support for networked boards using a range of strategies, including socket connections, bridging devices, MQTT-based publish–subscribe messaging, discovery services, etc. We provide an open-source implementation of the code running on Arduino boards and client libraries in Java, Python, Racket and Erlang. We show how ASIP enables the rapid development of non-trivial applications (coordination of input/output on distributed boards and implementation of a line-following algorithm for a remote robot) and we assess the performance of ASIP in several ways, both quantitative and qualitative
    • …
    corecore