A programming learning platform based on a dynamic adjustment algorithm
Patent Information
- Application Number
- CN202411950674.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-27
- Publication Date
- 2026-10-16
AI Technical Summary
[0003]用户在现有的平台做题过程中常常需要讨论和请教问题,而现有的编程平台并不能很好地满足这一需求,同时,现有编程学习平台中的题库推荐过于固定死板,通常都是基于一固定顺序向用户推送题目,导致用户无法灵活进行不同难度题目的挑战,而自行挑选不同难度的题目进行学习和挑战的方法,很可能由于用户对题目内容的不了解,导致挑选到的题目过于简单或过于困难,无法灵活应对用户当前的学习需求
[0019] Furthermore, the chat module also includes: providing community functions to enable users to create learning teams in the community, and users can choose to create or join any learning team through the community; the learning team provides a communication window for internal members to communicate.
Smart Images

Figure CN122928564A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of software development technology, and more specifically to a programming learning platform based on a dynamic adjustment algorithm. Background Technology
[0002] With the deepening of information technology-based teaching, concepts and methods such as smart classrooms, smart learning environments, and information technology-based teaching methods are being promoted. Online programming platforms are a typical materialization of smart learning environments, representing a high-end form of multimedia and network classrooms. They are new types of classrooms built with the help of Internet of Things (IoT), cloud computing, and intelligent technologies. Online programming platforms use various intelligent devices to assist in the presentation of teaching content, facilitate access to learning resources, promote classroom interaction, and realize the functions of context perception and environmental management in new types of classrooms.
[0003] Users often need to discuss and ask questions while doing exercises on existing platforms, but existing programming platforms cannot adequately meet this need. At the same time, the question bank recommendations in existing programming learning platforms are too fixed and rigid, usually pushing questions to users in a fixed order, which prevents users from flexibly challenging themselves with questions of different difficulties. The method of choosing questions of different difficulties for learning and challenge may result in users selecting questions that are too easy or too difficult due to their lack of understanding of the content, which cannot flexibly meet the user's current learning needs. Summary of the Invention
[0004] To address the problems existing in current technologies, this invention provides a programming learning platform based on a dynamic adjustment algorithm. The platform provides a login interface via a browser for users to register and log in to the main interface. The main interface provides a list of programming problems based on the platform's built-in database, allowing users to select problems for learning. A judging module receives programming problems submitted by users after completing their learning and evaluates their abilities based on the type of problem submitted. By collecting multiple ability evaluations and combining them with user behavior records, a user profile is built, and programming problems are recommended to users based on this profile. This invention provides an efficient and convenient learning environment. By evaluating user abilities and collecting user learning behavior data, it helps users learn more effectively and improve their programming skills.
[0005] This invention adopts the following technical solution: a programming learning platform based on a dynamic adjustment algorithm, comprising:
[0006] A login interface is provided through a browser for users to register and log in to the platform's main interface;
[0007] The main interface provides a list of programming problems based on the platform's built-in database, allowing users to choose programming problems to learn.
[0008] The judging module receives programming questions submitted by users after they have completed the learning process and evaluates users' abilities based on the type of programming questions submitted.
[0009] By collecting multiple ability evaluations from users and combining them with user behavior records, user profiles are built, and programming problems are recommended to users based on these profiles.
[0010] Furthermore, the platform also includes: a chat module;
[0011] The chat module is used to set up a corresponding chat window for each question, so that users can chat in real time in the chat window.
[0012] Furthermore, the platform also includes: a remote control module;
[0013] The remote control module is used to enable users to send assistance requests to other users. When other users agree, a remote connection is established through the integrated Netty server cluster, so that users can access other users' desktops through the remote connection.
[0014] Furthermore, the main interface provides a list of programming questions based on the platform's built-in database. The list of questions includes: question name, question content, and question difficulty.
[0015] Furthermore, the evaluation of user abilities based on the type of programming problem submitted by the user specifically includes:
[0016] The user's initial ability level is determined based on the first programming problem submitted by the user.
[0017] The user's ability level will be upgraded or downgraded based on the accuracy of the programming problems submitted, the submission time, and the difficulty level of the problems.
[0018] Furthermore, the user behavior records include: user learning time, learning preferences, and activity level in learning questions.
[0019] Furthermore, the chat module also includes: providing community functions to enable users to create learning teams in the community, and users can choose to create or join any learning team through the community; the learning team provides a communication window for internal members to communicate.
[0020] The beneficial effects of this invention are as follows: This invention provides users with abundant learning resources and communication tools, satisfying not only the learning needs of beginners but also the advanced needs of experienced developers. The judgment module provided by this invention is a crucial component of the platform. This module provides users with detailed learning progress analysis and evaluates user levels, allowing users to better understand their own learning situation and thus improve their programming skills. The platform also includes a chat module and a remote control module. Through built-in real-time chat tools and community functions, users can easily communicate and collaborate with other users in real time, whether solving a complex programming problem or developing a large project, ensuring timely and effective communication. The remote control module, through an integrated server cluster, allows experienced users to help beginners with remote compilation environment debugging, making it very beginner-friendly. Attached Figure Description
[0021] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0022] Figure 1 This is a schematic diagram of a programming learning platform based on a dynamic adjustment algorithm according to an embodiment of the present invention;
[0023] Figure 2 This is a schematic diagram of a programming learning platform structure based on a dynamic adjustment algorithm according to an embodiment of the present invention. Detailed Implementation
[0024] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0025] A flowchart illustrating a programming learning platform based on a dynamic adjustment algorithm according to an embodiment of the present invention is shown below. Figure 1 As shown, it includes:
[0026] A login interface is provided through a browser for users to register and log in to the platform's main interface;
[0027] The front end of the learning platform of this invention adopts the Vue.js 3 framework, combined with the Element Plus UI component library, relies on Vue Router for routing management, and uses Axios to interact with backend data. The backend adopts the Spring Boot framework combined with Spring Security for authentication and authorization, and uses RabbitMQ to realize communication between the backend service and the judging server.
[0028] The main interface provides a list of programming problems based on the platform's built-in database, allowing users to choose programming problems to learn.
[0029] After logging in and registering, users enter the main page, which systematically displays the platform of this invention and provides a list of questions, including the name, description, and difficulty of the questions, for users to select. After selecting a question, users can edit the code and submit it to the backend judging module for evaluation.
[0030] The judging module receives programming questions submitted by users after they have completed the learning process and evaluates users' abilities based on the type of programming questions submitted.
[0031] The platform of this invention determines the user's initial ability level based on the programming problem submitted by the user for the first time; and upgrades or downgrades the user's ability level based on the accuracy rate, submission time and difficulty level of the programming problems submitted by the user.
[0032] By collecting multiple ability evaluations from users and combining them with user behavior records, user profiles are built, and programming problems are recommended to users based on these profiles.
[0033] The programming learning platform of this invention also includes a chat module, which is used to set up a corresponding chat window for each question, so that users can chat in real time in the chat window.
[0034] This invention enables real-time communication between users on each question interface, providing information and answering questions. Users can send and receive messages, including text messages and emoticons. It also provides an online user list displaying currently online users and allows sending attachments such as images and files, thus offering a broader platform for code and algorithm enthusiasts to exchange and communicate.
[0035] The chat module also provides community features, allowing users to create or join learning teams. These teams offer a communication window for members to interact. Specifically:
[0036] Creating a team provides users with a platform for collaboration and communication, allowing them to work together with other members to complete tasks. Users can create their own teams and invite other users to join. Within a team, members can share resources, divide tasks, work collaboratively, and jointly pursue the team's goals and vision. By creating a team, users can organize and manage group activities more efficiently, leverage the advantages of teamwork, and achieve the common growth and development of individuals and the team.
[0037] The programming platform of this invention also includes a remote control module, which enables users to send assistance requests to other users. When other users agree, a remote connection is established by integrating a Netty server cluster, so that users can access other users' desktops through the remote connection.
[0038] In another specific embodiment of the present invention:
[0039] The programming learning platform (Code Connect) proposed in this invention simplifies the application building and deployment process by using the Spring Boot framework and leveraging the principle of automatic configuration. It provides an efficient and convenient development environment and protects the application's security with Spring Security, including functions such as identity authentication, authorization, and attack protection.
[0040] A schematic diagram of the structure of a programming learning platform according to an embodiment of the present invention is shown below. Figure 2 As shown, in this embodiment of the invention, a RabbitMQ message queue is used to establish a communication bridge between the judging module and the backend server. The backend server is responsible for collecting judging requests submitted by users and packaging these requests to send to the judging module. This process needs to ensure the accuracy and timeliness of the requests to ensure that the judging tasks can be executed smoothly. At the same time, the backend server also needs to process the judging results from the judging module, parse and store them for users to query and analyze later. A heartbeat mechanism is used as an important guarantee for the platform to ensure a stable connection between the backend server and the judging module. By periodically sending platform information of the judging module to the backend server, the operating status of the judging module can be monitored in real time, and timely responses can be made in case of abnormalities. This continuous heartbeat signal ensures the reliability and stability of the platform and provides users with a smoother user experience.
[0041] The judging module receives programming problems submitted by users after they have completed the learning process, and evaluates the users' abilities based on the type of programming problems submitted. The specific implementation includes the following:
[0042] In this embodiment of the invention, after a user registers and logs in, they undergo an initial assessment using a set of basic questions covering fundamental knowledge points. Based on the user's performance (accuracy, time taken, number of attempts, etc.), an algorithm (using IRT Project Response Theory as an example in this embodiment) is used to evaluate the user's initial ability level and determine their initial grade. Further assessment of the user's learning progress is then made based on accuracy, submission time, and question difficulty. The accuracy assessment includes the following:
[0043] Consecutive Correct Answers: If a user answers a question correctly multiple times in a row (e.g., 3 or more times), the platform will gradually increase the difficulty of the questions. This can be done by increasing the complexity of the questions or introducing new knowledge points or concepts. If a user answers a question incorrectly multiple times in a row (e.g., 3 or more times), the platform will decrease the difficulty of the questions. This can be done by simplifying the complexity of the questions, returning to the basic knowledge that the user has already mastered, or providing more hints or auxiliary information.
[0044] Determining the time required to solve a problem includes the following:
[0045] Excessive Solving Time: If a user takes too long to solve a problem (e.g., more than 1.5 times the average time), the platform will appropriately reduce the difficulty. This can be done by selecting problems with less computational complexity, fewer steps, or providing more hints or auxiliary information. Short Solving Time: If a user takes too short a time to solve a problem (e.g., less than 0.5 times the average time), the platform will increase the difficulty. This can be done by selecting problems with more computational complexity, more steps, or introducing new knowledge points or concepts. Number of Attempts: If a user takes multiple attempts (e.g., 3 or more) to solve a problem correctly, the platform will appropriately reduce the difficulty. This can be done by selecting problems with less computational complexity, fewer steps, or providing more hints or auxiliary information. Correct Solution on the First Attempt: If a user solves a problem correctly on the first attempt, the platform will increase the difficulty. This can be done by selecting problems with more computational complexity, more steps, or introducing new knowledge points or concepts.
[0046] The difficulty level of a question is determined by the following:
[0047] The difficulty levels are divided into: Beginner: covering basic knowledge and simple applications, with lower difficulty levels, mainly aimed at helping users build confidence and a foundation; Intermediate: covering knowledge points and applications of medium difficulty, with moderate difficulty levels, mainly aimed at consolidating users' foundation and introducing some complex concepts; Advanced: covering advanced knowledge points and complex applications, with higher difficulty levels, mainly aimed at challenging users and improving their problem-solving abilities.
[0048] This invention provides an example of a judgment module dynamically adjusting based on the questions: From beginner to intermediate: When a user performs well on beginner questions (e.g., correctly answering 5 questions consecutively), the platform gradually introduces intermediate questions; if the user performs poorly on intermediate questions, the platform appropriately reduces the difficulty, returning to beginner questions. From intermediate to advanced: When a user performs well on intermediate questions (e.g., correctly answering 5 questions consecutively), the platform gradually introduces advanced questions; if the user performs poorly on advanced questions, the platform appropriately reduces the difficulty, returning to intermediate questions. From advanced to intermediate: When a user performs poorly on advanced questions (e.g., incorrectly answering 3 questions consecutively), the platform reduces the difficulty, returning to intermediate questions; if the user performs well on intermediate questions, the platform will try to introduce advanced questions again.
[0049] In another embodiment of the invention, the practice topics can also be adjusted to cover a wider range of knowledge points: the platform dynamically adjusts the practice topics based on the user's performance, ensuring balanced practice across all knowledge points. For example, if a user performs poorly on a particular knowledge point, the platform increases the proportion of questions related to that knowledge point; comprehensive practice: when a user performs well on multiple knowledge points, the platform introduces comprehensive questions requiring the user to combine multiple knowledge points to solve problems; specialized practice: if a user excels in a specific area, the platform provides specialized practice to further consolidate and expand their knowledge in that area.
[0050] Furthermore, this embodiment of the invention compiles and runs user-submitted code. To prevent malicious code submitted by users, this embodiment constructs a code sandbox and uses `setrlimit` for resource monitoring. The provided code uses the `setrlimit` function to set resource limits, such as CPU time limits and memory limits, to monitor and restrict the resource usage of user programs in the sandbox. The running status and resource utilization of child processes are obtained through `wait4` for resource monitoring. In addition, the code also applies file operations, process management, system calls, multithreading, signal handling, and other technologies. By comparing expected and actual outputs, the execution results of user programs are evaluated, thus implementing a sandbox program designed to safely run other programs and monitor and evaluate them. By limiting the resource usage of user programs, monitoring their running status, and comparing program outputs, this sandbox program effectively enhances system security. By combining multiple technical means, the security and stability of programs are improved, providing users with a relatively safe operating environment. This method can effectively prevent user programs from causing potential harm to the system, ensuring system stability and security.
[0051] In this embodiment of the invention, the chat module of the platform uses MySQL and Redis as the message persistence layer and real-time processing tools. Real-time message push and offline storage are achieved through a client and background threads. Messages are first stored in MySQL to ensure message persistence and reliability. Then, the system uses the client to determine if the recipient is online. If online, the message is stored in Redis, and Redis's high performance and low latency are used to push messages to users in real time. The background thread continuously pulls messages from Redis and pushes them to online users in real time via WebSocket, ensuring message real-time performance and user experience. For offline users, the system marks messages as unread and stores them in MySQL. Users can retrieve unread messages from MySQL the next time they log in, ensuring that important messages are not missed. This architecture is suitable for various instant messaging applications, social applications, and real-time monitoring systems, improving system performance and user experience.
[0052] In this embodiment of the invention, a problem-solving reward function can also be set in the chat module, allowing users to raise their problems or confusions on the platform and set a reward for solving these problems. Other users can earn rewards by answering the questions, which promotes the sharing and exchange of knowledge and experience. Users can describe the specific content and background of the problem and set an appropriate reward amount to attract the participation and help of other users. Through this function, users can quickly obtain solutions to problems, saving time and energy, and at the same time providing a beneficial communication and learning platform for problem solving.
[0053] In this embodiment of the invention, taking the remote control module provided by the platform as an example of teacher and student interaction in actual use, this module allows teachers or teaching assistants to remotely access the student's development environment with the student's explicit authorization. This allows them to help the student debug code or check for problems. This function is not limited to text communication but allows for actual participation in the problem-solving process, greatly improving teaching efficiency and problem-solving speed. This embodiment of the invention implements the remote control function by integrating a Netty server cluster. When a user needs help, they can initiate a remote control request through the chat module. If the student agrees, the teacher, teaching assistant, or other students can remotely access the student's desktop or development environment through the connection established by the Netty server cluster. To ensure security and privacy, the remote control function is only enabled when the user actively requests help and explicitly agrees. In addition, the system logs all remote sessions for subsequent auditing. The remote control module is very suitable for solving problems that are difficult to express clearly through text descriptions or situations that require actual operation to demonstrate how to modify code.
[0054] User profiles are built by collecting multiple user competency evaluations and combining them with user behavior records. These profiles include the following:
[0055] Data collection: Collect user problem-solving records, study time, active time periods, learning preferences, and other data; Profile building: Through data analysis, build multi-dimensional user profiles, including but not limited to ability level, learning habits, and interest preferences.
[0056] Based on user profiles, programming problems are recommended to users: The recommended content in this embodiment of the invention includes, but is not limited to, the following:
[0057] Problem Recommendation: Intelligently recommends suitable problems based on the user's ability level and learning progress; Learning Resource Recommendation: Recommends relevant tutorials, documents, video courses and other learning resources to help users learn systematically; Personalized Path: Generates a personalized learning path for each user to ensure that the learning content and difficulty meet the user's needs.
[0058] In one specific embodiment of the present invention, the applicable scenarios for the platform proposed in this application can be: beginner introductory: beginner assessment, beginners are assessed through basic questions during registration, and the system recommends suitable introductory questions and tutorials based on the assessment results; gradual improvement, as learning progresses, the system gradually increases the difficulty of the questions to help users gradually improve their abilities.
[0059] Advanced Learning: For intermediate users, after completing a certain number of questions, the system will recommend more difficult questions and advanced tutorials; Learning Reports: Learning reports help users understand their mastery in a specific area and provide targeted learning suggestions.
[0060] Competition Preparation: Advanced users can train using highly challenging and competition-level problems recommended by the system; Competition Strategies: Learning reports help users understand their competition level and provide guidance on competition strategies and techniques.
[0061] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A programming learning platform based on a dynamic adjustment algorithm, characterized in that, The programming learning platform includes: A login interface is provided through a browser for users to register and log in to the platform's main interface; The main interface provides a list of programming problems based on the platform's built-in database, allowing users to choose programming problems to learn. The judging module receives programming questions submitted by users after they have completed the learning process and evaluates users' abilities based on the type of programming questions submitted. By collecting multiple ability evaluations from users and combining them with user behavior records, user profiles are built, and programming problems are recommended to users based on these profiles.
2. The programming learning platform based on a dynamic adjustment algorithm according to claim 1, characterized in that: The platform also includes: a chat module; The chat module is used to set up a corresponding chat window for each question, so that users can chat in real time in the chat window.
3. The programming learning platform based on a dynamic adjustment algorithm according to claim 1, characterized in that: The platform also includes: a remote control module; The remote control module is used to enable users to send assistance requests to other users. When other users agree, a remote connection is established through the integrated Netty server cluster, so that users can access other users' desktops through the remote connection.
4. The programming learning platform based on a dynamic adjustment algorithm according to claim 1, characterized in that: The main interface provides a list of programming problems based on the platform's built-in database. The list of problems includes: problem name, problem content, and problem difficulty.
5. A programming learning platform based on a dynamic adjustment algorithm according to claim 1, characterized in that: The evaluation of user abilities based on the type of programming problem submitted by the user is specifically as follows: The user's initial ability level is determined based on the first programming problem submitted by the user. The user's ability level will be upgraded or downgraded based on the accuracy of the programming problems submitted, the submission time, and the difficulty level of the problems.
6. The programming learning platform based on a dynamic adjustment algorithm according to claim 1, characterized in that: The user behavior records include: user study time, study preferences, and activity level in studying the questions.
7. A programming learning platform based on a dynamic adjustment algorithm according to claim 2, characterized in that: The chat module also includes: providing community functions to enable users to create learning teams in the community; users can choose to create or join any learning team through the community; the learning team provides a communication window for internal members to communicate.