# Developing a Learning Data Collection Platform for Learning Analytics in Online Education
## 1 Introduction  
As Industry 4.0 creates new added value by converging information and communication technologies, such as artificial intelligence, the Internet of Things, cloud computing, and big data, we are rapidly changing into a software-oriented society, in which software is the center of value creation. At a time when the significance of software education is increasing every day, the government and educational institutions are continuing their efforts to nurture talent and introduce various programming education courses [1]. At the same time, the COVID-19 pandemic has brought many changes in our lives and society. Due to the prolonged pandemic and the government's intensive social distancing measures, we are entering the era of the contact-free society, and the field of education is no exception to this trend. As such, there is a growing interest in non-face-to-face online education that enables learning to take place anytime, anywhere, without constraints on time and space, unlike traditional classroom-oriented learning methods [2]. Although non-face-to-face online education is considered future-oriented education due to advantages such as improving the flexibility and convenience of learning and providing opportunities for self-directed learning, it also limits the interaction between instructors and students [3]. According to the findings of an investigation of complaints made by students in actual online classes, many students (21.1%) have pointed to the lack of interaction with instructors [4]. Various methods have been attempted to improve interaction, including using video chat services such as ZOOM, real-time Q and A through chatting, and inducing student participation through assignments or quizzes, but these have not produced satisfying results. These problems may become more serious in practical fields of education, such as programming. Due to the nature of programming education, practice is significant, and code-oriented real-time interaction is essential. However, the conventional methods used in non-face-to-face online education have the following limitations. First, one of the difficulties students face in programming is finding and solving errors that occur in the programming process [5]. They need feedback from the instructor to resolve these errors, but there are limitations to communication through traditional methods, such as chatting. Second, active participation is required to learn programming syntax and understand the procedure, such as students entering and writing the code themselves, even if code examples are provided [6; 7]. However, conventional methods that use assignments or quizzes can only determine whether students submitted their code, not whether they actively participated or not. Therefore, this study proposes a learning support system for non-face-to-face online programming education and presents the results of designing and implementing this system. The proposed system consists of an online development environment module, a learning monitoring module, and a learning support module. The online development environment module provides an online development environment based on Docker containers, where students can practice Python, JavaScript, and C languages. The learning monitoring module collects and monitors the learning situation, such as the code input status, error status, and questions, and the learning support module transmits learning contents, quizzes, and error message descriptions to students that have been pre-registered by the instructors. The advantages of applying the proposed system to non-face-to-face online programming classes are as follows. First, programs often depend on platforms or operating systems, but the proposed system can unify the development environment between instructors and learners by providing an online development environment. This is very useful in non-face-to-face online education, where students participate in classes using their personal computers.