System

A system personalizes coding challenges and provides real-time feedback based on learning curves and emotional states, addressing inefficiencies in traditional learning systems by enhancing user engagement and progress tracking.

JP2026017464APending Publication Date: 2026-02-04SOFTBANK GROUP CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024118246
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-23
Publication Date
2026-02-04

AI Technical Summary

Technical Problem

Coding students face challenges in finding personalized learning resources that match their pace and interests, leading to poor learning efficiency and disengagement, and lack real-time feedback for immediate progress assessment.

Method used

A system that retrieves user information from a database, selects appropriate coding challenges based on learning curve information, provides them to users, evaluates user solutions, and offers real-time feedback to enhance learning efficiency and motivation.

Benefits of technology

The system provides personalized learning experiences with real-time feedback, improving learning efficiency and user motivation by adapting to individual progress and emotional states.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026017464000001_ABST
    Figure 2026017464000001_ABST
Patent Text Reader

Abstract

A system is provided.SOLUTION: A system, comprising: means for obtaining user information from a database; means for selecting a coding challenge from a repository based on learning curve information of a user; means for providing an appropriate coding challenge to the user; means for evaluating correctness of a solution submitted by the user; means for generating real-time feedback based on an evaluation result; and means for providing the generated real-time feedback to the user.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The technology of the present disclosure relates to a system. [Background technology]

[0002] Patent document 1 discloses a persona chatbot control method performed by at least one processor, the method including the steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to a description of the chatbot character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Publication No. 2022-180282 Summary of the Invention [Problem to be solved by the invention]

[0004] Many coding students struggle to find the right learning resources that fit their pace and interests. This can lead to poor learning efficiency and potential disengagement. Furthermore, the lack of real-time feedback makes it difficult to immediately gauge their progress and understanding. This invention aims to solve these challenges. [Means for solving the problem]

[0005] To solve the above problems, the present invention provides the following means: A means for acquiring user information from a database is provided, and a means for selecting a coding challenge from a repository based on the user's learning curve information is provided. Furthermore, a means for providing an appropriate coding challenge to the user is provided, and a means for evaluating the correctness of a solution submitted by the user is provided. By providing a means for generating real-time feedback based on the evaluation results and providing that feedback to the user, learning efficiency can be improved and learners' motivation can be maintained. Furthermore, a personalized learning experience based on the user's learning curve is provided, thereby realizing an optimal learning environment for each individual.

[0006] "User information" refers to data relating to the user's identification and characteristics, and personalized services are provided based on this data.

[0007] A "database" is a system for efficiently storing, retrieving, and managing structured data.

[0008] "Learning curve information" is data that indicates a user's learning progress and level of understanding, and is used to adjust an individual learning plan.

[0009] A "coding challenge" is a task or problem designed to assess and improve a user's programming skills.

[0010] A "repository" is a storage system for managing a collection of data or resources that can be easily accessed and searched.

[0011] A "solution" is the answer or code that a user submits to a coding challenge.

[0012] "Correctness assessment" is the process of determining whether a submitted solution is correct.

[0013] "Real-time feedback" refers to instant ratings and comments on a user's actions and submissions. [Brief explanation of the drawings]

[0014] [Figure 1] 1 is a conceptual diagram showing an example of the configuration of a data processing system according to a first embodiment. [Figure 2] 1 is a conceptual diagram showing an example of main functions of a data processing device and a smart device according to a first embodiment. [Figure 3] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a second embodiment. [Figure 4] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and smart glasses according to a second embodiment. [Figure 5] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a third embodiment. [Figure 6] FIG. 11 is a conceptual diagram showing an example of main functions of a data processing device and a headset-type terminal according to a third embodiment. [Figure 7] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a fourth embodiment. [Figure 8] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and a robot according to a fourth embodiment. [Figure 9] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 10] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 11] FIG. 3 is a sequence diagram showing a processing flow of the data processing system according to the first embodiment. [Figure 12] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 1. [Figure 13] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system according to the second embodiment when an emotion engine is combined. [Figure 14]FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 2 when an emotion engine is combined. DETAILED DESCRIPTION OF THE INVENTION

[0015] An example of an embodiment of a system according to the technology of the present disclosure will be described below with reference to the accompanying drawings.

[0016] First, the terms used in the following description will be explained.

[0017] In the following embodiments, a coded processor (hereinafter simply referred to as a "processor") may be a single arithmetic device or a combination of multiple arithmetic devices. Furthermore, a processor may be a single type of arithmetic device or a combination of multiple types of arithmetic devices. Examples of arithmetic devices include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), and an APU (Accelerated Processing Unit).

[0018] In the following embodiments, a coded RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a working memory by a processor.

[0019] In the following embodiments, the coded storage is one or more non-volatile storage devices that store various programs, various parameters, etc. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), and magnetic tapes.

[0020] In the following embodiments, a communication I / F (Interface) with a symbol is an interface including a communication processor, an antenna, etc. The communication I / F controls communication between multiple computers. Examples of communication standards applied to the communication I / F include wireless communication standards including 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), Bluetooth (registered trademark), etc.

[0021] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." In other words, "A and / or B" means that it may be only A, only B, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" is also applied when three or more things are expressed connected by "and / or."

[0022] [First embodiment]

[0023] FIG. 1 shows an example of the configuration of a data processing system 10 according to the first embodiment.

[0024] 1, a data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.

[0025] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[0026] The smart device 14 includes a computer 36, a reception device 38, an output device 40, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The reception device 38, the output device 40, and the camera 42 are also connected to the bus 52.

[0027] The reception device 38 includes a touch panel 38A, a microphone 38B, and the like, and receives user input. The touch panel 38A detects contact with an indicator (for example, a pen or a finger) to receive user input by the touch of the indicator. The microphone 38B detects the user's voice to receive user input by voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.

[0028] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form of expression that the user 20 can perceive (for example, audio and / or text). The display 40A displays visible information such as text and images in accordance with instructions from the processor 46. The speaker 40B outputs audio in accordance with instructions from the processor 46. The camera 42 is a compact digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.

[0029] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54.

[0030] FIG. 2 shows an example of the main functions of the data processing device 12 and the smart device 14.

[0031] 2, in the data processing device 12, a specific process is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific process is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.

[0032] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.

[0033] In the smart device 14, the processor 46 performs the reception output process. The storage 50 stores a reception output program 60. The reception output program 60 is used in conjunction with the specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.

[0034] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."

[0035] DETAILED DESCRIPTION OF THE INVENTION A system for implementing the present invention provides personalized coding challenges and real-time feedback to help users effectively master their programming skills.

[0036] System Overview

[0037] This system mainly consists of a server and a user's terminal. The server retrieves user information from a database, selects an appropriate coding challenge from a repository based on learning curve information, and provides it to the user. The user receives the coding challenge through their terminal and sends the answer to the server. The server evaluates the answer and returns feedback in real time.

[0038] Server Functions and Processing

[0039] The main functions of the server are:

[0040] 1. Obtaining user information

[0041] The server retrieves user information from a database, including user identification and learning curve information, forming the basis for providing each user with an optimal challenge.

[0042] 2. Selecting a coding challenge

[0043] The server selects appropriate coding challenges from the repository based on the learning curve information, for example providing basic challenges to users with a beginner learning curve and more complex challenges to users with an intermediate learning curve.

[0044] 3. Offering a Challenge

[0045] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[0046] 4. Evaluate the solution

[0047] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[0048] 5. Real-time feedback

[0049] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[0050] Specific examples

[0051] The following is an example of the processing that is actually performed by this system.

[0052] Requesting and Offering Challenges

[0053] A user requests a new challenge. The server retrieves the learning curve information based on the user ID and selects an appropriate challenge from the repository to provide. For example, if the user ID is 1 and the learning curve is beginner level, the challenge "Print 'Hello, World!'" is selected.

[0054] Submitting and Evaluating Your Solution

[0055] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a result, such as "True." Based on the result, feedback such as "Great job, keep it up!" is sent to the user in real time.

[0056] In this way, users can instantly check their progress and enjoy a personalized learning experience, which is expected to improve users' learning efficiency and motivation.

[0057] The processing flow will be explained below.

[0058] Step 1:

[0059] When a user wants to get a new coding challenge, they can run / get_challenge / from their device.<user_id> Send an HTTP GET request to the endpoint.

[0060] Step 2:

[0061] The server receives the request and extracts the user ID, for example if the user ID is 1, it uses that information.

[0062] Step 3:

[0063] The server retrieves user information corresponding to the user ID from the database, including data about the user's learning curve (e.g., beginner, intermediate, advanced).

[0064] Step 4:

[0065] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example, if the learning curve is beginner, it will select a challenge such as "Print 'Hello, World!'".

[0066] Step 5:

[0067] The server converts the selected coding challenge into JSON format and sends it to the user's device as an HTTP response.

[0068] Step 6:

[0069] The user receives and displays the coding challenge provided by the server through the terminal, and the user then works on the challenge.

[0070] Step 7:

[0071] Once the user has completed the challenge, they submit the solution to the server by sending an HTTP POST request to the / submit_solution endpoint, including the user ID and whether the solution is correct (e.g., is_correct: true).

[0072] Step 8:

[0073] The server receives the request and evaluates the correctness of the solution. The server checks the is_correct flag and generates an appropriate feedback message based on the evaluation result.

[0074] Step 9:

[0075] The server converts the generated feedback message into JSON format and sends it to the user's device as an HTTP response. For example, if the answer is correct, it returns the message "Great job, keep it up!"

[0076] Step 10:

[0077] Users can receive feedback from the server via their devices to check their progress and understanding, and can decide on their next steps based on the feedback.

[0078] This process effectively provides users with a personalized coding learning experience.

[0079] Example 1

[0080] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."

[0081] Conventional learning support systems struggled to provide personalized feedback tailored to each user's individual learning progress, resulting in reduced learning efficiency. Real-time feedback was also sometimes delayed, raising concerns that this could lower user motivation. Furthermore, systems lacked the ability to automatically evaluate users' answers and provide immediate, appropriate feedback, preventing them from consistently improving users' learning experiences.

[0082] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.

[0083] In this invention, the server includes means for acquiring user information from a database, means for selecting a learning task from a data repository based on the user's learning curve information, means for providing the user with an appropriate learning task, means for evaluating the accuracy of answers submitted by the user, means for generating real-time feedback based on the evaluation results, means for providing the generated real-time feedback to the user, means for the user to use a terminal to send authentication information to the server and the server performs authentication, means for the user to request a new learning task from the terminal, and means for the server to determine the accuracy of the answers using an automatic evaluation system. This allows personalized feedback to be provided in real time according to the user's learning progress, thereby improving learning efficiency and motivation.

[0084] "User information" refers to data including the user's identification information and learning progress.

[0085] A "database" is a system for managing a systematically structured collection of data.

[0086] "Learning curve information" refers to data that indicates a user's learning progress and performance.

[0087] "Study Assignments" are programming challenges or problems for users to answer.

[0088] A "data repository" is a data storage system that stores learning tasks.

[0089] A "means for assessing correctness" is a method or system for determining whether an answer submitted by a user is correct or incorrect.

[0090] "Real-time feedback" refers to immediate responses and advice provided immediately after a user's answer is evaluated.

[0091] A "terminal" is a device such as a computer or smartphone that a user uses to access the system.

[0092] "Authentication information" refers to information used to identify and authenticate a user, such as a user ID and password.

[0093] An "automated evaluation system" is a system that programmatically evaluates answers submitted by users and determines whether they are correct or incorrect.

[0094] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention provides a system that provides personalized coding challenges and real-time feedback to help users effectively master their programming skills.

[0095] System configuration

[0096] This system mainly consists of a server and user terminals. The server is a high-performance computer system equipped with software for communicating with multiple databases and repositories. This includes a MySQL database for data management and a data repository for storing coding challenges. User terminals are devices connected to the internet, such as PCs and smartphones.

[0097] Server Features

[0098] 1. Obtaining user information

[0099] The server receives the authentication information entered by the user from the terminal and retrieves user information from the database, including the user's ID, past learning history, and current learning curve information. Specifically, it fetches the user information from the database using an SQL query.

[0100] 2. Analysis of learning curve information

[0101] The server analyzes the acquired user learning curve information based on the data of coding challenges the user has completed, the success rate of the challenges, the time it took to complete the challenges, etc. This allows the server to evaluate the user's current skill level.

[0102] 3. Selecting a coding challenge

[0103] The server selects an appropriate coding challenge from the data repository based on the learning curve information. For example, a simple challenge such as "Print 'Hello, World!'" is selected for a novice user. To select an appropriate challenge from the repository, the server uses a sophisticated algorithm.

[0104] 4. Offering a Challenge

[0105] The server sends the selected coding challenge to the user's device using a REST API over the HTTP protocol. The user can then view the challenge description and input fields on the device screen and begin coding.

[0106] 5. Submitting and Evaluating Your Solution

[0107] The user completes a solution to the challenge, writes the code in the input field on their device, and clicks the submit button. The server evaluates the user-submitted solution using an automated evaluation system (e.g., Pytest). The evaluation determines whether the answer is correct or incorrect.

[0108] 6. Real-time feedback

[0109] The server generates a feedback message based on the evaluation results. If the answer is correct, it generates a message such as "Great job, keep it up!", and if the answer is incorrect, it generates a message such as "Need more practice, but you're doing good!". The generated feedback is sent to the user's device in real time.

[0110] Specific examples

[0111] For example, if a beginner-level user with user ID 12345 requests a new challenge, the server uses an SQL query to retrieve the user's information from the database, selects a challenge "Print 'Hello, World!'" from the repository based on the user's past learning history, and provides it to the user's device. The server evaluates the answer to the challenge provided by the user using Pytest and sends feedback in real time, such as "Great job, keep it up!"

[0112] Prompt Sentence Examples

[0113] "Request a new coding challenge": "Can you give me a new coding challenge based on my current learning progress?"

[0114] This allows users to receive appropriate coding challenges based on their progress and improve their learning efficiency by getting real-time feedback.

[0115] The flow of the identification process in the first embodiment will be described with reference to FIG.

[0116] The processing flow of the program of this system will be explained below by dividing it into specific processing steps.

[0117] Step 1: Login and User Authentication

[0118] The user accesses the login screen using the terminal and enters the ID and password.

[0119] Input: User ID and password

[0120] The server receives the entered authentication information and authenticates the user against a database.

[0121] Data processing: The server executes an SQL query to search the database for a record with the entered ID and password.

[0122] Output: If authentication is successful, the user is redirected to the dashboard, otherwise an error message is displayed.

[0123] Specific operation: The user clicks the login button in the browser, and a screen according to the authentication result is displayed.

[0124] Step 2: Get user information

[0125] The user clicks the "Request a new challenge" button on the dashboard.

[0126] Input: User ID

[0127] The server retrieves user information from a database based on the user ID.

[0128] Data processing: Execute an SQL query to retrieve the record corresponding to the user ID.

[0129] Output: User identification information, learning history, learning curve information

[0130] Specific operation: Learning history and past challenge results are sent from the database to the server.

[0131] Step 3: Analyze learning curve information

[0132] The server analyzes the acquired learning curve information of the user.

[0133] Input: User's learning history and learning curve information

[0134] Data processing: An algorithm is run to calculate the user's current skill level based on past answer times, accuracy rates, and number of answers.

[0135] Output: User's skill level

[0136] What it does: The server uses statistical methods and machine learning models to assess skill level.

[0137] Step 4: Select a coding challenge

[0138] The server selects an appropriate coding challenge from a data repository based on the user's skill level.

[0139] Input: User's skill level

[0140] Data processing: Filter the repository for challenges that match your skill level.

[0141] Output: The selected coding challenge

[0142] Specific behavior: Beginner-level users are given a simple challenge such as "Print 'Hello, World!'".

[0143] Step 5: Offer the challenge

[0144] The server sends the selected coding challenge to the user's terminal.

[0145] Input: Selected coding challenge

[0146] Output: The challenge displayed on the user's device

[0147] What happens: The server sends an HTTP request and the user can verify the challenge through their browser.

[0148] Step 6: Submit your solution

[0149] The user completes the solution to the challenge, fills out the web form and clicks the submit button.

[0150] Input: User's solution code

[0151] The server receives the solution and stores it in a database.

[0152] Data processing: storing the solution in a database in the appropriate format.

[0153] Output: Store the solution

[0154] Specific operation: The server receives the solution when the submit button is clicked.

[0155] Step 7: Evaluate the solution and generate feedback

[0156] The server tests the received solutions using an automated evaluation system (e.g., Pytest) and generates evaluation results.

[0157] Input: Your solution

[0158] Data processing: A rating system is used to determine correctness and generate feedback messages.

[0159] Output: Evaluation results and feedback messages

[0160] Specific operation: The server runs a test framework such as Pytest and creates feedback based on the results.

[0161] Step 8: Provide real-time feedback

[0162] The server transmits the generated feedback message to the user's terminal in real time.

[0163] Input: Feedback message

[0164] Output: Feedback displayed on the user's terminal

[0165] What happens: The server returns an HTTP response, and the user sees real-time feedback in their browser.

[0166] In this way, users can instantly see their progress and enjoy a personalized learning experience.

[0167] (Application example 1)

[0168] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."

[0169] Effectively acquiring programming skills related to fintech technology is important for users. However, traditional programming learning systems struggle to provide users with appropriate, practical tasks and real-time feedback. Furthermore, there are not enough systems that allow users to receive personalized tasks that adapt to their own learning curve. Furthermore, there is a lack of comprehensive learning mechanisms for specific technologies in financial systems, such as encryption, data security, and API design.

[0170] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.

[0171] In this invention, the server includes means for acquiring user information from a database, means for selecting programming assignments from a repository based on the user's learning curve information, and means for providing the user with appropriate programming assignments, thereby enabling the user to acquire programming skills related to financial systems and provide practical assignments such as encryption, data security, and API design.

[0172] "User information" is data for identifying a user and describing the user's learning situation and learning progress.

[0173] A "database" is a system for efficiently searching, organizing, managing, and storing data.

[0174] "Learning curve information" is data that indicates the progress of learning, including the user's skills, learning pace, past learning history, and the like.

[0175] A "programming challenge" is a specific programming problem or task that a user attempts to solve in order to hone their programming skills.

[0176] A "repository" is a storage system for centrally storing and managing a large number of program issues and related data.

[0177] A "means for assessing correctness" is a system or algorithm that automatically determines whether the answer to a submitted programming task is correct.

[0178] "Real-time feedback" refers to feedback messages that are generated instantaneously based on the evaluation results and provided to the user immediately.

[0179] "Financial system" means a computer-based system for the transaction and management of funds, including banking services, trading platforms, online payment systems, etc.

[0180] "Encryption" is the process of transforming data with a specific algorithm to protect it from unauthorized access or alteration.

[0181] "Data security" refers to the techniques and measures used to ensure the integrity, confidentiality, and availability of data.

[0182] "API design" is the process and methodology for building application programming interfaces (APIs), designs that allow interaction between different pieces of software.

[0183] A specific embodiment of the present invention will now be described. This system mainly includes a server, a terminal, and a user. The server acquires user information from a database, selects appropriate program assignments from a repository based on the user's learning curve information, and provides them to the user. The user receives the program assignments through the terminal and sends the answers to the server. The server evaluates the accuracy of the answers and returns feedback in real time.

[0184] Specifically, the server has the following capabilities:

[0185] 1. Obtaining user information

[0186] The server retrieves user information from a database, which includes user identification information and learning curve information. The database is typically a relational database such as PostgreSQL.

[0187] 2. Selection of program topics

[0188] The server selects appropriate program tasks from the repository based on the user's learning curve information. The repository is a storage system that stores a large number of program tasks. The selected program tasks are chosen based on the user's skill level and past learning history.

[0189] 3. Providing assignments

[0190] The server provides the selected program assignments to the user's device, who then works on the assignments via a device such as a smartphone or PC, allowing the user to progress through the learning process at their own pace.

[0191] 4. Evaluate the solution

[0192] Users solve the problems and submit their answers to the server, which uses an automated evaluation system to determine whether the answers are correct. The evaluation system then analyzes the submitted code and verifies whether the answers are correct.

[0193] 5. Real-time feedback

[0194] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, the message might be "Great! Keep up the good work!", and if the answer is incorrect, the message might be "You'll need to try again, but it was a good attempt."

[0195] Hardware and software used

[0196] Django: Used as a backend framework to manage user information and provide assignments.

[0197] React Native: Develop smartphone apps on the front end and build user interfaces.

[0198] PostgreSQL: Used as a relational database to manage user information and assignment data.

[0199] Specific examples

[0200] When a user requests a new challenge, the server retrieves learning curve information based on the user ID. For example, if the user ID is 1 and the learning curve is beginner level, the "Basic Cryptography Challenge" is selected. When the user solves the challenge and submits the solution to the server, the server evaluates the solution and generates a rating of "True." Based on the rating, feedback such as "Great! Keep up the great work!" is sent to the user in real time.

[0201] Prompt Sentence Examples

[0202] "Write a code snippet that explains how to introduce cryptography to a beginner."

[0203] The flow of the specific processing in the application example 1 will be described with reference to FIG.

[0204] Step 1:

[0205] The server receives input from a user requesting a new program assignment. This input includes the user ID and the request content. The server retrieves user information from the database and collects the user's identification information and learning curve information. For example, if the user ID is 1, the user's learning level and past assignment performance are retrieved from the database.

[0206] Step 2:

[0207] The server analyzes the user's learning curve based on the acquired user information. Based on this information, it selects appropriate program assignments from the repository. For example, if the user's learning level is beginner, "exercises related to basic encryption techniques" will be selected. This selection process is filtered based on the user's past performance and preferences.

[0208] Step 3:

[0209] The server provides the selected program assignment to the user's device. Detailed information about the assignment (explanation, constraints, example inputs, example outputs, etc.) is sent to the user's device. The device displays this information and prepares an environment in which the user can work on the assignment. The user works on the assignment on a smartphone or computer and creates a solution.

[0210] Step 4:

[0211] Users submit their answers to the server via their device. The device then sends the code or solution entered by the user to the server. The server receives the submitted answer and inputs it into an automated evaluation system. The evaluation system analyzes the code and determines its correctness.

[0212] Step 5:

[0213] The server receives the results from the evaluation system and determines whether the answer is correct. Based on this evaluation result, the server generates an appropriate feedback message. For example, if the answer is correct, the server generates feedback such as "Great! Keep up the good work!". Conversely, if the answer is incorrect, the server generates feedback such as "You'll need to try again, but it was a good try."

[0214] Step 6:

[0215] The server generates feedback messages and sends them to the user's device. The user's device displays the feedback, allowing the user to check their progress and assessment in real time. Based on the feedback, the user can retry the assignment or request a new assignment. By repeating this loop, the user can efficiently improve their programming skills.

[0216] Furthermore, an emotion engine that estimates the user's emotion may be combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.

[0217] The present invention provides a system for implementing the present invention, which provides personalized coding challenges and real-time feedback to help users effectively master their programming skills. Furthermore, by incorporating an emotion engine that recognizes the user's emotions, the learning experience is further personalized.

[0218] System Overview

[0219] This system mainly consists of a server, a user's device, and an emotion engine. The server retrieves user information from a database and selects an appropriate coding challenge from a repository based on learning curve information to provide to the user. The user obtains the coding challenge through their device and sends the answer to the server. The server evaluates the correctness of the answer and provides feedback in real time. Furthermore, the emotion engine recognizes the user's emotions and adjusts the challenge content and feedback messages based on that information.

[0220] Server Functions and Processing

[0221] The main functions of the server are:

[0222] 1. Obtaining user information

[0223] The server retrieves user information from a database, including user identification and learning curve information, forming the basis for providing each user with an optimal challenge.

[0224] 2. Selecting a coding challenge

[0225] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example providing a basic challenge to a user with a beginner learning curve and a more complex challenge to an intermediate user.

[0226] 3. Offering a Challenge

[0227] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[0228] 4. Evaluate the solution

[0229] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[0230] 5. Real-time feedback

[0231] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[0232] Emotion Engine Functions

[0233] The main functions of the Emotion Engine are:

[0234] 1. Emotional awareness

[0235] The emotion engine collects camera footage and audio data from the user's device and performs facial and audio analysis to recognize the user's emotions, such as determining whether the user is smiling or confused.

[0236] 2. Adjusting feedback

[0237] The server receives the recognized emotion information and adjusts the feedback message accordingly, for example, sending an encouraging message to a confused user, whereas a message encouraging further challenges to a smiling user.

[0238] 3. Challenge Adjustments

[0239] The emotion engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[0240] Specific examples

[0241] The following is an example of the processing that is actually performed by this system.

[0242] Requesting and Offering Challenges

[0243] A user requests a new challenge. The server retrieves learning curve information based on the user ID, selects an appropriate challenge from the repository, and provides it. At the same time, the emotion engine recognizes the user's emotion and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected, and if the recognized emotion is "smile," positive feedback is given.

[0244] Submitting and Evaluating Your Solution

[0245] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotional information, feedback such as "Great job, keep it up!" is sent to the user in real time.

[0246] This series of processes allows users to enjoy an optimal learning environment and a personalized learning experience, and is expected to improve users' learning efficiency and motivation.

[0247] The processing flow will be explained below.

[0248] Step 1:

[0249] When a user wants to get a new coding challenge, they can run / get_challenge / from their device.<user_id> Send an HTTP GET request to the endpoint.

[0250] Step 2:

[0251] The server receives the request and extracts the user ID, for example if the user ID is 1, it uses that information.

[0252] Step 3:

[0253] The server retrieves user information corresponding to the user ID from the database, including data about the user's learning curve (e.g., beginner, intermediate, advanced).

[0254] Step 4:

[0255] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example, if the learning curve is beginner, it will select a challenge such as "Print 'Hello, World!'".

[0256] Step 5:

[0257] The emotion engine analyzes data collected from the device's camera and microphone to recognize the user's emotions, such as whether the user is smiling or confused.

[0258] Step 6:

[0259] The emotion engine sends the emotion information it recognizes to the server. For example, if the user is smiling, that information is transmitted to the server.

[0260] Step 7:

[0261] The server generates a challenge with appropriate feedback based on the selected coding challenge and emotional information. For example, if the user is smiling, the server selects a challenge with positive feedback, and if the user is confused, the server selects a challenge with encouraging feedback.

[0262] Step 8:

[0263] The server converts the selected coding challenge into JSON format and sends it to the user's device as an HTTP response.

[0264] Step 9:

[0265] The user receives and displays the coding challenge provided by the server through the terminal, and the user then works on the challenge.

[0266] Step 10:

[0267] Once the user has completed the challenge, they submit the solution to the server by sending an HTTP POST request to the / submit_solution endpoint, including the user ID and whether the solution is correct (e.g., is_correct: true).

[0268] Step 11:

[0269] The server receives the request and evaluates the correctness of the solution. The server checks the is_correct flag and generates an appropriate feedback message based on the evaluation result.

[0270] Step 12:

[0271] The server converts the generated feedback message into JSON format and sends it to the user's device as an HTTP response. For example, if the answer is correct, it returns the message "Great job, keep it up!"

[0272] Step 13:

[0273] Users can receive feedback from the server via their devices to check their progress and understanding, and can decide on their next steps based on the feedback.

[0274] This series of processes effectively provides users with a personalized coding learning experience. The introduction of an emotion engine provides optimal support according to the user's learning situation, further improving learning efficiency and motivation.

[0275] Example 2

[0276] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."

[0277] Conventional programming learning systems lack the ability to respond specifically to a user's learning progress or individual emotional state, making it difficult to provide a personalized learning experience. In particular, they lack a mechanism to recognize when a user is confused or stressed in real time and provide appropriate feedback or task adjustments. As a result, it is difficult for users to maintain their motivation to learn, making it difficult for them to efficiently acquire programming skills.

[0278] The identification process by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means. In this invention, the server includes means for acquiring user information from a storage device, means for selecting a coding task from the storage device based on the user's learning curve information, means for providing the user with an appropriate coding task, means for evaluating the correctness of an answer submitted by the user, means for generating real-time feedback based on the evaluation result and the emotion recognition result, means for providing the generated real-time feedback to the user, and means for recognizing the user's emotional state and adjusting the tasks and feedback based on that information. This provides a personalized learning experience according to the user's learning progress and emotional state, enabling the user to efficiently acquire programming skills while maintaining their motivation.

[0279] "User information" is data including user identification information and learning curve information.

[0280] "Storage" refers to a database or other storage system where user information and coding assignments are stored.

[0281] "Learning curve information" is data that indicates the user's learning progress and proficiency, and is information that is used to select coding tasks that are appropriate for the user.

[0282] "Coding Challenges" refer to programming tasks or challenges that users must complete to improve their programming skills.

[0283] "Storage" refers to a repository or database that stores coding assignments and other related data.

[0284] "Solution" refers to the program or code that a user submits as a result of working on a coding assignment.

[0285] "Means of evaluation" refers to a system or algorithm that automatically determines whether the answers submitted by users are correct or incorrect.

[0286] "Emotion recognition result" is data resulting from the recognition of the user's emotional state, and is information used for feedback and task adjustment.

[0287] "Real-time feedback" refers to response messages that are generated on the spot based on the user's answer evaluation results and emotion recognition results.

[0288] "Means of delivery" refers to the system or method for delivering and displaying coding assignments and feedback to users.

[0289] "Emotional state" is data that indicates the psychological state of the user, and is determined based on changes in facial expressions and voice.

[0290] The present invention is a system that provides personalized coding challenges and real-time feedback to help users effectively master their programming skills. Furthermore, it incorporates an emotion engine that recognizes the user's emotions to further personalize the learning experience.

[0291] System Overview

[0292] This system mainly comprises a server, a user's terminal, and an emotion engine. The server retrieves user information from a storage device, selects an appropriate coding challenge from the storage device based on learning curve information, and provides it to the user. The user retrieves the coding challenge through their terminal and sends the answer to the server. The server evaluates the correctness of the answer and provides feedback in real time. Furthermore, the emotion engine recognizes the user's emotions and adjusts the content of the challenge and feedback messages based on that information.

[0293] Server Functions and Processing

[0294] 1. Obtaining user information

[0295] The server retrieves user information from the storage device, including the user's identification information and learning curve information, forming the basis for providing each user with an optimal challenge.

[0296] 2. Selecting a coding challenge

[0297] The server selects an appropriate coding challenge from an internal storage based on the learning curve information, for example, providing a basic challenge to a user with a beginner learning curve and a more complex challenge to a user with an intermediate learning curve.

[0298] 3. Offering a Challenge

[0299] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[0300] 4. Evaluate the solution

[0301] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[0302] 5. Real-time feedback

[0303] The server generates appropriate feedback messages based on the evaluation and emotion recognition results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[0304] Emotion Engine Functions

[0305] 1. Emotional awareness

[0306] The emotion engine collects camera footage and audio data from the user's device and analyzes them to recognize the user's emotions, for example, determining whether the user is smiling or confused.

[0307] 2. Adjusting feedback

[0308] The server receives the recognized emotion information and adjusts the feedback message based on that information, for example, sending an encouraging message to a confused user and a message encouraging further challenges to a smiling user.

[0309] 3. Challenge Adjustments

[0310] The emotion engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[0311] Specific examples

[0312] The following is an example of the processing that is actually performed by this system.

[0313] Requesting and Offering Challenges

[0314] A user requests a new challenge. The server retrieves learning curve information based on the user ID and selects and provides an appropriate challenge from the storage device. At the same time, the emotion engine recognizes the user's emotion and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected, and if the recognized emotion is "smile," positive feedback is given.

[0315] Submitting and Evaluating Your Solution

[0316] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotional information, feedback such as "Great job, keep it up!" is sent to the user in real time.

[0317] Prompt Sentence Examples

[0318] "User ID 1 has requested a new coding challenge. The device has sent to the emotion engine the fact that the user is smiling based on the camera footage. The server should use that information to provide an appropriate coding challenge and feedback."

[0319] This series of processes allows users to enjoy an optimal learning environment and a personalized learning experience, and is expected to improve users' learning efficiency and motivation.

[0320] The flow of the identification process in the second embodiment will be described with reference to FIG.

[0321] The flow of this system's program processing

[0322] Step 1: Request a challenge

[0323] explanation:

[0324] The user requests a new coding challenge from the device, which includes the user ID.

[0325] input:

[0326] The user clicks the "Start a new challenge" button on the device and enters their user ID.

[0327] output:

[0328] A request including the user ID is sent from the terminal to the server.

[0329] Specific behavior:

[0330] The user clicks the "Start a new challenge" button on the device interface.

[0331] The terminal transmits request data including the user ID to the server.

[0332] Step 2: Get user information

[0333] explanation:

[0334] The server acquires user information and learning curve information from a storage device (database) based on the user ID.

[0335] input:

[0336] Request data containing the user ID.

[0337] output:

[0338] User information and learning curve information obtained by the server.

[0339] Specific behavior:

[0340] The server sends a query to the storage device to obtain the user information and learning curve information corresponding to the user ID.

[0341] The retrieved information is stored in internal memory or a temporary data store.

[0342] Step 3: Select a coding challenge

[0343] explanation:

[0344] The server selects an appropriate coding challenge based on the acquired learning curve information.

[0345] input:

[0346] User learning curve information.

[0347] output:

[0348] A well-chosen and relevant coding challenge.

[0349] Specific behavior:

[0350] The server searches for suitable challenges from an internal coding challenge repository based on learning curve information (e.g. beginner, intermediate, advanced).

[0351] For beginner level users, choose a simple challenge: "Print 'Hello, World!'"

[0352] Step 4: Offer the challenge

[0353] explanation:

[0354] The server sends the selected coding challenge to the user's terminal.

[0355] input:

[0356] Selected coding challenges.

[0357] output:

[0358] The coding challenge sent to the device.

[0359] Specific behavior:

[0360] The server generates the selected challenge as JSON format data.

[0361] This data is sent over the network to the terminal, which receives it and displays it to the user.

[0362] Step 5: Recognize emotions

[0363] explanation:

[0364] The emotion engine collects camera footage and audio data from the user's device and analyzes the user's emotions.

[0365] input:

[0366] User camera video and audio data.

[0367] output:

[0368] Recognized emotional information.

[0369] Specific behavior:

[0370] The device's camera and microphone are activated to capture image and audio data in real time.

[0371] The emotion engine uses machine learning models to analyze this data and classify emotions such as smiling, confused, or stressed.

[0372] The recognized emotion information is sent to the server.

[0373] Step 6: Submit your solution

[0374] explanation:

[0375] The user completes the challenge and submits the answer solution to the server.

[0376] input:

[0377] The solution code created by the user.

[0378] output:

[0379] Submitted solution code.

[0380] Specific behavior:

[0381] The user solves the assignment on the device and clicks the "Submit" button.

[0382] The terminal sends the generated solution code to the server.

[0383] Step 7: Evaluate the solution

[0384] explanation:

[0385] The server rates the user's solution using an automated rating system.

[0386] input:

[0387] Submitted solution code.

[0388] output:

[0389] Evaluation result (correct or incorrect).

[0390] Specific behavior:

[0391] The server inputs the solution code into an automated evaluation system (e.g., JUnit tests) and runs it.

[0392] The evaluation results are obtained and stored in a database.

[0393] Step 8: Generate real-time feedback

[0394] explanation:

[0395] The server generates real-time feedback messages based on the evaluation results and emotion recognition results.

[0396] input:

[0397] Evaluation results and perceived emotional information.

[0398] output:

[0399] Generated real-time feedback messages.

[0400] Specific behavior:

[0401] The server generates a feedback message such as "Great job, keep it up!" based on the evaluation result (e.g., True) and the emotion recognition result (e.g., smiling face).

[0402] Step 9: Provide feedback

[0403] explanation:

[0404] The server sends the generated feedback message to the user's terminal.

[0405] input:

[0406] The generated feedback message.

[0407] output:

[0408] Feedback message sent to the user's device.

[0409] Specific behavior:

[0410] The server sends real-time feedback messages to the terminal, which then displays them to the user.

[0411] In this way, the system provides users with an optimized learning experience and supports efficient acquisition of programming skills.

[0412] (Application example 2)

[0413] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."

[0414] Conventional programming education systems have had problems in that they are difficult to provide users with a personalized experience and are unable to provide feedback that reflects the user's emotions. In particular, in education and training in a real work environment, it is necessary to recognize the user's emotions and provide appropriate feedback and challenges.

[0415] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 2 is realized by the following means.

[0416] In this invention, the server includes means for acquiring user information from a database, means for selecting a coding challenge from a repository based on user learning curve information, means for providing an appropriate coding challenge to the user, means for evaluating the correctness of a solution submitted by the user, means for generating real-time feedback based on the evaluation result, means for providing the generated real-time feedback to the user, means for providing education including an actual work simulation to the worker based on the robot device, and means for recognizing the user's emotions using a camera and a microphone and adjusting the feedback message and challenge content based on the information, thereby making it possible to provide a personalized coding challenge to the user and adjust the feedback and challenge content according to the emotion.

[0417] "User Information" refers to a user's identification information, learning history, and data for providing personalized coding challenges.

[0418] "Database" refers to the data storage system for storing and managing user information, learning curve information, and coding challenges.

[0419] "Learning curve information" refers to data used to evaluate a user's learning progress and skill level and provide appropriate learning content.

[0420] A "coding challenge" refers to a problem or task that helps you master programming skills.

[0421] "Repository" refers to a database or storage system for storing and managing coding challenges and learning resources.

[0422] An "appropriate coding challenge" refers to a coding task with optimal difficulty and content based on the user's learning curve information and skill level.

[0423] "Solution" means the answer or solution to a coding challenge submitted by a user.

[0424] "Means for assessing correctness" refers to algorithms or systems that automatically determine whether a submitted solution is correct.

[0425] "Real-time feedback" refers to the immediate evaluation and advice provided to users on their submitted solutions.

[0426] "Robotic Device" refers to automated machines used to provide realistic task simulation and physical training.

[0427] "Worker" refers to an individual user who receives training through a robotics teaching assistant in a real work environment.

[0428] "Work simulation" refers to the process of virtually or physically recreating actual work environments and operations.

[0429] "Camera" refers to a video device that captures the user's facial expressions and movements and recognizes their emotions.

[0430] "Microphone" refers to a voice input device for collecting the user's voice and recognizing emotions.

[0431] A "feedback message" is a message provided based on the user's behavior and emotions, and is intended to encourage or guide the user.

[0432] "Challenge content" refers to the specific problems or tasks of the coding challenge provided to the user.

[0433] A system for implementing the present invention mainly includes a server, a user terminal, a robot device, and an emotion recognition engine. The server obtains user information from a database and selects an appropriate coding challenge from a repository based on learning curve information to provide to the user. The user obtains the coding challenge through their terminal and sends the answer to the server. The server evaluates the accuracy of the answer and provides feedback in real time. Furthermore, the emotion recognition engine recognizes the user's emotions and adjusts the feedback message and challenge content based on that information.

[0434] System overview and technologies used

[0435] Server Functions and Processing

[0436] 1. Obtaining user information

[0437] The server retrieves user identification and learning curve information from a database (SQL or NoSQL database), which creates the basis for providing each user with an optimal coding challenge.

[0438] 2. Selecting a coding challenge

[0439] Based on the user's learning curve, the server selects an appropriate coding challenge from an internal repository, which is managed using a code management system such as GitHub.

[0440] 3. Offering a Challenge

[0441] The selected coding challenge is delivered to the user's device in JSON format or via a REST API, allowing the user to complete the challenge at their own pace.

[0442] 4. Evaluate the solution

[0443] When a user submits a solution to the server, the server automatically evaluates the solution using a pre-configured evaluation script, which is performed using automated evaluation tools such as Python and JUnit.

[0444] 5. Real-time feedback

[0445] The server generates real-time feedback based on the evaluation results and sends it to the user's device. For example, it generates feedback messages using a generative AI model such as ChatGPT.

[0446] Emotion Recognition Engine Functions

[0447] 1. Emotional awareness

[0448] The emotion recognition engine uses the camera and microphone of the user's device to recognize emotions. It uses OpenCV for image processing and Google Cloud Speech-to-Text API for voice recognition, and performs facial expression and voice analysis.

[0449] 2. Adjusting feedback

[0450] The server receives the recognized emotion information and tailors the feedback message based on it, using a generative AI model to, for example, send an encouraging message to a confused user.

[0451] 3. Challenge Adjustments

[0452] The emotion recognition engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[0453] Specific examples

[0454] Requesting and Offering Challenges

[0455] A user requests a new challenge using their device. The server retrieves learning curve information based on the user ID, selects an appropriate challenge from the repository, and provides it. At the same time, the emotion recognition engine recognizes the user's emotion through the camera and microphone and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected. If the recognized emotion is "smile," the generative AI model prepares a feedback message saying "Great job, keep it up!"

[0456] Submitting and Evaluating Your Solution

[0457] The user completes the challenge and submits the solution to the server. The server evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotion information, a generative AI model is used to send feedback to the user in real time, such as "Great job, keep it up!"

[0458] Prompt Sentence Examples

[0459] Below are some example prompts to input to the generative AI model:

[0460] 1. "Generate scenarios that recognize emotions using the user's facial expressions and voice and provide appropriate training feedback."

[0461] 2. "Imagine a situation where a user is being trained to assemble parts using a robot. List the emotions that may arise and the corresponding feedback."

[0462] The flow of the specific processing in the application example 2 will be described with reference to FIG.

[0463] Step 1:

[0464] The user requests a new challenge using a terminal. As input, the user ID and the challenge request are provided. The server retrieves the learning curve information associated with the user ID from the database. As output, the learning curve information is obtained. Based on this data, the next steps of processing proceed.

[0465] Step 2:

[0466] The server selects an appropriate coding challenge based on the learning curve information. As input, it receives the learning curve information and the contents of the coding challenge repository. The server uses an algorithm to select the most suitable coding challenge from the repository. As output, it obtains the selected coding challenge. This challenge is sent to the user's device in JSON format.

[0467] Step 3:

[0468] The server provides the selected appropriate coding challenge to the user's terminal. As input, the selected coding challenge is provided. As output, the challenge content is displayed on the user's terminal. The user can then challenge it.

[0469] Step 4:

[0470] The user completes the challenge and submits the solution to the server via their terminal. The user's solution is provided as input. The server evaluates the solution using a pre-configured evaluation script. The output is the evaluation result of the solution.

[0471] Step 5:

[0472] The server generates real-time feedback based on the evaluation results and the recognized emotion information. As input, the evaluation results and the user's emotion data are provided. The emotion data is sent from the emotion recognition engine. Using this data, the generative AI model generates a feedback message. As output, the generated feedback message is obtained.

[0473] Step 6:

[0474] The server provides the generated feedback message to the user. As input, the feedback message is provided. As output, the feedback message is displayed on the user's terminal. This allows the user to receive an evaluation of their answer and a guide to proceed to the next step.

[0475] Step 7:

[0476] The emotion recognition engine collects data from the camera and microphone on the user's device and recognizes the user's emotions. Camera video and audio data are provided as input. The recognized user emotion data is sent to the server as output. The data is analyzed using OpenCV and the Google Cloud Speech-to-Text API.

[0477] Step 8:

[0478] The server receives the recognized emotion information and adjusts the feedback message it provides based on it. Emotion data is provided as input. Adjusted feedback messages are generated as output. This provides appropriate support according to the user's emotion.

[0479] Step 9:

[0480] If the user feels stressed or confused, the emotion recognition engine and the server adjust the next challenge content. As input, the user's emotion data and the next challenge candidate are provided. The server reselects a challenge with adjusted difficulty and provides it to the user. As output, the adjusted challenge content is displayed on the user's device.

[0481] Prompt Sentence Examples

[0482] Below are some example prompts to input to the generative AI model:

[0483] 1. "Generate scenarios that recognize emotions using the user's facial expressions and voice and provide appropriate training feedback."

[0484] 2. "Imagine a situation where a user is being trained to assemble parts using a robot. List the emotions that may arise and the corresponding feedback."

[0485] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.

[0486] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[0487] In the above embodiment, an example in which the specific process is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific process may be performed by the smart device 14.

[0488] [Second embodiment]

[0489] FIG. 3 shows an example of the configuration of a data processing system 210 according to the second embodiment.

[0490] 3, the data processing system 210 includes the data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.

[0491] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[0492] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, and the camera 42 are also connected to the bus 52.

[0493] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.

[0494] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).

[0495] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.

[0496] Fig. 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Fig. 4, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.

[0497] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.

[0498] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.

[0499] In the smart glasses 214, the reception output process is performed by the processor 46. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.

[0500] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal."

[0501] DETAILED DESCRIPTION OF THE INVENTION A system for implementing the present invention provides personalized coding challenges and real-time feedback to help users effectively master their programming skills.

[0502] System Overview

[0503] This system mainly consists of a server and a user's terminal. The server retrieves user information from a database, selects an appropriate coding challenge from a repository based on learning curve information, and provides it to the user. The user receives the coding challenge through their terminal and sends the answer to the server. The server evaluates the answer and returns feedback in real time.

[0504] Server Functions and Processing

[0505] The main functions of the server are:

[0506] 1. Obtaining user information

[0507] The server retrieves user information from a database, including user identification and learning curve information, forming the basis for providing each user with an optimal challenge.

[0508] 2. Selecting a coding challenge

[0509] The server selects appropriate coding challenges from the repository based on the learning curve information, for example providing basic challenges to users with a beginner learning curve and more complex challenges to users with an intermediate learning curve.

[0510] 3. Offering a Challenge

[0511] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[0512] 4. Evaluate the solution

[0513] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[0514] 5. Real-time feedback

[0515] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[0516] Specific examples

[0517] The following is an example of the processing that is actually performed by this system.

[0518] Requesting and Offering Challenges

[0519] A user requests a new challenge. The server retrieves the learning curve information based on the user ID and selects an appropriate challenge from the repository to provide. For example, if the user ID is 1 and the learning curve is beginner level, the challenge "Print 'Hello, World!'" is selected.

[0520] Submitting and Evaluating Your Solution

[0521] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a result, such as "True." Based on the result, feedback such as "Great job, keep it up!" is sent to the user in real time.

[0522] In this way, users can instantly check their progress and enjoy a personalized learning experience, which is expected to improve users' learning efficiency and motivation.

[0523] The processing flow will be explained below.

[0524] Step 1:

[0525] When a user wants to get a new coding challenge, they can run / get_challenge / from their device.<user_id> Send an HTTP GET request to the endpoint.

[0526] Step 2:

[0527] The server receives the request and extracts the user ID, for example if the user ID is 1, it uses that information.

[0528] Step 3:

[0529] The server retrieves user information corresponding to the user ID from the database, including data about the user's learning curve (e.g., beginner, intermediate, advanced).

[0530] Step 4:

[0531] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example, if the learning curve is beginner, it will select a challenge such as "Print 'Hello, World!'".

[0532] Step 5:

[0533] The server converts the selected coding challenge into JSON format and sends it to the user's device as an HTTP response.

[0534] Step 6:

[0535] The user receives and displays the coding challenge provided by the server through the terminal, and the user then works on the challenge.

[0536] Step 7:

[0537] Once the user has completed the challenge, they submit the solution to the server by sending an HTTP POST request to the / submit_solution endpoint, including the user ID and whether the solution is correct (e.g., is_correct: true).

[0538] Step 8:

[0539] The server receives the request and evaluates the correctness of the solution. The server checks the is_correct flag and generates an appropriate feedback message based on the evaluation result.

[0540] Step 9:

[0541] The server converts the generated feedback message into JSON format and sends it to the user's device as an HTTP response. For example, if the answer is correct, it returns the message "Great job, keep it up!"

[0542] Step 10:

[0543] Users can receive feedback from the server via their devices to check their progress and understanding, and can decide on their next steps based on the feedback.

[0544] This process effectively provides users with a personalized coding learning experience.

[0545] Example 1

[0546] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."

[0547] Conventional learning support systems struggled to provide personalized feedback tailored to each user's individual learning progress, resulting in reduced learning efficiency. Real-time feedback was also sometimes delayed, raising concerns that this could lower user motivation. Furthermore, systems lacked the ability to automatically evaluate users' answers and provide immediate, appropriate feedback, preventing them from consistently improving users' learning experiences.

[0548] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.

[0549] In this invention, the server includes means for acquiring user information from a database, means for selecting a learning task from a data repository based on the user's learning curve information, means for providing the user with an appropriate learning task, means for evaluating the accuracy of answers submitted by the user, means for generating real-time feedback based on the evaluation results, means for providing the generated real-time feedback to the user, means for the user to use a terminal to send authentication information to the server and the server performs authentication, means for the user to request a new learning task from the terminal, and means for the server to determine the accuracy of the answers using an automatic evaluation system. This allows personalized feedback to be provided in real time according to the user's learning progress, thereby improving learning efficiency and motivation.

[0550] "User information" refers to data including the user's identification information and learning progress.

[0551] A "database" is a system for managing a systematically structured collection of data.

[0552] "Learning curve information" refers to data that indicates a user's learning progress and performance.

[0553] "Study Assignments" are programming challenges or problems for users to answer.

[0554] A "data repository" is a data storage system that stores learning tasks.

[0555] A "means for assessing correctness" is a method or system for determining whether an answer submitted by a user is correct or incorrect.

[0556] "Real-time feedback" refers to immediate responses and advice provided immediately after a user's answer is evaluated.

[0557] A "terminal" is a device such as a computer or smartphone that a user uses to access the system.

[0558] "Authentication information" refers to information used to identify and authenticate a user, such as a user ID and password.

[0559] An "automated evaluation system" is a system that programmatically evaluates answers submitted by users and determines whether they are correct or incorrect.

[0560] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention provides a system that provides personalized coding challenges and real-time feedback to help users effectively master their programming skills.

[0561] System configuration

[0562] This system mainly consists of a server and user terminals. The server is a high-performance computer system equipped with software for communicating with multiple databases and repositories. This includes a MySQL database for data management and a data repository for storing coding challenges. User terminals are devices connected to the internet, such as PCs and smartphones.

[0563] Server Features

[0564] 1. Obtaining user information

[0565] The server receives the authentication information entered by the user from the terminal and retrieves user information from the database, including the user's ID, past learning history, and current learning curve information. Specifically, it fetches the user information from the database using an SQL query.

[0566] 2. Analysis of learning curve information

[0567] The server analyzes the acquired user learning curve information based on the data of coding challenges the user has completed, the success rate of the challenges, the time it took to complete the challenges, etc. This allows the server to evaluate the user's current skill level.

[0568] 3. Selecting a coding challenge

[0569] The server selects an appropriate coding challenge from the data repository based on the learning curve information. For example, a simple challenge such as "Print 'Hello, World!'" is selected for a novice user. To select an appropriate challenge from the repository, the server uses a sophisticated algorithm.

[0570] 4. Offering a Challenge

[0571] The server sends the selected coding challenge to the user's device using a REST API over the HTTP protocol. The user can then view the challenge description and input fields on the device screen and begin coding.

[0572] 5. Submitting and Evaluating Your Solution

[0573] The user completes a solution to the challenge, writes the code in the input field on their device, and clicks the submit button. The server evaluates the user-submitted solution using an automated evaluation system (e.g., Pytest). The evaluation determines whether the answer is correct or incorrect.

[0574] 6. Real-time feedback

[0575] The server generates a feedback message based on the evaluation results. If the answer is correct, it generates a message such as "Great job, keep it up!", and if the answer is incorrect, it generates a message such as "Need more practice, but you're doing good!". The generated feedback is sent to the user's device in real time.

[0576] Specific examples

[0577] For example, if a beginner-level user with user ID 12345 requests a new challenge, the server uses an SQL query to retrieve the user's information from the database, selects a challenge "Print 'Hello, World!'" from the repository based on the user's past learning history, and provides it to the user's device. The server evaluates the answer to the challenge provided by the user using Pytest and sends feedback in real time, such as "Great job, keep it up!"

[0578] Prompt Sentence Examples

[0579] "Request a new coding challenge": "Can you give me a new coding challenge based on my current learning progress?"

[0580] This allows users to receive appropriate coding challenges based on their progress and improve their learning efficiency by getting real-time feedback.

[0581] The flow of the identification process in the first embodiment will be described with reference to FIG.

[0582] The processing flow of the program of this system will be explained below by dividing it into specific processing steps.

[0583] Step 1: Login and User Authentication

[0584] The user accesses the login screen using the terminal and enters the ID and password.

[0585] Input: User ID and password

[0586] The server receives the entered authentication information and authenticates the user against a database.

[0587] Data processing: The server executes an SQL query to search the database for a record with the entered ID and password.

[0588] Output: If authentication is successful, the user is redirected to the dashboard, otherwise an error message is displayed.

[0589] Specific operation: The user clicks the login button in the browser, and a screen according to the authentication result is displayed.

[0590] Step 2: Get user information

[0591] The user clicks the "Request a new challenge" button on the dashboard.

[0592] Input: User ID

[0593] The server retrieves user information from a database based on the user ID.

[0594] Data processing: Execute an SQL query to retrieve the record corresponding to the user ID.

[0595] Output: User identification information, learning history, learning curve information

[0596] Specific operation: Learning history and past challenge results are sent from the database to the server.

[0597] Step 3: Analyze learning curve information

[0598] The server analyzes the acquired learning curve information of the user.

[0599] Input: User's learning history and learning curve information

[0600] Data processing: An algorithm is run to calculate the user's current skill level based on past answer times, accuracy rates, and number of answers.

[0601] Output: User's skill level

[0602] What it does: The server uses statistical methods and machine learning models to assess skill level.

[0603] Step 4: Select a coding challenge

[0604] The server selects an appropriate coding challenge from a data repository based on the user's skill level.

[0605] Input: User's skill level

[0606] Data processing: Filter the repository for challenges that match your skill level.

[0607] Output: The selected coding challenge

[0608] Specific behavior: Beginner-level users are given a simple challenge such as "Print 'Hello, World!'".

[0609] Step 5: Offer the challenge

[0610] The server sends the selected coding challenge to the user's terminal.

[0611] Input: Selected coding challenge

[0612] Output: The challenge displayed on the user's device

[0613] What happens: The server sends an HTTP request and the user can verify the challenge through their browser.

[0614] Step 6: Submit your solution

[0615] The user completes the solution to the challenge, fills out the web form and clicks the submit button.

[0616] Input: User's solution code

[0617] The server receives the solution and stores it in a database.

[0618] Data processing: storing the solution in a database in the appropriate format.

[0619] Output: Store the solution

[0620] Specific operation: The server receives the solution when the submit button is clicked.

[0621] Step 7: Evaluate the solution and generate feedback

[0622] The server tests the received solutions using an automated evaluation system (e.g., Pytest) and generates evaluation results.

[0623] Input: Your solution

[0624] Data processing: A rating system is used to determine correctness and generate feedback messages.

[0625] Output: Evaluation results and feedback messages

[0626] Specific operation: The server runs a test framework such as Pytest and creates feedback based on the results.

[0627] Step 8: Provide real-time feedback

[0628] The server transmits the generated feedback message to the user's terminal in real time.

[0629] Input: Feedback message

[0630] Output: Feedback displayed on the user's terminal

[0631] What happens: The server returns an HTTP response, and the user sees real-time feedback in their browser.

[0632] In this way, users can instantly see their progress and enjoy a personalized learning experience.

[0633] (Application example 1)

[0634] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."

[0635] Effectively acquiring programming skills related to fintech technology is important for users. However, traditional programming learning systems struggle to provide users with appropriate, practical tasks and real-time feedback. Furthermore, there are not enough systems that allow users to receive personalized tasks that adapt to their own learning curve. Furthermore, there is a lack of comprehensive learning mechanisms for specific technologies in financial systems, such as encryption, data security, and API design.

[0636] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.

[0637] In this invention, the server includes means for acquiring user information from a database, means for selecting programming assignments from a repository based on the user's learning curve information, and means for providing the user with appropriate programming assignments, thereby enabling the user to acquire programming skills related to financial systems and provide practical assignments such as encryption, data security, and API design.

[0638] "User information" is data for identifying a user and describing the user's learning situation and learning progress.

[0639] A "database" is a system for efficiently searching, organizing, managing, and storing data.

[0640] "Learning curve information" is data that indicates the progress of learning, including the user's skills, learning pace, past learning history, and the like.

[0641] A "programming challenge" is a specific programming problem or task that a user attempts to solve in order to hone their programming skills.

[0642] A "repository" is a storage system for centrally storing and managing a large number of program issues and related data.

[0643] A "means for assessing correctness" is a system or algorithm that automatically determines whether the answer to a submitted programming task is correct.

[0644] "Real-time feedback" refers to feedback messages that are generated instantaneously based on the evaluation results and provided to the user immediately.

[0645] "Financial system" means a computer-based system for the transaction and management of funds, including banking services, trading platforms, online payment systems, etc.

[0646] "Encryption" is the process of transforming data with a specific algorithm to protect it from unauthorized access or alteration.

[0647] "Data security" refers to the techniques and measures used to ensure the integrity, confidentiality, and availability of data.

[0648] "API design" is the process and methodology for building application programming interfaces (APIs), designs that allow interaction between different pieces of software.

[0649] A specific embodiment of the present invention will now be described. This system mainly includes a server, a terminal, and a user. The server acquires user information from a database, selects appropriate program assignments from a repository based on the user's learning curve information, and provides them to the user. The user receives the program assignments through the terminal and sends the answers to the server. The server evaluates the accuracy of the answers and returns feedback in real time.

[0650] Specifically, the server has the following capabilities:

[0651] 1. Obtaining user information

[0652] The server retrieves user information from a database, which includes user identification information and learning curve information. The database is typically a relational database such as PostgreSQL.

[0653] 2. Selection of program topics

[0654] The server selects appropriate program tasks from the repository based on the user's learning curve information. The repository is a storage system that stores a large number of program tasks. The selected program tasks are chosen based on the user's skill level and past learning history.

[0655] 3. Providing assignments

[0656] The server provides the selected program assignments to the user's device, who then works on the assignments via a device such as a smartphone or PC, allowing the user to progress through the learning process at their own pace.

[0657] 4. Evaluate the solution

[0658] Users solve the problems and submit their answers to the server, which uses an automated evaluation system to determine whether the answers are correct. The evaluation system then analyzes the submitted code and verifies whether the answers are correct.

[0659] 5. Real-time feedback

[0660] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, the message might be "Great! Keep up the good work!", and if the answer is incorrect, the message might be "You'll need to try again, but it was a good attempt."

[0661] Hardware and software used

[0662] Django: Used as a backend framework to manage user information and provide assignments.

[0663] React Native: Develop smartphone apps on the front end and build user interfaces.

[0664] PostgreSQL: Used as a relational database to manage user information and assignment data.

[0665] Specific examples

[0666] When a user requests a new challenge, the server retrieves learning curve information based on the user ID. For example, if the user ID is 1 and the learning curve is beginner level, the "Basic Cryptography Challenge" is selected. When the user solves the challenge and submits the solution to the server, the server evaluates the solution and generates a rating of "True." Based on the rating, feedback such as "Great! Keep up the great work!" is sent to the user in real time.

[0667] Prompt Sentence Examples

[0668] "Write a code snippet that explains how to introduce cryptography to a beginner."

[0669] The flow of the specific processing in the application example 1 will be described with reference to FIG.

[0670] Step 1:

[0671] The server receives input from a user requesting a new program assignment. This input includes the user ID and the request content. The server retrieves user information from the database and collects the user's identification information and learning curve information. For example, if the user ID is 1, the user's learning level and past assignment performance are retrieved from the database.

[0672] Step 2:

[0673] The server analyzes the user's learning curve based on the acquired user information. Based on this information, it selects appropriate program assignments from the repository. For example, if the user's learning level is beginner, "exercises related to basic encryption techniques" will be selected. This selection process is filtered based on the user's past performance and preferences.

[0674] Step 3:

[0675] The server provides the selected program assignment to the user's device. Detailed information about the assignment (explanation, constraints, example inputs, example outputs, etc.) is sent to the user's device. The device displays this information and prepares an environment in which the user can work on the assignment. The user works on the assignment on a smartphone or computer and creates a solution.

[0676] Step 4:

[0677] Users submit their answers to the server via their device. The device then sends the code or solution entered by the user to the server. The server receives the submitted answer and inputs it into an automated evaluation system. The evaluation system analyzes the code and determines its correctness.

[0678] Step 5:

[0679] The server receives the results from the evaluation system and determines whether the answer is correct. Based on this evaluation result, the server generates an appropriate feedback message. For example, if the answer is correct, the server generates feedback such as "Great! Keep up the good work!". Conversely, if the answer is incorrect, the server generates feedback such as "You'll need to try again, but it was a good try."

[0680] Step 6:

[0681] The server generates feedback messages and sends them to the user's device. The user's device displays the feedback, allowing the user to check their progress and assessment in real time. Based on the feedback, the user can retry the assignment or request a new assignment. By repeating this loop, the user can efficiently improve their programming skills.

[0682] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.

[0683] The present invention provides a system for implementing the present invention, which provides personalized coding challenges and real-time feedback to help users effectively master their programming skills. Furthermore, by incorporating an emotion engine that recognizes the user's emotions, the learning experience is further personalized.

[0684] System Overview

[0685] This system mainly consists of a server, a user's device, and an emotion engine. The server retrieves user information from a database and selects an appropriate coding challenge from a repository based on learning curve information to provide to the user. The user obtains the coding challenge through their device and sends the answer to the server. The server evaluates the correctness of the answer and provides feedback in real time. Furthermore, the emotion engine recognizes the user's emotions and adjusts the challenge content and feedback messages based on that information.

[0686] Server Functions and Processing

[0687] The main functions of the server are:

[0688] 1. Obtaining user information

[0689] The server retrieves user information from a database, including user identification and learning curve information, forming the basis for providing each user with an optimal challenge.

[0690] 2. Selecting a coding challenge

[0691] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example providing a basic challenge to a user with a beginner learning curve and a more complex challenge to an intermediate user.

[0692] 3. Offering a Challenge

[0693] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[0694] 4. Evaluate the solution

[0695] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[0696] 5. Real-time feedback

[0697] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[0698] Emotion Engine Functions

[0699] The main functions of the Emotion Engine are:

[0700] 1. Emotional awareness

[0701] The emotion engine collects camera footage and audio data from the user's device and performs facial and audio analysis to recognize the user's emotions, such as determining whether the user is smiling or confused.

[0702] 2. Adjusting feedback

[0703] The server receives the recognized emotion information and adjusts the feedback message accordingly, for example, sending an encouraging message to a confused user, whereas a message encouraging further challenges to a smiling user.

[0704] 3. Challenge Adjustments

[0705] The emotion engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[0706] Specific examples

[0707] The following is an example of the processing that is actually performed by this system.

[0708] Requesting and Offering Challenges

[0709] A user requests a new challenge. The server retrieves learning curve information based on the user ID, selects an appropriate challenge from the repository, and provides it. At the same time, the emotion engine recognizes the user's emotion and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected, and if the recognized emotion is "smile," positive feedback is given.

[0710] Submitting and Evaluating Your Solution

[0711] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotional information, feedback such as "Great job, keep it up!" is sent to the user in real time.

[0712] This series of processes allows users to enjoy an optimal learning environment and a personalized learning experience, and is expected to improve users' learning efficiency and motivation.

[0713] The processing flow will be explained below.

[0714] Step 1:

[0715] When a user wants to get a new coding challenge, they can run / get_challenge / from their device.<user_id> Send an HTTP GET request to the endpoint.

[0716] Step 2:

[0717] The server receives the request and extracts the user ID, for example if the user ID is 1, it uses that information.

[0718] Step 3:

[0719] The server retrieves user information corresponding to the user ID from the database, including data about the user's learning curve (e.g., beginner, intermediate, advanced).

[0720] Step 4:

[0721] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example, if the learning curve is beginner, it will select a challenge such as "Print 'Hello, World!'".

[0722] Step 5:

[0723] The emotion engine analyzes data collected from the device's camera and microphone to recognize the user's emotions, such as whether the user is smiling or confused.

[0724] Step 6:

[0725] The emotion engine sends the emotion information it recognizes to the server. For example, if the user is smiling, that information is transmitted to the server.

[0726] Step 7:

[0727] The server generates a challenge with appropriate feedback based on the selected coding challenge and emotional information. For example, if the user is smiling, the server selects a challenge with positive feedback, and if the user is confused, the server selects a challenge with encouraging feedback.

[0728] Step 8:

[0729] The server converts the selected coding challenge into JSON format and sends it to the user's device as an HTTP response.

[0730] Step 9:

[0731] The user receives and displays the coding challenge provided by the server through the terminal, and the user then works on the challenge.

[0732] Step 10:

[0733] Once the user has completed the challenge, they submit the solution to the server by sending an HTTP POST request to the / submit_solution endpoint, including the user ID and whether the solution is correct (e.g., is_correct: true).

[0734] Step 11:

[0735] The server receives the request and evaluates the correctness of the solution. The server checks the is_correct flag and generates an appropriate feedback message based on the evaluation result.

[0736] Step 12:

[0737] The server converts the generated feedback message into JSON format and sends it to the user's device as an HTTP response. For example, if the answer is correct, it returns the message "Great job, keep it up!"

[0738] Step 13:

[0739] Users can receive feedback from the server via their devices to check their progress and understanding, and can decide on their next steps based on the feedback.

[0740] This series of processes effectively provides users with a personalized coding learning experience. The introduction of an emotion engine provides optimal support according to the user's learning situation, further improving learning efficiency and motivation.

[0741] Example 2

[0742] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."

[0743] Conventional programming learning systems lack the ability to respond specifically to a user's learning progress or individual emotional state, making it difficult to provide a personalized learning experience. In particular, they lack a mechanism to recognize when a user is confused or stressed in real time and provide appropriate feedback or task adjustments. As a result, it is difficult for users to maintain their motivation to learn, making it difficult for them to efficiently acquire programming skills.

[0744] The identification process by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means. In this invention, the server includes means for acquiring user information from a storage device, means for selecting a coding task from the storage device based on the user's learning curve information, means for providing the user with an appropriate coding task, means for evaluating the correctness of an answer submitted by the user, means for generating real-time feedback based on the evaluation result and the emotion recognition result, means for providing the generated real-time feedback to the user, and means for recognizing the user's emotional state and adjusting the tasks and feedback based on that information. This provides a personalized learning experience according to the user's learning progress and emotional state, enabling the user to efficiently acquire programming skills while maintaining their motivation.

[0745] "User information" is data including user identification information and learning curve information.

[0746] "Storage" refers to a database or other storage system where user information and coding assignments are stored.

[0747] "Learning curve information" is data that indicates the user's learning progress and proficiency, and is information that is used to select coding tasks that are appropriate for the user.

[0748] "Coding Challenges" refer to programming tasks or challenges that users must complete to improve their programming skills.

[0749] "Storage" refers to a repository or database that stores coding assignments and other related data.

[0750] "Solution" refers to the program or code that a user submits as a result of working on a coding assignment.

[0751] "Means of evaluation" refers to a system or algorithm that automatically determines whether the answers submitted by users are correct or incorrect.

[0752] "Emotion recognition result" is data resulting from the recognition of the user's emotional state, and is information used for feedback and task adjustment.

[0753] "Real-time feedback" refers to response messages that are generated on the spot based on the user's answer evaluation results and emotion recognition results.

[0754] "Means of delivery" refers to the system or method for delivering and displaying coding assignments and feedback to users.

[0755] "Emotional state" is data that indicates the psychological state of the user, and is determined based on changes in facial expressions and voice.

[0756] The present invention is a system that provides personalized coding challenges and real-time feedback to help users effectively master their programming skills. Furthermore, it incorporates an emotion engine that recognizes the user's emotions to further personalize the learning experience.

[0757] System Overview

[0758] This system mainly comprises a server, a user's terminal, and an emotion engine. The server retrieves user information from a storage device, selects an appropriate coding challenge from the storage device based on learning curve information, and provides it to the user. The user retrieves the coding challenge through their terminal and sends the answer to the server. The server evaluates the correctness of the answer and provides feedback in real time. Furthermore, the emotion engine recognizes the user's emotions and adjusts the content of the challenge and feedback messages based on that information.

[0759] Server Functions and Processing

[0760] 1. Obtaining user information

[0761] The server retrieves user information from the storage device, including the user's identification information and learning curve information, forming the basis for providing each user with an optimal challenge.

[0762] 2. Selecting a coding challenge

[0763] The server selects an appropriate coding challenge from an internal storage based on the learning curve information, for example, providing a basic challenge to a user with a beginner learning curve and a more complex challenge to a user with an intermediate learning curve.

[0764] 3. Offering a Challenge

[0765] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[0766] 4. Evaluate the solution

[0767] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[0768] 5. Real-time feedback

[0769] The server generates appropriate feedback messages based on the evaluation and emotion recognition results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[0770] Emotion Engine Functions

[0771] 1. Emotional awareness

[0772] The emotion engine collects camera footage and audio data from the user's device and analyzes them to recognize the user's emotions, for example, determining whether the user is smiling or confused.

[0773] 2. Adjusting feedback

[0774] The server receives the recognized emotion information and adjusts the feedback message based on that information, for example, sending an encouraging message to a confused user and a message encouraging further challenges to a smiling user.

[0775] 3. Challenge Adjustments

[0776] The emotion engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[0777] Specific examples

[0778] The following is an example of the processing that is actually performed by this system.

[0779] Requesting and Offering Challenges

[0780] A user requests a new challenge. The server retrieves learning curve information based on the user ID and selects and provides an appropriate challenge from the storage device. At the same time, the emotion engine recognizes the user's emotion and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected, and if the recognized emotion is "smile," positive feedback is given.

[0781] Submitting and Evaluating Your Solution

[0782] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotional information, feedback such as "Great job, keep it up!" is sent to the user in real time.

[0783] Prompt Sentence Examples

[0784] "User ID 1 has requested a new coding challenge. The device has sent to the emotion engine the fact that the user is smiling based on the camera footage. The server should use that information to provide an appropriate coding challenge and feedback."

[0785] This series of processes allows users to enjoy an optimal learning environment and a personalized learning experience, and is expected to improve users' learning efficiency and motivation.

[0786] The flow of the identification process in the second embodiment will be described with reference to FIG.

[0787] The flow of this system's program processing

[0788] Step 1: Request a challenge

[0789] explanation:

[0790] The user requests a new coding challenge from the device, which includes the user ID.

[0791] input:

[0792] The user clicks the "Start a new challenge" button on the device and enters their user ID.

[0793] output:

[0794] A request including the user ID is sent from the terminal to the server.

[0795] Specific behavior:

[0796] The user clicks the "Start a new challenge" button on the device interface.

[0797] The terminal transmits request data including the user ID to the server.

[0798] Step 2: Get user information

[0799] explanation:

[0800] The server acquires user information and learning curve information from a storage device (database) based on the user ID.

[0801] input:

[0802] Request data containing the user ID.

[0803] output:

[0804] User information and learning curve information obtained by the server.

[0805] Specific behavior:

[0806] The server sends a query to the storage device to obtain the user information and learning curve information corresponding to the user ID.

[0807] The retrieved information is stored in internal memory or a temporary data store.

[0808] Step 3: Select a coding challenge

[0809] explanation:

[0810] The server selects an appropriate coding challenge based on the acquired learning curve information.

[0811] input:

[0812] User learning curve information.

[0813] output:

[0814] A well-chosen and relevant coding challenge.

[0815] Specific behavior:

[0816] The server searches for suitable challenges from an internal coding challenge repository based on learning curve information (e.g. beginner, intermediate, advanced).

[0817] For beginner level users, choose a simple challenge: "Print 'Hello, World!'"

[0818] Step 4: Offer the challenge

[0819] explanation:

[0820] The server sends the selected coding challenge to the user's terminal.

[0821] input:

[0822] Selected coding challenges.

[0823] output:

[0824] The coding challenge sent to the device.

[0825] Specific behavior:

[0826] The server generates the selected challenge as JSON format data.

[0827] This data is sent over the network to the terminal, which receives it and displays it to the user.

[0828] Step 5: Recognize emotions

[0829] explanation:

[0830] The emotion engine collects camera footage and audio data from the user's device and analyzes the user's emotions.

[0831] input:

[0832] User camera video and audio data.

[0833] output:

[0834] Recognized emotional information.

[0835] Specific behavior:

[0836] The device's camera and microphone are activated to capture image and audio data in real time.

[0837] The emotion engine uses machine learning models to analyze this data and classify emotions such as smiling, confused, or stressed.

[0838] The recognized emotion information is sent to the server.

[0839] Step 6: Submit your solution

[0840] explanation:

[0841] The user completes the challenge and submits the answer solution to the server.

[0842] input:

[0843] The solution code created by the user.

[0844] output:

[0845] Submitted solution code.

[0846] Specific behavior:

[0847] The user solves the assignment on the device and clicks the "Submit" button.

[0848] The terminal sends the generated solution code to the server.

[0849] Step 7: Evaluate the solution

[0850] explanation:

[0851] The server rates the user's solution using an automated rating system.

[0852] input:

[0853] Submitted solution code.

[0854] output:

[0855] Evaluation result (correct or incorrect).

[0856] Specific behavior:

[0857] The server inputs the solution code into an automated evaluation system (e.g., JUnit tests) and runs it.

[0858] The evaluation results are obtained and stored in a database.

[0859] Step 8: Generate real-time feedback

[0860] explanation:

[0861] The server generates real-time feedback messages based on the evaluation results and emotion recognition results.

[0862] input:

[0863] Evaluation results and perceived emotional information.

[0864] output:

[0865] Generated real-time feedback messages.

[0866] Specific behavior:

[0867] The server generates a feedback message such as "Great job, keep it up!" based on the evaluation result (e.g., True) and the emotion recognition result (e.g., smiling face).

[0868] Step 9: Provide feedback

[0869] explanation:

[0870] The server sends the generated feedback message to the user's terminal.

[0871] input:

[0872] The generated feedback message.

[0873] output:

[0874] Feedback message sent to the user's device.

[0875] Specific behavior:

[0876] The server sends real-time feedback messages to the terminal, which then displays them to the user.

[0877] In this way, the system provides users with an optimized learning experience and supports efficient acquisition of programming skills.

[0878] (Application example 2)

[0879] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."

[0880] Conventional programming education systems have had problems in that they are difficult to provide users with a personalized experience and are unable to provide feedback that reflects the user's emotions. In particular, in education and training in a real work environment, it is necessary to recognize the user's emotions and provide appropriate feedback and challenges.

[0881] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 2 is realized by the following means.

[0882] In this invention, the server includes means for acquiring user information from a database, means for selecting a coding challenge from a repository based on user learning curve information, means for providing an appropriate coding challenge to the user, means for evaluating the correctness of a solution submitted by the user, means for generating real-time feedback based on the evaluation result, means for providing the generated real-time feedback to the user, means for providing education including an actual work simulation to the worker based on the robot device, and means for recognizing the user's emotions using a camera and a microphone and adjusting the feedback message and challenge content based on the information, thereby making it possible to provide a personalized coding challenge to the user and adjust the feedback and challenge content according to the emotion.

[0883] "User Information" refers to a user's identification information, learning history, and data for providing personalized coding challenges.

[0884] "Database" refers to the data storage system for storing and managing user information, learning curve information, and coding challenges.

[0885] "Learning curve information" refers to data used to evaluate a user's learning progress and skill level and provide appropriate learning content.

[0886] A "coding challenge" refers to a problem or task that helps you master programming skills.

[0887] "Repository" refers to a database or storage system for storing and managing coding challenges and learning resources.

[0888] An "appropriate coding challenge" refers to a coding task with optimal difficulty and content based on the user's learning curve information and skill level.

[0889] "Solution" means the answer or solution to a coding challenge submitted by a user.

[0890] "Means for assessing correctness" refers to algorithms or systems that automatically determine whether a submitted solution is correct.

[0891] "Real-time feedback" refers to the immediate evaluation and advice provided to users on their submitted solutions.

[0892] "Robotic Device" refers to automated machines used to provide realistic task simulation and physical training.

[0893] "Worker" refers to an individual user who receives training through a robotics teaching assistant in a real work environment.

[0894] "Work simulation" refers to the process of virtually or physically recreating actual work environments and operations.

[0895] "Camera" refers to a video device that captures the user's facial expressions and movements and recognizes their emotions.

[0896] "Microphone" refers to a voice input device for collecting the user's voice and recognizing emotions.

[0897] A "feedback message" is a message provided based on the user's behavior and emotions, and is intended to encourage or guide the user.

[0898] "Challenge content" refers to the specific problems or tasks of the coding challenge provided to the user.

[0899] A system for implementing the present invention mainly includes a server, a user terminal, a robot device, and an emotion recognition engine. The server obtains user information from a database and selects an appropriate coding challenge from a repository based on learning curve information to provide to the user. The user obtains the coding challenge through their terminal and sends the answer to the server. The server evaluates the accuracy of the answer and provides feedback in real time. Furthermore, the emotion recognition engine recognizes the user's emotions and adjusts the feedback message and challenge content based on that information.

[0900] System overview and technologies used

[0901] Server Functions and Processing

[0902] 1. Obtaining user information

[0903] The server retrieves user identification and learning curve information from a database (SQL or NoSQL database), which creates the basis for providing each user with an optimal coding challenge.

[0904] 2. Selecting a coding challenge

[0905] Based on the user's learning curve, the server selects an appropriate coding challenge from an internal repository, which is managed using a code management system such as GitHub.

[0906] 3. Offering a Challenge

[0907] The selected coding challenge is delivered to the user's device in JSON format or via a REST API, allowing the user to complete the challenge at their own pace.

[0908] 4. Evaluate the solution

[0909] When a user submits a solution to the server, the server automatically evaluates the solution using a pre-configured evaluation script, which is performed using automated evaluation tools such as Python and JUnit.

[0910] 5. Real-time feedback

[0911] The server generates real-time feedback based on the evaluation results and sends it to the user's device. For example, it generates feedback messages using a generative AI model such as ChatGPT.

[0912] Emotion Recognition Engine Functions

[0913] 1. Emotional awareness

[0914] The emotion recognition engine uses the camera and microphone of the user's device to recognize emotions. It uses OpenCV for image processing and Google Cloud Speech-to-Text API for voice recognition, and performs facial expression and voice analysis.

[0915] 2. Adjusting feedback

[0916] The server receives the recognized emotion information and tailors the feedback message based on it, using a generative AI model to, for example, send an encouraging message to a confused user.

[0917] 3. Challenge Adjustments

[0918] The emotion recognition engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[0919] Specific examples

[0920] Requesting and Offering Challenges

[0921] A user requests a new challenge using their device. The server retrieves learning curve information based on the user ID, selects an appropriate challenge from the repository, and provides it. At the same time, the emotion recognition engine recognizes the user's emotion through the camera and microphone and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected. If the recognized emotion is "smile," the generative AI model prepares a feedback message saying "Great job, keep it up!"

[0922] Submitting and Evaluating Your Solution

[0923] The user completes the challenge and submits the solution to the server. The server evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotion information, a generative AI model is used to send feedback to the user in real time, such as "Great job, keep it up!"

[0924] Prompt Sentence Examples

[0925] Below are some example prompts to input to the generative AI model:

[0926] 1. "Generate scenarios that recognize emotions using the user's facial expressions and voice and provide appropriate training feedback."

[0927] 2. "Imagine a situation where a user is being trained to assemble parts using a robot. List the emotions that may arise and the corresponding feedback."

[0928] The flow of the specific processing in the application example 2 will be described with reference to FIG.

[0929] Step 1:

[0930] The user requests a new challenge using a terminal. As input, the user ID and the challenge request are provided. The server retrieves the learning curve information associated with the user ID from the database. As output, the learning curve information is obtained. Based on this data, the next steps of processing proceed.

[0931] Step 2:

[0932] The server selects an appropriate coding challenge based on the learning curve information. As input, it receives the learning curve information and the contents of the coding challenge repository. The server uses an algorithm to select the most suitable coding challenge from the repository. As output, it obtains the selected coding challenge. This challenge is sent to the user's device in JSON format.

[0933] Step 3:

[0934] The server provides the selected appropriate coding challenge to the user's terminal. As input, the selected coding challenge is provided. As output, the challenge content is displayed on the user's terminal. The user can then challenge it.

[0935] Step 4:

[0936] The user completes the challenge and submits the solution to the server via their terminal. The user's solution is provided as input. The server evaluates the solution using a pre-configured evaluation script. The output is the evaluation result of the solution.

[0937] Step 5:

[0938] The server generates real-time feedback based on the evaluation results and the recognized emotion information. As input, the evaluation results and the user's emotion data are provided. The emotion data is sent from the emotion recognition engine. Using this data, the generative AI model generates a feedback message. As output, the generated feedback message is obtained.

[0939] Step 6:

[0940] The server provides the generated feedback message to the user. As input, the feedback message is provided. As output, the feedback message is displayed on the user's terminal. This allows the user to receive an evaluation of their answer and a guide to proceed to the next step.

[0941] Step 7:

[0942] The emotion recognition engine collects data from the camera and microphone on the user's device and recognizes the user's emotions. Camera video and audio data are provided as input. The recognized user emotion data is sent to the server as output. The data is analyzed using OpenCV and the Google Cloud Speech-to-Text API.

[0943] Step 8:

[0944] The server receives the recognized emotion information and adjusts the feedback message it provides based on it. Emotion data is provided as input. Adjusted feedback messages are generated as output. This provides appropriate support according to the user's emotion.

[0945] Step 9:

[0946] If the user feels stressed or confused, the emotion recognition engine and the server adjust the next challenge content. As input, the user's emotion data and the next challenge candidate are provided. The server reselects a challenge with adjusted difficulty and provides it to the user. As output, the adjusted challenge content is displayed on the user's device.

[0947] Prompt Sentence Examples

[0948] Below are some example prompts to input to the generative AI model:

[0949] 1. "Generate scenarios that recognize emotions using the user's facial expressions and voice and provide appropriate training feedback."

[0950] 2. "Imagine a situation where a user is being trained to assemble parts using a robot. List the emotions that may arise and the corresponding feedback."

[0951] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.

[0952] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[0953] In the above embodiment, an example in which the specific processing is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the smart glasses 214.

[0954] [Third embodiment]

[0955] FIG. 5 shows an example of the configuration of a data processing system 310 according to the third embodiment.

[0956] 5, the data processing system 310 includes the data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.

[0957] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[0958] The headset type terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a display 343. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the display 343 are also connected to the bus 52.

[0959] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.

[0960] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).

[0961] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.

[0962] Fig. 6 shows an example of the main functions of the data processing device 12 and the headset type terminal 314. As shown in Fig. 6, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.

[0963] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.

[0964] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.

[0965] In the headset type terminal 314, a reception output process is performed by the processor 46. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.

[0966] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as the "server" and the headset type terminal 314 will be referred to as the "terminal."

[0967] DETAILED DESCRIPTION OF THE INVENTION A system for implementing the present invention provides personalized coding challenges and real-time feedback to help users effectively master their programming skills.

[0968] System Overview

[0969] This system mainly consists of a server and a user's terminal. The server retrieves user information from a database, selects an appropriate coding challenge from a repository based on learning curve information, and provides it to the user. The user receives the coding challenge through their terminal and sends the answer to the server. The server evaluates the answer and returns feedback in real time.

[0970] Server Functions and Processing

[0971] The main functions of the server are:

[0972] 1. Obtaining user information

[0973] The server retrieves user information from a database, including user identification and learning curve information, forming the basis for providing each user with an optimal challenge.

[0974] 2. Selecting a coding challenge

[0975] The server selects appropriate coding challenges from the repository based on the learning curve information, for example providing basic challenges to users with a beginner learning curve and more complex challenges to users with an intermediate learning curve.

[0976] 3. Offering a Challenge

[0977] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[0978] 4. Evaluate the solution

[0979] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[0980] 5. Real-time feedback

[0981] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[0982] Specific examples

[0983] The following is an example of the processing that is actually performed by this system.

[0984] Requesting and Offering Challenges

[0985] A user requests a new challenge. The server retrieves the learning curve information based on the user ID and selects an appropriate challenge from the repository to provide. For example, if the user ID is 1 and the learning curve is beginner level, the challenge "Print 'Hello, World!'" is selected.

[0986] Submitting and Evaluating Your Solution

[0987] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a result, such as "True." Based on the result, feedback such as "Great job, keep it up!" is sent to the user in real time.

[0988] In this way, users can instantly check their progress and enjoy a personalized learning experience, which is expected to improve users' learning efficiency and motivation.

[0989] The processing flow will be explained below.

[0990] Step 1:

[0991] When a user wants to get a new coding challenge, they can run / get_challenge / from their device.<user_id> Send an HTTP GET request to the endpoint.

[0992] Step 2:

[0993] The server receives the request and extracts the user ID, for example if the user ID is 1, it uses that information.

[0994] Step 3:

[0995] The server retrieves user information corresponding to the user ID from the database, including data about the user's learning curve (e.g., beginner, intermediate, advanced).

[0996] Step 4:

[0997] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example, if the learning curve is beginner, it will select a challenge such as "Print 'Hello, World!'".

[0998] Step 5:

[0999] The server converts the selected coding challenge into JSON format and sends it to the user's device as an HTTP response.

[1000] Step 6:

[1001] The user receives and displays the coding challenge provided by the server through the terminal, and the user then works on the challenge.

[1002] Step 7:

[1003] Once the user has completed the challenge, they submit the solution to the server by sending an HTTP POST request to the / submit_solution endpoint, including the user ID and whether the solution is correct (e.g., is_correct: true).

[1004] Step 8:

[1005] The server receives the request and evaluates the correctness of the solution. The server checks the is_correct flag and generates an appropriate feedback message based on the evaluation result.

[1006] Step 9:

[1007] The server converts the generated feedback message into JSON format and sends it to the user's device as an HTTP response. For example, if the answer is correct, it returns the message "Great job, keep it up!"

[1008] Step 10:

[1009] Users can receive feedback from the server via their devices to check their progress and understanding, and can decide on their next steps based on the feedback.

[1010] This process effectively provides users with a personalized coding learning experience.

[1011] Example 1

[1012] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."

[1013] Conventional learning support systems struggled to provide personalized feedback tailored to each user's individual learning progress, resulting in reduced learning efficiency. Real-time feedback was also sometimes delayed, raising concerns that this could lower user motivation. Furthermore, systems lacked the ability to automatically evaluate users' answers and provide immediate, appropriate feedback, preventing them from consistently improving users' learning experiences.

[1014] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.

[1015] In this invention, the server includes means for acquiring user information from a database, means for selecting a learning task from a data repository based on the user's learning curve information, means for providing the user with an appropriate learning task, means for evaluating the accuracy of answers submitted by the user, means for generating real-time feedback based on the evaluation results, means for providing the generated real-time feedback to the user, means for the user to use a terminal to send authentication information to the server and the server performs authentication, means for the user to request a new learning task from the terminal, and means for the server to determine the accuracy of the answers using an automatic evaluation system. This allows personalized feedback to be provided in real time according to the user's learning progress, thereby improving learning efficiency and motivation.

[1016] "User information" refers to data including the user's identification information and learning progress.

[1017] A "database" is a system for managing a systematically structured collection of data.

[1018] "Learning curve information" refers to data that indicates a user's learning progress and performance.

[1019] "Study Assignments" are programming challenges or problems for users to answer.

[1020] A "data repository" is a data storage system that stores learning tasks.

[1021] A "means for assessing correctness" is a method or system for determining whether an answer submitted by a user is correct or incorrect.

[1022] "Real-time feedback" refers to immediate responses and advice provided immediately after a user's answer is evaluated.

[1023] A "terminal" is a device such as a computer or smartphone that a user uses to access the system.

[1024] "Authentication information" refers to information used to identify and authenticate a user, such as a user ID and password.

[1025] An "automated evaluation system" is a system that programmatically evaluates answers submitted by users and determines whether they are correct or incorrect.

[1026] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention provides a system that provides personalized coding challenges and real-time feedback to help users effectively master their programming skills.

[1027] System configuration

[1028] This system mainly consists of a server and user terminals. The server is a high-performance computer system equipped with software for communicating with multiple databases and repositories. This includes a MySQL database for data management and a data repository for storing coding challenges. User terminals are devices connected to the internet, such as PCs and smartphones.

[1029] Server Features

[1030] 1. Obtaining user information

[1031] The server receives the authentication information entered by the user from the terminal and retrieves user information from the database, including the user's ID, past learning history, and current learning curve information. Specifically, it fetches the user information from the database using an SQL query.

[1032] 2. Analysis of learning curve information

[1033] The server analyzes the acquired user learning curve information based on the data of coding challenges the user has completed, the success rate of the challenges, the time it took to complete the challenges, etc. This allows the server to evaluate the user's current skill level.

[1034] 3. Selecting a coding challenge

[1035] The server selects an appropriate coding challenge from the data repository based on the learning curve information. For example, a simple challenge such as "Print 'Hello, World!'" is selected for a novice user. To select an appropriate challenge from the repository, the server uses a sophisticated algorithm.

[1036] 4. Offering a Challenge

[1037] The server sends the selected coding challenge to the user's device using a REST API over the HTTP protocol. The user can then view the challenge description and input fields on the device screen and begin coding.

[1038] 5. Submitting and Evaluating Your Solution

[1039] The user completes a solution to the challenge, writes the code in the input field on their device, and clicks the submit button. The server evaluates the user-submitted solution using an automated evaluation system (e.g., Pytest). The evaluation determines whether the answer is correct or incorrect.

[1040] 6. Real-time feedback

[1041] The server generates a feedback message based on the evaluation results. If the answer is correct, it generates a message such as "Great job, keep it up!", and if the answer is incorrect, it generates a message such as "Need more practice, but you're doing good!". The generated feedback is sent to the user's device in real time.

[1042] Specific examples

[1043] For example, if a beginner-level user with user ID 12345 requests a new challenge, the server uses an SQL query to retrieve the user's information from the database, selects a challenge "Print 'Hello, World!'" from the repository based on the user's past learning history, and provides it to the user's device. The server evaluates the answer to the challenge provided by the user using Pytest and sends feedback in real time, such as "Great job, keep it up!"

[1044] Prompt Sentence Examples

[1045] "Request a new coding challenge": "Can you give me a new coding challenge based on my current learning progress?"

[1046] This allows users to receive appropriate coding challenges based on their progress and improve their learning efficiency by getting real-time feedback.

[1047] The flow of the identification process in the first embodiment will be described with reference to FIG.

[1048] The processing flow of the program of this system will be explained below by dividing it into specific processing steps.

[1049] Step 1: Login and User Authentication

[1050] The user accesses the login screen using the terminal and enters the ID and password.

[1051] Input: User ID and password

[1052] The server receives the entered authentication information and authenticates the user against a database.

[1053] Data processing: The server executes an SQL query to search the database for a record with the entered ID and password.

[1054] Output: If authentication is successful, the user is redirected to the dashboard, otherwise an error message is displayed.

[1055] Specific operation: The user clicks the login button in the browser, and a screen according to the authentication result is displayed.

[1056] Step 2: Get user information

[1057] The user clicks the "Request a new challenge" button on the dashboard.

[1058] Input: User ID

[1059] The server retrieves user information from a database based on the user ID.

[1060] Data processing: Execute an SQL query to retrieve the record corresponding to the user ID.

[1061] Output: User identification information, learning history, learning curve information

[1062] Specific operation: Learning history and past challenge results are sent from the database to the server.

[1063] Step 3: Analyze learning curve information

[1064] The server analyzes the acquired learning curve information of the user.

[1065] Input: User's learning history and learning curve information

[1066] Data processing: An algorithm is run to calculate the user's current skill level based on past answer times, accuracy rates, and number of answers.

[1067] Output: User's skill level

[1068] What it does: The server uses statistical methods and machine learning models to assess skill level.

[1069] Step 4: Select a coding challenge

[1070] The server selects an appropriate coding challenge from a data repository based on the user's skill level.

[1071] Input: User's skill level

[1072] Data processing: Filter the repository for challenges that match your skill level.

[1073] Output: The selected coding challenge

[1074] Specific behavior: Beginner-level users are given a simple challenge such as "Print 'Hello, World!'".

[1075] Step 5: Offer the challenge

[1076] The server sends the selected coding challenge to the user's terminal.

[1077] Input: Selected coding challenge

[1078] Output: The challenge displayed on the user's device

[1079] What happens: The server sends an HTTP request and the user can verify the challenge through their browser.

[1080] Step 6: Submit your solution

[1081] The user completes the solution to the challenge, fills out the web form and clicks the submit button.

[1082] Input: User's solution code

[1083] The server receives the solution and stores it in a database.

[1084] Data processing: storing the solution in a database in the appropriate format.

[1085] Output: Store the solution

[1086] Specific operation: The server receives the solution when the submit button is clicked.

[1087] Step 7: Evaluate the solution and generate feedback

[1088] The server tests the received solutions using an automated evaluation system (e.g., Pytest) and generates evaluation results.

[1089] Input: Your solution

[1090] Data processing: A rating system is used to determine correctness and generate feedback messages.

[1091] Output: Evaluation results and feedback messages

[1092] Specific operation: The server runs a test framework such as Pytest and creates feedback based on the results.

[1093] Step 8: Provide real-time feedback

[1094] The server transmits the generated feedback message to the user's terminal in real time.

[1095] Input: Feedback message

[1096] Output: Feedback displayed on the user's terminal

[1097] What happens: The server returns an HTTP response, and the user sees real-time feedback in their browser.

[1098] In this way, users can instantly see their progress and enjoy a personalized learning experience.

[1099] (Application example 1)

[1100] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."

[1101] Effectively acquiring programming skills related to fintech technology is important for users. However, traditional programming learning systems struggle to provide users with appropriate, practical tasks and real-time feedback. Furthermore, there are not enough systems that allow users to receive personalized tasks that adapt to their own learning curve. Furthermore, there is a lack of comprehensive learning mechanisms for specific technologies in financial systems, such as encryption, data security, and API design.

[1102] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.

[1103] In this invention, the server includes means for acquiring user information from a database, means for selecting programming assignments from a repository based on the user's learning curve information, and means for providing the user with appropriate programming assignments, thereby enabling the user to acquire programming skills related to financial systems and provide practical assignments such as encryption, data security, and API design.

[1104] "User information" is data for identifying a user and describing the user's learning situation and learning progress.

[1105] A "database" is a system for efficiently searching, organizing, managing, and storing data.

[1106] "Learning curve information" is data that indicates the progress of learning, including the user's skills, learning pace, past learning history, and the like.

[1107] A "programming challenge" is a specific programming problem or task that a user attempts to solve in order to hone their programming skills.

[1108] A "repository" is a storage system for centrally storing and managing a large number of program issues and related data.

[1109] A "means for assessing correctness" is a system or algorithm that automatically determines whether the answer to a submitted programming task is correct.

[1110] "Real-time feedback" refers to feedback messages that are generated instantaneously based on the evaluation results and provided to the user immediately.

[1111] "Financial system" means a computer-based system for the transaction and management of funds, including banking services, trading platforms, online payment systems, etc.

[1112] "Encryption" is the process of transforming data with a specific algorithm to protect it from unauthorized access or alteration.

[1113] "Data security" refers to the techniques and measures used to ensure the integrity, confidentiality, and availability of data.

[1114] "API design" is the process and methodology for building application programming interfaces (APIs), designs that allow interaction between different pieces of software.

[1115] A specific embodiment of the present invention will now be described. This system mainly includes a server, a terminal, and a user. The server acquires user information from a database, selects appropriate program assignments from a repository based on the user's learning curve information, and provides them to the user. The user receives the program assignments through the terminal and sends the answers to the server. The server evaluates the accuracy of the answers and returns feedback in real time.

[1116] Specifically, the server has the following capabilities:

[1117] 1. Obtaining user information

[1118] The server retrieves user information from a database, which includes user identification information and learning curve information. The database is typically a relational database such as PostgreSQL.

[1119] 2. Selection of program topics

[1120] The server selects appropriate program tasks from the repository based on the user's learning curve information. The repository is a storage system that stores a large number of program tasks. The selected program tasks are chosen based on the user's skill level and past learning history.

[1121] 3. Providing assignments

[1122] The server provides the selected program assignments to the user's device, who then works on the assignments via a device such as a smartphone or PC, allowing the user to progress through the learning process at their own pace.

[1123] 4. Evaluate the solution

[1124] Users solve the problems and submit their answers to the server, which uses an automated evaluation system to determine whether the answers are correct. The evaluation system then analyzes the submitted code and verifies whether the answers are correct.

[1125] 5. Real-time feedback

[1126] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, the message might be "Great! Keep up the good work!", and if the answer is incorrect, the message might be "You'll need to try again, but it was a good attempt."

[1127] Hardware and software used

[1128] Django: Used as a backend framework to manage user information and provide assignments.

[1129] React Native: Develop smartphone apps on the front end and build user interfaces.

[1130] PostgreSQL: Used as a relational database to manage user information and assignment data.

[1131] Specific examples

[1132] When a user requests a new challenge, the server retrieves learning curve information based on the user ID. For example, if the user ID is 1 and the learning curve is beginner level, the "Basic Cryptography Challenge" is selected. When the user solves the challenge and submits the solution to the server, the server evaluates the solution and generates a rating of "True." Based on the rating, feedback such as "Great! Keep up the great work!" is sent to the user in real time.

[1133] Prompt Sentence Examples

[1134] "Write a code snippet that explains how to introduce cryptography to a beginner."

[1135] The flow of the specific processing in the application example 1 will be described with reference to FIG.

[1136] Step 1:

[1137] The server receives input from a user requesting a new program assignment. This input includes the user ID and the request content. The server retrieves user information from the database and collects the user's identification information and learning curve information. For example, if the user ID is 1, the user's learning level and past assignment performance are retrieved from the database.

[1138] Step 2:

[1139] The server analyzes the user's learning curve based on the acquired user information. Based on this information, it selects appropriate program assignments from the repository. For example, if the user's learning level is beginner, "exercises related to basic encryption techniques" will be selected. This selection process is filtered based on the user's past performance and preferences.

[1140] Step 3:

[1141] The server provides the selected program assignment to the user's device. Detailed information about the assignment (explanation, constraints, example inputs, example outputs, etc.) is sent to the user's device. The device displays this information and prepares an environment in which the user can work on the assignment. The user works on the assignment on a smartphone or computer and creates a solution.

[1142] Step 4:

[1143] Users submit their answers to the server via their device. The device then sends the code or solution entered by the user to the server. The server receives the submitted answer and inputs it into an automated evaluation system. The evaluation system analyzes the code and determines its correctness.

[1144] Step 5:

[1145] The server receives the results from the evaluation system and determines whether the answer is correct. Based on this evaluation result, the server generates an appropriate feedback message. For example, if the answer is correct, the server generates feedback such as "Great! Keep up the good work!". Conversely, if the answer is incorrect, the server generates feedback such as "You'll need to try again, but it was a good try."

[1146] Step 6:

[1147] The server generates feedback messages and sends them to the user's device. The user's device displays the feedback, allowing the user to check their progress and assessment in real time. Based on the feedback, the user can retry the assignment or request a new assignment. By repeating this loop, the user can efficiently improve their programming skills.

[1148] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.

[1149] The present invention provides a system for implementing the present invention, which provides personalized coding challenges and real-time feedback to help users effectively master their programming skills. Furthermore, by incorporating an emotion engine that recognizes the user's emotions, the learning experience is further personalized.

[1150] System Overview

[1151] This system mainly consists of a server, a user's device, and an emotion engine. The server retrieves user information from a database and selects an appropriate coding challenge from a repository based on learning curve information to provide to the user. The user obtains the coding challenge through their device and sends the answer to the server. The server evaluates the correctness of the answer and provides feedback in real time. Furthermore, the emotion engine recognizes the user's emotions and adjusts the challenge content and feedback messages based on that information.

[1152] Server Functions and Processing

[1153] The main functions of the server are:

[1154] 1. Obtaining user information

[1155] The server retrieves user information from a database, including user identification and learning curve information, forming the basis for providing each user with an optimal challenge.

[1156] 2. Selecting a coding challenge

[1157] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example providing a basic challenge to a user with a beginner learning curve and a more complex challenge to an intermediate user.

[1158] 3. Offering a Challenge

[1159] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[1160] 4. Evaluate the solution

[1161] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[1162] 5. Real-time feedback

[1163] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[1164] Emotion Engine Functions

[1165] The main functions of the Emotion Engine are:

[1166] 1. Emotional awareness

[1167] The emotion engine collects camera footage and audio data from the user's device and performs facial and audio analysis to recognize the user's emotions, such as determining whether the user is smiling or confused.

[1168] 2. Adjusting feedback

[1169] The server receives the recognized emotion information and adjusts the feedback message accordingly, for example, sending an encouraging message to a confused user, whereas a message encouraging further challenges to a smiling user.

[1170] 3. Challenge Adjustments

[1171] The emotion engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[1172] Specific examples

[1173] The following is an example of the processing that is actually performed by this system.

[1174] Requesting and Offering Challenges

[1175] A user requests a new challenge. The server retrieves learning curve information based on the user ID, selects an appropriate challenge from the repository, and provides it. At the same time, the emotion engine recognizes the user's emotion and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected, and if the recognized emotion is "smile," positive feedback is given.

[1176] Submitting and Evaluating Your Solution

[1177] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotional information, feedback such as "Great job, keep it up!" is sent to the user in real time.

[1178] This series of processes allows users to enjoy an optimal learning environment and a personalized learning experience, and is expected to improve users' learning efficiency and motivation.

[1179] The processing flow will be explained below.

[1180] Step 1:

[1181] When a user wants to get a new coding challenge, they can run / get_challenge / from their device.<user_id> Send an HTTP GET request to the endpoint.

[1182] Step 2:

[1183] The server receives the request and extracts the user ID, for example if the user ID is 1, it uses that information.

[1184] Step 3:

[1185] The server retrieves user information corresponding to the user ID from the database, including data about the user's learning curve (e.g., beginner, intermediate, advanced).

[1186] Step 4:

[1187] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example, if the learning curve is beginner, it will select a challenge such as "Print 'Hello, World!'".

[1188] Step 5:

[1189] The emotion engine analyzes data collected from the device's camera and microphone to recognize the user's emotions, such as whether the user is smiling or confused.

[1190] Step 6:

[1191] The emotion engine sends the emotion information it recognizes to the server. For example, if the user is smiling, that information is transmitted to the server.

[1192] Step 7:

[1193] The server generates a challenge with appropriate feedback based on the selected coding challenge and emotional information. For example, if the user is smiling, the server selects a challenge with positive feedback, and if the user is confused, the server selects a challenge with encouraging feedback.

[1194] Step 8:

[1195] The server converts the selected coding challenge into JSON format and sends it to the user's device as an HTTP response.

[1196] Step 9:

[1197] The user receives and displays the coding challenge provided by the server through the terminal, and the user then works on the challenge.

[1198] Step 10:

[1199] Once the user has completed the challenge, they submit the solution to the server by sending an HTTP POST request to the / submit_solution endpoint, including the user ID and whether the solution is correct (e.g., is_correct: true).

[1200] Step 11:

[1201] The server receives the request and evaluates the correctness of the solution. The server checks the is_correct flag and generates an appropriate feedback message based on the evaluation result.

[1202] Step 12:

[1203] The server converts the generated feedback message into JSON format and sends it to the user's device as an HTTP response. For example, if the answer is correct, it returns the message "Great job, keep it up!"

[1204] Step 13:

[1205] Users can receive feedback from the server via their devices to check their progress and understanding, and can decide on their next steps based on the feedback.

[1206] This series of processes effectively provides users with a personalized coding learning experience. The introduction of an emotion engine provides optimal support according to the user's learning situation, further improving learning efficiency and motivation.

[1207] Example 2

[1208] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."

[1209] Conventional programming learning systems lack the ability to respond specifically to a user's learning progress or individual emotional state, making it difficult to provide a personalized learning experience. In particular, they lack a mechanism to recognize when a user is confused or stressed in real time and provide appropriate feedback or task adjustments. As a result, it is difficult for users to maintain their motivation to learn, making it difficult for them to efficiently acquire programming skills.

[1210] The identification process by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means. In this invention, the server includes means for acquiring user information from a storage device, means for selecting a coding task from the storage device based on the user's learning curve information, means for providing the user with an appropriate coding task, means for evaluating the correctness of an answer submitted by the user, means for generating real-time feedback based on the evaluation result and the emotion recognition result, means for providing the generated real-time feedback to the user, and means for recognizing the user's emotional state and adjusting the tasks and feedback based on that information. This provides a personalized learning experience according to the user's learning progress and emotional state, enabling the user to efficiently acquire programming skills while maintaining their motivation.

[1211] "User information" is data including user identification information and learning curve information.

[1212] "Storage" refers to a database or other storage system where user information and coding assignments are stored.

[1213] "Learning curve information" is data that indicates the user's learning progress and proficiency, and is information that is used to select coding tasks that are appropriate for the user.

[1214] "Coding Challenges" refer to programming tasks or challenges that users must complete to improve their programming skills.

[1215] "Storage" refers to a repository or database that stores coding assignments and other related data.

[1216] "Solution" refers to the program or code that a user submits as a result of working on a coding assignment.

[1217] "Means of evaluation" refers to a system or algorithm that automatically determines whether the answers submitted by users are correct or incorrect.

[1218] "Emotion recognition result" is data resulting from the recognition of the user's emotional state, and is information used for feedback and task adjustment.

[1219] "Real-time feedback" refers to response messages that are generated on the spot based on the user's answer evaluation results and emotion recognition results.

[1220] "Means of delivery" refers to the system or method for delivering and displaying coding assignments and feedback to users.

[1221] "Emotional state" is data that indicates the psychological state of the user, and is determined based on changes in facial expressions and voice.

[1222] The present invention is a system that provides personalized coding challenges and real-time feedback to help users effectively master their programming skills. Furthermore, it incorporates an emotion engine that recognizes the user's emotions to further personalize the learning experience.

[1223] System Overview

[1224] This system mainly comprises a server, a user's terminal, and an emotion engine. The server retrieves user information from a storage device, selects an appropriate coding challenge from the storage device based on learning curve information, and provides it to the user. The user retrieves the coding challenge through their terminal and sends the answer to the server. The server evaluates the correctness of the answer and provides feedback in real time. Furthermore, the emotion engine recognizes the user's emotions and adjusts the content of the challenge and feedback messages based on that information.

[1225] Server Functions and Processing

[1226] 1. Obtaining user information

[1227] The server retrieves user information from the storage device, including the user's identification information and learning curve information, forming the basis for providing each user with an optimal challenge.

[1228] 2. Selecting a coding challenge

[1229] The server selects an appropriate coding challenge from an internal storage based on the learning curve information, for example, providing a basic challenge to a user with a beginner learning curve and a more complex challenge to a user with an intermediate learning curve.

[1230] 3. Offering a Challenge

[1231] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[1232] 4. Evaluate the solution

[1233] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[1234] 5. Real-time feedback

[1235] The server generates appropriate feedback messages based on the evaluation and emotion recognition results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[1236] Emotion Engine Functions

[1237] 1. Emotional awareness

[1238] The emotion engine collects camera footage and audio data from the user's device and analyzes them to recognize the user's emotions, for example, determining whether the user is smiling or confused.

[1239] 2. Adjusting feedback

[1240] The server receives the recognized emotion information and adjusts the feedback message based on that information, for example, sending an encouraging message to a confused user and a message encouraging further challenges to a smiling user.

[1241] 3. Challenge Adjustments

[1242] The emotion engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[1243] Specific examples

[1244] The following is an example of the processing that is actually performed by this system.

[1245] Requesting and Offering Challenges

[1246] A user requests a new challenge. The server retrieves learning curve information based on the user ID and selects and provides an appropriate challenge from the storage device. At the same time, the emotion engine recognizes the user's emotion and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected, and if the recognized emotion is "smile," positive feedback is given.

[1247] Submitting and Evaluating Your Solution

[1248] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotional information, feedback such as "Great job, keep it up!" is sent to the user in real time.

[1249] Prompt Sentence Examples

[1250] "User ID 1 has requested a new coding challenge. The device has sent to the emotion engine the fact that the user is smiling based on the camera footage. The server should use that information to provide an appropriate coding challenge and feedback."

[1251] This series of processes allows users to enjoy an optimal learning environment and a personalized learning experience, and is expected to improve users' learning efficiency and motivation.

[1252] The flow of the identification process in the second embodiment will be described with reference to FIG.

[1253] The flow of this system's program processing

[1254] Step 1: Request a challenge

[1255] explanation:

[1256] The user requests a new coding challenge from the device, which includes the user ID.

[1257] input:

[1258] The user clicks the "Start a new challenge" button on the device and enters their user ID.

[1259] output:

[1260] A request including the user ID is sent from the terminal to the server.

[1261] Specific behavior:

[1262] The user clicks the "Start a new challenge" button on the device interface.

[1263] The terminal transmits request data including the user ID to the server.

[1264] Step 2: Get user information

[1265] explanation:

[1266] The server acquires user information and learning curve information from a storage device (database) based on the user ID.

[1267] input:

[1268] Request data containing the user ID.

[1269] output:

[1270] User information and learning curve information obtained by the server.

[1271] Specific behavior:

[1272] The server sends a query to the storage device to obtain the user information and learning curve information corresponding to the user ID.

[1273] The retrieved information is stored in internal memory or a temporary data store.

[1274] Step 3: Select a coding challenge

[1275] explanation:

[1276] The server selects an appropriate coding challenge based on the acquired learning curve information.

[1277] input:

[1278] User learning curve information.

[1279] output:

[1280] A well-chosen and relevant coding challenge.

[1281] Specific behavior:

[1282] The server searches for suitable challenges from an internal coding challenge repository based on learning curve information (e.g. beginner, intermediate, advanced).

[1283] For beginner level users, choose a simple challenge: "Print 'Hello, World!'"

[1284] Step 4: Offer the challenge

[1285] explanation:

[1286] The server sends the selected coding challenge to the user's terminal.

[1287] input:

[1288] Selected coding challenges.

[1289] output:

[1290] The coding challenge sent to the device.

[1291] Specific behavior:

[1292] The server generates the selected challenge as JSON format data.

[1293] This data is sent over the network to the terminal, which receives it and displays it to the user.

[1294] Step 5: Recognize emotions

[1295] explanation:

[1296] The emotion engine collects camera footage and audio data from the user's device and analyzes the user's emotions.

[1297] input:

[1298] User camera video and audio data.

[1299] output:

[1300] Recognized emotional information.

[1301] Specific behavior:

[1302] The device's camera and microphone are activated to capture image and audio data in real time.

[1303] The emotion engine uses machine learning models to analyze this data and classify emotions such as smiling, confused, or stressed.

[1304] The recognized emotion information is sent to the server.

[1305] Step 6: Submit your solution

[1306] explanation:

[1307] The user completes the challenge and submits the answer solution to the server.

[1308] input:

[1309] The solution code created by the user.

[1310] output:

[1311] Submitted solution code.

[1312] Specific behavior:

[1313] The user solves the assignment on the device and clicks the "Submit" button.

[1314] The terminal sends the generated solution code to the server.

[1315] Step 7: Evaluate the solution

[1316] explanation:

[1317] The server rates the user's solution using an automated rating system.

[1318] input:

[1319] Submitted solution code.

[1320] output:

[1321] Evaluation result (correct or incorrect).

[1322] Specific behavior:

[1323] The server inputs the solution code into an automated evaluation system (e.g., JUnit tests) and runs it.

[1324] The evaluation results are obtained and stored in a database.

[1325] Step 8: Generate real-time feedback

[1326] explanation:

[1327] The server generates real-time feedback messages based on the evaluation results and emotion recognition results.

[1328] input:

[1329] Evaluation results and perceived emotional information.

[1330] output:

[1331] Generated real-time feedback messages.

[1332] Specific behavior:

[1333] The server generates a feedback message such as "Great job, keep it up!" based on the evaluation result (e.g., True) and the emotion recognition result (e.g., smiling face).

[1334] Step 9: Provide feedback

[1335] explanation:

[1336] The server sends the generated feedback message to the user's terminal.

[1337] input:

[1338] The generated feedback message.

[1339] output:

[1340] Feedback message sent to the user's device.

[1341] Specific behavior:

[1342] The server sends real-time feedback messages to the terminal, which then displays them to the user.

[1343] In this way, the system provides users with an optimized learning experience and supports efficient acquisition of programming skills.

[1344] (Application example 2)

[1345] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."

[1346] Conventional programming education systems have had problems in that they are difficult to provide users with a personalized experience and are unable to provide feedback that reflects the user's emotions. In particular, in education and training in a real work environment, it is necessary to recognize the user's emotions and provide appropriate feedback and challenges.

[1347] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 2 is realized by the following means.

[1348] In this invention, the server includes means for acquiring user information from a database, means for selecting a coding challenge from a repository based on user learning curve information, means for providing an appropriate coding challenge to the user, means for evaluating the correctness of a solution submitted by the user, means for generating real-time feedback based on the evaluation result, means for providing the generated real-time feedback to the user, means for providing education including an actual work simulation to the worker based on the robot device, and means for recognizing the user's emotions using a camera and a microphone and adjusting the feedback message and challenge content based on the information, thereby making it possible to provide a personalized coding challenge to the user and adjust the feedback and challenge content according to the emotion.

[1349] "User Information" refers to a user's identification information, learning history, and data for providing personalized coding challenges.

[1350] "Database" refers to the data storage system for storing and managing user information, learning curve information, and coding challenges.

[1351] "Learning curve information" refers to data used to evaluate a user's learning progress and skill level and provide appropriate learning content.

[1352] A "coding challenge" refers to a problem or task that helps you master programming skills.

[1353] "Repository" refers to a database or storage system for storing and managing coding challenges and learning resources.

[1354] An "appropriate coding challenge" refers to a coding task with optimal difficulty and content based on the user's learning curve information and skill level.

[1355] "Solution" means the answer or solution to a coding challenge submitted by a user.

[1356] "Means for assessing correctness" refers to algorithms or systems that automatically determine whether a submitted solution is correct.

[1357] "Real-time feedback" refers to the immediate evaluation and advice provided to users on their submitted solutions.

[1358] "Robotic Device" refers to automated machines used to provide realistic task simulation and physical training.

[1359] "Worker" refers to an individual user who receives training through a robotics teaching assistant in a real work environment.

[1360] "Work simulation" refers to the process of virtually or physically recreating actual work environments and operations.

[1361] "Camera" refers to a video device that captures the user's facial expressions and movements and recognizes their emotions.

[1362] "Microphone" refers to a voice input device for collecting the user's voice and recognizing emotions.

[1363] A "feedback message" is a message provided based on the user's behavior and emotions, and is intended to encourage or guide the user.

[1364] "Challenge content" refers to the specific problems or tasks of the coding challenge provided to the user.

[1365] A system for implementing the present invention mainly includes a server, a user terminal, a robot device, and an emotion recognition engine. The server obtains user information from a database and selects an appropriate coding challenge from a repository based on learning curve information to provide to the user. The user obtains the coding challenge through their terminal and sends the answer to the server. The server evaluates the accuracy of the answer and provides feedback in real time. Furthermore, the emotion recognition engine recognizes the user's emotions and adjusts the feedback message and challenge content based on that information.

[1366] System overview and technologies used

[1367] Server Functions and Processing

[1368] 1. Obtaining user information

[1369] The server retrieves user identification and learning curve information from a database (SQL or NoSQL database), which creates the basis for providing each user with an optimal coding challenge.

[1370] 2. Selecting a coding challenge

[1371] Based on the user's learning curve, the server selects an appropriate coding challenge from an internal repository, which is managed using a code management system such as GitHub.

[1372] 3. Offering a Challenge

[1373] The selected coding challenge is delivered to the user's device in JSON format or via a REST API, allowing the user to complete the challenge at their own pace.

[1374] 4. Evaluate the solution

[1375] When a user submits a solution to the server, the server automatically evaluates the solution using a pre-configured evaluation script, which is performed using automated evaluation tools such as Python and JUnit.

[1376] 5. Real-time feedback

[1377] The server generates real-time feedback based on the evaluation results and sends it to the user's device. For example, it generates feedback messages using a generative AI model such as ChatGPT.

[1378] Emotion Recognition Engine Functions

[1379] 1. Emotional awareness

[1380] The emotion recognition engine uses the camera and microphone of the user's device to recognize emotions. It uses OpenCV for image processing and Google Cloud Speech-to-Text API for voice recognition, and performs facial expression and voice analysis.

[1381] 2. Adjusting feedback

[1382] The server receives the recognized emotion information and tailors the feedback message based on it, using a generative AI model to, for example, send an encouraging message to a confused user.

[1383] 3. Challenge Adjustments

[1384] The emotion recognition engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[1385] Specific examples

[1386] Requesting and Offering Challenges

[1387] A user requests a new challenge using their device. The server retrieves learning curve information based on the user ID, selects an appropriate challenge from the repository, and provides it. At the same time, the emotion recognition engine recognizes the user's emotion through the camera and microphone and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected. If the recognized emotion is "smile," the generative AI model prepares a feedback message saying "Great job, keep it up!"

[1388] Submitting and Evaluating Your Solution

[1389] The user completes the challenge and submits the solution to the server. The server evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotion information, a generative AI model is used to send feedback to the user in real time, such as "Great job, keep it up!"

[1390] Prompt Sentence Examples

[1391] Below are some example prompts to input to the generative AI model:

[1392] 1. "Generate scenarios that recognize emotions using the user's facial expressions and voice and provide appropriate training feedback."

[1393] 2. "Imagine a situation where a user is being trained to assemble parts using a robot. List the emotions that may arise and the corresponding feedback."

[1394] The flow of the specific processing in the application example 2 will be described with reference to FIG.

[1395] Step 1:

[1396] The user requests a new challenge using a terminal. As input, the user ID and the challenge request are provided. The server retrieves the learning curve information associated with the user ID from the database. As output, the learning curve information is obtained. Based on this data, the next steps of processing proceed.

[1397] Step 2:

[1398] The server selects an appropriate coding challenge based on the learning curve information. As input, it receives the learning curve information and the contents of the coding challenge repository. The server uses an algorithm to select the most suitable coding challenge from the repository. As output, it obtains the selected coding challenge. This challenge is sent to the user's device in JSON format.

[1399] Step 3:

[1400] The server provides the selected appropriate coding challenge to the user's terminal. As input, the selected coding challenge is provided. As output, the challenge content is displayed on the user's terminal. The user can then challenge it.

[1401] Step 4:

[1402] The user completes the challenge and submits the solution to the server via their terminal. The user's solution is provided as input. The server evaluates the solution using a pre-configured evaluation script. The output is the evaluation result of the solution.

[1403] Step 5:

[1404] The server generates real-time feedback based on the evaluation results and the recognized emotion information. As input, the evaluation results and the user's emotion data are provided. The emotion data is sent from the emotion recognition engine. Using this data, the generative AI model generates a feedback message. As output, the generated feedback message is obtained.

[1405] Step 6:

[1406] The server provides the generated feedback message to the user. As input, the feedback message is provided. As output, the feedback message is displayed on the user's terminal. This allows the user to receive an evaluation of their answer and a guide to proceed to the next step.

[1407] Step 7:

[1408] The emotion recognition engine collects data from the camera and microphone on the user's device and recognizes the user's emotions. Camera video and audio data are provided as input. The recognized user emotion data is sent to the server as output. The data is analyzed using OpenCV and the Google Cloud Speech-to-Text API.

[1409] Step 8:

[1410] The server receives the recognized emotion information and adjusts the feedback message it provides based on it. Emotion data is provided as input. Adjusted feedback messages are generated as output. This provides appropriate support according to the user's emotion.

[1411] Step 9:

[1412] If the user feels stressed or confused, the emotion recognition engine and the server adjust the next challenge content. As input, the user's emotion data and the next challenge candidate are provided. The server reselects a challenge with adjusted difficulty and provides it to the user. As output, the adjusted challenge content is displayed on the user's device.

[1413] Prompt Sentence Examples

[1414] Below are some example prompts to input to the generative AI model:

[1415] 1. "Generate scenarios that recognize emotions using the user's facial expressions and voice and provide appropriate training feedback."

[1416] 2. "Imagine a situation where a user is being trained to assemble parts using a robot. List the emotions that may arise and the corresponding feedback."

[1417] The specific processing unit 290 transmits the result of the specific processing to the headset type terminal 314. In the headset type terminal 314, the control unit 46A causes the speaker 240 and the display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.

[1418] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[1419] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the headset type terminal 314.

[1420] [Fourth embodiment]

[1421] FIG. 7 shows an example of the configuration of a data processing system 410 according to the fourth embodiment.

[1422] 7, a data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.

[1423] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[1424] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a control target 443. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the control target 443 are also connected to the bus 52.

[1425] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.

[1426] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).

[1427] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.

[1428] The control object 443 includes a display device, LEDs in the eyes, and motors for driving the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the emotions of the robot 414 can be expressed by controlling these motors. In addition, the facial expressions of the robot 414 can also be expressed by controlling the light emission state of the LEDs in the eyes of the robot 414.

[1429] Fig. 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Fig. 8, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.

[1430] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.

[1431] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.

[1432] In the robot 414, the processor 46 performs the reception output process. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.

[1433] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."

[1434] DETAILED DESCRIPTION OF THE INVENTION The present invention provides a system for providing personalized coding challenges and real-time feedback to help users effectively master their programming skills.

[1435] System Overview

[1436] This system mainly consists of a server and a user's terminal. The server retrieves user information from a database, selects an appropriate coding challenge from a repository based on learning curve information, and provides it to the user. The user receives the coding challenge through their terminal and sends the answer to the server. The server evaluates the answer and returns feedback in real time.

[1437] Server Functions and Processing

[1438] The main functions of the server are:

[1439] 1. Obtaining user information

[1440] The server retrieves user information from a database, including user identification and learning curve information, forming the basis for providing each user with an optimal challenge.

[1441] 2. Selecting a coding challenge

[1442] The server selects appropriate coding challenges from the repository based on the learning curve information, for example providing basic challenges to users with a beginner learning curve and more complex challenges to users with an intermediate learning curve.

[1443] 3. Offering a Challenge

[1444] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[1445] 4. Evaluate the solution

[1446] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[1447] 5. Real-time feedback

[1448] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[1449] Specific examples

[1450] The following is an example of the processing that is actually performed by this system.

[1451] Requesting and Offering Challenges

[1452] A user requests a new challenge. The server retrieves learning curve information based on the user ID and selects an appropriate challenge from the repository to provide. For example, if the user ID is 1 and the learning curve is beginner level, the challenge "Print 'Hello, World!'" is selected.

[1453] Submitting and Evaluating Your Solution

[1454] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a result, such as "True." Based on the result, feedback such as "Great job, keep it up!" is sent to the user in real time.

[1455] In this way, users can instantly check their progress and enjoy a personalized learning experience, which is expected to improve users' learning efficiency and motivation.

[1456] The processing flow will be explained below.

[1457] Step 1:

[1458] When a user wants to get a new coding challenge, they can run / get_challenge / from their device.<user_id> Send an HTTP GET request to the endpoint.

[1459] Step 2:

[1460] The server receives the request and extracts the user ID, for example if the user ID is 1, it uses that information.

[1461] Step 3:

[1462] The server retrieves user information corresponding to the user ID from the database, including data about the user's learning curve (e.g., beginner, intermediate, advanced).

[1463] Step 4:

[1464] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example, if the learning curve is beginner, it will select a challenge such as "Print 'Hello, World!'".

[1465] Step 5:

[1466] The server converts the selected coding challenge into JSON format and sends it to the user's device as an HTTP response.

[1467] Step 6:

[1468] The user receives and displays the coding challenge provided by the server through the terminal, and the user then works on the challenge.

[1469] Step 7:

[1470] Once the user has completed the challenge, they submit the solution to the server by sending an HTTP POST request to the / submit_solution endpoint, including the user ID and whether the solution is correct (e.g., is_correct: true).

[1471] Step 8:

[1472] The server receives the request and evaluates the correctness of the solution. The server checks the is_correct flag and generates an appropriate feedback message based on the evaluation result.

[1473] Step 9:

[1474] The server converts the generated feedback message into JSON format and sends it to the user's device as an HTTP response. For example, if the answer is correct, it returns the message "Great job, keep it up!"

[1475] Step 10:

[1476] Users can receive feedback from the server via their devices to check their progress and understanding, and can decide on their next steps based on the feedback.

[1477] This process effectively provides users with a personalized coding learning experience.

[1478] Example 1

[1479] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."

[1480] Conventional learning support systems struggled to provide personalized feedback tailored to each user's individual learning progress, resulting in reduced learning efficiency. Real-time feedback was also sometimes delayed, raising concerns that this could lower user motivation. Furthermore, systems lacked the ability to automatically evaluate users' answers and provide immediate, appropriate feedback, preventing them from consistently improving users' learning experiences.

[1481] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.

[1482] In this invention, the server includes means for acquiring user information from a database, means for selecting a learning task from a data repository based on the user's learning curve information, means for providing the user with an appropriate learning task, means for evaluating the accuracy of answers submitted by the user, means for generating real-time feedback based on the evaluation results, means for providing the generated real-time feedback to the user, means for the user to use a terminal to send authentication information to the server and the server performs authentication, means for the user to request a new learning task from the terminal, and means for the server to determine the accuracy of the answers using an automatic evaluation system. This allows personalized feedback to be provided in real time according to the user's learning progress, thereby improving learning efficiency and motivation.

[1483] "User information" refers to data including the user's identification information and learning progress.

[1484] A "database" is a system for managing a systematically structured collection of data.

[1485] "Learning curve information" refers to data that indicates a user's learning progress and performance.

[1486] "Study Assignments" are programming challenges or problems for users to answer.

[1487] A "data repository" is a data storage system that stores learning tasks.

[1488] A "means for assessing correctness" is a method or system for determining whether an answer submitted by a user is correct or incorrect.

[1489] "Real-time feedback" refers to immediate responses and advice provided immediately after a user's answer is evaluated.

[1490] A "terminal" is a device such as a computer or smartphone that a user uses to access the system.

[1491] "Authentication information" refers to information used to identify and authenticate a user, such as a user ID and password.

[1492] An "automated evaluation system" is a system that programmatically evaluates answers submitted by users and determines whether they are correct or incorrect.

[1493] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention provides a system that provides personalized coding challenges and real-time feedback to help users effectively master their programming skills.

[1494] System configuration

[1495] This system mainly consists of a server and user terminals. The server is a high-performance computer system equipped with software for communicating with multiple databases and repositories. This includes a MySQL database for data management and a data repository for storing coding challenges. User terminals are devices connected to the internet, such as PCs and smartphones.

[1496] Server Features

[1497] 1. Obtaining user information

[1498] The server receives the authentication information entered by the user from the terminal and retrieves user information from the database, including the user's ID, past learning history, and current learning curve information. Specifically, it fetches the user information from the database using an SQL query.

[1499] 2. Analysis of learning curve information

[1500] The server analyzes the acquired user learning curve information based on the data of coding challenges the user has completed, the success rate of the challenges, the time it took to complete the challenges, etc. This allows the server to evaluate the user's current skill level.

[1501] 3. Selecting a coding challenge

[1502] The server selects an appropriate coding challenge from the data repository based on the learning curve information. For example, a simple challenge such as "Print 'Hello, World!'" is selected for a novice user. To select an appropriate challenge from the repository, the server uses a sophisticated algorithm.

[1503] 4. Offering a Challenge

[1504] The server sends the selected coding challenge to the user's device using a REST API over the HTTP protocol. The user can then view the challenge description and input fields on the device screen and begin coding.

[1505] 5. Submitting and Evaluating Your Solution

[1506] The user completes a solution to the challenge, writes the code in the input field on their device, and clicks the submit button. The server evaluates the user-submitted solution using an automated evaluation system (e.g., Pytest). The evaluation determines whether the answer is correct or incorrect.

[1507] 6. Real-time feedback

[1508] The server generates a feedback message based on the evaluation results. If the answer is correct, it generates a message such as "Great job, keep it up!", and if the answer is incorrect, it generates a message such as "Need more practice, but you're doing good!". The generated feedback is sent to the user's device in real time.

[1509] Specific examples

[1510] For example, if a beginner-level user with user ID 12345 requests a new challenge, the server uses an SQL query to retrieve the user's information from the database, selects a challenge "Print 'Hello, World!'" from the repository based on the user's past learning history, and provides it to the user's device. The server evaluates the answer to the challenge provided by the user using Pytest and sends feedback in real time, such as "Great job, keep it up!"

[1511] Prompt Sentence Examples

[1512] "Request a new coding challenge": "Can you give me a new coding challenge based on my current learning progress?"

[1513] This allows users to receive appropriate coding challenges based on their progress and improve their learning efficiency by getting real-time feedback.

[1514] The flow of the identification process in the first embodiment will be described with reference to FIG.

[1515] The processing flow of the program of this system will be explained below by dividing it into specific processing steps.

[1516] Step 1: Login and User Authentication

[1517] The user accesses the login screen using the terminal and enters the ID and password.

[1518] Input: User ID and password

[1519] The server receives the entered authentication information and authenticates the user against a database.

[1520] Data processing: The server executes an SQL query to search the database for a record with the entered ID and password.

[1521] Output: If authentication is successful, the user is redirected to the dashboard, otherwise an error message is displayed.

[1522] Specific operation: The user clicks the login button in the browser, and a screen according to the authentication result is displayed.

[1523] Step 2: Get user information

[1524] The user clicks the "Request a new challenge" button on the dashboard.

[1525] Input: User ID

[1526] The server retrieves user information from a database based on the user ID.

[1527] Data processing: Execute an SQL query to retrieve the record corresponding to the user ID.

[1528] Output: User identification information, learning history, learning curve information

[1529] Specific operation: Learning history and past challenge results are sent from the database to the server.

[1530] Step 3: Analyze learning curve information

[1531] The server analyzes the acquired learning curve information of the user.

[1532] Input: User's learning history and learning curve information

[1533] Data processing: An algorithm is run to calculate the user's current skill level based on past answer times, accuracy rates, and number of answers.

[1534] Output: User's skill level

[1535] What it does: The server uses statistical methods and machine learning models to assess skill level.

[1536] Step 4: Select a coding challenge

[1537] The server selects an appropriate coding challenge from a data repository based on the user's skill level.

[1538] Input: User's skill level

[1539] Data processing: Filter the repository for challenges that match your skill level.

[1540] Output: The selected coding challenge

[1541] Specific behavior: Beginner-level users are given a simple challenge such as "Print 'Hello, World!'".

[1542] Step 5: Offer the challenge

[1543] The server sends the selected coding challenge to the user's terminal.

[1544] Input: Selected coding challenge

[1545] Output: The challenge displayed on the user's device

[1546] What happens: The server sends an HTTP request and the user can verify the challenge through their browser.

[1547] Step 6: Submit your solution

[1548] The user completes the solution to the challenge, fills out the web form and clicks the submit button.

[1549] Input: User's solution code

[1550] The server receives the solution and stores it in a database.

[1551] Data processing: storing the solution in a database in the appropriate format.

[1552] Output: Store the solution

[1553] Specific operation: The server receives the solution when the submit button is clicked.

[1554] Step 7: Evaluate the solution and generate feedback

[1555] The server tests the received solutions using an automated evaluation system (e.g., Pytest) and generates evaluation results.

[1556] Input: Your solution

[1557] Data processing: A rating system is used to determine correctness and generate feedback messages.

[1558] Output: Evaluation results and feedback messages

[1559] Specific operation: The server runs a test framework such as Pytest and creates feedback based on the results.

[1560] Step 8: Provide real-time feedback

[1561] The server transmits the generated feedback message to the user's terminal in real time.

[1562] Input: Feedback message

[1563] Output: Feedback displayed on the user's terminal

[1564] What happens: The server returns an HTTP response, and the user sees real-time feedback in their browser.

[1565] In this way, users can instantly see their progress and enjoy a personalized learning experience.

[1566] (Application example 1)

[1567] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."

[1568] Effectively acquiring programming skills related to fintech technology is important for users. However, traditional programming learning systems struggle to provide users with appropriate, practical tasks and real-time feedback. Furthermore, there are not enough systems that allow users to receive personalized tasks that adapt to their own learning curve. Furthermore, there is a lack of comprehensive learning mechanisms for specific technologies in financial systems, such as encryption, data security, and API design.

[1569] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.

[1570] In this invention, the server includes means for acquiring user information from a database, means for selecting programming assignments from a repository based on the user's learning curve information, and means for providing the user with appropriate programming assignments, thereby enabling the user to acquire programming skills related to financial systems and provide practical assignments such as encryption, data security, and API design.

[1571] "User information" is data for identifying a user and describing the user's learning situation and learning progress.

[1572] A "database" is a system for efficiently searching, organizing, managing, and storing data.

[1573] "Learning curve information" is data that indicates the progress of learning, including the user's skills, learning pace, past learning history, and the like.

[1574] A "programming challenge" is a specific programming problem or task that a user attempts to solve in order to hone their programming skills.

[1575] A "repository" is a storage system for centrally storing and managing a large number of program issues and related data.

[1576] A "means for assessing correctness" is a system or algorithm that automatically determines whether the answer to a submitted programming task is correct.

[1577] "Real-time feedback" refers to feedback messages that are generated instantaneously based on the evaluation results and provided to the user immediately.

[1578] "Financial system" means a computer-based system for the transaction and management of funds, including banking services, trading platforms, online payment systems, etc.

[1579] "Encryption" is the process of transforming data with a specific algorithm to protect it from unauthorized access or alteration.

[1580] "Data security" refers to the techniques and measures used to ensure the integrity, confidentiality, and availability of data.

[1581] "API design" is the process and methodology for building application programming interfaces (APIs), designs that allow interaction between different pieces of software.

[1582] A specific embodiment of the present invention will now be described. This system mainly includes a server, a terminal, and a user. The server acquires user information from a database, selects appropriate program assignments from a repository based on the user's learning curve information, and provides them to the user. The user receives the program assignments through the terminal and sends the answers to the server. The server evaluates the accuracy of the answers and returns feedback in real time.

[1583] Specifically, the server has the following capabilities:

[1584] 1. Obtaining user information

[1585] The server retrieves user information from a database, which includes user identification information and learning curve information. The database is typically a relational database such as PostgreSQL.

[1586] 2. Selection of program topics

[1587] The server selects appropriate program tasks from the repository based on the user's learning curve information. The repository is a storage system that stores a large number of program tasks. The selected program tasks are chosen based on the user's skill level and past learning history.

[1588] 3. Providing assignments

[1589] The server provides the selected program assignments to the user's device, who then works on the assignments via a device such as a smartphone or PC, allowing the user to progress through the learning process at their own pace.

[1590] 4. Evaluate the solution

[1591] Users solve the problems and submit their answers to the server, which uses an automated evaluation system to determine whether the answers are correct. The evaluation system then analyzes the submitted code and verifies whether the answers are correct.

[1592] 5. Real-time feedback

[1593] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, the message might be "Great! Keep up the good work!", and if the answer is incorrect, the message might be "You'll need to try again, but it was a good attempt."

[1594] Hardware and software used

[1595] Django: Used as a backend framework to manage user information and provide assignments.

[1596] React Native: Develop smartphone apps on the front end and build user interfaces.

[1597] PostgreSQL: Used as a relational database to manage user information and assignment data.

[1598] Specific examples

[1599] When a user requests a new challenge, the server retrieves learning curve information based on the user ID. For example, if the user ID is 1 and the learning curve is beginner level, the "Basic Cryptography Challenge" is selected. When the user solves the challenge and submits the solution to the server, the server evaluates the solution and generates a rating of "True." Based on the rating, feedback such as "Great! Keep up the great work!" is sent to the user in real time.

[1600] Prompt Sentence Examples

[1601] "Write a code snippet that explains how to introduce cryptography to a beginner."

[1602] The flow of the specific processing in the application example 1 will be described with reference to FIG.

[1603] Step 1:

[1604] The server receives input from a user requesting a new program assignment. This input includes the user ID and the request content. The server retrieves user information from the database and collects the user's identification information and learning curve information. For example, if the user ID is 1, the user's learning level and past assignment performance are retrieved from the database.

[1605] Step 2:

[1606] The server analyzes the user's learning curve based on the acquired user information. Based on this information, it selects appropriate program assignments from the repository. For example, if the user's learning level is beginner, "exercises related to basic encryption techniques" will be selected. This selection process is filtered based on the user's past performance and preferences.

[1607] Step 3:

[1608] The server provides the selected program assignment to the user's device. Detailed information about the assignment (explanation, constraints, example inputs, example outputs, etc.) is sent to the user's device. The device displays this information and prepares an environment in which the user can work on the assignment. The user works on the assignment on a smartphone or computer and creates a solution.

[1609] Step 4:

[1610] Users submit their answers to the server via their device. The device then sends the code or solution entered by the user to the server. The server receives the submitted answer and inputs it into an automated evaluation system. The evaluation system analyzes the code and determines its correctness.

[1611] Step 5:

[1612] The server receives the results from the evaluation system and determines whether the answer is correct. Based on this evaluation result, the server generates an appropriate feedback message. For example, if the answer is correct, the server generates feedback such as "Great! Keep up the good work!". Conversely, if the answer is incorrect, the server generates feedback such as "You'll need to try again, but it was a good try."

[1613] Step 6:

[1614] The server generates feedback messages and sends them to the user's device. The user's device displays the feedback, allowing the user to check their progress and assessment in real time. Based on the feedback, the user can retry the assignment or request a new assignment. By repeating this loop, the user can efficiently improve their programming skills.

[1615] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.

[1616] The present invention provides a system for implementing the present invention, which provides personalized coding challenges and real-time feedback to help users effectively master their programming skills. Furthermore, by incorporating an emotion engine that recognizes the user's emotions, the learning experience is further personalized.

[1617] System Overview

[1618] This system mainly consists of a server, a user's device, and an emotion engine. The server retrieves user information from a database and selects an appropriate coding challenge from a repository based on learning curve information to provide to the user. The user obtains the coding challenge through their device and sends the answer to the server. The server evaluates the correctness of the answer and provides feedback in real time. Furthermore, the emotion engine recognizes the user's emotions and adjusts the challenge content and feedback messages based on that information.

[1619] Server Functions and Processing

[1620] The main functions of the server are:

[1621] 1. Obtaining user information

[1622] The server retrieves user information from a database, including user identification and learning curve information, forming the basis for providing each user with an optimal challenge.

[1623] 2. Selecting a coding challenge

[1624] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example providing a basic challenge to a user with a beginner learning curve and a more complex challenge to an intermediate user.

[1625] 3. Offering a Challenge

[1626] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[1627] 4. Evaluate the solution

[1628] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[1629] 5. Real-time feedback

[1630] The server generates appropriate feedback messages based on the evaluation results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[1631] Emotion Engine Functions

[1632] The main functions of the Emotion Engine are:

[1633] 1. Emotional awareness

[1634] The emotion engine collects camera footage and audio data from the user's device and performs facial and audio analysis to recognize the user's emotions, such as determining whether the user is smiling or confused.

[1635] 2. Adjusting feedback

[1636] The server receives the recognized emotion information and adjusts the feedback message accordingly, for example, sending an encouraging message to a confused user, whereas a message encouraging further challenges to a smiling user.

[1637] 3. Challenge Adjustments

[1638] The emotion engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[1639] Specific examples

[1640] The following is an example of the processing that is actually performed by this system.

[1641] Requesting and Offering Challenges

[1642] A user requests a new challenge. The server retrieves learning curve information based on the user ID, selects an appropriate challenge from the repository, and provides it. At the same time, the emotion engine recognizes the user's emotion and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected, and if the recognized emotion is "smile," positive feedback is given.

[1643] Submitting and Evaluating Your Solution

[1644] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotional information, feedback such as "Great job, keep it up!" is sent to the user in real time.

[1645] This series of processes allows users to enjoy an optimal learning environment and a personalized learning experience, and is expected to improve users' learning efficiency and motivation.

[1646] The processing flow will be explained below.

[1647] Step 1:

[1648] When a user wants to get a new coding challenge, they can run / get_challenge / from their device.<user_id> Send an HTTP GET request to the endpoint.

[1649] Step 2:

[1650] The server receives the request and extracts the user ID, for example if the user ID is 1, it uses that information.

[1651] Step 3:

[1652] The server retrieves user information corresponding to the user ID from the database, including data about the user's learning curve (e.g., beginner, intermediate, advanced).

[1653] Step 4:

[1654] The server randomly selects an appropriate coding challenge from its internal repository based on the learning curve information, for example, if the learning curve is beginner, it will select a challenge such as "Print 'Hello, World!'".

[1655] Step 5:

[1656] The emotion engine analyzes data collected from the device's camera and microphone to recognize the user's emotions, such as whether the user is smiling or confused.

[1657] Step 6:

[1658] The emotion engine sends the emotion information it recognizes to the server. For example, if the user is smiling, that information is transmitted to the server.

[1659] Step 7:

[1660] The server generates a challenge with appropriate feedback based on the selected coding challenge and emotional information. For example, if the user is smiling, the server selects a challenge with positive feedback, and if the user is confused, the server selects a challenge with encouraging feedback.

[1661] Step 8:

[1662] The server converts the selected coding challenge into JSON format and sends it to the user's device as an HTTP response.

[1663] Step 9:

[1664] The user receives and displays the coding challenge provided by the server through the terminal, and the user then works on the challenge.

[1665] Step 10:

[1666] Once the user has completed the challenge, they submit the solution to the server by sending an HTTP POST request to the / submit_solution endpoint, including the user ID and whether the solution is correct (e.g., is_correct: true).

[1667] Step 11:

[1668] The server receives the request and evaluates the correctness of the solution. The server checks the is_correct flag and generates an appropriate feedback message based on the evaluation result.

[1669] Step 12:

[1670] The server converts the generated feedback message into JSON format and sends it to the user's device as an HTTP response. For example, if the answer is correct, it returns the message "Great job, keep it up!"

[1671] Step 13:

[1672] Users can receive feedback from the server via their devices to check their progress and understanding, and can decide on their next steps based on the feedback.

[1673] This series of processes effectively provides users with a personalized coding learning experience. The introduction of an emotion engine provides optimal support according to the user's learning situation, further improving learning efficiency and motivation.

[1674] Example 2

[1675] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."

[1676] Conventional programming learning systems lack the ability to respond specifically to a user's learning progress or individual emotional state, making it difficult to provide a personalized learning experience. In particular, they lack a mechanism to recognize when a user is confused or stressed in real time and provide appropriate feedback or task adjustments. As a result, it is difficult for users to maintain their motivation to learn, making it difficult for them to efficiently acquire programming skills.

[1677] The identification process by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means. In this invention, the server includes means for acquiring user information from a storage device, means for selecting a coding task from the storage device based on the user's learning curve information, means for providing the user with an appropriate coding task, means for evaluating the correctness of an answer submitted by the user, means for generating real-time feedback based on the evaluation result and the emotion recognition result, means for providing the generated real-time feedback to the user, and means for recognizing the user's emotional state and adjusting the tasks and feedback based on that information. This provides a personalized learning experience according to the user's learning progress and emotional state, enabling the user to efficiently acquire programming skills while maintaining their motivation.

[1678] "User information" is data including user identification information and learning curve information.

[1679] "Storage" refers to a database or other storage system where user information and coding assignments are stored.

[1680] "Learning curve information" is data that indicates the user's learning progress and proficiency, and is information that is used to select coding tasks that are appropriate for the user.

[1681] "Coding Challenges" refer to programming tasks or challenges that users must complete to improve their programming skills.

[1682] "Storage" refers to a repository or database that stores coding assignments and other related data.

[1683] "Solution" refers to the program or code that a user submits as a result of working on a coding assignment.

[1684] "Means of evaluation" refers to a system or algorithm that automatically determines whether the answers submitted by users are correct or incorrect.

[1685] "Emotion recognition result" is data resulting from the recognition of the user's emotional state, and is information used for feedback and task adjustment.

[1686] "Real-time feedback" refers to response messages that are generated on the spot based on the user's answer evaluation results and emotion recognition results.

[1687] "Means of delivery" refers to the system or method for delivering and displaying coding assignments and feedback to users.

[1688] "Emotional state" is data that indicates the psychological state of the user, and is determined based on changes in facial expressions and voice.

[1689] The present invention is a system that provides personalized coding challenges and real-time feedback to help users effectively master their programming skills. Furthermore, it incorporates an emotion engine that recognizes the user's emotions to further personalize the learning experience.

[1690] System Overview

[1691] This system mainly comprises a server, a user's terminal, and an emotion engine. The server retrieves user information from a storage device, selects an appropriate coding challenge from the storage device based on learning curve information, and provides it to the user. The user retrieves the coding challenge through their terminal and sends the answer to the server. The server evaluates the correctness of the answer and provides feedback in real time. Furthermore, the emotion engine recognizes the user's emotions and adjusts the content of the challenge and feedback messages based on that information.

[1692] Server Functions and Processing

[1693] 1. Obtaining user information

[1694] The server retrieves user information from the storage device, including the user's identification information and learning curve information, forming the basis for providing each user with an optimal challenge.

[1695] 2. Selecting a coding challenge

[1696] The server selects an appropriate coding challenge from an internal storage based on the learning curve information, for example, providing a basic challenge to a user with a beginner learning curve and a more complex challenge to a user with an intermediate learning curve.

[1697] 3. Offering a Challenge

[1698] The server provides the selected coding challenge to the user's device, allowing the user to work through the challenge at their own pace.

[1699] 4. Evaluate the solution

[1700] Users answer challenges and submit their solutions to the server, which uses an automated scoring system to determine whether the answer is correct or incorrect.

[1701] 5. Real-time feedback

[1702] The server generates appropriate feedback messages based on the evaluation and emotion recognition results and sends them to the user's device in real time. For example, if the answer is correct, a message such as "Great job, keep it up!" is returned, and if the answer is incorrect, a message such as "Need more practice, but you're doing good!" is returned.

[1703] Emotion Engine Functions

[1704] 1. Emotional awareness

[1705] The emotion engine collects camera footage and audio data from the user's device and analyzes them to recognize the user's emotions, for example, determining whether the user is smiling or confused.

[1706] 2. Adjusting feedback

[1707] The server receives the recognized emotion information and adjusts the feedback message based on that information, for example, sending an encouraging message to a confused user and a message encouraging further challenges to a smiling user.

[1708] 3. Challenge Adjustments

[1709] The emotion engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[1710] Specific examples

[1711] The following is an example of the processing that is actually performed by this system.

[1712] Requesting and Offering Challenges

[1713] A user requests a new challenge. The server retrieves learning curve information based on the user ID and selects and provides an appropriate challenge from the storage device. At the same time, the emotion engine recognizes the user's emotion and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected, and if the recognized emotion is "smile," positive feedback is given.

[1714] Submitting and Evaluating Your Solution

[1715] The user completes the challenge and submits the solution to the server, which evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotional information, feedback such as "Great job, keep it up!" is sent to the user in real time.

[1716] Prompt Sentence Examples

[1717] "User ID 1 has requested a new coding challenge. The device has sent to the emotion engine the fact that the user is smiling based on the camera footage. The server should use that information to provide an appropriate coding challenge and feedback."

[1718] This series of processes allows users to enjoy an optimal learning environment and a personalized learning experience, and is expected to improve users' learning efficiency and motivation.

[1719] The flow of the identification process in the second embodiment will be described with reference to FIG.

[1720] The flow of this system's program processing

[1721] Step 1: Request a challenge

[1722] explanation:

[1723] The user requests a new coding challenge from the device, which includes the user ID.

[1724] input:

[1725] The user clicks the "Start a new challenge" button on the device and enters their user ID.

[1726] output:

[1727] A request including the user ID is sent from the terminal to the server.

[1728] Specific behavior:

[1729] The user clicks the "Start a new challenge" button on the device interface.

[1730] The terminal transmits request data including the user ID to the server.

[1731] Step 2: Get user information

[1732] explanation:

[1733] The server acquires user information and learning curve information from a storage device (database) based on the user ID.

[1734] input:

[1735] Request data containing the user ID.

[1736] output:

[1737] User information and learning curve information obtained by the server.

[1738] Specific behavior:

[1739] The server sends a query to the storage device to obtain the user information and learning curve information corresponding to the user ID.

[1740] The retrieved information is stored in internal memory or a temporary data store.

[1741] Step 3: Select a coding challenge

[1742] explanation:

[1743] The server selects an appropriate coding challenge based on the acquired learning curve information.

[1744] input:

[1745] User learning curve information.

[1746] output:

[1747] A well-chosen and relevant coding challenge.

[1748] Specific behavior:

[1749] The server searches for suitable challenges from an internal coding challenge repository based on learning curve information (e.g. beginner, intermediate, advanced).

[1750] For beginner level users, choose a simple challenge: "Print 'Hello, World!'"

[1751] Step 4: Offer the challenge

[1752] explanation:

[1753] The server sends the selected coding challenge to the user's terminal.

[1754] input:

[1755] Selected coding challenges.

[1756] output:

[1757] The coding challenge sent to the device.

[1758] Specific behavior:

[1759] The server generates the selected challenge as JSON format data.

[1760] This data is sent over the network to the terminal, which receives it and displays it to the user.

[1761] Step 5: Recognize emotions

[1762] explanation:

[1763] The emotion engine collects camera footage and audio data from the user's device and analyzes the user's emotions.

[1764] input:

[1765] User camera video and audio data.

[1766] output:

[1767] Recognized emotional information.

[1768] Specific behavior:

[1769] The device's camera and microphone are activated to capture image and audio data in real time.

[1770] The emotion engine uses machine learning models to analyze this data and classify emotions such as smiling, confused, or stressed.

[1771] The recognized emotion information is sent to the server.

[1772] Step 6: Submit your solution

[1773] explanation:

[1774] The user completes the challenge and submits the answer solution to the server.

[1775] input:

[1776] The solution code created by the user.

[1777] output:

[1778] Submitted solution code.

[1779] Specific behavior:

[1780] The user solves the assignment on the device and clicks the "Submit" button.

[1781] The terminal sends the generated solution code to the server.

[1782] Step 7: Evaluate the solution

[1783] explanation:

[1784] The server rates the user's solution using an automated rating system.

[1785] input:

[1786] Submitted solution code.

[1787] output:

[1788] Evaluation result (correct or incorrect).

[1789] Specific behavior:

[1790] The server inputs the solution code into an automated evaluation system (e.g., JUnit tests) and runs it.

[1791] The evaluation results are obtained and stored in a database.

[1792] Step 8: Generate real-time feedback

[1793] explanation:

[1794] The server generates real-time feedback messages based on the evaluation results and emotion recognition results.

[1795] input:

[1796] Evaluation results and perceived emotional information.

[1797] output:

[1798] Generated real-time feedback messages.

[1799] Specific behavior:

[1800] The server generates a feedback message such as "Great job, keep it up!" based on the evaluation result (e.g., True) and the emotion recognition result (e.g., smiling face).

[1801] Step 9: Provide feedback

[1802] explanation:

[1803] The server sends the generated feedback message to the user's terminal.

[1804] input:

[1805] The generated feedback message.

[1806] output:

[1807] Feedback message sent to the user's device.

[1808] Specific behavior:

[1809] The server sends real-time feedback messages to the terminal, which then displays them to the user.

[1810] In this way, the system provides users with an optimized learning experience and supports efficient acquisition of programming skills.

[1811] (Application example 2)

[1812] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."

[1813] Conventional programming education systems have had problems in that they are difficult to provide users with a personalized experience and are unable to provide feedback that reflects the user's emotions. In particular, in education and training in a real work environment, it is necessary to recognize the user's emotions and provide appropriate feedback and challenges.

[1814] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 2 is realized by the following means.

[1815] In this invention, the server includes means for acquiring user information from a database, means for selecting a coding challenge from a repository based on user learning curve information, means for providing an appropriate coding challenge to the user, means for evaluating the correctness of a solution submitted by the user, means for generating real-time feedback based on the evaluation result, means for providing the generated real-time feedback to the user, means for providing education including an actual work simulation to the worker based on the robot device, and means for recognizing the user's emotions using a camera and a microphone and adjusting the feedback message and challenge content based on the information, thereby making it possible to provide a personalized coding challenge to the user and adjust the feedback and challenge content according to the emotion.

[1816] "User Information" refers to a user's identification information, learning history, and data for providing personalized coding challenges.

[1817] "Database" refers to the data storage system for storing and managing user information, learning curve information, and coding challenges.

[1818] "Learning curve information" refers to data used to evaluate a user's learning progress and skill level and provide appropriate learning content.

[1819] A "coding challenge" refers to a problem or task that helps you master programming skills.

[1820] "Repository" refers to a database or storage system for storing and managing coding challenges and learning resources.

[1821] An "appropriate coding challenge" refers to a coding task with optimal difficulty and content based on the user's learning curve information and skill level.

[1822] "Solution" means the answer or solution to a coding challenge submitted by a user.

[1823] "Means for assessing correctness" refers to algorithms or systems that automatically determine whether a submitted solution is correct.

[1824] "Real-time feedback" refers to the immediate evaluation and advice provided to users on their submitted solutions.

[1825] "Robotic Device" refers to automated machines used to provide realistic task simulation and physical training.

[1826] "Worker" refers to an individual user who receives training through a robotics teaching assistant in a real work environment.

[1827] "Work simulation" refers to the process of virtually or physically recreating actual work environments and operations.

[1828] "Camera" refers to a video device that captures the user's facial expressions and movements and recognizes their emotions.

[1829] "Microphone" refers to a voice input device for collecting the user's voice and recognizing emotions.

[1830] A "feedback message" is a message provided based on the user's behavior and emotions, and is intended to encourage or guide the user.

[1831] "Challenge content" refers to the specific problems or tasks of the coding challenge provided to the user.

[1832] A system for implementing the present invention mainly includes a server, a user terminal, a robot device, and an emotion recognition engine. The server obtains user information from a database and selects an appropriate coding challenge from a repository based on learning curve information to provide to the user. The user obtains the coding challenge through their terminal and sends the answer to the server. The server evaluates the accuracy of the answer and provides feedback in real time. Furthermore, the emotion recognition engine recognizes the user's emotions and adjusts the feedback message and challenge content based on that information.

[1833] System overview and technologies used

[1834] Server Functions and Processing

[1835] 1. Obtaining user information

[1836] The server retrieves user identification and learning curve information from a database (SQL or NoSQL database), which creates the basis for providing each user with an optimal coding challenge.

[1837] 2. Selecting a coding challenge

[1838] Based on the user's learning curve, the server selects an appropriate coding challenge from an internal repository, which is managed using a code management system such as GitHub.

[1839] 3. Offering a Challenge

[1840] The selected coding challenge is delivered to the user's device in JSON format or via a REST API, allowing the user to complete the challenge at their own pace.

[1841] 4. Evaluate the solution

[1842] When a user submits a solution to the server, the server automatically evaluates the solution using a pre-configured evaluation script, which is performed using automated evaluation tools such as Python and JUnit.

[1843] 5. Real-time feedback

[1844] The server generates real-time feedback based on the evaluation results and sends it to the user's device. For example, it generates feedback messages using a generative AI model such as ChatGPT.

[1845] Emotion Recognition Engine Functions

[1846] 1. Emotional awareness

[1847] The emotion recognition engine uses the camera and microphone of the user's device to recognize emotions. It uses OpenCV for image processing and Google Cloud Speech-to-Text API for voice recognition, and performs facial expression and voice analysis.

[1848] 2. Adjusting feedback

[1849] The server receives the recognized emotion information and tailors the feedback message based on it, using a generative AI model to, for example, send an encouraging message to a confused user.

[1850] 3. Challenge Adjustments

[1851] The emotion recognition engine adjusts the challenge based on the user's emotions, for example, providing a less difficult challenge if the user is feeling stressed.

[1852] Specific examples

[1853] Requesting and Offering Challenges

[1854] A user requests a new challenge using their device. The server retrieves learning curve information based on the user ID, selects an appropriate challenge from the repository, and provides it. At the same time, the emotion recognition engine recognizes the user's emotion through the camera and microphone and sends that information to the server. For example, if the user ID is 1 and the learning curve is at the beginner level, the challenge "Print 'Hello, World!'" is selected. If the recognized emotion is "smile," the generative AI model prepares a feedback message saying "Great job, keep it up!"

[1855] Submitting and Evaluating Your Solution

[1856] The user completes the challenge and submits the solution to the server. The server evaluates the solution and generates a rating, such as "True." Based on the rating and the recognized emotion information, a generative AI model is used to send feedback to the user in real time, such as "Great job, keep it up!"

[1857] Prompt Sentence Examples

[1858] Below are some example prompts to input to the generative AI model:

[1859] 1. "Generate scenarios that recognize emotions using the user's facial expressions and voice and provide appropriate training feedback."

[1860] 2. "Imagine a situation where a user is being trained to assemble parts using a robot. List the emotions that may arise and the corresponding feedback."

[1861] The flow of the specific processing in the application example 2 will be described with reference to FIG.

[1862] Step 1:

[1863] The user requests a new challenge using a terminal. As input, the user ID and the challenge request are provided. The server retrieves the learning curve information associated with the user ID from the database. As output, the learning curve information is obtained. Based on this data, the next steps of processing proceed.

[1864] Step 2:

[1865] The server selects an appropriate coding challenge based on the learning curve information. As input, it receives the learning curve information and the contents of the coding challenge repository. The server uses an algorithm to select the most suitable coding challenge from the repository. As output, it obtains the selected coding challenge. This challenge is sent to the user's device in JSON format.

[1866] Step 3:

[1867] The server provides the selected appropriate coding challenge to the user's terminal. As input, the selected coding challenge is provided. As output, the challenge content is displayed on the user's terminal. The user can then challenge it.

[1868] Step 4:

[1869] The user completes the challenge and submits the solution to the server via their terminal. The user's solution is provided as input. The server evaluates the solution using a pre-configured evaluation script. The output is the evaluation result of the solution.

[1870] Step 5:

[1871] The server generates real-time feedback based on the evaluation results and the recognized emotion information. As input, the evaluation results and the user's emotion data are provided. The emotion data is sent from the emotion recognition engine. Using this data, the generative AI model generates a feedback message. As output, the generated feedback message is obtained.

[1872] Step 6:

[1873] The server provides the generated feedback message to the user. As input, the feedback message is provided. As output, the feedback message is displayed on the user's terminal. This allows the user to receive an evaluation of their answer and a guide to proceed to the next step.

[1874] Step 7:

[1875] The emotion recognition engine collects data from the camera and microphone on the user's device and recognizes the user's emotions. Camera video and audio data are provided as input. The recognized user emotion data is sent to the server as output. The data is analyzed using OpenCV and the Google Cloud Speech-to-Text API.

[1876] Step 8:

[1877] The server receives the recognized emotion information and adjusts the feedback message it provides based on it. Emotion data is provided as input. Adjusted feedback messages are generated as output. This provides appropriate support according to the user's emotion.

[1878] Step 9:

[1879] If the user feels stressed or confused, the emotion recognition engine and the server adjust the next challenge content. As input, the user's emotion data and the next challenge candidate are provided. The server reselects a challenge with adjusted difficulty and provides it to the user. As output, the adjusted challenge content is displayed on the user's device.

[1880] Prompt Sentence Examples

[1881] Below are some example prompts to input to the generative AI model:

[1882] 1. "Generate scenarios that recognize emotions using the user's facial expressions and voice and provide appropriate training feedback."

[1883] 2. "Imagine a situation where a user is being trained to assemble parts using a robot. List the emotions that may arise and the corresponding feedback."

[1884] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the control target 443 to output the result of the specific processing. The microphone 238 acquires voice indicating a user input regarding the result of the specific processing. The control unit 46A transmits voice data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the voice data.

[1885] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[1886] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the robot 414.

[1887] The emotion identification model 59 as an emotion engine may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to an emotion map (see FIG. 9), which is a specific mapping. Similarly, the emotion identification model 59 may determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.

[1888] FIG. 9 is a diagram illustrating an emotion map 400 on which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. Emotions closer to the center of the concentric circles are more primitive. Emotions representing states and actions arising from a state of mind are arranged on the outer edges of the concentric circles. The concept of emotion includes both affect and mental states. Emotions generally generated from reactions occurring in the brain are arranged on the left side of the concentric circles. Emotions generally induced by situational judgment are arranged on the right side of the concentric circles. Emotions generally generated from reactions occurring in the brain and induced by situational judgment are arranged on the upper and lower sides of the concentric circles. Furthermore, the emotion of "pleasure" is arranged on the upper side of the concentric circles, and the emotion of "discomfort" is arranged on the lower side. In this way, in the emotion map 400, multiple emotions are mapped based on the structure by which emotions are generated, and emotions that tend to occur simultaneously are mapped close to each other.

[1889] These emotions are distributed in the 3 o'clock direction on emotion map 400, and typically fluctuate between relief and anxiety. In the right half of emotion map 400, situational awareness dominates over internal sensations, resulting in a sense of calm.

[1890] The inside of emotion map 400 represents what is going on in the mind, and the outside of emotion map 400 represents behavior, so the further you go outside emotion map 400, the more visible the emotions become (the more they are expressed in behavior).

[1891] Human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, a state of discomfort is indicated, and when they approach the ideal, a state of pleasure is indicated. Emotions can also be created for robots, automobiles, and motorcycles, based on various balances, such as posture and remaining battery life. When these balances deviate from the ideal, a state of discomfort is indicated, and when they approach the ideal, a state of pleasure is indicated. An emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on Voice Emotion Recognition and Emotional Brain Physiological Signal Analysis Systems, Tokushima University, Doctoral Dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map lists emotions belonging to the "reaction" domain, where sensation is dominant. The right half of the emotion map lists emotions belonging to the "situation" domain, where situational awareness is dominant.

[1892] The emotion map defines two emotions that promote learning. One is a negative emotion on the situation side, around the middle of "repentance" or "reflection." In other words, this occurs when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is a positive emotion on the response side, around "desire." In other words, this occurs when the robot experiences positive feelings such as "I want more" or "I want to know more."

[1893] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values ​​indicating each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple pieces of training data that are combinations of user input and emotion values ​​indicating each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions that are located close to each other have similar values, as in the emotion map 900 shown in FIG. 10. FIG. 10 shows an example in which multiple emotions, "relieved," "calm," and "reassuring," have similar emotion values.

[1894] The system according to the present disclosure has been described above mainly with respect to the functions of the data processing device 12, but the system according to the present disclosure is not necessarily implemented on a server. The system according to the present disclosure may be implemented as a general information processing system. The present disclosure may be implemented, for example, as a software program running on a personal computer or an application running on a smartphone, etc. The method according to the present disclosure may be provided to users in the form of SaaS (Software as a Service).

[1895] In the above embodiment, an example was given in which the specific processing is performed by one computer 22, but the technology of the present disclosure is not limited to this, and the specific processing may be distributed and performed by a plurality of computers including the computer 22. For example, the data generation model 58 may be provided in an external device of the data processing device 12, and data may be generated in the external device in accordance with input data.

[1896] In the above embodiment, an example in which the specific processing program 56 is stored in the storage 32 has been described, but the technology of the present disclosure is not limited to this. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-transitory storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-transitory storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes the specific processing in accordance with the specific processing program 56.

[1897] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.

[1898] It is not necessary to store all of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store all of the specific processing program 56 in the storage 32; only a portion of the specific processing program 56 may be stored.

[1899] The hardware resource for executing a specific process can be any of the following processors: An example of a processor is a CPU, which is a general-purpose processor that functions as a hardware resource for executing a specific process by executing software, i.e., a program. Another example of a processor is a dedicated electrical circuit, such as an FPGA (Field-Programmable Gate Array), a PLD (Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit), which is a processor with a circuit configuration designed specifically for executing a specific process. Each processor has built-in or connected memory, and each processor uses the memory to execute the specific process.

[1900] The hardware resource that executes the specific processing may be configured with one of these various processors, or may be configured with a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Also, the hardware resource that executes the specific processing may be a single processor.

[1901] As an example of a system configured with a single processor, first, one processor is configured by combining one or more CPUs and software, and this processor functions as a hardware resource that executes a specific process. Second, there is a system that uses a processor that realizes the functions of an entire system including multiple hardware resources that execute a specific process on a single IC chip, as typified by SoC (System-on-a-chip). In this way, a specific process is realized using one or more of the above-mentioned various processors as hardware resources.

[1902] Furthermore, the hardware structure of these various processors can be, more specifically, an electric circuit that combines circuit elements such as semiconductor devices. The specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps may be deleted, new steps may be added, or the processing order may be rearranged, without departing from the spirit of the invention.

[1903] The above-described description and illustrations are a detailed explanation of the parts related to the technology of the present disclosure and are merely an example of the technology of the present disclosure. For example, the above description of the configuration, functions, actions, and effects is an explanation of an example of the configuration, functions, actions, and effects of the parts related to the technology of the present disclosure. Therefore, it goes without saying that unnecessary parts may be deleted, new elements may be added, or replacements may be made to the above-described description and illustrations within the scope of the gist of the technology of the present disclosure. Furthermore, to avoid confusion and facilitate understanding of the parts related to the technology of the present disclosure, the above-described description and illustrations omit explanations of common technical knowledge that do not require particular explanation to enable the implementation of the technology of the present disclosure.

[1904] All publications, patent applications, and technical standards mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent application, or technical standard was specifically and individually indicated to be incorporated by reference.

[1905] The following is further disclosed regarding the above embodiment.

[1906] (Claim 1)

[1907] a means for retrieving user information from a database;

[1908] means for selecting a coding challenge from the repository based on the user's learning curve information;

[1909] a means for providing appropriate coding challenges to users;

[1910] a means for assessing the correctness of user-submitted solutions;

[1911] a means for generating real-time feedback based on the evaluation results;

[1912] means for providing the generated real-time feedback to a user;

[1913] A system including:

[1914] (Claim 2)

[1915] 10. The system of claim 1, wherein the system provides personalized coding challenges that adapt to a user's learning curve.

[1916] (Claim 3)

[1917] 10. The system of claim 1, wherein the system provides feedback to the user in real time, the feedback being generated based on the evaluation results.

[1918] "Example 1"

[1919] (Claim 1)

[1920] a means for retrieving user information from a database;

[1921] means for selecting learning tasks from a data repository based on the user's learning curve information;

[1922] a means for providing appropriate learning tasks to the user;

[1923] means for assessing the accuracy of answers submitted by users;

[1924] a means for generating real-time feedback based on the evaluation results;

[1925] means for providing the generated real-time feedback to a user;

[1926] a means for a user to use a terminal to send authentication information to a server, and for the server to perform authentication;

[1927] a means for a user to request new learning tasks from a device;

[1928] A means for the server to judge the correctness of the answer using an automatic evaluation system;

[1929] A system including:

[1930] (Claim 2)

[1931] 10. The system of claim 1, wherein the system provides personalized learning challenges that adapt to a user's learning curve.

[1932] (Claim 3)

[1933] 10. The system of claim 1, wherein the system provides feedback to the user in real time, the feedback being generated based on the evaluation results.

[1934] "Application Example 1"

[1935] New Claims

[1936] (Claim 1)

[1937] a means for retrieving user information from a database;

[1938] means for selecting a programming assignment from the repository based on the user's learning curve information;

[1939] a means for providing appropriate program challenges to the user;

[1940] means for assessing the accuracy of answers submitted by users;

[1941] a means for generating real-time feedback based on the evaluation results;

[1942] means for providing the generated real-time feedback to a user;

[1943] A means to acquire programming skills related to financial systems;

[1944] A means to provide practical challenges such as cryptography, data security, and API design;

[1945] A system including:

[1946] (Claim 2)

[1947] 10. The system of claim 1, wherein the system provides personalized program challenges that adapt to a user's learning curve.

[1948] (Claim 3)

[1949] 10. The system of claim 1, wherein the system provides feedback to the user in real time, the feedback being generated based on the evaluation results.

[1950] "Example 2: Combining Emotion Engines"

[1951] (Claim 1)

[1952] means for acquiring user information from a storage device;

[1953] means for selecting a coding task from a storage device based on the user's learning curve information;

[1954] a means for providing appropriate coding challenges to users;

[1955] means for assessing the accuracy of answers submitted by users;

[1956] means for generating real-time feedback based on the evaluation results and the emotion recognition results;

[1957] means for providing the generated real-time feedback to a user;

[1958] a means of recognizing the user's emotional state and tailoring challenges and feedback based on that information;

[1959] A system including:

[1960] (Claim 2)

[1961] 10. The system of claim 1, wherein the system provides a personalized learning experience based on a user's emotional state.

[1962] (Claim 3)

[1963] 10. The system of claim 1, wherein the system provides the user with feedback generated based on the evaluation results and the user's emotional information in real time.

[1964] "Application example 2 when combining emotion engines"

[1965] (Claim 1)

[1966] a means for retrieving user information from a database;

[1967] means for selecting a coding challenge from the repository based on the user's learning curve information;

[1968] a means for providing appropriate coding challenges to users;

[1969] a means for assessing the correctness of user-submitted solutions;

[1970] a means for generating real-time feedback based on the evaluation results;

[1971] means for providing the generated real-time feedback to a user;

[1972] a means for providing education to a worker based on the robotic device, the education including actual work simulation;

[1973] means for recognizing a user's emotions using a camera and a microphone and adjusting feedback messages and challenge content based on the information;

[1974] A system including:

[1975] (Claim 2)

[1976] 10. The system of claim 1, wherein the system provides personalized coding challenges that adapt to a user's learning curve.

[1977] (Claim 3)

[1978] 10. The system of claim 1, wherein the system provides feedback to the user in real time, the feedback being generated based on the evaluation results. [Explanation of symbols]

[1979] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Device 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robot< / url:> < / url:> < / url:> < / url:>

Claims

1. a means for retrieving user information from a database; means for selecting a coding challenge from the repository based on the user's learning curve information; a means for providing appropriate coding challenges to users; a means for assessing the correctness of user-submitted solutions; a means for generating real-time feedback based on the evaluation results; means for providing the generated real-time feedback to a user; A system including:

2. The system of claim 1 , wherein the system provides personalized coding challenges that adapt to a user's learning curve.

3. The system of claim 1 , wherein the system provides the user with feedback generated based on the evaluation results in real time.

Citation Information

Patent Citations

  • Persona chatbot control method and system

    JP2022180282A