**Block-Based Development of Mobile Learning Experiences for the Internet of Things**

**Iván Ruiz-Rube \*, José Miguel Mota, Tatiana Person, José María Rodríguez Corral and Juan Manuel Dodero**

School of Engineering, University of Cádiz, Avenida de la Universidad de Cádiz, 10, 11519 Puerto Real, Cádiz, Spain; josemiguel.mota@uca.es (J.M.M.); tatiana.person@uca.es (T.P.); josemaria.rodriguez@uca.es (J.M.R.C.); juanma.dodero@uca.es (J.M.D.)

**\*** Correspondence: ivan.ruiz@uca.es

Received: 22 October 2019; Accepted: 9 December 2019; Published: 11 December 2019

**Abstract:** The Internet of Things enables experts of given domains to create smart user experiences for interacting with the environment. However, development of such experiences requires strong programming skills, which are challenging to develop for non-technical users. This paper presents several extensions to the block-based programming language used in App Inventor to make the creation of mobile apps for smart learning experiences less challenging. Such apps are used to process and graphically represent data streams from sensors by applying map-reduce operations. A workshop with students without previous experience with Internet of Things (IoT) and mobile app programming was conducted to evaluate the propositions. As a result, students were able to create small IoT apps that ingest, process and visually represent data in a simpler form as using App Inventor's standard features. Besides, an experimental study was carried out in a mobile app development course with academics of diverse disciplines. Results showed it was faster and easier for novice programmers to develop the proposed app using new stream processing blocks.

**Keywords:** Internet of Things (IoT); mobile apps; end-user development; App Inventor; block-based languages; map-reduce
