Future of Learning in Computer Science

The FOLCS lab is an interdisciplinary research and innovation lab working to explore the future of teaching and learning in the computer science field.
This lab brings together a group of researchers, educators, designers and edtech developers with a common interest in advancing computer science education. We aim to design high quality and inclusive tools, architectures and models to make computer science learning more accessible to all. We work with interdisciplinary and international teams enabling innovative and actionable research.



Our team focuses on:

  1. Evidence-based learning experiments for CS education. We teach computer science online but do people learn? We will evaluate the integration of new learning tools. We work with pre/post tests and we develop analytical tools and dashboards to measure and monitor learning. 
  2. Cognitive science. Does learning how to program promote the development of higher cognitive skills or the transfer across knowledge domains: abstract thinking, problem solving, reasoning, designing, planning, and algorithmic thinking? How do we measure those higher level skills, such as procedural thinking, conditional reasoning, mathematical ability, and memory capacity? 
  3. System architectures for better scalability, interoperability, discoverability and traceability in learning. Use of standards, protocols and certification process. We design and prototype modular learning systems that scale massively by implementing self-healing, self-deploying, self-optimizing and self-protecting architectures. We aim to create learning services ecosystem models. We explore open protocols, standards and formats that enable learning resources reuse and intellectual property traceability and we make sure to be involved in a certification process for our tools (with the IMS Global Learning Consortium).  
  4. Training CS educators at scale. How might we better train CS educators in order to scale-up programming teaching?
  5. Inclusive by design in CS education. How do we design learning experiences that promote diversity and inclusion for teachers and learners in the field of computer science?
  6. Better feedback with AI. Can artificial intelligence help us to provide relevant, instant, and personalized feedback in CS learning?
  7. Ethic by design in CS. While developing learning interfaces for CS, how to implement ethical frameworks and policy guidance for computer developers and computer scientists? 
  8. Teaching basic AI ethics for all. Design and develop teaching tools to foster the development of basic skills, useful to any citizen, to use critical thinking around algorithms and artificial intelligence. 


  • (cf 1, 2) There is a huge need for cutting-edge technologies to learn CS. Even when new tools to teach and learn how to program are being integrated, there is a lack of evaluation of their efficiency.
  • (cf 3) Existing LMS often come with integrated content creation editors that produce learning resources that are not interoperable with other LMS, and not indexable by search engines. It makes it difficult to reuse learning resources. Content reuse addresses the problem of duplicability and traceability: solutions need to be found to respect the attributions in terms of IP,  hosting, compensation for authors (business models)… 
  • (cf 6) How to grade computer programming skills using machine learning? 
  • (cf 4, 5, 7, 8 ) Need for CS education policy and practice
    • How do we find enough teachers? What tools should we use? How should we scope and sequence CS curricula? What do teachers need to know to teach CS? How do they get trained?
    • What are the purposes of bringing computer science education to all students? Why is CS ed important? How will it improve the future of the next generations?