Keywords

1 Introduction

According to several sources, there is an increased demand for IT professionals in the job market today [1,2,3]. The educational system is not able to satisfy the job market requirements in a sufficient rate. An established computer science educational concept at the universities, yet still often based on the combination of lectures and labs, is outdated and inefficient. The knowledge acquisition and IT skills improvement of students are questionable and less effective [4].

Young people are not nowadays interested in spending time by listening to the lectures. They prefer immediate use or application of the obtained knowledge and skills. They require the options to learn anytime and anywhere, not only in the schools [5]. It is necessary therefore to try to understand that the contemporary young people are more active than their parents in general, and they select the knowledge and skills, which usefulness they can imagine or prove in a short time.

The article presents a conceptual model of the system for improving programming skills based on the microlearning theory and mobile learning environment. The first sections of paper explain the definition and most important principles of microlearning and their connections to the pedagogical theories and deal with challenges of teaching programming languages. Next part presents the description of the framework, which covers these ideas and its features. The last section deals with the potential of presented concept and scretch of future research.

2 Microlearning

Microlearning is rather a new term which has been in use through many aspects of learning, didactics, and education. It is related to the relatively short efforts and low degrees of time consumption. It deals with small or very small content units and rather narrow topics [6]. It offers a new way of designing and organizing learning, like learning in small steps and small units of content, with structure and classification created by the learner [7].

By Dash in [8], microlearning consists of micro-content and micro-activities. Micro-content is information published in a short form. By [9] microlearning encourages learners to become active co-producers of content through active social participation. The modern definition of microlearning based on [7, 10] says that microlearning is an action oriented approach offering bite-sized learning that gets learners to learn, act, and practice. It provides the educational content in small well-planed units/nuggets mostly through the mobile applications, which do not require the long attention of the students. It can provide better educational results in comparison with the classical approaches if it is suitably combined and sufficiently interactive [11, 12].

Current view of the microlearning presents pedagogical approaches, technological models and wide experience gained over the past years in the e-learning. It can be seen as a simple version of e-learning with all its positives and negatives contained in pedagogical models. Microlearning refers to any pedagogy that encourages learning in short segments [13]. Teachers in many universities use microlearning in their classes because it engages students with the subject matter and results in deeper learning, encouraging them to connect the subject matter with their everyday lives and the world around them [14]. A lot of organizations offer microlearning as an efficient tool for varied training needs including, e.g., building soft skills/behavioural change, compliance, obtaining professional skills, learning languages, etc. [14, 15].

Baumgartner defined three models of education related to the pedagogical theories connected to the behaviourism, cognitivism and constructivism [16]. According to [17] each model demands different levels of guidance and requires the learning system to play a different role.

Microlearning is an innovative way of transfer of skills and knowledge, but there are some disadvantages too:

  • Each piece of microlearning content must create a separate online training unit [18].

  • Brief modules and online training activities are not typically the best choice for more complicated tasks, skills, or processes [19].

  • Microlearning should be part of a larger online training strategy, but it should not be primary online training method [19].

According to [18], the course creators need to define and set only a single teaching goal for one lesson. It is necessary to come up with a well-thought concept, and eliminate the extra content.

There are three groups of tools used in relation to microlearning. The first group of tools and platforms were not prepared for microlearning, but they are used very often: YouTube, Twitter, Instagram, SlideShare. The second group is represented by LMSs, which were developed for building e-learning content in general, but contains useful tools for microlearning lesson creation. The special tools for microcontent creation represent the last group, e.g. Coursmos, Grovo, Yammer [20, 21].

Ubiquitous communication and computing technologies enable smartphones to be widely used to acquire instant knowledge anywhere and anytime [12]. Smartphones provide a one-to-one relationship with its owner, what is the basic assumption of education content personalization [22].

3 Teaching Programming Languages

The motivation in learning is considered an evitable part of the education process, especially in teaching programming. An intrinsic motivation represents the most important element of the educational process [23].

Teaching programming languages has several specific features [23, 24]. It offers a wide range of educational resources, approaches, and methods suitable for the development of critical and innovative thinking. The typical training activities are analyzing a problem, design data structure, programming code, and searching logical mistakes in code. Some of this activities are possible to design as microlearning units, but a lot of complex problems are out of microlearning time interval [25, 26].

Nowadays, there are available several well-known interactive solutions for teaching programming (e.g., Hackerrank, CodeWars, CodeHunt, CodingBat, etc.). They are usually integrated into the web portals, and content is often created by the software experts or engineers without adequate knowledge of the didactical approaches and principles. It is the reason why they are useful for exercising but not suitable for individual organized knowledge building.

The automated evaluation of the programming code written in different program-ming languages is a common feature of these environments. All of them contain a particular level of the gamification, provide an opportunity to create a community of learners and support different forms of competitiveness.

Since the majority of these successful solutions have web-based oriented architecture, it is hard to extend them with the elements, which would support the microlearning approach, connect to the existing virtual learning environments and which are typically easier provided by the mobile applications.

An application called Sololearn (www.sololearn.com) can be considered one of the most popular mobile applications for learning programming languages, which utilizes the elements of microlearning approach. This application has refined the concept of gamification, development of learning community, the common creation of the educational content. However, it provides only simple interactive elements without the possibility to write programs with automated testing and code evaluation as well as without the possibility to interconnect it with other educational environments.

4 Framework

The main aim of the paper is to describe a framework of microlearning-based training mobile application for improving programming skills, which will integrate the advantages of the web-based learning environments, benefits of the suitable combination of microlearning and mobile learning approaches.

The framework is based on the suitable combination of content and interactive microlearning objects. The content unit represents an elementary unit of information mostly in the form of HTML document, video or image. Its extent should not be larger as the screen display. Contrary, it should contain only sole information. Interactive objects follow each content unit and verify the students’ understanding of the presented educational content.

The contemporary LMS provides many interactive activities, which can be effectively used. For example, the most frequently used types of questions like multiple choice, short answer, ordering words, represent the core part of the proposed framework from its initial phases. Other types of questions are possible to add to the system.

The lessons, which represent prepared educational content divided into several didactically evaluated topics, create the starting point of the study. Each lesson is defined as a sequence of static educational content and interactive activities (question or creating/adding parts of a programming code). The quiz follows each sequence of the educational units (lessons). It is focused on summarization and evaluation of the obtained knowledge. Problematic parts are identified in the case of failing the quiz. At the same time, the student is returned to the educational unit, while the interactive activities are personalized and not repeated.

A successful passing the lesson unlocks a complimentary set of programming assignments. The students can choose any of them. The correctness and functionality of the student’s solution are automatically tested. Considering the differences in initial students’ knowledge, there is also an option to attempt the quiz without the reading the lessons.

A proposed framework represents a conceptual and technological basis, which existence is irrelevant without the content itself. The content development represents a time consuming task, which is easier implementable by engaging a community. Learning in the community brings not only the possibility to create a richer content but also a deeper understanding of the topic by the students [27,28,29]. Moreover, it allows a better understanding of the content and the relations between educational units [16] (Fig. 1).

Fig. 1.
figure 1

The combination of content-units and interactive activities in the lesson.

From a student’s point of view, education can be divided into several layers, and besides the first layer, the student also creates new educational content. The layers allow:

  • Learning based on the didactically ordered content and interactive units – obtaining basic knowledge and skills.

  • Involving students in the discussions, problem solving, peer-to-peer programming code evaluating, discussion about the effectiveness and programming code correctness.

  • Creating of new questions and assignments, which extend provided educational content.

  • Developing lessons for other programming languages and frameworks.

  • Developing of new types of interactive activities, an alternative design of mobile and web applications. This action has great potential in the case of university study programs. The students obtain knowledge and practical skills because they develop real applications with immediate feedback of the users.

The quality of the educational content will be guaranteed by the authors in the beginning. Subsequently, the community will not only evaluate each microlearning object but also will be able to start a discussion.

Moreover, elements of gamification will be used to sustain the intrinsic motivation. According to the Review of Empirical Studies on Gamification [30] a majority of the reviewed studies, gamification does produce positive effects and benefits. Students who are intrinsically motivated are more engaged, retain information better, and are generally happier. However, on the other hand, educators should beware when thinking about implementing gaming into their classrooms because it can backfire on them.

Contrary, according to the results of the study [31] the combination of leaders boards, badges, and competition mechanics do not improve motivation, empowerment, or satisfactions, it actually harms them. The research of the overall contribution of the gamification will be therefore one of the aims of the proposed framework. Data generated by the students’ activity will be stored in the suitable structure. Several reports and data visualizations will be created:

  • Displaying grades from the attended activities divided into several categories based on the activity type (quizzes, discussions, etc.),

  • Joining the categories and collecting badges with the aim to profiling student,

  • Ranking the students considering different kinds of their activity

  • Controlling the student’s progress and comparison with others.

The possibility to contend with an arbitrary or random student in given conditions or the possibility to attend a tournament in programming belongs to the important part of gamification. The following requirements will be considered in the design of the framework based on microlearning:

  • Definition of the content and structure of the lessons without the direct changes to the source code.

  • Maximal interactivity with the possibility to add new types of interactive activities without the changes in the core of the application.

  • Modularity and multiplatform character (native mobile application, web-based interface, desktop application) of individual parts of the system.

  • Easily readable and interchangeable format – contemporary trends in data transformation are based on JSON, which is easily transformable into the text form and usable on both sides of the communication channel

  • API definition for communication with external systems and applications, which will provide the module independence and their integration to the existing infrastructure of the university information systems and LMS.

  • Communication with external systems, which will ensure the source code evaluation and its effectivity.

It is necessary to design basic elements of the framework during the application design with an emphasis on its simple extensibility and modularity, which will allow building several more complex structures. The following units will be considered the basic microlearning objects (Fig. 2):

Fig. 2.
figure 2

The proposal of the microlearning framework for teaching programming languages.

  • content activity – elemental unit, which provides the content based on the particular type of the educational source (HTML document, picture, video etc.). This unit describes the content and allows starting a discussion regarding this content.

  • interactive activity – contains a question, task or assignment, which requires the activity/reaction of the student. Several different kinds of interactive activities are based on the same structure. Their behaviour depends on the situation in which they are used. This activity will also support off-line mode.

  • code activity – type of activity, which sends a programming code created by the students to the server and obtains the evaluation its correctness as a result (it will require an on-line connection).

These units create the following more complex logical units:

  • lesson – the sequence of the activities, which combines educational content and interactive activities (quiz, code activity),

  • quiz – the sequence of the activities, which contains different kinds of interactive activities. It can be used:

  • for repeating in the context of the lesson,

  • for skipping some lessons, if the student thought she already had obtained the presented knowledge.

  • for attending the quiz as a feedback during the lesson or seminars.

  • competition – the sequence of the interactive activities generated on the basis of the algorithms, which emphasis the correctness and speed of the solution,

  • coding activity – elementary activity, which allows writing and checking the source code of the given assignment written by the student. The student chooses the assignment from several categories, which are open after she successfully finishes the lesson.

  • tournament – single assignment or sequence of code activities, in which the correctness, speed as well as effectivity of the written source codes are rated.

These logical units have the form of container. They allow using arbitrary types of activities, even the activities, which were not created in the initial phases of the application development. This approach is possible due to the selected architecture of the application. This architecture uses JSON objects for the communication between the individual container and activity. Simultaneously, it retains the realization of all operations on the activity. Logical units are joined into the modules, which provide an educational content of the given programming language. Consequently, depending on the overall time and content difficulty, one or more modules can be created for one programming language.

The content part of the framework is closely connected with the social networks. Therefore it is easy for all stakeholders to evaluate or comment each microlearning object directly in the social network, which is very appreciated by the contemporary students. Moreover, additionally to these activities, the FAQ section creates an integral part of the proposed framework. It provides a platform for solving repeating problems or improving the learning process in general. The following algorithms will build a core of the proposed framework:

  • Algorithms, which pass through the curriculum of individual programming languages with the elements of the personalization and evaluation of the quiz questions.

  • Algorithms for testing the source code patterns or snippets, which represent the results of the practical assignments integrated into the curriculum.

  • Algorithms, which define the structure of the competitions, challenges, battles, their evaluation and displaying the answers of the participants.

  • Algorithms for ranking the students, creating top lists, displaying the main characteristics of the students based on the realised activities, badges and other outcomes of their activity in the environment.

  • Algorithms for synchronization of the local data with the central data storage based on available APIs.

  • Social network services (discussion, communication, evaluation, observation, scheduling).

5 Framework Features

A continual development of the content is considered one of the main assumptions of the sustainability of the proposed system. The community can fulfil this task most effectively because the community can use different social network channels and tools for intermediate feedback about the quality of individual microlearning objects, requirements to the new educational content, its modification. Moreover, this community generates huge data about the learners, which can be used in the process of system improvement or personalization.

The members of the community can participate in creating the new tasks after reaching a particular level. They can use predefined types of activities like questions or programming assignments. Subsequently, created tasks are validated by other members of the community or by the system developers. Finally, they are available in the corresponding lessons or in the particular content units in the lesson. The assignment can be done by the user with special privileges. After gathering enough data, it is possible to automate this process using machine learning approach. The community members can later get authorization to creating own quizzes, badges, as well as modules of programming languages. They all could encourage these students to specialize in given direction. All mentioned activities are independent of the activities of the framework development team. The community can realize these activities without any external intervention.

Automatized modifications of the content based on the students’ behaviour as well as personalization belong to the requirements of modern learning environments [32,33,34,35]. The automatized modification of the content, like interactive object in a lesson in the case of the proposed framework, is based on:

  • Students’ evaluation – bad evaluation of the activity leads to its replacement by the activity with better results, which also belongs to the given content unit. The weakly evaluated content unit will be replaced by a new content unit with modified content.

  • The success of the answers – It is necessary to implement the effective design of calculation of educational results [36, 37]. The rate of success should reach 80–95% in the initial phase. It will be lately improved considering further research. Activities will be replaced in the case of insufficient success of the results.

The personalization of the student will be partially based on the mathematic model of the student and partially on the content adaptation [38, 39]. The following main principles will be taken into account:

  • Preference these types of tasks, which received a higher positive evaluation by the students.

  • Recommendation for participating in other similar activities in the case of the lower rate of success.

  • Selection of programming assignments based on the level of the students’ knowledge and preferences.

  • Identification of the problems with the understanding of content by students and recommendation to use slower and more detailed steps with repetition.

Automated programming code testing represents nowadays a tool, which provides immediate feedback to the student about the programming code she was written. There are several solutions, how to implement this tool into the framework [40]. I/O-based Assessment [41] is the most suitable for testing outputs of the program for given inputs. The programming code testing requires a sole server using the following steps:

  • Mobile application sends programming code to the server as a text.

  • The server creates the file with source code and checks it if it does not contain malicious code.

  • If the compilation is required, the file will be compiled. The error message will be sent to the mobile application in the case of error, and the process will be stopped.

  • Considering the type of the task the file will be launched with several inputs, and the outputs will be compared with the expected one, or the tests will be launched.

  • The final protocol will be sent back to the mobile application. If some of the outputs will be not correct, the user receives a detailed explanation.

A framework should be designed in a way to be able to display the educational content not only in one language. It is necessary to create different language mutations of the educational content and quizzes in the native language of the students. A set of web-based tools connected with the backend learning management systems will be available and will provide effective and parallel development of the content in selected languages.

6 Conclusion

According to [7,8,9] microlearning raises new questions of the didactical design of learning activities based on micro-content and resulting in micro-content. Although there is plenty of micro-content everywhere on the Internet, there is a lack of research in microlearning activities that can utilize it in a microlearning educational context. There is still a need for research to develop and apply new innovative microlearning strategies and study their efficiency in education.

The aim of the presented framework is to implement innovative methods, new educational content and methodology to develop students’ analytical and creative thinking through algorithms and programming in line with labour market requirements. These innovations must be designed to address the interests, learning and communication habits of young people, with goals to develop an internal motivation and sustain their interest. It can be assumed that the application of the conceptual framework can result in improving methods based on learning-by-doing, microlearning approach, learning anytime and anywhere with immediate feedback, creating the learning community, and applying gamification using standard features like points, rewards, badges, ranking, and comparison with other members, etc.

This model is designed not only for the university students but the general public and acquiring knowledge of professionals too. The university is only a starting point with a huge potential to validate the concept, to create content and to prepare students for one of the future forms of lifelong learning.

Although the concept will be verified on the platform of programming languages, it is usable for many areas of teaching and skills building. It is prepared for building new types of activities (e.g., parameterized able exercises of math, physics, languages, working with pictures/maps, etc.) and implementation in different areas. The parallel goals of research based on presented work are collection and evaluation of educational data, and text mining oriented to the preparation of micro-content from long texts.