DISTANCE EDUCATION WITH MOODLE IN ENGINEERING EDUCATION: ONLINE PROGRAMMING ASSIGNMENTS COMPILATION

The concept of distance education systems is a concept that applies to all levels of education, including universities. The use of distance education systems has increased considerably in universities today. M any faculties in many universities use distance education systems for their courses. The purpose of this paper is to design and develop a system that can be used to upload lecture notes and assignments online via the Internet, to do online exams, to provide a compilation control of all the assignments written, especially in the C programming language, by instructors who are primarily in the Engineering Department, then all instructors in the universities using the Moodle platform. Moreover, the aim of this paper is to design and develop a system in which the students primarily in the Engineering Department using the Moodle platform and then students in all the universities can follow the course contents, upload the assignments, and discuss their questions about the course with their instructors and their friends. As a result of this paper, a scheme is provided to easily compile, run and grade the programming assignments (source codes) given in the Programming courses using the Moodle website collected in a single place.


INTRODUCTION
Knowledge has become the most important factor in determining the competitiveness and development levels of societies in the today's economy.The rapid development and widespread use of the Internet and information technology has made the Internet the world's largest source of information that millions of people use every day [1].The rapidly developing information technology has led to the diversification of distance education types and the spread of distance education based on the Internet.In the transition to the information economy, the development of human resources and lifelong education are of primary importance by using every field of information technology from education to health [2].While the developing and changing of technological structures enables the development of widespread and common solutions in global education, at the same time it leads to the rapid increase of expectations from individuals and the evaluation of the quality of education in international standards [3].
The aim of this paper is to develop a distance education website with the Moodle [4] platform for the Engineering Departments of the Faculty of Engineering and Natural Sciences of the Adana Science and Technology University.In addition, the Moodle system, which has an important place in the education system, focuses on the types of services developed by distance learning individuals in order to meet their information needs and it also aims to explain the virtual classes that the information sources present to the users by transferring them to the electronic medium.In this study, the Moodle system was used not only for distance education, but also for supporting a more formal education.In particular, the programming language courses are the courses taught in almost every department at the engineering faculty.For this reason, there is a need for systems that will facilitate the teaching of such courses, the evaluation and grading of assignments and exams.
Recommendations are given to information specialists so that the information needs of the individuals who receive distance learning can be met at the highest level.The difficulty in the learning of programming languages such as the C programming language is mainly due to the fact that the programming efficiency of students is at a basic level.One of the most common ways to improve the cognitive skills of students in programming languages is to give them appropriate programming assignments.However, unfortunately, lecturers need to spend a lot of time and effort in evaluating and grading the programming assignments of their students.That is due to the fact that the manual approaches (such as hardcopy and CD) that evaluate the output of programming assignments are costly, time consuming, and not flexible, but systems that can automatically perform the assessment can eliminate these problems.Within the scope of these proposals, it is aimed to create a compilation module in order to compile the C programming language assignments given in the programming language courses which have an important place in the engineering education.This compilation module is designed to be run with the help of a GNU Compiler Collection (GCC) [35] system.This GCC system contains the C programming language and other compilers and is designed as part of the GNU project.
There are some universities in the Engineering Departments such as Computer Engineering, Industrial Engineering, Civil Engineering, Electrical and Electronics Engineering, Machine Engineering, Software Engineering, etc. in Turkey that offer distance learning by using Moodle.Some of these universities are; Computer Engineering Department [13], Ege University Computer Engineering Department [14].However, these universities did not add modules that compile programming assignments to their distance education websites.
In the distance education system developed within the scope of the study, it is ensured that the compilation of programming assignments can be easily integrated into the Moodle distance education system.Thus, the programming assignments will be collected in one place, compiled and run, and scored in the same place.

MATERIAL AND METHOD
This paper is organized as follows: the first part explains the installation of the Moodle system, the second part explains the collection of the tasks to be compiled and the creation of the system pages, and the third part explains the coding of the compilation processes with GCC.
Firstly, the Moodle system [4] is the environment where the instructors will create lessons, the students will be enrolled in classes, the forms in which the discussions about the lesson will be carried out, the lecture notes and assignments can be loaded.Moodle is an open source software platform consisting of the initials of Modular Object-Oriented Dynamic Learning Environment.It is a web-based, free and dynamic tutorial-driven tool for educators focused on content creation and interaction.It is a software package for building web-based courses and websites.Moodle is a preferred education system in the education sector.The reasons for this include the ease of use of Moodle, being an open source code, and containing a wide range of service options.Then, the GNU Compiler Collection (GCC) [5] was used to compile assignments written in the C programming language which constitutes a significant part of this study.The GCC system contains the C programming language and other compilers designed as part of the GNU project.Within the scope of this study, GCC was used in order to control, compile and run/execute programming assignments written in the C programming language.
The Distance Learning Website is run on the server computer and is available for the use of the department lecturers and students.Programming assignments are given through the Moodle system as in Fig. 3, that is, assignments are given to the students in Moodle and the students upload their assignments to Moodle.The assignment contents can be accessed by the users registered in the course as shown in Fig. 4.
The instructor of the course can collectively access the submitted assignments via the "Tüm gönderimleri görüntüle/puanla" ("View/post all submissions") link as shown in Fig. 5.This way, the instructors can view the contents of the assignments.
The section that forms the main part of this study starts from this point.Instructors who give the courses can compile the source codes of the programming assignments written in the C programming language sent by the students with the "Derle" ("Compile") button, which is on the "Ödev İçeriği" ("Assignment Content") webpage shown in Fig. 4, online via the Moodle system with the help of GCC.An effective HTML result webpage that has been compiled is developed as shown in Fig. 6 and placed on the Internet.After pressing the "Derle" ("Compile") button on this webpage, the system will automatically direct the user to a separate compilation webpage for each assignment.
As shown in Fig. 7, the source code written in the submitted assignment and the compilation information of the compiled assignment can be accessed via a separate HTML webpage.When the "Programı Çalıştır" ("Run Program") button is clicked for the compiled assignment, the program is executed and it can be reached as the result/output of the compiled assignment as shown in Fig. 8.When doing this operation, the user can input the information requested by the user in a separate input file on this webpage, and the system can compile the source code written in the C programming language which is sent by the student considering this file, and it presents the output/result of the compiled assignment to the user.Thus, the results are evaluated and reported.

CONCLUSION
The aims of the study explained in the Introduction part of this paper were achieved.For this reason, it is thought that this paper contributes to many areas.
With this study, it was ensured that students will be able to follow course content from a specific place, submit their assignments in time, and facilitate the follow-up of course attendance; the lecturers will be able to share their lecture notes from a specific place, collect and compile the submitted assignments in one place, and do the grading more quickly and easily.While ensuring this, care has been taken to ensure that all situations that may arise are taken into account.Not only the code was compiled, but also the compiled code was executed and the results were produced.A separate section was prepared for the cases where information is requested from the user, which is an important criterion to be considered, and users can upload a file containing the information requested by them to the system.Thus, the compilation and result generation processes can work efficiently and correctly.
As a result of this paper, lecturers can gain time to evaluate assignments and speed up the process of making lessons more efficiently by bringing students who send erroneous assignments to the courses.
With the compilation of the programming assignment module added to the Moodle distance learning website, the instructor can easily compile and run the students' programming assignments, observe and interpret the outputs/results of the assignments' source code and grade them.
Another contribution of this paper is the fact that distance education is independent of the place.For example, students who cannot attend classes due to illness or any similar excuse can follow the lecture notes and course videos uploaded to the system and the contents of the course, and can be informed of the assignments that are given.
It is possible to design systems that accelerate and facilitate information access with the techniques performed in this study.
As a future work, we plan to use the online assignment compilation module not only on the Moodle distance education system, but also on an independent platform.In addition to this, we plan to prepare a separate module for the similarity detection of assignments to each other on the Moodle distance education system.We are thinking of designing this module to show the similarity results on the webpage where the assignments are compiled.

Figure 1
Figure 1 Moodle homepage of the Engineering DepartmentsMoodle's open source and modular architecture allows for the development of new extensions.At the same time, hundreds of extensions available in Moodle offer significant advantages to the Moodle users and administrators in the distance learning applications.One of these extensions is the online compilation plug-in.The online compilation, which is also included among the main objectives of this article, includes C codes.In this paper, an online C compiler developed plug-in/extension for Moodle has been presented.With the development of this plug-in/extension, it is possible for Moodle users to freely compile and run their C source codes installed on the server.In addition to the other major benefits of Moodle, this plug-in/extension provides an efficient execution of the C lessons and the compilation of C source codes, without any compiler installed on each computer in computer labs where the programming lessons will be run.

Figure 2 Figure 3 Figure 4
Figure 2 Moodle News Forum webpage

Figure 5 Figure 6
Figure 5 Webpage of submitted assignments

Figure 7 Figure 8
Figure 7 Compiled assignment information webpage