Next-Generation Programming Learning Platform: Architecture and Challenges

With the rapid development of information technology, programming has become a vital skill. An online judge system can be used as a programming education platform, where the daily activities of users and judges are used to generate useful learning objects (e.g., tasks, solution codes, evaluations). Intelligent software agents can utilize such objects to create an ecosystem. To implement such an ecosystem, a generic architecture that covers the whole lifecycle of data on the platform and the functionalities of an e-learning system should take into account the particularities of the online judge system. In this paper, an architecture that implements such an ecosystem based on an online judge system is proposed. The potential benefits and research challenges are discussed.

[1]  Szymon Wasik,et al.  A Survey on Online Judge Systems and Their Applications , 2017, ACM Comput. Surv..

[2]  Christoph Meinel,et al.  Towards a repository for open auto-gradable programming exercises , 2017, 2017 IEEE 6th International Conference on Teaching, Assessment, and Learning for Engineering (TALE).

[3]  Yutaka Watanobe,et al.  Towards Hybrid Intelligence for Logic Error Detection , 2019, SoMeT.

[4]  Paulo Blikstein,et al.  Using learning analytics to assess students' behavior in open-ended programming tasks , 2011, LAK.

[5]  E. Damiani,et al.  The future of E-learning: E-learning ecosystem , 2007, 2007 Inaugural IEEE-IES Digital EcoSystems and Technologies Conference.

[6]  Yutaka Watanobe,et al.  Automatic Generation of Fill-in-the-Blank Programming Problems , 2019, 2019 IEEE 13th International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSoC).

[7]  Jimmy J. Lin,et al.  Scaling big data mining infrastructure: the twitter experience , 2013, SKDD.

[8]  Yutaka Watanobe,et al.  Code Completion for Programming Education based on Recurrent Neural Network , 2019, 2019 IEEE 11th International Workshop on Computational Intelligence and Applications (IWCIA).

[9]  Qinghua Zheng,et al.  An E-learning Ecosystem Based on Cloud Computing Infrastructure , 2009, 2009 Ninth IEEE International Conference on Advanced Learning Technologies.

[10]  Enric Rodríguez-Carbonell,et al.  Jutge.org: Characteristics and Experiences , 2018, IEEE Transactions on Learning Technologies.

[11]  Yutaka Watanobe,et al.  Classification of Programming Problems based on Topic Modeling , 2019, ICIET 2019.

[12]  Premkumar T. Devanbu,et al.  A Survey of Machine Learning for Big Code and Naturalness , 2017, ACM Comput. Surv..

[13]  Manohar Chandwani,et al.  Towards development of a distributed e-Learning ecosystem , 2010, 2010 International Conference on Technology for Education.

[14]  Yutaka Watanobe,et al.  Learning Path Recommendation System for Programming Education Based on Neural Networks , 2020, Int. J. Distance Educ. Technol..

[15]  José Paulo Leal,et al.  Mooshak: a Web‐based multi‐site programming contest system , 2003, Softw. Pract. Exp..

[16]  D. Blazquez,et al.  Big Data sources and methods for social and economic analyses , 2017 .

[17]  Luisa M. Regueras,et al.  A Proposal of User Interface for a Distributed Asynchronous Remote Evaluation System: An Evolution of the QUESTOURnament Tool , 2009, 2009 Ninth IEEE International Conference on Advanced Learning Technologies.

[18]  Sam Shah,et al.  The big data ecosystem at LinkedIn , 2013, SIGMOD '13.

[19]  Yutaka Watanobe,et al.  Cluster Analysis to Estimate the Difficulty of Programming Problems , 2018, Proceedings of the 3rd International Conference on Applications in Information Technology.

[20]  Yutaka Watanobe,et al.  Classification of Online Judge Programmers based on Rule Extraction from Self Organizing Feature Map , 2018, 2018 9th International Conference on Awareness Science and Technology (iCAST).

[21]  Yutaka Watanobe,et al.  Logic Error Detection System based on Structure Pattern and Error Degree , 2019, Advances in Science, Technology and Engineering Systems Journal.

[22]  Tomoki Toda,et al.  Learning to Generate Pseudo-Code from Source Code Using Statistical Machine Translation (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[23]  Klaus Marius Hansen,et al.  Software ecosystems - A systematic literature review , 2013, J. Syst. Softw..

[24]  Yutaka Watanobe,et al.  Convolutional Neural Network for Classification of Source Codes , 2019, 2019 IEEE 13th International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSoC).

[25]  Peter Van Roy,et al.  Automatic grading of programming exercises in a MOOC using the INGInious platform , 2015 .

[26]  David A. Patterson,et al.  MAGIC: Massive Automated Grading in the Cloud , 2015, CHANGEE/WAPLA/HybridEd@EC-TEL.

[27]  Sue Fitzgerald,et al.  Debugging From the Student Perspective , 2010, IEEE Transactions on Education.

[28]  Xing Xie,et al.  Automatically Learning Topics and Difficulty Levels of Problems in Online Judge Systems , 2018, ACM Trans. Inf. Syst..

[29]  Qinghua Zheng,et al.  Big Log Analysis for E-Learning Ecosystem , 2014, 2014 IEEE 11th International Conference on e-Business Engineering.

[30]  Sue Fitzgerald,et al.  Debugging: finding, fixing and flailing, a multi-institutional study of novice debuggers , 2008, Comput. Sci. Educ..

[31]  Marcelo Worsley,et al.  Programming Pluralism: Using Learning Analytics to Detect Patterns in the Learning of Computer Programming , 2014, Journal of the Learning Sciences.

[32]  Guangzhong Sun,et al.  The framework of a new online judge system for programming education , 2018, TURC.

[33]  Yutaka Watanobe,et al.  Bug Detection Based on LSTM Networks and Solution Codes , 2018, 2018 IEEE International Conference on Systems, Man, and Cybernetics (SMC).

[34]  Philip J. Guo,et al.  OverCode: visualizing variation in student solutions to programming problems at scale , 2014, ACM Trans. Comput. Hum. Interact..