Design and Implementation of P2P Based Mobile App for Collaborative Learning in Higher Education

Within the recent years, mobile technologies have made major progress in its development. They have become an integral part of our daily life. Therefore, the big interest of using mobile technology in education process is comprehensible. A new technology was born called mobile learning (m-learning). The main benefits of this technology are sharing three important dimensions of learning resources namely learning contents, learning collaborators and learning services. In university courses, different forms of collaborative and peer learning are progressively used in order to assist students meet an assortment of learning outcomes. Therefore, the use of mobile technologies in education has become a crucial topic for research. Because mobile phone is the first choice of everyone to communicate, our research is focused on the use of smartphones as learning resources. In this paper, we propose an implementation of a new mobile application-based peer-to-peer learning system named "EachOther" and a scenario for its usage applied on students of an IT course at the High School of Technology of Fez (ESTF). The aim of this work consists of the conception, the development and the implementation of the mobile application based on Android system to support collaborative learning, by applying an object-oriented modeling language which is Unified Modeling Language (UML). Keywords—Mobile technologies, E-learning, Mobile learning, Peer to peer, collaborative learning, Android system.


Introduction
Mobile technologies have emerged as facilitators in the learning process, affording new methods to access and use learning materials and defining the mobile learning model [1]. The term mobile learning designates the use of mobile applications installed on a mobile device (smartphone, PDA, tablets) that are used in the education process at universities and schools. Thereby, with mobile devices, learning is getting to be more and more personal and connected to the environment at the same time with more potential for connected collaborative activities [2]. Among the different forms of learning that exist, we have focused in this article on peer learning.
Peer learning has always been a part of students' university experience. Traditionally this has meant students interacting informally with each other outside formal teaching sessions, but in more recent times peer learning has been included as part of an organized learning process with students being asked to work in pairs or in groups to achieve a variety of learning outcomes [3]. In all courses, students share useful information and learning experiences. When students encounter problems, they often seek help from other students rather than from teachers. Learning from peers usually occurs informally without teacher involvement, and it particularly benefits the students who are effective learners [4]. In terms of technology, peer learning is based on P2P communication which is considered as one of the most important and suitable networking technologies for ubiquitous communications, i.e. allows direct communication between devices, free and extensible distribution of resources and distributed search for enormous amount of resources [5].
Due to the growing perception of Android-based smartphones, many researchers and academics are increasingly interested in developing applications for P2P communication in these devices. In addition, the increasing applications for P2P communication in these smartphones are imputed to the reason that Android Operating System is a free and open source for developers to build their applications using the Android SDK and adding them to the Android libraries.
Therefore, the aim of this paper is to implement an android application-based peerto-peer learning which provides a platform for students to share their outcomes, knowledge and learning resources.
The paper is organized as follows: the background and related works are reviewed in section 2; in section 3, general requirements and methods are discussed and our mobile application is proposed; in section 4, we provided materials and tools used in developing and implementing the application; section 5 was devoted to the evaluation and validation of the application, and in section 6, we summarize our work with conclusion and perspectives for future work.

2
Background and Related Works E-learning emerged not so long ago and, due to its novelty, it incorporates the best methodological practices and modern educational technology. These technologies such as collaborative learning, peer learning, dynamic cognitive process are currently considered as the most beneficial and appropriate methods for e-learning. The aforementioned technologies are active methods of training and employ a wide range of research and problem-solving techniques, application of obtained knowledge in cooperative and individual activities, development of independent critical reasoning, communication standards and the ability to perform diverse social roles in collaborative activities [6].

Peer learning
Within university courses, different forms of collaborative and peer learning are progressively used in order to assist students meet an assortment of learning outcomes. According to many researchers, peer learning refers to the use of teaching and learning strategies in which students learn with and from each other without the immediate intervention of a teacher [7]. It allows participants to help each other to understand as well as encourage each other to work hard to promote [8]. Some examples of peer learning include student-led workshops, study groups, team projects, student-to-student learning partnerships and peer feedback sessions in class [7]. The potential benefits of peer learning have long been recognized and are especially relevant today.
In the literature, several research studies have been carried out. The research of [9] had an objective to enhance the protocol for mobile P2P middleware on Android Operating Systems. The mobile middleware used wireless technologies such as Bluetooth, WiFi and Direct Wifi. This middleware can allow the students and staffs to communicate into the university campus and to share files and data without any cost.
[10] maked a study about a developed social media enhanced web service called "TUT Circle", that was dedicated for students at Tampere University of Technology (TUT). TUT Circle is built on Drupal, a content management framework, and was developed by the Hypermedia Laboratory at TUT. TUT Circle promotes networking, collaboration, and communications of small groups by allowing users to form friendships with each other, send private messages, chat, create, contribute, and comment on content, exchange opinions, and share resources within and between the groups. The objectives of this study were to determine if the students voluntarily utilized peer learning in order to learn with and from each other without immediate teacher intervention utilizing TUT Circle, the possible benefits of social media that support peer learning for students and how students experienced the use of social media in small groups.
On the other hand, [11] designs a network teaching system based on P2P and streaming media technology. This system combines the advantages of P2P technology and Client/Server mode. [11] proposed an algorithm based on a P2P architecture to solve the problem of lack of targeted orientation for learners in the community learning process. With the improvement of learning rules, learners with similar interests have been grouped together. The case study of this self-organizing community learning system based on p2p network was applied on university computer basic courses.

Collaborative learning
The modern educational community considers collaborative learning as a key element in the process of acquiring knowledge and successful practical experiences.
The term "collaborative learning" refers to students' mutual learning that encourages them to work together collectively thereby producing new scholastic achievements, rather than absorbing the knowledge provided by the teacher. This learning model implies the use of small groups of students in a real or virtual class. In this context, classroom assignments are designed in such a way that all team members become interdependent, but sufficiently autonomous to master the learning materials and solve specific problems [6].
In a comparison of Collaborative learning vis-à-vis traditional classroom learning, [12] [13] found that a collaborative approach increases student involvement with the course as well as with each other. Also, several researchers [14][15] [16] found that it increases the level of critical and active thinking, promotes problem-solving skills and increases student satisfaction. More recent analysis also supports these outcomes [17] [18].

Requirements and Methods
In spite of P2P growth, much of P2P research and literature has focused only on explaining the technology instead of focusing on software applications. This is true across sectors, including education [19] [20], business [21] [22] and computer science [23] [24]. When applications are discussed they tend to focus on a single application [25] [26]. We are interested in exploring the potential of P2P technology for learning, particularly for developing Collaborative Learning (CL) capabilities. The purpose of this paper is to develop a new mobile application based on android system and using Java, xml and Firebase that will be detailed in next sections.
Mobile applications are currently growing rapidly thanks to the success of Smartphones, including those running Android. In fact, Android, Apple and Windows Phone are the main Operating Systems for mobile phones. Nevertheless, Android has become the most used smartphone Operating System worldwide, as shown in Fig.1. In the following subsection, we will detail the architecture of the android system in order to help us understand how it works.

Android operating system architecture
Android is an open source Linux based operating system and software platform for mobile devices. It is developed by GOOGLE. It allows developers to write code in java language [27]. There are millions of devices currently using android operating system because of its open source feature, and millions of applications currently available on app store [28].
As shown in Fig.2, the Android operating system is based on a four-tier architecture.

Fig. 2. Android Operating system Architecture
Linux kernel: The Android operating system is based on a Linux kernel, regularly updated according to the system versions: if the first versions used version 2.6.x of the Linux kernel the current latest versions (Android 5.x) are based on version 3.4.x of Linux. This first layer supports the management of the lower layers (process, memory, hardware layer management) as well as user rights [29]. Above the kernel is a layer of native user space, consisting of the init binary (the first process started, which runs all the other processes), several daemons and a few hundred native libraries are used throughout the system [30].
Libraries and android runtime: This level includes the layer of main system libraries provided by third parties. These are low-level and written in C and/or C++. They provide essential services such as the 2D display library (SGL), the 3D graphic display library (OpenGL), the database library (SQLite), audio and video playback and recording (Media Framework), a web browser engine (WebKit) and so on [31]. At the same level as this set of libraries is Android's functional environment, based on Java technology with a unique specificity: its virtual machine optimized for mobile applications. This virtual machine, called Dalvik, is initialized by each application when it is launched and opens, for each one, a specific Dalvik that makes the OS completely multitasking. Dalvik comes with its specific development kit or Application Programming Interface (API) written in Java; Android applications are therefore written in Java. The Java Development Kit (JDK) for Android is, in fact, a subset of the SUN JDK and integrates part of the JDK SUN and JDK SWING classes, plus Android-specific classes [32].
Android framework: The functionalities offered by these libraries are then taken over and used by this layer as Java libraries. These provide reusable libraries and specific components to particular domains. These include, for example, database libraries, telephone libraries, geographical location libraries and near-field communication libraries [31].
The applications: Finally, applications are the last layer that completes this structure. These applications can be third-party applications downloaded from the official application store, but also applications installed by default, such as the host application (also called Launcher), web browser, SMS, contacts, etc. All these applications are commonly developed in Java [31].
The next section will be devoted to the specification and needs analysis phase.

Design of function module
The basic steps of mobile application development are: requirements, design, programming, testing, and implementation. Before developing our application, we must collect it needs. UML is one of the most popular traditional tools used for detailed software development planning. It helps us capturing various requirements of the users. The representation done by UML is independent of the platform and language used [33].
In this section, we will identify all the functionalities of the application according to functional and non-functional requirements. Starting with functional needs, non-functional needs, and finally the different use cases and their modeling with diagrams.

Functional requirements
Functional or business requirements represent the actions that the system must perform to become an operational system. They can be summarized as follows:

Non-functional requirements
These are the needs that characterize the system. These are performance needs, type of equipment or design type. These needs may include implementation constraints (programming language, DBMS type, operating system type, etc.).
As part of this work, the application will have to be extensible, i.e. there may be have the ability to add or modify new features.
• Authentication: The application will have to be highly secure because the information should not be accessible to everyone. • Ergonomics: The application must offer a user-friendly, explicit and simple interface to be used. • Field control: The application must have an input field controller, to avoid entering information that does not match the field types.

Identification of use cases
A use case represents a set of sequences of actions performed by the system that produce an observable result of interest to a particular actor.
A use case models a service provided by the system. It expresses actor/system interactions and provides "significant" added value to the actor concerned [34].
With reference to our application, Fig.4 shows the global UML use cases diagram of our developed application. There are seven use cases and one actor in the diagram of "EachOther" application. Through the application, actor User have to register (Sign in) by filling some basic informations such as his email, phone number, gender and password). After registration, the user can log in to the application by entering his email and password. Once connected to the platform, the user can benefit from the functionalities available on our application, namely to search for collaborators by name or by competencies. He can then send messages to these collaborators, as well as add them to his friends list. The user also has an interface allowing him to access the help library and search for books or links that will be useful to him in his course.

Fig. 4. Representation of global Use Case Diagram of our developed application "EachOther"
In what follows, we have divided this diagram into sub diagrams that describe each Use Case separately as shown in Fig.5, Fig.6, Fig.7, Fig.8 and Fig.9.  iJIM -Vol. 14, No. 7, 2020 In order to describe each Use Case in detail, we used the use case reports that are represented in Tables 1, 2, 3, 4 and 5. Use case reports convert the graphical representation of use cases into a detailed report. It is easy to understand the details of the actors and the events they have carried out through this report. Allows the user to register Scenario description • Request for registration form • The system displays the registration form (user request an email, phone number, gender, password) • The user enters his information and then validates • The system checks the conformity of the information provided (A1) Precondition None Alternative (A1) In case the information provided is incomplete or incorrect, the system redisplays the registration form and waits for the user to re-enter his information Allows the user to log in Scenario description • Connection request;

•
The system displays the authentication form (email request and password); • The user enters his login and password and then validates;

•
The system checks the conformity of the information provided (A1);

•
The system gives access to the corresponding interface Precondition To be registered Alternative (A1) In case the information provided is incomplete or incorrect, the system redisplays the authentication form and waits for the user to re-enter his information

Application class diagram
The class diagram is considered the most important part of object-oriented modeling. It is mandatory when such modeling is performed. It shows the internal structure and provides an abstract representation of the system objects that will interact to realize the use cases. The class diagram of our application is shown in Fig.10.

Materials and Tools
This section is dedicated to the study of our "Each Other" application, we will present the development tools adopted, namely the environment used which is Android, as well as the programming languages (JAVA, XML).

Development tools
In the development of this application, we have used Android and Java, as well as XML for establishing the user interface properly. This app is built on Android Studio and we used Firebase as database server which is a real-time database allowing authentication, storage, crash reporting, analytics and cloud messaging. Firebase is a NoSQL database hosted "in the cloud" allowing the storage and synchronization of users' data. As a developer, we can manage this database in real time. It is delivered with mobile and web SDKs and allows creating applications without using servers.
Each version of Android is associated with a version of an emulator, allowing the developer to see exactly what its application will look like on real hardware. For our mobile application we used the emulator Nexus 4 API 27. Fig. 11. An extract from the java code of the application

The implementation of P2P based mobile app for collaborative learning (EachOther App)
This section is dedicated to the production and implementation of our application of peer learning. We will present the main interfaces of the application, as well as the description of each one. • Home interface: this is the first view that user will see when he enters the app. It shows the icon of the app and the button to register "Sign in". • Registration interface: This is the interface for creating a new account. On this interface, the user has to enter a name, an email, a password and define his gender, then click on the "Sign in" button. • Authentication interface: after registration, the user can enter his email and password and click on the "login" button in order to access to the functionalities of the application. • Suggestion list interface: When the user logs into his account, this interface displays and shows him a list of suggestions of collaborators. Once he clicks on a collaborator, it displays to him the collaborator's name and skills and then the user can add these collaborators to his list of friends.

Evaluation and Validation of the Application
Regarding our developed mobile application, it was tested by 40 undergraduate students in second year of "Database Administration" class, at the High School of Technologies of SMBAU. The students were requested to install and use the mobile application during semester 4 (8 weeks course). We used a questionnaire to evaluate our application and its impact on academic performance of students.
The results of the above survey show that the majority of students are interested in peer learning. Only a few students are not interested in peer learning. However, some students reported that most students who achieve good grades do not take a full interest in peer learning because they feel they can easily help students who are lazy and who get low grades. All students of "Database Administration" class have used the mobile application for P2P learning.
The majority of students (95%) find the application easy and simple to use. While (5%) encountered some difficulties in use mainly related to the Internet connection.
Performance of student is also influenced by the frequency of use of the P2P learning mobile app. So, from the above results, students said that majority of them use the mobile app about 2 hours per week.
To make peer learning be more effective, it is better for students to schedule their use of the mobile app. The analytical result revealed that the majority of students plan to use the mobile application for P2P learning. While other categories of students use the application when necessary, for example if they cannot understand concepts in their class session or when solving exercises or homework.
Students were asked if their participation in P2P learning through the mobile application had a positive impact on their academic performance. Indeed, almost all students believe that participation in P2P learning can improve their academic performance. In addition, the majority of students reported that their academic performance had improved significantly by using the mobile app for P2P learning.
Through the scores obtained by the students in their assessment, we have noticed an improvement in academic performance of the majority of students (90%) who have used the application. While some students (10%) have kept the same level before using the application. So, our application does not cause any degradation of the level of the students who use it, rather, it often allows an improvement of their academic performance.
The major purpose of using "EachOther" for the majority of students (65%) was to get better marks in their exams, while 15% of students use the application in order to better understand their courses. The rest of students wants to enrich their knowledge and so on.

Conclusion and Future Work
For many students at university, the opportunity to learn with and from others is a preferred learning method. Peer learning give the students the ability to develop skills and competences such as teamwork. Our developed application is used as a learning tool for the purpose of enhancing students' collaboration, communication and networking skills as well as promoting peer learning in small groups.
In this paper, we present the design and implementation of P2P based mobile app for collaborative learning in Higher Education and especially the High School of Technology of Sidi Mohamed Ben Abdellah University (ESTF) as a case study. We started by collecting the needs of the mobile application and identifying all its functionalities. For this step, we used Unified Modeling Language (UML). Then, we described the development of the mobile app, in which we used the Android mobile platform, Java and xml for programming languages and FireBase for data management. After that, we showed some interfaces resulting from the implementation of the mobile app.
We tested our developed application on 40 participants representing undergraduate students of "Database Administration" class, at the ESTF. The experimental results reveal that the proposed mobile app is able to improve the academic performance of students and to enhance collaboration between them.
As future work, we aim to integrate learning analytics tools which gives possibilities to check student interaction and collaboration activities, and observe the evolution of student participation. These tools may also help students to monitor and evaluate their performance processes and learning outcomes, thereby increasing their motivation, and make strategic directives to improve their performance.