Abstract. Learning of programming and, more generally, of computer science concepts is now reaching the public at large. It is not only reserved for people who studied informatics (computer science) or programming anymore. Teaching programming to schoolchildren presents many challenges: the big diversity in ability and aptitude levels; the big amount of different tools; the time-consuming nature of programming; and of course the difficulty to motivate schoolchildren to keep them busy with hard work. There are various platforms that offer to learn coding and programming, in particular game-based platforms, which are more and more popular. These latter exploits of the gamification process focused on increase in motivation and engagement of the learners. This paper reviews the main kinds of online platforms to learn programming and more general computer science concepts, and illustrates the review with concrete platforms examples.
This paper discusses the use of formal methods for analysing human-computer interaction. We focus on the mode confusion problem that arises whenever the user thinks that the system is doing something while it is in fact doing another thing. We consider two kinds of models: the system model describes the actual behaviour of the system and the mental model represents the user's knowledge of the system. The user interface is modelled as a subset of system transitions that the user can control or observe. We formalize a full-control property which holds when a mental model and associated user interface are complete enough to allow proper control of the system. This property can be verified using model-checking techniques on the parallel composition of the two models. We propose a bisimulation-based equivalence relation on the states of the system and show that, if the system satisfies a determinism condition with respect to that equivalence, then minimization modulo that equivalence produces a minimal mental model that allows full-control of the system. We enrich our approach to take operating modes into account. We give experimental results obtained by applying a prototype implementation of the proposed techniques to a simple model of an air-conditioner.
Automatic assessment of code to support education is an important feature of many programming learning platforms. Unit testing frameworks can be used to perform a systematic functional test of codes; they are mainly used by developers. Competition graders can be used to safely execute code in sandboxed environments; they are mainly used for programming contests. This paper proposes a platform combining the advantages of unit testing and competition graders to provide a unit testing-based grader. The proposed platform assesses codes and produces relevant and "intelligent" feedbacks to support learning. The paper presents the architecture of the platform and how the unit tests are designed.
It is important for a future computer science engineer or scientist to master algorithm design and to know how to optimise algorithms to solve real-world problems. Most programming and IT contests require their contestants to design algorithms to solve problems and to optimise their code to get the best temporal and spatial performances. This paper presents training materials built from contest tasks to teach and learn how to design algorithms that solve concrete and contextualised problems. The first learning modules will be built thanks to a pedagogical device that will be deployed during the 2017-2018 academic year at ECAM in the frame of the LADO project. All the produced materials will be open sourced and available in English.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.