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.
Automatic assessment of code, in particular to support education, is an important feature included in several Learning Management Systems (LMS), at least to some extent. Several kinds of assessments can be designed, such as exercises asking to "fill the following code", "write a function that", or "correct the bug in the following program", for example. One difficulty for instructors is to create such programming exercises, in particular when they are somewhat complex. Indeed, instructors need to write the statement of the exercise, think about the solution and provide all the additional information necessary to the platform to grade the assessment. Another difficulty occurs when instructors want to use their exercises on another LMS platform. Since there is no standard way to define and describe a coding exercise yet, instructors have to re-encode their exercises into the other LMS. This paper presents a tool that can automatically generate programming exercises, from one single and unique description, and that can be solved in several programming languages. The generated exercises can be automatically graded by the same platform, providing intelligent feedback to its users to support their learning. This paper focuses on and details unit testing-based exercises and provides insights into new kinds of exercises that could be generated by the platform in the future, with some additional developments.
Nowadays, teaching and learning computer science is done at various ages, for several topics and for different reasons. Depending on the country, it can start from the primary school and it finishes at the higher education level, or even later if we take continuing education into consideration. Topics to be learned can be as simple as binary representation or basic programming concepts that can be taught to children to introduce them to computer science. It is also possible to teach and learn advanced data structures or algorithms optimisation, which are interesting skills for Olympiad in Informatics contestants, for example. Recently, there is a prominent number of websites and applications that have been created to help the teaching and learning of many informatics concepts. This paper presents a platform that has been designed to browse a database of resources that can be used to teach or to learn computer science. This digital library contains freely accessible resources and can be searched efficiently thanks to the proposed structure for its content. It has been designed to maximise the user’s experience and to fit modern models of digital libraries. For each resource, a detailed information sheet has been produced, containing among other things pedagogical information to help teachers and learners use the resources as best as possible. This platform can also be used to train candidates to Olympiad in Informatics and other related and similar competitions.
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.