خلاصه
مقدمه
II. کارهای مرتبط
III. بررسی JPLAS
IV. مشکلات ورزشی ایجاد شده
V. ارزیابی
منابع
Abstract
I. Introduction
II. Related Works
III. Review of JPLAS
IV. Generated Exercise Problems
V. Evaluation
References
چکیده
امروزه برنامه نویسی جاوا در انواع سیستم های کاربردی به عنوان یک زبان برنامه نویسی شی گرا پرتابل استفاده می شود. برای کمک به مطالعه خود توسط دانشجویان مبتدی، ما سیستم دستیار یادگیری برنامه نویسی جاوا (JPLAS) را توسعه داده ایم و پلت فرم پاسخ شخصی را در Node.js پیاده سازی کرده ایم. JPLAS انواع مختلفی از مشکلات تمرینی را در سطوح مختلف یادگیری ارائه میکند، از جمله مشکل درک مفهوم دستوری (GUP)، مشکل ردیابی مقدار (VTP)، مشکل تصحیح اشتباه (MCP)، مشکل پر کردن عنصر بدون خالی (EFP)، تکمیل کد. مشکل (CCP) و مشکل پر کردن فاز (PFP). هر پاسخی به طور خودکار با مطابقت رشته با پاسخ صحیح در پلت فرم مشخص می شود. در این مقاله، اجرای شش نوع مسئله در دوره برنامه نویسی جاوا در دانشگاه اوکایاما را ارائه می کنیم. ما 109 نمونه مشکل را با پیروی از برنامه درسی آن ایجاد کردیم و آنها را به 58 دانش آموز سال سوم قبل از امتحان نهایی به عنوان تکلیف اختصاص دادیم. نتایج راهحل آنها تفاوت دشواری بین انواع مسئله را نشان میدهد و اعتبار در دوره برنامهنویسی جاوا را تأیید میکند.
Abstract
Nowadays, Java programming is used in a variety of application systems as a highly portable object-oriented programming language. To assist its self-studies by novice students, we have developed the Java programming learning assistant system (JPLAS), and implemented the personal answer platform on Node.js. JPLAS offers several types of exercise problems at different learning levels, including the grammar-concept understanding problem (GUP), the value trace problem (VTP), the mistake correction problem (MCP), the element fill-in-blank problem (EFP), the code completion problem (CCP), and the phase fill-in-blank problem (PFP). Any answer is automatically marked by string matching with the correct one on the platform. In this paper, we present an implementation of the six problem types in a Java programming course in Okayama University. We generated 109 problem instances by following its curriculum and assigned them to 58 third-year students as homework before the final examination. Their solution results reveal the difficulty difference among the problem types and confirm the validity in the Java programming course.
Introduction
Java is a powerful, general-purpose object-oriented programming language. Java was created in 1995, and is running on more than three billion devices worldwide as one of the most popular programming languages. Nowadays, Java is used in a variety of application systems, such as web applications, mobile applications, desktop applications, games, IoT application systems, and cloud service systems, as a highly portable object-oriented programming language. Thus, many universities and professional schools are offering the courses to cultivate Java programming engineers.
To assist self-studies of Java programming by novice students, we have developed the Java programming learning assistant system (JPLAS) and implemented the personal answer platform on Node.js that will be distributed to students on Docker [1].
Evaluation
In this section, we present the implementation results of the 109 instances to 58 third-year students taking a Java programming course in Okayama University.
A. Solution Performances by Problem Types
First, we analyze differences of solution performances of the students by the six problem types. Table II shows the number of students who submitted answer files, the average correct answer rate, and the average number of answer submission times for each instance by them for each problem type. From this table, it can be observed that GUP, VTP, MCP, and EFP are easier for these novice students. The average correct answer rate and the average number of answer submission times are similar in them. CCP and PFP are harder for them, where both the correct rate and the number of submission times become worse. The average correct answer rate of two CCP instances at ID = 8 and 10, and one PFP instance at ID = 12 is less than 90%. According to Table I, they are on override, overload, structure, inheritance, abstract class, and interface, which can be difficult for novices to understand. The hint function should be implemented for them, which will be in future works.