# Jupyter Notebooks in Undergraduate Mobile Robotics Courses: Educational Tool and Case Study
## 1 Introduction  
_Jupyter notebooks_ are documents combining in the same place narratives with texts, equations, figures, videos, links to additional resources, etc., as well as executable code with visible outputs [1]. Notebooks' primitives are cells containing narratives formatted using different markup languages like HTML, Markdown, SVG, or LaTeX, or code written in a variate of languages such as Python, R, C++, Java, etc. [2]. As a result, they allow for the fast prototyping and development of contents of diverse nature [3] (see Figure 1). They are designed using the _Jupyter Notebook_ application, a web-based development framework part of the _Project Jupyter_ initiative [4]. The early popularity of this tool (back in 2014) was due to its virtues as an ecosystem for doing data science. However, nowadays it is standing out for the creation of teaching material, since it promotes the achievement of typical learning objectives posed by teaching plans worldwide (acquisition of basic knowledge, ability to evaluate and create, etc.) [3, 5]. One of the main reasons for that is the ability of Jupyter notebooks for proposing challenging contextualized problems, where students have at their disposal the narratives and code needed for successfully address them. In this way, Jupyter notebooks are considered valuable resources for enhancing studentsengagement, participation, and understanding, which results in an increased performance and preparation for their carriers. They also provide instructors with mechanisms to gradually develop publishable and interactive material for lab assignments, in-class demos, auxiliary materials, etc. [3]. These documents are also called _computational narratives_ or _living documents_, since students can interact with them to explore or focus on questions of interest for their learning, i.e., they can converse with a problem surrounded by relevant explanations, prose and code (experiments). From the educators side, Jupyter notebooks permit them to bring concepts to live during lectures. One of the fields that can greatly benefit from the inclusion of Jupyter notebooks is such of the teaching of mobile robotics. Specifically, mobile robots are increasingly landing in fields like education, health care, surveillance, etc. [6; 7; 8], and might be as diverse as drones, autonomous cars, or warehouse robots, among others [9; 10]. Nowadays, it is clear the commitment of public entities for advancing in this respect, as shown by the European Union through the H2020 Research and Innovation programme [11], United States or Japan [12]. Large, international companies like Google or Facebook are also aware of the possibilities of robots, showing a clear interest in mobile robotics-related companies and applications. As a consequence of this interest, the number of professionals and enthusiasts in the mobile robotics field is growing considerably, which demand a quality training in robotics-related topics. Indeed, the number of courses addressing such topics is also growing in universities as well as in online learning platforms like Coursera ( [[https://www.coursera.org/](https://www.coursera.org/)]([https://www.coursera.org/](https://www.coursera.org/))) or Udacity ([[https://www.udacity.com/](https://www.udacity.com/)]([https://www.udacity.com/](https://www.udacity.com/))). Mobile robotics courses integrate abstract concepts from diverse areas like algebra, probability, statistics, calculus, discrete mathematics, programming, or artificial intelligence [13], all of them present in STEM education programs [14; 15]. The acquisition and understanding of such concepts by the students is essential to appropriately address varied topics in this field, including: robot motion, perception, localization, environment mapping, motion planning, and robotic control architectures among others [13; 16; 17].