System
The automated programming school system addresses inefficiencies in traditional learning platforms by generating personalized programming problems and feedback, improving learning outcomes for beginners.
Patent Information
- Application Number
- JP2024118124
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-23
- Publication Date
- 2026-02-04
AI Technical Summary
Beginners learning programming face challenges with traditional educational platforms that are expensive, limited in scope, and lack personalized support based on their skill level and learning history, leading to inefficient learning and difficulty in overcoming weaknesses.
A fully automated programming school system that automatically generates programming problems based on a user's skill level and past learning history, evaluates answers, provides detailed explanations, and suggests customized questions to address weaknesses.
Enables personalized and efficient programming learning by dynamically adjusting problem difficulty and content format, providing real-time feedback, and addressing user weaknesses, thereby enhancing learning effectiveness.
Smart Images

Figure 2026017342000001_ABST
Abstract
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] Beginners learning programming often need a lot of time and effort to find and solve the right problems. Traditional programming schools are expensive, and educational platforms specialized in specific programming languages are limited. As a result, learning efficiency is low, and users struggle to overcome their weaknesses. [Means for solving the problem]
[0005] The present invention comprises a means for automatically generating programming problems based on a user's skill level and past learning history, a means for evaluating the problems answered by the user and determining whether they are correct or incorrect, a means for automatically generating detailed explanations for the user's answers, and a means for analyzing the user's weaknesses and providing customized problems to overcome those weaknesses. This system allows users to study effectively at their own pace and overcome specific weaknesses.
[0006] "User" refers to a person who uses the system to learn programming.
[0007] "Skill level" is an indicator of a user's degree of programming knowledge and ability.
[0008] "Past learning history" refers to a record of the problems a user has solved and their learning experiences.
[0009] A "programming problem" is a problem that includes a task or instructions to be solved by a program entered by a user.
[0010] "Means for automatic generation" refers to the ability of the system to automatically create programming problems based on user information.
[0011] "Means of evaluation and determining correctness" refers to the function of checking the answers submitted by users and determining whether they are correct.
[0012] "Means for automatically generating detailed explanations" refers to a function that automatically explains the reasons for an answer and how to solve the problem based on whether the user's answer is correct or incorrect.
[0013] "A means of analyzing weaknesses and providing customized questions to overcome those weaknesses" refers to a function that identifies areas of lack of understanding based on the user's past answer data and provides questions specially designed to fill in those gaps. [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] This invention provides a fully automated programming school system that allows users to efficiently advance their programming studies. The system automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system analyzes the user's weaknesses and suggests customized problems to help them overcome them.
[0036] System configuration
[0037] Server Roles
[0038] 1. Manage your user profile:
[0039] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[0040] 2. Automatic question generation:
[0041] The server automatically generates programming problems optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress.
[0042] 3. Evaluate answers and generate explanations:
[0043] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[0044] 4. Weakness analysis and customized problem provision:
[0045] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[0046] Device Role
[0047] 1. Providing a user interface:
[0048] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[0049] 2. Data transmission and reception:
[0050] The device sends the user's input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, allowing the user to have a seamless learning experience.
[0051] User Roles
[0052] 1. Profile Settings:
[0053] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[0054] 2. Answer to the question:
[0055] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[0056] 3. Check the explanation:
[0057] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[0058] Specific examples
[0059] 1. Setting up your user profile:
[0060] User A sets his skill level as "Beginner" and enters "Python" as the language to learn.
[0061] The terminal sends this information to the server, which stores it in a database.
[0062] 2. Automatic generation and provision of questions:
[0063] The server generates "basic Python questions" based on User A's skill level and sends them to the terminal.
[0064] The device displays the problem to User A.
[0065] 3. Question Answers and Evaluation:
[0066] User A enters the answer to the question, and the device sends the answer to the server.
[0067] The server evaluates the answers and generates the correct answers and detailed explanations, which are sent back to the device.
[0068] 4. Review the explanation and study next time:
[0069] User A checks the explanations displayed on the device and learns about incorrect answers and areas for improvement.
[0070] The server analyzes User A's answer data, identifies weak points, and prepares the next question based on those weak points.
[0071] In this way, the system based on the present invention provides a personalized learning experience according to the user's skill level and learning progress, supporting effective learning of programming.
[0072] The processing flow will be explained below.
[0073] Step 1:
[0074] When using the service for the first time, users input their skill level and the programming language they want to learn into the terminal. For example, they input "Beginner" and "Python."
[0075] Step 2:
[0076] The terminal transmits the information input by the user to the server, including the user's skill level and learning intention.
[0077] Step 3:
[0078] The server stores the received user information in a database, which allows the user profile to be managed.
[0079] Step 4:
[0080] When the user is ready to solve the next programming problem, he or she requests the problem be provided through the terminal.
[0081] Step 5:
[0082] The terminal forwards the user's request to the server, which includes the user ID.
[0083] Step 6:
[0084] The server queries the user's skill level and past learning history, and automatically generates appropriate programming questions based on that information.
[0085] Step 7:
[0086] The server transmits the generated programming questions to the terminal.
[0087] Step 8:
[0088] The terminal displays the received questions to the user, who then checks the presented questions.
[0089] Step 9:
[0090] The user inputs answers to the displayed questions.
[0091] Step 10:
[0092] The terminal transmits the user's answer to the server.
[0093] Step 11:
[0094] The server evaluates the received answers, determines whether they are correct or not, and automatically generates detailed explanations based on the evaluation results.
[0095] Step 12:
[0096] The server sends the evaluation results and explanations to the terminal.
[0097] Step 13:
[0098] The device displays the received evaluation results and explanations to the user, who then checks the explanations to deepen their understanding.
[0099] Step 14:
[0100] The server analyzes the user's answer data and identifies the user's weak points from the data.
[0101] Step 15:
[0102] Based on the identified weaknesses, the server prepares to generate customized questions for the next study.
[0103] Step 16:
[0104] After checking the explanations and evaluation results, users can move on to the problem-solving process again. By repeating this cycle, users can effectively learn programming.
[0105] Example 1
[0106] 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."
[0107] Conventional programming learning systems lacked sufficient individualized support based on the user's skill level and learning history, making it difficult to effectively support user growth. They also lacked the ability to provide detailed explanations of the user's answers or analyze their weaknesses to provide appropriate questions, making it difficult to achieve efficient learning. Furthermore, the lack of a means to input user profile information or an interface for sending and receiving data meant that the user's learning experience was not seamless.
[0108] 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.
[0109] In this invention, the server includes means for automatically generating questions based on the user's skill level and past learning history, means for evaluating the questions answered by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized questions to overcome those weaknesses, means for providing an interface for the user to input profile information, and means for transmitting and receiving user input data. This makes it possible to provide a personalized learning experience according to the user's skill level and learning progress, and to achieve effective programming learning.
[0110] "User" refers to an individual who uses the system to learn programming.
[0111] "Skill level" refers to an indicator that represents a user's programming ability and knowledge proficiency.
[0112] "Study history" refers to the records of the user's learning and answers to date.
[0113] "Means for automatically generating problems" refers to the function of dynamically creating optimal programming problems based on the user's skill level and past learning history.
[0114] "Means for determining correctness" refers to a function that evaluates whether a user's answer is correct or incorrect.
[0115] "Means for automatically generating detailed explanations" refers to a function that automatically creates explanations for a user's answers, including the correct answer, incorrect points, and areas for improvement.
[0116] "Means for analyzing weaknesses" refers to a function that analyzes a user's past answer data to identify areas or skills in which the user is weak.
[0117] "Means of providing customized solutions" refers to the ability to create and provide special problems to users to overcome their weaknesses.
[0118] "Profile information input interface" refers to the screens or forms used by users to input information such as their skill level or programming languages they wish to learn.
[0119] "Means for transmitting and receiving input data" refers to a communication function for transmitting data input by a user to a server and displaying response data from the server to the user.
[0120] This invention provides a fully automated programming school system that allows users to efficiently advance their programming studies. The system automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system analyzes the user's weaknesses and suggests customized problems to help them overcome them.
[0121] System configuration
[0122] Server Roles
[0123] 1. Manage your user profile:
[0124] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[0125] 2. Automatic question generation:
[0126] The server automatically generates programming problems optimized for each user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress. The server also uses a generative AI model to create problems that are individually optimized for each user.
[0127] 3. Evaluate answers and generate explanations:
[0128] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[0129] 4. Weakness analysis and customized problem provision:
[0130] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[0131] Device Role
[0132] 1. Providing a user interface:
[0133] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[0134] 2. Data transmission and reception:
[0135] The device sends the user's input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, allowing the user to have a seamless learning experience.
[0136] User Roles
[0137] 1. Profile Settings:
[0138] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[0139] 2. Answer to the question:
[0140] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[0141] 3. Check the explanation:
[0142] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[0143] Specific examples
[0144] 1. Setting up your user profile:
[0145] User A sets his skill level as "Beginner" and enters "Python" as the language to learn.
[0146] The terminal sends this information to the server, which stores it in a database.
[0147] 2. Automatic generation and provision of questions:
[0148] The server generates "basic Python questions" based on User A's skill level and sends them to the terminal.
[0149] The device displays the problem to User A.
[0150] 3. Question Answers and Evaluation:
[0151] User A enters the answer to the question, and the device sends the answer to the server.
[0152] The server evaluates the answers and generates the correct answers and detailed explanations, which are sent back to the device.
[0153] 4. Review the explanation and study next time:
[0154] User A checks the explanations displayed on the device and learns about incorrect answers and areas for improvement.
[0155] The server analyzes User A's answer data, identifies weak points, and prepares the next question based on those weak points.
[0156] Example prompts to input to the generative AI model
[0157] Here are some examples of prompts to input to a generative AI model:
[0158] plain
[0159] When a user first uses the system, how can I set their skill level (beginner) and the programming language they want to learn (Python) as input data? Also, can you provide an example program to save that information to a database?
[0160] In this way, the system provides a personalized learning experience that is tailored to the user's skill level and learning progress, supporting effective programming learning.
[0161] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0162] Step 1:
[0163] Entering and saving your user profile
[0164] The user uses the device interface to input their skill level and the programming language they wish to learn. For example, the user might specify their skill level as "beginner" and the language they wish to learn as "Python." The device then sends this information to the server, which then stores it in a database. The server then accepts the input data and saves it in the database.
[0165] Input: User's skill level and programming language they want to learn
[0166] Data processing and calculation: Acceptance of input data and storage in database
[0167] Output: User profile information stored in a database
[0168] Step 2:
[0169] Automatic question generation
[0170] The server automatically generates programming problems optimized for the user's skill level based on the saved user profile information and learning history. Specifically, the server uses a generative AI model to create problems and dynamically adjusts the content and difficulty. The generated problems are then sent to the device.
[0171] Input: User profile information, learning history
[0172] Data processing and calculation: Creating questions using generative AI models and dynamically adjusting difficulty
[0173] Output: Generated programming problem
[0174] Step 3:
[0175] Presenting questions and entering answers
[0176] The terminal displays the programming problem received from the server to the user. For example, it displays "Write Python code to find the sum of the elements in the list [1, 2, 3]." The user enters the answer to the displayed problem, and the terminal sends the answer to the server.
[0177] Input: Programming questions from the server
[0178] Data processing and calculation: Displaying questions and inputting answers by users
[0179] Output: User's answer data
[0180] Step 4:
[0181] Submitting and grading answers
[0182] The device sends the answer entered by the user to the server. The server analyzes the received answer and determines whether it is correct. For example, the server checks that the answer should be "sum([1, 2, 3])" and determines whether the user's answer is correct. The evaluation results are stored in a database.
[0183] Input: User's answer data
[0184] Data processing and calculation: Analysis of answers and determination of correctness
[0185] Output: Evaluation results
[0186] Step 5:
[0187] Generate and display explanations
[0188] The server generates a detailed explanation based on the evaluation result, for example, "The correct answer is 6. Your answer is correct. This is the correct way to use the sum function." This explanation is sent from the server to the terminal, and the terminal displays it to the user.
[0189] Input: Evaluation result
[0190] Data processing and calculation: Automatic generation of detailed explanations
[0191] Output: Generated commentary, displayed to the user
[0192] Step 6:
[0193] Weakness analysis and customized problem provision
[0194] The server performs detailed analysis of the user's past answer data to identify the user's weaknesses. For example, if the user is identified as weak at loop processing, the server will use a generative AI model to create special problems to overcome the user's weaknesses. These new problems will be displayed on the device for the next learning session.
[0195] Input: User's past answer data
[0196] Data processing and calculation: Deeply analyze data, identify weaknesses, and create customized questions using generative AI models
[0197] Output: Customized next study question
[0198] (Application example 1)
[0199] 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."
[0200] Conventional programming learning systems struggle to provide customized problems based on a user's learning progress and weaknesses, preventing maximum learning effectiveness. Furthermore, they lacked the ability to dynamically deliver diverse content formats (video, text, interactive problems), preventing efficient learning that adapts to the user's learning style. Furthermore, they lacked the ability to provide real-time feedback using generative AI models, meaning users lost opportunities to quickly deepen their understanding. To solve these problems, it is necessary to provide effective problem generation based on the user's learning history, real-time feedback, and customized problems based on their weaknesses.
[0201] 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.
[0202] In this invention, the server includes: a means for automatically generating programming problems based on the user's skill level and past learning history; a means for evaluating the problems answered by the user and determining whether they are correct; a means for automatically generating detailed explanations for the user's answers; a means for dynamically delivering multiple content formats (video, text, interactive problems) according to the user's progress; a means for providing real-time feedback based on the evaluation results of the answers; and a means for utilizing a generative AI model to generate customized learning content based on identified weaknesses. This enables the provision of problems and content optimized for the user's learning progress, supporting efficient learning. Furthermore, real-time feedback provides users with opportunities to instantly deepen their understanding, maximizing the effectiveness of their learning.
[0203] "User skill level" is an indicator that shows the user's level of technical ability in learning programming.
[0204] "Past learning history" is information that indicates what the user has studied and the history of questions they have answered.
[0205] "Programming problems" are tasks that users can answer to improve their programming skills and knowledge.
[0206] "Automatic generation" is the process by which a system creates programming problems based on user information without manual intervention.
[0207] "Evaluation" means determining whether the programming questions answered by the user are correct or incorrect.
[0208] "Detailed explanation" refers to an explanation of the question the user answered, including the correct answer, incorrect answers, and areas for improvement.
[0209] "Weaknesses" refer to areas where the user has particularly poor understanding or makes many mistakes based on their past learning and answer history.
[0210] "Customized problems" are programming problems that are individually optimized according to the user's weaknesses and learning progress.
[0211] "Content format" refers to the way in which information necessary for learning programming is presented, such as through video, text, or interactive questions.
[0212] "Progress" is a status that indicates how far a user has progressed in learning programming.
[0213] "Dynamic delivery" means sending appropriate content in real time according to the user's progress and situation.
[0214] "Feedback" means immediately returning evaluation results and suggestions for improvement for the questions the user has answered.
[0215] A "generative AI model" is an artificial intelligence model that uses machine learning to generate new questions, explanations, etc. from data.
[0216] The system for realizing this invention is configured through the interaction of a server, a terminal, and a user.
[0217] Server Roles
[0218] 1. Managing your data:
[0219] The server stores the user's skill level and past learning history in a database and manages the user profile. The database used is Amazon RDS, and the interface is provided using Django.
[0220] 2. Automatic question generation:
[0221] The server generates appropriate programming problems based on the user's skill level and learning history, utilizing a generative AI model powered by Amazon SageMaker to automatically generate the most suitable problems for the user.
[0222] 3. Evaluate answers and provide feedback:
[0223] The server analyzes the content of the programming questions the user answers and judges whether they are correct or not. Based on the evaluation results, the server provides detailed explanations and real-time feedback.
[0224] 4. Weakness analysis and customized problem provision:
[0225] The server analyzes the user's past answer data to identify weaknesses, and then uses this information to generate customized questions to address those weaknesses and provide them to the user.
[0226] 5. Dynamic Delivery of Content Formats:
[0227] It dynamically delivers multiple content formats, including video, text, and interactive questions, depending on the user's progress, providing a learning experience optimized for the user's learning style.
[0228] Device Role
[0229] 1. Providing a user interface:
[0230] The terminal provides an interface for users to enter their profile and answer programming questions, using React Native and TypeScript as front-end technologies.
[0231] 2. Data transmission and reception:
[0232] It sends user input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, thereby providing a seamless learning experience.
[0233] User Roles
[0234] 1. Profile Settings:
[0235] When users start using the system, they input their skill level and the programming language they want to learn, which gives the server the basic data to provide the most suitable problems.
[0236] 2. Answer to the question:
[0237] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[0238] 3. Check the explanation:
[0239] Users can learn about their mistakes and areas for improvement by checking the evaluation results and detailed explanations of their answers provided by the server.
[0240] Specific examples
[0241] For example, if User A has beginner-level skills and wants to learn Python, he or she enters his or her skill level and the language he or she is learning when he or she first accesses the device. The device sends this information to the server, which stores the data in Amazon RDS. The server then uses Amazon SageMaker to generate basic Python questions and sends them to the device. When User A answers the questions, the answers are sent to the server, which generates evaluation results and detailed explanations. User A deepens his or her learning through real-time feedback, and the next questions are provided based on his or her progress.
[0242] Example prompt sentence:
[0243] User A's skill level is beginner, and the learning language is Python. Please generate basic Python questions based on this user's learning history.
[0244] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0245] Step 1:
[0246] Setting up your user profile
[0247] Subject: User
[0248] When users first access the service, they enter information such as their skill level, the programming language they want to learn, and their learning goals. The entered data is sent from the device to the server, which receives the data and stores it appropriately in Amazon RDS. This information is used to automatically generate subsequent programming problems and provide customized problems.
[0249] Step 2:
[0250] Automatic question generation
[0251] Subject: Server
[0252] The server uses Amazon SageMaker to generate appropriate programming problems based on the received user profile and past learning history. The user's skill level and learning language are entered into the prompt, and a problem is generated using a generative AI model. The generated problem is constructed by the server and sent to the device. The data is then processed on the server to be formatted into the generated problem before being sent.
[0253] Step 3:
[0254] Providing a problem
[0255] Subject: Terminal
[0256] The terminal displays the programming problems received from the server to the user. The user inputs the answers to the displayed problems. The terminal then transmits the user's answers to the server.
[0257] Step 4:
[0258] Evaluating answers
[0259] Subject: Server
[0260] The server evaluates the received answers and determines whether they are correct. The determination is performed on the server, and an evaluation program references the user's answers and compares them with the correct answers. Based on this result, a detailed explanation is automatically generated. The evaluation results and explanation are sent from the server to the terminal.
[0261] Step 5:
[0262] Providing Feedback
[0263] Subject: Terminal
[0264] The device receives the evaluation results and detailed explanations from the server and displays them to the user, allowing the user to check whether their answers are correct and receive feedback to deepen their understanding.
[0265] Step 6:
[0266] Weakness analysis and customization problem generation
[0267] Subject: Server
[0268] The server uses Amazon SageMaker to analyze the user's past answer data and identify the user's weaknesses. Based on the identified weaknesses, new customized questions are generated, and the data is again processed within the server and sent to the device. In terms of operation, questions are automatically generated using a generative AI model based on the identified weakness information.
[0269] Step 7:
[0270] Providing customized questions
[0271] Subject: Terminal
[0272] The device provides the user with customized problems received from the server, and the user can use the feedback to address the problems to overcome identified weaknesses.
[0273] As a concrete example, if User A wants to learn Python as a "beginner," the system will execute a series of processes from Step 1 to Step 7 to provide User A with the optimal learning experience. An example of a prompt would be, "User A's skill level is beginner, and the learning language is Python. Please generate basic Python questions based on this user's learning history." Based on this prompt, the system makes full use of a generative AI model to provide User A with the optimal questions.
[0274] 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.
[0275] This invention combines an emotion engine with a fully automated programming school system to help users efficiently advance their programming studies. The system based on this invention automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system not only analyzes the user's weaknesses and suggests customized problems to overcome them, but also recognizes the user's emotions and optimizes the learning experience based on them.
[0276] System configuration
[0277] Server Roles
[0278] 1. Manage your user profile:
[0279] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[0280] 2. Automatic question generation:
[0281] The server automatically generates programming problems optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress.
[0282] 3. Evaluate answers and generate explanations:
[0283] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[0284] 4. Weakness analysis and customized problem provision:
[0285] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[0286] 5. User Emotion Recognition:
[0287] The server runs an emotion engine through facial recognition and voice analysis to identify the user's current emotional state, which is classified into multiple categories such as joy, anger, sadness, surprise, and fear.
[0288] 6. Optimizing the learning experience based on emotions:
[0289] The server dynamically adjusts the content and difficulty of the questions it provides based on the user's perceived emotional state, and also changes the way it presents explanations to match the user's emotions.
[0290] Device Role
[0291] 1. Providing a user interface:
[0292] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[0293] 2. Data transmission and reception:
[0294] The device sends the user's input data to the server and receives response data (questions, assessment results, explanations, emotional assessments, etc.) from the server and displays them to the user, allowing the user to have a seamless learning experience.
[0295] 3. Collecting Emotional Data:
[0296] The device uses a camera and microphone to capture the user's facial and voice data, which is then sent to a server for analysis of their emotional state.
[0297] User Roles
[0298] 1. Profile Settings:
[0299] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[0300] 2. Answer to the question:
[0301] The user inputs answers to the programming questions displayed on the terminal.
[0302] 3. Check the explanation:
[0303] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[0304] 4. Providing Emotion Data:
[0305] The user follows instructions from the device, uses the camera and microphone appropriately, and transmits their emotional state to the server.
[0306] Specific examples
[0307] 1. Setting up your user profile:
[0308] User B sets his skill level as "Intermediate" and inputs "JavaScript" as the language to learn. The device sends this information to the server, which stores it in a database.
[0309] 2. Automatic generation and provision of questions:
[0310] The server generates "intermediate JavaScript problems" based on User B's skill level and sends them to the device. The device displays the problems to User B.
[0311] 3. Question Answers and Evaluation:
[0312] User B enters the answer to the question, and the device sends the answer to the server, which evaluates the answer and generates a correct answer and detailed explanation, which are sent back to the device.
[0313] 4. Emotion recognition and learning experience optimization:
[0314] While User B is answering the questions, the device's camera and microphone collect data on User B's facial expressions and voice. The server uses an emotion engine to analyze User B's emotions and determines that he or she is "concentrating."
[0315] Based on the results of the sentiment analysis, the server decides to slightly increase the difficulty of the next question.
[0316] 5. Providing customized questions:
[0317] The server analyzes User B's weaknesses and generates a customized next question, allowing User B to effectively study to overcome their weaknesses.
[0318] In this way, the system based on the present invention provides a personalized learning experience that is tailored to the user's skill level and learning progress, and further takes into account the user's emotional state to maximize the effectiveness of learning.
[0319] The processing flow will be explained below.
[0320] Step 1:
[0321] When using the device for the first time, users input their skill level and the programming language they want to learn into the device. For example, they input "Intermediate" and "JavaScript."
[0322] Step 2:
[0323] The terminal transmits the information input by the user to the server, including the user's skill level and learning intention.
[0324] Step 3:
[0325] The server stores the received user information in a database, which allows the user profile to be managed.
[0326] Step 4:
[0327] When the user is ready to solve the next programming problem, he or she requests the problem be provided through the terminal.
[0328] Step 5:
[0329] The terminal forwards the user's request to the server, which includes the user ID.
[0330] Step 6:
[0331] The server queries the user's skill level and past learning history, and automatically generates appropriate programming questions based on that information.
[0332] Step 7:
[0333] The server transmits the generated programming questions to the terminal.
[0334] Step 8:
[0335] The terminal displays the received questions to the user, who then checks the presented questions.
[0336] Step 9:
[0337] The user inputs answers to the displayed questions.
[0338] Step 10:
[0339] The terminal transmits the user's answer to the server.
[0340] Step 11:
[0341] The server evaluates the received answers, determines whether they are correct or not, and automatically generates detailed explanations based on the evaluation results.
[0342] Step 12:
[0343] The server sends the evaluation results and explanations to the terminal.
[0344] Step 13:
[0345] The device displays the received evaluation results and explanations to the user, who then checks the explanations to deepen their understanding.
[0346] Step 14:
[0347] The server analyzes the user's answer data and identifies the user's weak points from the data.
[0348] Step 15:
[0349] Based on the identified weaknesses, the server prepares to generate customized questions for the next study.
[0350] Step 16:
[0351] The device uses a camera and microphone to collect the user's facial expression and voice data and transmits it to a server.
[0352] Step 17:
[0353] The server uses an emotion engine to recognize the user's emotional state, which is classified into categories such as "concentrated," "tired," and "excited."
[0354] Step 18:
[0355] The server dynamically adjusts the difficulty and content of the questions it provides based on the recognized emotion, and also changes the way it presents explanations according to the emotion.
[0356] Step 19:
[0357] The terminal will then present the adjusted questions again and the user can continue answering them.
[0358] Step 20:
[0359] Users continue to tackle new problems and learn, and by repeating this process, they can effectively improve their programming skills.
[0360] Example 2
[0361] 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."
[0362] Conventional programming learning systems have the problem that it is difficult to generate appropriate questions based on the user's skill level and past learning history, and they are also unable to optimize the system to reflect the user's learning progress and emotional state in real time. This makes it difficult for users to progress in their learning efficiently and effectively.
[0363] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[0364] In this invention, the server includes means for automatically generating programming problems based on the user's skill level and past learning history, means for evaluating the problems answered by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized problems to overcome those weaknesses, and means for recognizing the user's emotional state and optimizing the learning content based thereon. This makes it possible to improve the user's learning efficiency and provide an optimal learning experience according to the individual's learning progress and skill level.
[0365] "User" refers to an individual or organization that uses the system to learn programming.
[0366] "Skill level" refers to the user's level of programming knowledge and technical proficiency.
[0367] "Learning history" refers to the records and results of the programming learning a user has undertaken to date.
[0368] "Programming problems" refer to tasks that require users to create or modify computer programs to solve them.
[0369] "Solution" refers to the code or answer submitted by a user to a programming problem.
[0370] "Correctness determination" refers to the server determining whether the user's answer is correct or incorrect.
[0371] "Detailed explanations" refer to explanations provided based on the evaluation results of the user's answers, including reasons for correct and incorrect answers and areas for improvement.
[0372] "Weaknesses" refer to areas where the user is particularly lacking in understanding or mastery when learning programming.
[0373] "Customized problems" refer to programming problems that are specifically created to address a user's learning status, skill level, and particularly to address weaknesses.
[0374] "Emotional state" refers to the user's psychological state or mood during learning, including joy, anger, sadness, surprise, fear, etc.
[0375] "Emotion engine" refers to technology that recognizes a user's emotional state by analyzing facial and voice data.
[0376] "Optimization" refers to adjusting the content and difficulty of questions to make the user's learning experience more effective and efficient.
[0377] MODE FOR CARRYING OUT THE INVENTION
[0378] This invention combines an emotion engine with a fully automated programming school system that allows users to efficiently advance their programming studies. Now, we will explain how to put this invention into practice in concrete terms.
[0379] Hardware and software used
[0380] Server: Consists of a high-performance computer (including CPU, memory, and storage) with dedicated server software installed.
[0381] Device: A computing device used by a user, such as a PC, tablet, or smartphone.
[0382] Database: A database server that stores user profiles, learning history, etc.
[0383] Emotion engine: An AI engine with facial recognition and voice analysis functions.
[0384] Program processing
[0385] When a user first accesses the system, they enter their skill level and the programming language they want to learn. This information is sent from the device to the server, which then stores it in a database.
[0386] The server then automatically generates programming problems based on the user's saved profile and past learning history, optimized for the user's skill level, providing a challenge of the right difficulty level for the user.
[0387] The terminal displays the generated questions to the user, who then inputs the answers through the terminal. The answers are then sent back to the server, which determines whether the answers are correct or not. The server then automatically generates an evaluation result and detailed explanation of the answers and sends this information to the terminal.
[0388] The server then analyzes the user's answer history to identify their weaknesses. Customized programming questions are then generated for the next lesson to address those weaknesses. The device also uses a camera and microphone to collect data on the user's facial expressions and voice, and sends that data to the server.
[0389] The server runs an emotion engine to recognize the user's emotional state, which is classified as "joy," "anger," "sadness," "surprise," "fear," etc. Based on this recognition result, the server dynamically adjusts the content and difficulty of the questions provided, as well as the way explanations are presented, in order to optimize the user's learning experience.
[0390] Specific examples
[0391] 1. User profile settings:
[0392] User A accesses the system, sets his skill level as "Beginner" and enters "Python" as the learning language.
[0393] 2. Automatic generation of programming problems:
[0394] The server generates a "Basic Variable Manipulation in Python" problem based on User A's skill level and sends it to the terminal.
[0395] 3. Enter and evaluate your answers:
[0396] User A enters the answer to the question displayed on the terminal (e.g., "x = 5") and sends the answer to the server.
[0397] The server evaluates the answer and generates a detailed explanation such as "Correct. Assigning 5 to variable x is the correct operation." and sends it to the terminal.
[0398] 4. Emotion recognition and learning experience optimization:
[0399] The device's camera and microphone collect facial and voice data from user A and send it to the server.
[0400] The server uses an emotion engine to analyze User A's emotion as "concentrated."
[0401] The server will increase the difficulty of the next question slightly and change the explanation to a more concise form.
[0402] Prompt Sentence Examples
[0403] "Build a system that generates appropriate programming problems based on a specified skill level, and provides a rating and explanation for the user's answers. Additionally, include the ability to analyze the user's emotional state and optimize the learning experience accordingly."
[0404] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0405] Step 1:
[0406] A user accesses the system for the first time and enters their profile information.
[0407] Specifically, the user inputs their skill level (e.g., "Beginner") and language of study (e.g., "Python") into the device interface. The input data are the skill level and language of study.
[0408] Step 2:
[0409] The device transmits the entered profile information to the server.
[0410] The server stores the received profile information in a database. The input data is the user's profile information obtained in step 1, and the output is the profile information stored in the database.
[0411] Step 3:
[0412] The server retrieves the user profile and past learning history from the database.
[0413] Based on the user's profile and learning history, appropriate programming problems are automatically generated. The input data is the user's profile and learning history, and the output is the automatically generated programming problems.
[0414] Step 4:
[0415] The server sends the generated programming questions to the terminal.
[0416] The terminal displays the received programming problems to the user. The input data is the generated programming problem, and the output is the programming problem displayed on the terminal.
[0417] Step 5:
[0418] Users answer programming questions through their terminals.
[0419] The user inputs the answer and sends it to the terminal. The input data is the answer given by the user.
[0420] Step 6:
[0421] The device sends the user's answer to the server.
[0422] The server receives the answer and judges whether it is correct or not. The input data is the user's answer, and the output is the judgement result.
[0423] Step 7:
[0424] The server automatically generates an evaluation result of the answer and a detailed explanation.
[0425] The evaluation results include a correct / incorrect judgment, and the detailed explanation includes points for improving the correct and incorrect answers. The input data is the judgment result, and the output is the evaluation result and a detailed explanation.
[0426] Step 8:
[0427] The server sends the generated evaluation results and explanations to the terminal.
[0428] The terminal receives the evaluation results and explanations and displays them to the user. The input data are the evaluation results and detailed explanations, and the output is the evaluation results and explanations displayed on the terminal.
[0429] Step 9:
[0430] The device uses a camera and microphone to collect data on the user's facial expressions and voice.
[0431] The data collected is the user's facial expressions and voice.
[0432] Step 10:
[0433] The facial expression and voice data collected by the device is sent to a server.
[0434] The server runs an emotion engine to recognize the user's emotional state. The input data is the user's facial expression and voice data, and the output is the recognized emotional state.
[0435] Step 11:
[0436] The server optimizes the content and difficulty of the next question to be presented based on the recognized emotional state.
[0437] The input data are the emotional state and learning history, and the output is the next optimized programming problem provided.
[0438] Step 12:
[0439] The server sends the newly generated optimized programming problem to the terminal.
[0440] The terminal receives the problem and displays it to the user. The input data is the newly generated programming problem, and the output is the problem displayed on the terminal.
[0441] (Application example 2)
[0442] 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."
[0443] Conventional learning systems struggle to provide appropriate training scenarios based on the user's skill level and learning history. Furthermore, they often fail to optimize the learning experience by taking into account the user's emotional state, resulting in failure to maximize learning effectiveness. The objective of this invention is to develop a system that solves these problems and provides a more effective and personalized learning experience.
[0444] The specific processing by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for automatically generating training scenarios based on the user's skill level and past learning history, means for evaluating the training scenarios performed by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized training scenarios to overcome those weaknesses, and means for analyzing the user's emotional state and adjusting the difficulty level of the training scenarios based on the analysis results. This makes it possible to provide effective learning scenarios that meet the learning needs of each user.
[0445] "User" means an individual who uses the system to execute training scenarios and advance learning.
[0446] "Skill level" is an indicator that shows the user's level of proficiency in a particular skill or knowledge.
[0447] "Learning history" is a record of what a user has learned, the training scenarios they have performed, and their performance.
[0448] A "training scenario" is a set of specific challenges or tasks that users perform to learn a particular skill.
[0449] "Automatic generation" means that the system automatically creates training scenarios, explanatory text, etc. based on the user's conditions.
[0450] "Evaluation" refers to judging the accuracy and completeness of a user's answers and the results of the executed training scenarios.
[0451] "Correct or incorrect" refers to determining whether the user's answer or action is correct or incorrect.
[0452] "Explanation" is a detailed explanation provided to users on how to answer the training scenario and to deepen their understanding.
[0453] "Weaknesses" refer to areas where the user has difficulty or insufficient understanding.
[0454] "Customization" means adjusting the system's offerings to suit each user's specific conditions and needs.
[0455] "Emotional state" refers to the user's mental state or emotional expression, including joy, anger, sadness, surprise, and fear.
[0456] "Analysis" means that the system processes the data obtained from the user and extracts meaning and trends from it.
[0457] "Difficulty" is an index that indicates how difficult a training scenario is for the user.
[0458] This invention is a system that automatically generates training scenarios based on a user's skill level and past learning history, providing a customized learning experience.
[0459] Server Roles
[0460] Managing your user profile
[0461] The server stores profile information, such as skill level and desired skills, entered by the user when they first access the system in a database. This information is managed individually for each user.
[0462] Automatic generation of training scenarios
[0463] The server automatically generates training scenarios optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the training scenarios are dynamically adjusted and change according to the user's learning progress.
[0464] Evaluating answers and generating explanations
[0465] After the user completes the training scenario, the server receives the results and determines whether they were correct or incorrect. Based on the results, the server automatically generates detailed explanations to help the user deepen their understanding. The explanations include the correct answers, mistakes, and areas for improvement.
[0466] Weakness analysis and customized problem provision
[0467] The server analyzes the user's past performance data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized training scenarios to overcome those weaknesses in the next training session.
[0468] User emotion recognition
[0469] The server runs an emotion engine through facial recognition and voice analysis to identify the user's current emotional state, which is classified into multiple categories such as joy, anger, sadness, surprise, and fear.
[0470] Optimizing the learning experience based on emotions
[0471] The server dynamically adjusts the content and difficulty of the training scenarios it provides based on the user's perceived emotional state, and also adapts the way the explanations are presented to suit the user's emotions.
[0472] Device Role
[0473] Providing a user interface
[0474] The terminal provides the user with an interface for using the system, which serves as the means for the user to enter their profile, run training scenarios, and view commentary.
[0475] Sending and receiving data
[0476] The device sends the user's input data to the server and receives response data (training scenario, evaluation results, explanations, emotional evaluation, etc.) from the server and displays them to the user, allowing the user to have a seamless learning experience.
[0477] Collecting Emotional Data
[0478] The device uses a camera and microphone to capture the user's facial and voice data, which is then sent to a server for analysis of their emotional state.
[0479] User Roles
[0480] Profile Settings
[0481] When users start using the system, they input their skill level and the skills they want to learn. This information is used as the basis for providing optimal training scenarios.
[0482] Execution of training scenarios
[0483] The user executes the training scenario displayed on the terminal.
[0484] Check the explanation
[0485] Users can check the evaluation results and detailed explanations of their answers provided by the server, which will help them understand their mistakes and areas for improvement.
[0486] Providing emotion data
[0487] The user uses the device's camera and microphone appropriately to transmit their emotional state to the server.
[0488] Hardware and software used
[0489] The system is implemented using the following hardware and software:
[0490] Camera and microphone: Used to collect user emotional data.
[0491] Server: The central device that processes and analyzes data.
[0492] Terminal: Provides the user interface and sends and receives data.
[0493] Software Libraries: OpenCV (cv2 library) and scikit-learn are used for sentiment analysis.
[0494] Specific examples
[0495] If User B has intermediate-level JavaScript skills, the system automatically generates an "intermediate JavaScript training scenario" and displays it to User B. While User B is performing the scenario, the camera and microphone collect User B's facial expressions and voice, and the emotion engine determines that User B is "concentrated." As a result, the system presents the next training scenario with a slightly higher level of difficulty.
[0496] Prompt Sentence Examples
[0497] Examples of prompt sentences include the following:
[0498] Example prompt 1:
[0499] "User B's skill level is intermediate. Please suggest a customized learning schedule for JavaScript that they should master over the next six months."
[0500] Example prompt 2:
[0501] "Generate customized training scenarios to deliver to workers when they are under stress. Current training skill level is beginner."
[0502] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[0503] Step 1:
[0504] The server receives the user's initial profile data. The user inputs information about their skill level and the skills they want to learn through their device, which is then sent to the server. This information is saved in a database. This input data (user's skill level, skills they want to learn) is stored in the database and used to generate subsequent training scenarios.
[0505] Step 2:
[0506] The server automatically generates training scenarios based on the user's skill level and past learning history. Based on the saved user profile and historical data, an algorithm generates the optimal training scenario. The content and difficulty of this training scenario are dynamically adjusted according to the user's learning progress. The generated training scenario is sent to the device.
[0507] Step 3:
[0508] The user executes the training scenario displayed on the terminal. After the user completes the operation corresponding to the training scenario, the terminal sends the execution results to the server. This execution result (user operation data) is sent to the server and used for evaluation.
[0509] Step 4:
[0510] The server evaluates the received execution results and determines whether they are correct or incorrect. An internal algorithm analyzes the user's operation data, determines whether the operation was correct, and generates a result. This judgment result (correct or incorrect data) is sent back to the terminal along with detailed explanation data.
[0511] Step 5:
[0512] The user checks the evaluation results and detailed explanations from the server. The terminal displays this information, allowing the user to learn about their mistakes and areas for improvement. This feedback data (evaluation results and detailed explanations) is presented to the user.
[0513] Step 6:
[0514] The server analyzes the user's past execution data to identify weaknesses and generates customized training scenarios to overcome those weaknesses in the next learning session. It uses past operation data and evaluation results to identify appropriate improvement focus points and create new training scenarios. This customized training scenario is provided for the next execution.
[0515] Step 7:
[0516] The device uses a camera and microphone to collect the user's facial and voice data and sends it to an emotion recognition engine. The collected emotion data is sent to a server and used for emotion analysis. This input data (facial and voice data) is used as the basis for emotion analysis.
[0517] Step 8:
[0518] The server analyzes the user's emotional state using an emotion engine, which analyzes the collected facial and voice data to determine the user's current emotional state (e.g., joy, anger, sadness, surprise, fear, etc.).
[0519] Step 9:
[0520] The server dynamically adjusts the content and difficulty of the training scenarios provided based on the recognized emotional state. For example, if the user is determined to be "concentrated," the difficulty of the next training scenario will be slightly increased. This difficulty adjustment result (difficulty data) will be reflected in the next training scenario.
[0521] Step 10:
[0522] The device displays the newly adjusted training scenario to the user, who then executes the customized training scenario and the learning process begins again.
[0523] 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.
[0524] 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.
[0525] 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.
[0526] [Second embodiment]
[0527] FIG. 3 shows an example of the configuration of a data processing system 210 according to the second embodiment.
[0528] 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.
[0529] 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).
[0530] 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.
[0531] 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.
[0532] 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).
[0533] 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.
[0534] 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.
[0535] 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.
[0536] 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.
[0537] 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.
[0538] 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."
[0539] This invention provides a fully automated programming school system that allows users to efficiently advance their programming studies. The system automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system analyzes the user's weaknesses and suggests customized problems to help them overcome them.
[0540] System configuration
[0541] Server Roles
[0542] 1. Manage your user profile:
[0543] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[0544] 2. Automatic question generation:
[0545] The server automatically generates programming problems optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress.
[0546] 3. Evaluate answers and generate explanations:
[0547] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[0548] 4. Weakness analysis and customized problem provision:
[0549] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[0550] Device Role
[0551] 1. Providing a user interface:
[0552] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[0553] 2. Data transmission and reception:
[0554] The device sends the user's input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, allowing the user to have a seamless learning experience.
[0555] User Roles
[0556] 1. Profile Settings:
[0557] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[0558] 2. Answer to the question:
[0559] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[0560] 3. Check the explanation:
[0561] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[0562] Specific examples
[0563] 1. Setting up your user profile:
[0564] User A sets his skill level as "Beginner" and enters "Python" as the language to learn.
[0565] The terminal sends this information to the server, which stores it in a database.
[0566] 2. Automatic generation and provision of questions:
[0567] The server generates "basic Python questions" based on User A's skill level and sends them to the terminal.
[0568] The device displays the problem to User A.
[0569] 3. Question Answers and Evaluation:
[0570] User A enters the answer to the question, and the device sends the answer to the server.
[0571] The server evaluates the answers and generates the correct answers and detailed explanations, which are sent back to the device.
[0572] 4. Review the explanation and study next time:
[0573] User A checks the explanations displayed on the device and learns about incorrect answers and areas for improvement.
[0574] The server analyzes User A's answer data, identifies weak points, and prepares the next question based on those weak points.
[0575] In this way, the system based on the present invention provides a personalized learning experience according to the user's skill level and learning progress, supporting effective learning of programming.
[0576] The processing flow will be explained below.
[0577] Step 1:
[0578] When using the service for the first time, users input their skill level and the programming language they want to learn into the terminal. For example, they input "Beginner" and "Python."
[0579] Step 2:
[0580] The terminal transmits the information input by the user to the server, including the user's skill level and learning intention.
[0581] Step 3:
[0582] The server stores the received user information in a database, which allows the user profile to be managed.
[0583] Step 4:
[0584] When the user is ready to solve the next programming problem, he or she requests the problem be provided through the terminal.
[0585] Step 5:
[0586] The terminal forwards the user's request to the server, which includes the user ID.
[0587] Step 6:
[0588] The server queries the user's skill level and past learning history, and automatically generates appropriate programming questions based on that information.
[0589] Step 7:
[0590] The server transmits the generated programming questions to the terminal.
[0591] Step 8:
[0592] The terminal displays the received questions to the user, who then checks the presented questions.
[0593] Step 9:
[0594] The user inputs answers to the displayed questions.
[0595] Step 10:
[0596] The terminal transmits the user's answer to the server.
[0597] Step 11:
[0598] The server evaluates the received answers, determines whether they are correct or not, and automatically generates detailed explanations based on the evaluation results.
[0599] Step 12:
[0600] The server sends the evaluation results and explanations to the terminal.
[0601] Step 13:
[0602] The device displays the received evaluation results and explanations to the user, who then checks the explanations to deepen their understanding.
[0603] Step 14:
[0604] The server analyzes the user's answer data and identifies the user's weak points from the data.
[0605] Step 15:
[0606] Based on the identified weaknesses, the server prepares to generate customized questions for the next study.
[0607] Step 16:
[0608] After checking the explanations and evaluation results, users can move on to the problem-solving process again. By repeating this cycle, users can effectively learn programming.
[0609] Example 1
[0610] 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."
[0611] Conventional programming learning systems lacked sufficient individualized support based on the user's skill level and learning history, making it difficult to effectively support user growth. They also lacked the ability to provide detailed explanations of the user's answers or analyze their weaknesses to provide appropriate questions, making it difficult to achieve efficient learning. Furthermore, the lack of a means to input user profile information or an interface for sending and receiving data meant that the user's learning experience was not seamless.
[0612] 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.
[0613] In this invention, the server includes means for automatically generating questions based on the user's skill level and past learning history, means for evaluating the questions answered by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized questions to overcome those weaknesses, means for providing an interface for the user to input profile information, and means for transmitting and receiving user input data. This makes it possible to provide a personalized learning experience according to the user's skill level and learning progress, and to achieve effective programming learning.
[0614] "User" refers to an individual who uses the system to learn programming.
[0615] "Skill level" refers to an indicator that represents a user's programming ability and knowledge proficiency.
[0616] "Study history" refers to the records of the user's learning and answers to date.
[0617] "Means for automatically generating problems" refers to the function of dynamically creating optimal programming problems based on the user's skill level and past learning history.
[0618] "Means for determining correctness" refers to a function that evaluates whether a user's answer is correct or incorrect.
[0619] "Means for automatically generating detailed explanations" refers to a function that automatically creates explanations for a user's answers, including the correct answer, incorrect points, and areas for improvement.
[0620] "Means for analyzing weaknesses" refers to a function that analyzes a user's past answer data to identify areas or skills in which the user is weak.
[0621] "Means of providing customized solutions" refers to the ability to create and provide special problems to users to overcome their weaknesses.
[0622] "Profile information input interface" refers to the screens or forms used by users to input information such as their skill level or programming languages they wish to learn.
[0623] "Means for transmitting and receiving input data" refers to a communication function for transmitting data input by a user to a server and displaying response data from the server to the user.
[0624] This invention provides a fully automated programming school system that allows users to efficiently advance their programming studies. The system automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system analyzes the user's weaknesses and suggests customized problems to help them overcome them.
[0625] System configuration
[0626] Server Roles
[0627] 1. Manage your user profile:
[0628] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[0629] 2. Automatic question generation:
[0630] The server automatically generates programming problems optimized for each user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress. The server also uses a generative AI model to create problems that are individually optimized for each user.
[0631] 3. Evaluate answers and generate explanations:
[0632] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[0633] 4. Weakness analysis and customized problem provision:
[0634] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[0635] Device Role
[0636] 1. Providing a user interface:
[0637] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[0638] 2. Data transmission and reception:
[0639] The device sends the user's input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, allowing the user to have a seamless learning experience.
[0640] User Roles
[0641] 1. Profile Settings:
[0642] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[0643] 2. Answer to the question:
[0644] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[0645] 3. Check the explanation:
[0646] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[0647] Specific examples
[0648] 1. Setting up your user profile:
[0649] User A sets his skill level as "Beginner" and enters "Python" as the language to learn.
[0650] The terminal sends this information to the server, which stores it in a database.
[0651] 2. Automatic generation and provision of questions:
[0652] The server generates "basic Python questions" based on User A's skill level and sends them to the terminal.
[0653] The device displays the problem to User A.
[0654] 3. Question Answers and Evaluation:
[0655] User A enters the answer to the question, and the device sends the answer to the server.
[0656] The server evaluates the answers and generates the correct answers and detailed explanations, which are sent back to the device.
[0657] 4. Review the explanation and study next time:
[0658] User A checks the explanations displayed on the device and learns about incorrect answers and areas for improvement.
[0659] The server analyzes User A's answer data, identifies weak points, and prepares the next question based on those weak points.
[0660] Example prompts to input to the generative AI model
[0661] Here are some examples of prompts to input to a generative AI model:
[0662] plain
[0663] When a user first uses the system, how can I set their skill level (beginner) and the programming language they want to learn (Python) as input data? Also, can you provide an example program to save that information to a database?
[0664] In this way, the system provides a personalized learning experience that is tailored to the user's skill level and learning progress, supporting effective programming learning.
[0665] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0666] Step 1:
[0667] Entering and saving your user profile
[0668] The user uses the device interface to input their skill level and the programming language they wish to learn. For example, the user might specify their skill level as "beginner" and the language they wish to learn as "Python." The device then sends this information to the server, which then stores it in a database. The server then accepts the input data and saves it in the database.
[0669] Input: User's skill level and programming language they want to learn
[0670] Data processing and calculation: Acceptance of input data and storage in database
[0671] Output: User profile information stored in a database
[0672] Step 2:
[0673] Automatic question generation
[0674] The server automatically generates programming problems optimized for the user's skill level based on the saved user profile information and learning history. Specifically, the server uses a generative AI model to create problems and dynamically adjusts the content and difficulty. The generated problems are then sent to the device.
[0675] Input: User profile information, learning history
[0676] Data processing and calculation: Creating questions using generative AI models and dynamically adjusting difficulty
[0677] Output: Generated programming problem
[0678] Step 3:
[0679] Presenting questions and entering answers
[0680] The terminal displays the programming problem received from the server to the user. For example, it displays "Write Python code to find the sum of the elements in the list [1, 2, 3]." The user enters the answer to the displayed problem, and the terminal sends the answer to the server.
[0681] Input: Programming questions from the server
[0682] Data processing and calculation: Displaying questions and inputting answers by users
[0683] Output: User's answer data
[0684] Step 4:
[0685] Submitting and grading answers
[0686] The device sends the answer entered by the user to the server. The server analyzes the received answer and determines whether it is correct. For example, the server checks that the answer should be "sum([1, 2, 3])" and determines whether the user's answer is correct. The evaluation results are stored in a database.
[0687] Input: User's answer data
[0688] Data processing and calculation: Analysis of answers and determination of correctness
[0689] Output: Evaluation results
[0690] Step 5:
[0691] Generate and display explanations
[0692] The server generates a detailed explanation based on the evaluation result, for example, "The correct answer is 6. Your answer is correct. This is the correct way to use the sum function." This explanation is sent from the server to the terminal, and the terminal displays it to the user.
[0693] Input: Evaluation result
[0694] Data processing and calculation: Automatic generation of detailed explanations
[0695] Output: Generated commentary, displayed to the user
[0696] Step 6:
[0697] Weakness analysis and customized problem provision
[0698] The server performs detailed analysis of the user's past answer data to identify the user's weaknesses. For example, if the user is identified as weak at loop processing, the server will use a generative AI model to create special problems to overcome the user's weaknesses. These new problems will be displayed on the device for the next learning session.
[0699] Input: User's past answer data
[0700] Data processing and calculation: Deeply analyze data, identify weaknesses, and create customized questions using generative AI models
[0701] Output: Customized next study question
[0702] (Application example 1)
[0703] 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."
[0704] Conventional programming learning systems struggle to provide customized problems based on a user's learning progress and weaknesses, preventing maximum learning effectiveness. Furthermore, they lacked the ability to dynamically deliver diverse content formats (video, text, interactive problems), preventing efficient learning that adapts to the user's learning style. Furthermore, they lacked the ability to provide real-time feedback using generative AI models, meaning users lost opportunities to quickly deepen their understanding. To solve these problems, it is necessary to provide effective problem generation based on the user's learning history, real-time feedback, and customized problems based on their weaknesses.
[0705] 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.
[0706] In this invention, the server includes: a means for automatically generating programming problems based on the user's skill level and past learning history; a means for evaluating the problems answered by the user and determining whether they are correct; a means for automatically generating detailed explanations for the user's answers; a means for dynamically delivering multiple content formats (video, text, interactive problems) according to the user's progress; a means for providing real-time feedback based on the evaluation results of the answers; and a means for utilizing a generative AI model to generate customized learning content based on identified weaknesses. This enables the provision of problems and content optimized for the user's learning progress, supporting efficient learning. Furthermore, real-time feedback provides users with opportunities to instantly deepen their understanding, maximizing the effectiveness of their learning.
[0707] "User skill level" is an indicator that shows the user's level of technical ability in learning programming.
[0708] "Past learning history" is information that indicates what the user has studied and the history of questions they have answered.
[0709] "Programming problems" are tasks that users can answer to improve their programming skills and knowledge.
[0710] "Automatic generation" is the process by which a system creates programming problems based on user information without manual intervention.
[0711] "Evaluation" means determining whether the programming questions answered by the user are correct or incorrect.
[0712] "Detailed explanation" refers to an explanation of the question the user answered, including the correct answer, incorrect answers, and areas for improvement.
[0713] "Weaknesses" refer to areas where the user has particularly poor understanding or makes many mistakes based on their past learning and answer history.
[0714] "Customized problems" are programming problems that are individually optimized according to the user's weaknesses and learning progress.
[0715] "Content format" refers to the way in which information necessary for learning programming is presented, such as through video, text, or interactive questions.
[0716] "Progress" is a status that indicates how far a user has progressed in learning programming.
[0717] "Dynamic delivery" means sending appropriate content in real time according to the user's progress and situation.
[0718] "Feedback" means immediately returning evaluation results and suggestions for improvement for the questions the user has answered.
[0719] A "generative AI model" is an artificial intelligence model that uses machine learning to generate new questions, explanations, etc. from data.
[0720] The system for realizing this invention is configured through the interaction of a server, a terminal, and a user.
[0721] Server Roles
[0722] 1. Managing your data:
[0723] The server stores the user's skill level and past learning history in a database and manages the user profile. The database used is Amazon RDS, and the interface is provided using Django.
[0724] 2. Automatic question generation:
[0725] The server generates appropriate programming problems based on the user's skill level and learning history, utilizing a generative AI model powered by Amazon SageMaker to automatically generate the most suitable problems for the user.
[0726] 3. Evaluate answers and provide feedback:
[0727] The server analyzes the content of the programming questions the user answers and judges whether they are correct or not. Based on the evaluation results, the server provides detailed explanations and real-time feedback.
[0728] 4. Weakness analysis and customized problem provision:
[0729] The server analyzes the user's past answer data to identify weaknesses, and then uses this information to generate customized questions to address those weaknesses and provide them to the user.
[0730] 5. Dynamic Delivery of Content Formats:
[0731] It dynamically delivers multiple content formats, including video, text, and interactive questions, depending on the user's progress, providing a learning experience optimized for the user's learning style.
[0732] Device Role
[0733] 1. Providing a user interface:
[0734] The terminal provides an interface for users to enter their profile and answer programming questions, using React Native and TypeScript as front-end technologies.
[0735] 2. Data transmission and reception:
[0736] It sends user input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, thereby providing a seamless learning experience.
[0737] User Roles
[0738] 1. Profile Settings:
[0739] When users start using the system, they input their skill level and the programming language they want to learn, which gives the server the basic data to provide the most suitable problems.
[0740] 2. Answer to the question:
[0741] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[0742] 3. Check the explanation:
[0743] Users can learn about their mistakes and areas for improvement by checking the evaluation results and detailed explanations of their answers provided by the server.
[0744] Specific examples
[0745] For example, if User A has beginner-level skills and wants to learn Python, he or she enters his or her skill level and the language he or she is learning when he or she first accesses the device. The device sends this information to the server, which stores the data in Amazon RDS. The server then uses Amazon SageMaker to generate basic Python questions and sends them to the device. When User A answers the questions, the answers are sent to the server, which generates evaluation results and detailed explanations. User A deepens his or her learning through real-time feedback, and the next questions are provided based on his or her progress.
[0746] Example prompt sentence:
[0747] User A's skill level is beginner, and the learning language is Python. Please generate basic Python questions based on this user's learning history.
[0748] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0749] Step 1:
[0750] Setting up your user profile
[0751] Subject: User
[0752] When users first access the service, they enter information such as their skill level, the programming language they want to learn, and their learning goals. The entered data is sent from the device to the server, which receives the data and stores it appropriately in Amazon RDS. This information is used to automatically generate subsequent programming problems and provide customized problems.
[0753] Step 2:
[0754] Automatic question generation
[0755] Subject: Server
[0756] The server uses Amazon SageMaker to generate appropriate programming problems based on the received user profile and past learning history. The user's skill level and learning language are entered into the prompt, and a problem is generated using a generative AI model. The generated problem is constructed by the server and sent to the device. The data is then processed on the server to be formatted into the generated problem before being sent.
[0757] Step 3:
[0758] Providing a problem
[0759] Subject: Terminal
[0760] The terminal displays the programming problems received from the server to the user. The user inputs the answers to the displayed problems. The terminal then transmits the user's answers to the server.
[0761] Step 4:
[0762] Evaluating answers
[0763] Subject: Server
[0764] The server evaluates the received answers and determines whether they are correct. The determination is performed on the server, and an evaluation program references the user's answers and compares them with the correct answers. Based on this result, a detailed explanation is automatically generated. The evaluation results and explanation are sent from the server to the terminal.
[0765] Step 5:
[0766] Providing Feedback
[0767] Subject: Terminal
[0768] The device receives the evaluation results and detailed explanations from the server and displays them to the user, allowing the user to check whether their answers are correct and receive feedback to deepen their understanding.
[0769] Step 6:
[0770] Weakness analysis and customization problem generation
[0771] Subject: Server
[0772] The server uses Amazon SageMaker to analyze the user's past answer data and identify the user's weaknesses. Based on the identified weaknesses, new customized questions are generated, and the data is again processed within the server and sent to the device. In terms of operation, questions are automatically generated using a generative AI model based on the identified weakness information.
[0773] Step 7:
[0774] Providing customized questions
[0775] Subject: Terminal
[0776] The device provides the user with customized problems received from the server, and the user can use the feedback to address the problems to overcome identified weaknesses.
[0777] As a concrete example, if User A wants to learn Python as a "beginner," the system will execute a series of processes from Step 1 to Step 7 to provide User A with the optimal learning experience. An example of a prompt would be, "User A's skill level is beginner, and the learning language is Python. Please generate basic Python questions based on this user's learning history." Based on this prompt, the system makes full use of a generative AI model to provide User A with the optimal questions.
[0778] 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.
[0779] This invention combines an emotion engine with a fully automated programming school system to help users efficiently advance their programming studies. The system based on this invention automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system not only analyzes the user's weaknesses and suggests customized problems to overcome them, but also recognizes the user's emotions and optimizes the learning experience based on them.
[0780] System configuration
[0781] Server Roles
[0782] 1. Manage your user profile:
[0783] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[0784] 2. Automatic question generation:
[0785] The server automatically generates programming problems optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress.
[0786] 3. Evaluate answers and generate explanations:
[0787] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[0788] 4. Weakness analysis and customized problem provision:
[0789] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[0790] 5. User Emotion Recognition:
[0791] The server runs an emotion engine through facial recognition and voice analysis to identify the user's current emotional state, which is classified into multiple categories such as joy, anger, sadness, surprise, and fear.
[0792] 6. Optimizing the learning experience based on emotions:
[0793] The server dynamically adjusts the content and difficulty of the questions it provides based on the user's perceived emotional state, and also changes the way it presents explanations to match the user's emotions.
[0794] Device Role
[0795] 1. Providing a user interface:
[0796] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[0797] 2. Data transmission and reception:
[0798] The device sends the user's input data to the server and receives response data (questions, assessment results, explanations, emotional assessments, etc.) from the server and displays them to the user, allowing the user to have a seamless learning experience.
[0799] 3. Collecting Emotional Data:
[0800] The device uses a camera and microphone to capture the user's facial and voice data, which is then sent to a server for analysis of their emotional state.
[0801] User Roles
[0802] 1. Profile Settings:
[0803] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[0804] 2. Answer to the question:
[0805] The user inputs answers to the programming questions displayed on the terminal.
[0806] 3. Check the explanation:
[0807] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[0808] 4. Providing Emotion Data:
[0809] The user follows instructions from the device, uses the camera and microphone appropriately, and transmits their emotional state to the server.
[0810] Specific examples
[0811] 1. Setting up your user profile:
[0812] User B sets his skill level as "Intermediate" and inputs "JavaScript" as the language to learn. The device sends this information to the server, which stores it in a database.
[0813] 2. Automatic generation and provision of questions:
[0814] The server generates "intermediate JavaScript problems" based on User B's skill level and sends them to the device. The device displays the problems to User B.
[0815] 3. Question Answers and Evaluation:
[0816] User B enters the answer to the question, and the device sends the answer to the server, which evaluates the answer and generates a correct answer and detailed explanation, which are sent back to the device.
[0817] 4. Emotion recognition and learning experience optimization:
[0818] While User B is answering the questions, the device's camera and microphone collect data on User B's facial expressions and voice. The server uses an emotion engine to analyze User B's emotions and determines that he or she is "concentrating."
[0819] Based on the results of the sentiment analysis, the server decides to slightly increase the difficulty of the next question.
[0820] 5. Providing customized questions:
[0821] The server analyzes User B's weaknesses and generates a customized next question, allowing User B to effectively study to overcome their weaknesses.
[0822] In this way, the system based on the present invention provides a personalized learning experience that is tailored to the user's skill level and learning progress, and further takes into account the user's emotional state to maximize the effectiveness of learning.
[0823] The processing flow will be explained below.
[0824] Step 1:
[0825] When using the device for the first time, users input their skill level and the programming language they want to learn into the device. For example, they input "Intermediate" and "JavaScript."
[0826] Step 2:
[0827] The terminal transmits the information input by the user to the server, including the user's skill level and learning intention.
[0828] Step 3:
[0829] The server stores the received user information in a database, which allows the user profile to be managed.
[0830] Step 4:
[0831] When the user is ready to solve the next programming problem, he or she requests the problem be provided through the terminal.
[0832] Step 5:
[0833] The terminal forwards the user's request to the server, which includes the user ID.
[0834] Step 6:
[0835] The server queries the user's skill level and past learning history, and automatically generates appropriate programming questions based on that information.
[0836] Step 7:
[0837] The server transmits the generated programming questions to the terminal.
[0838] Step 8:
[0839] The terminal displays the received questions to the user, who then checks the presented questions.
[0840] Step 9:
[0841] The user inputs answers to the displayed questions.
[0842] Step 10:
[0843] The terminal transmits the user's answer to the server.
[0844] Step 11:
[0845] The server evaluates the received answers, determines whether they are correct or not, and automatically generates detailed explanations based on the evaluation results.
[0846] Step 12:
[0847] The server sends the evaluation results and explanations to the terminal.
[0848] Step 13:
[0849] The device displays the received evaluation results and explanations to the user, who then checks the explanations to deepen their understanding.
[0850] Step 14:
[0851] The server analyzes the user's answer data and identifies the user's weak points from the data.
[0852] Step 15:
[0853] Based on the identified weaknesses, the server prepares to generate customized questions for the next study.
[0854] Step 16:
[0855] The device uses a camera and microphone to collect the user's facial expression and voice data and transmits it to a server.
[0856] Step 17:
[0857] The server uses an emotion engine to recognize the user's emotional state, which is classified into categories such as "concentrated," "tired," and "excited."
[0858] Step 18:
[0859] The server dynamically adjusts the difficulty and content of the questions it provides based on the recognized emotion, and also changes the way it presents explanations according to the emotion.
[0860] Step 19:
[0861] The terminal will then present the adjusted questions again and the user can continue answering them.
[0862] Step 20:
[0863] Users continue to tackle new problems and learn, and by repeating this process, they can effectively improve their programming skills.
[0864] Example 2
[0865] 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."
[0866] Conventional programming learning systems have the problem that it is difficult to generate appropriate questions based on the user's skill level and past learning history, and they are also unable to optimize the system to reflect the user's learning progress and emotional state in real time. This makes it difficult for users to progress in their learning efficiently and effectively.
[0867] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[0868] In this invention, the server includes means for automatically generating programming problems based on the user's skill level and past learning history, means for evaluating the problems answered by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized problems to overcome those weaknesses, and means for recognizing the user's emotional state and optimizing the learning content based thereon. This makes it possible to improve the user's learning efficiency and provide an optimal learning experience according to the individual's learning progress and skill level.
[0869] "User" refers to an individual or organization that uses the system to learn programming.
[0870] "Skill level" refers to the user's level of programming knowledge and technical proficiency.
[0871] "Learning history" refers to the records and results of the programming learning a user has undertaken to date.
[0872] "Programming problems" refer to tasks that require users to create or modify computer programs to solve them.
[0873] "Solution" refers to the code or answer submitted by a user to a programming problem.
[0874] "Correctness determination" refers to the server determining whether the user's answer is correct or incorrect.
[0875] "Detailed explanations" refer to explanations provided based on the evaluation results of the user's answers, including reasons for correct and incorrect answers and areas for improvement.
[0876] "Weaknesses" refer to areas where the user is particularly lacking in understanding or mastery when learning programming.
[0877] "Customized problems" refer to programming problems that are specifically created to address a user's learning status, skill level, and particularly to address weaknesses.
[0878] "Emotional state" refers to the user's psychological state or mood during learning, including joy, anger, sadness, surprise, fear, etc.
[0879] "Emotion engine" refers to technology that recognizes a user's emotional state by analyzing facial and voice data.
[0880] "Optimization" refers to adjusting the content and difficulty of questions to make the user's learning experience more effective and efficient.
[0881] MODE FOR CARRYING OUT THE INVENTION
[0882] This invention combines an emotion engine with a fully automated programming school system that allows users to efficiently advance their programming studies. Now, we will explain how to put this invention into practice in concrete terms.
[0883] Hardware and software used
[0884] Server: Consists of a high-performance computer (including CPU, memory, and storage) with dedicated server software installed.
[0885] Device: A computing device used by a user, such as a PC, tablet, or smartphone.
[0886] Database: A database server that stores user profiles, learning history, etc.
[0887] Emotion engine: An AI engine with facial recognition and voice analysis functions.
[0888] Program processing
[0889] When a user first accesses the system, they enter their skill level and the programming language they want to learn. This information is sent from the device to the server, which then stores it in a database.
[0890] The server then automatically generates programming problems based on the user's saved profile and past learning history, optimized for the user's skill level, providing a challenge of the right difficulty level for the user.
[0891] The terminal displays the generated questions to the user, who then inputs the answers through the terminal. The answers are then sent back to the server, which determines whether the answers are correct or not. The server then automatically generates an evaluation result and detailed explanation of the answers and sends this information to the terminal.
[0892] The server then analyzes the user's answer history to identify their weaknesses. Customized programming questions are then generated for the next lesson to address those weaknesses. The device also uses a camera and microphone to collect data on the user's facial expressions and voice, and sends that data to the server.
[0893] The server runs an emotion engine to recognize the user's emotional state, which is classified as "joy," "anger," "sadness," "surprise," "fear," etc. Based on this recognition result, the server dynamically adjusts the content and difficulty of the questions provided, as well as the way explanations are presented, in order to optimize the user's learning experience.
[0894] Specific examples
[0895] 1. User profile settings:
[0896] User A accesses the system, sets his skill level as "Beginner" and enters "Python" as the learning language.
[0897] 2. Automatic generation of programming problems:
[0898] The server generates a "Basic Variable Manipulation in Python" problem based on User A's skill level and sends it to the terminal.
[0899] 3. Enter and evaluate your answers:
[0900] User A enters the answer to the question displayed on the terminal (e.g., "x = 5") and sends the answer to the server.
[0901] The server evaluates the answer and generates a detailed explanation such as "Correct. Assigning 5 to variable x is the correct operation." and sends it to the terminal.
[0902] 4. Emotion recognition and learning experience optimization:
[0903] The device's camera and microphone collect facial and voice data from user A and send it to the server.
[0904] The server uses an emotion engine to analyze User A's emotion as "concentrated."
[0905] The server will increase the difficulty of the next question slightly and change the explanation to a more concise form.
[0906] Prompt Sentence Examples
[0907] "Build a system that generates appropriate programming problems based on a specified skill level, and provides a rating and explanation for the user's answers. Additionally, include the ability to analyze the user's emotional state and optimize the learning experience accordingly."
[0908] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0909] Step 1:
[0910] A user accesses the system for the first time and enters their profile information.
[0911] Specifically, the user inputs their skill level (e.g., "Beginner") and language of study (e.g., "Python") into the device interface. The input data are the skill level and language of study.
[0912] Step 2:
[0913] The device transmits the entered profile information to the server.
[0914] The server stores the received profile information in a database. The input data is the user's profile information obtained in step 1, and the output is the profile information stored in the database.
[0915] Step 3:
[0916] The server retrieves the user profile and past learning history from the database.
[0917] Based on the user's profile and learning history, appropriate programming problems are automatically generated. The input data is the user's profile and learning history, and the output is the automatically generated programming problems.
[0918] Step 4:
[0919] The server sends the generated programming questions to the terminal.
[0920] The terminal displays the received programming problems to the user. The input data is the generated programming problem, and the output is the programming problem displayed on the terminal.
[0921] Step 5:
[0922] Users answer programming questions through their terminals.
[0923] The user inputs the answer and sends it to the terminal. The input data is the answer given by the user.
[0924] Step 6:
[0925] The device sends the user's answer to the server.
[0926] The server receives the answer and judges whether it is correct or not. The input data is the user's answer, and the output is the judgement result.
[0927] Step 7:
[0928] The server automatically generates an evaluation result of the answer and a detailed explanation.
[0929] The evaluation results include a correct / incorrect judgment, and the detailed explanation includes points for improving the correct and incorrect answers. The input data is the judgment result, and the output is the evaluation result and a detailed explanation.
[0930] Step 8:
[0931] The server sends the generated evaluation results and explanations to the terminal.
[0932] The terminal receives the evaluation results and explanations and displays them to the user. The input data are the evaluation results and detailed explanations, and the output is the evaluation results and explanations displayed on the terminal.
[0933] Step 9:
[0934] The device uses a camera and microphone to collect data on the user's facial expressions and voice.
[0935] The data collected is the user's facial expressions and voice.
[0936] Step 10:
[0937] The facial expression and voice data collected by the device is sent to a server.
[0938] The server runs an emotion engine to recognize the user's emotional state. The input data is the user's facial expression and voice data, and the output is the recognized emotional state.
[0939] Step 11:
[0940] The server optimizes the content and difficulty of the next question to be presented based on the recognized emotional state.
[0941] The input data are the emotional state and learning history, and the output is the next optimized programming problem provided.
[0942] Step 12:
[0943] The server sends the newly generated optimized programming problem to the terminal.
[0944] The terminal receives the problem and displays it to the user. The input data is the newly generated programming problem, and the output is the problem displayed on the terminal.
[0945] (Application example 2)
[0946] 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."
[0947] Conventional learning systems struggle to provide appropriate training scenarios based on the user's skill level and learning history. Furthermore, they often fail to optimize the learning experience by taking into account the user's emotional state, resulting in failure to maximize learning effectiveness. The objective of this invention is to develop a system that solves these problems and provides a more effective and personalized learning experience.
[0948] The specific processing by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for automatically generating training scenarios based on the user's skill level and past learning history, means for evaluating the training scenarios performed by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized training scenarios to overcome those weaknesses, and means for analyzing the user's emotional state and adjusting the difficulty level of the training scenarios based on the analysis results. This makes it possible to provide effective learning scenarios that meet the learning needs of each user.
[0949] "User" means an individual who uses the system to execute training scenarios and advance learning.
[0950] "Skill level" is an indicator that shows the user's level of proficiency in a particular skill or knowledge.
[0951] "Learning history" is a record of what a user has learned, the training scenarios they have performed, and their performance.
[0952] A "training scenario" is a set of specific challenges or tasks that users perform to learn a particular skill.
[0953] "Automatic generation" means that the system automatically creates training scenarios, explanatory text, etc. based on the user's conditions.
[0954] "Evaluation" refers to judging the accuracy and completeness of a user's answers and the results of the executed training scenarios.
[0955] "Correct or incorrect" refers to determining whether the user's answer or action is correct or incorrect.
[0956] "Explanation" is a detailed explanation provided to users on how to answer the training scenario and to deepen their understanding.
[0957] "Weaknesses" refer to areas where the user has difficulty or insufficient understanding.
[0958] "Customization" means adjusting the system's offerings to suit each user's specific conditions and needs.
[0959] "Emotional state" refers to the user's mental state or emotional expression, including joy, anger, sadness, surprise, and fear.
[0960] "Analysis" means that the system processes the data obtained from the user and extracts meaning and trends from it.
[0961] "Difficulty" is an index that indicates how difficult a training scenario is for the user.
[0962] This invention is a system that automatically generates training scenarios based on a user's skill level and past learning history, providing a customized learning experience.
[0963] Server Roles
[0964] Managing your user profile
[0965] The server stores profile information, such as skill level and desired skills, entered by the user when they first access the system in a database. This information is managed individually for each user.
[0966] Automatic generation of training scenarios
[0967] The server automatically generates training scenarios optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the training scenarios are dynamically adjusted and change according to the user's learning progress.
[0968] Evaluating answers and generating explanations
[0969] After the user completes the training scenario, the server receives the results and determines whether they were correct or incorrect. Based on the results, the server automatically generates detailed explanations to help the user deepen their understanding. The explanations include the correct answers, mistakes, and areas for improvement.
[0970] Weakness analysis and customized problem provision
[0971] The server analyzes the user's past performance data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized training scenarios to overcome those weaknesses in the next training session.
[0972] User emotion recognition
[0973] The server runs an emotion engine through facial recognition and voice analysis to identify the user's current emotional state, which is classified into multiple categories such as joy, anger, sadness, surprise, and fear.
[0974] Optimizing the learning experience based on emotions
[0975] The server dynamically adjusts the content and difficulty of the training scenarios it provides based on the user's perceived emotional state, and also adapts the way the explanations are presented to suit the user's emotions.
[0976] Device Role
[0977] Providing a user interface
[0978] The terminal provides the user with an interface for using the system, which serves as the means for the user to enter their profile, run training scenarios, and view commentary.
[0979] Sending and receiving data
[0980] The device sends the user's input data to the server and receives response data (training scenario, evaluation results, explanations, emotional evaluation, etc.) from the server and displays them to the user, allowing the user to have a seamless learning experience.
[0981] Collecting Emotional Data
[0982] The device uses a camera and microphone to capture the user's facial and voice data, which is then sent to a server for analysis of their emotional state.
[0983] User Roles
[0984] Profile Settings
[0985] When users start using the system, they input their skill level and the skills they want to learn. This information is used as the basis for providing optimal training scenarios.
[0986] Execution of training scenarios
[0987] The user executes the training scenario displayed on the terminal.
[0988] Check the explanation
[0989] Users can check the evaluation results and detailed explanations of their answers provided by the server, which will help them understand their mistakes and areas for improvement.
[0990] Providing emotion data
[0991] The user uses the device's camera and microphone appropriately to transmit their emotional state to the server.
[0992] Hardware and software used
[0993] The system is implemented using the following hardware and software:
[0994] Camera and microphone: Used to collect user emotional data.
[0995] Server: The central device that processes and analyzes data.
[0996] Terminal: Provides the user interface and sends and receives data.
[0997] Software Libraries: OpenCV (cv2 library) and scikit-learn are used for sentiment analysis.
[0998] Specific examples
[0999] If User B has intermediate-level JavaScript skills, the system automatically generates an "intermediate JavaScript training scenario" and displays it to User B. While User B is performing the scenario, the camera and microphone collect User B's facial expressions and voice, and the emotion engine determines that User B is "concentrated." As a result, the system presents the next training scenario with a slightly higher level of difficulty.
[1000] Prompt Sentence Examples
[1001] Examples of prompt sentences include the following:
[1002] Example prompt 1:
[1003] "User B's skill level is intermediate. Please suggest a customized learning schedule for JavaScript that they should master over the next six months."
[1004] Example prompt 2:
[1005] "Generate customized training scenarios to deliver to workers when they are under stress. Current training skill level is beginner."
[1006] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[1007] Step 1:
[1008] The server receives the user's initial profile data. The user inputs information about their skill level and the skills they want to learn through their device, which is then sent to the server. This information is saved in a database. This input data (user's skill level, skills they want to learn) is stored in the database and used to generate subsequent training scenarios.
[1009] Step 2:
[1010] The server automatically generates training scenarios based on the user's skill level and past learning history. Based on the saved user profile and historical data, an algorithm generates the optimal training scenario. The content and difficulty of this training scenario are dynamically adjusted according to the user's learning progress. The generated training scenario is sent to the device.
[1011] Step 3:
[1012] The user executes the training scenario displayed on the terminal. After the user completes the operation corresponding to the training scenario, the terminal sends the execution results to the server. This execution result (user operation data) is sent to the server and used for evaluation.
[1013] Step 4:
[1014] The server evaluates the received execution results and determines whether they are correct or incorrect. An internal algorithm analyzes the user's operation data, determines whether the operation was correct, and generates a result. This judgment result (correct or incorrect data) is sent back to the terminal along with detailed explanation data.
[1015] Step 5:
[1016] The user checks the evaluation results and detailed explanations from the server. The terminal displays this information, allowing the user to learn about their mistakes and areas for improvement. This feedback data (evaluation results and detailed explanations) is presented to the user.
[1017] Step 6:
[1018] The server analyzes the user's past execution data to identify weaknesses and generates customized training scenarios to overcome those weaknesses in the next learning session. It uses past operation data and evaluation results to identify appropriate improvement focus points and create new training scenarios. This customized training scenario is provided for the next execution.
[1019] Step 7:
[1020] The device uses a camera and microphone to collect the user's facial and voice data and sends it to an emotion recognition engine. The collected emotion data is sent to a server and used for emotion analysis. This input data (facial and voice data) is used as the basis for emotion analysis.
[1021] Step 8:
[1022] The server analyzes the user's emotional state using an emotion engine, which analyzes the collected facial and voice data to determine the user's current emotional state (e.g., joy, anger, sadness, surprise, fear, etc.).
[1023] Step 9:
[1024] The server dynamically adjusts the content and difficulty of the training scenarios provided based on the recognized emotional state. For example, if the user is determined to be "concentrated," the difficulty of the next training scenario will be slightly increased. This difficulty adjustment result (difficulty data) will be reflected in the next training scenario.
[1025] Step 10:
[1026] The device displays the newly adjusted training scenario to the user, who then executes the customized training scenario and the learning process begins again.
[1027] 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.
[1028] 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.
[1029] 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.
[1030] [Third embodiment]
[1031] FIG. 5 shows an example of the configuration of a data processing system 310 according to the third embodiment.
[1032] 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.
[1033] 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).
[1034] 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.
[1035] 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.
[1036] 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).
[1037] 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.
[1038] 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.
[1039] 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.
[1040] 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.
[1041] 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.
[1042] 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."
[1043] This invention provides a fully automated programming school system that allows users to efficiently advance their programming studies. The system automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system analyzes the user's weaknesses and suggests customized problems to help them overcome them.
[1044] System configuration
[1045] Server Roles
[1046] 1. Manage your user profile:
[1047] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[1048] 2. Automatic question generation:
[1049] The server automatically generates programming problems optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress.
[1050] 3. Evaluate answers and generate explanations:
[1051] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[1052] 4. Weakness analysis and customized problem provision:
[1053] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[1054] Device Role
[1055] 1. Providing a user interface:
[1056] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[1057] 2. Data transmission and reception:
[1058] The device sends the user's input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, allowing the user to have a seamless learning experience.
[1059] User Roles
[1060] 1. Profile Settings:
[1061] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[1062] 2. Answer to the question:
[1063] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[1064] 3. Check the explanation:
[1065] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[1066] Specific examples
[1067] 1. Setting up your user profile:
[1068] User A sets his skill level as "Beginner" and enters "Python" as the language to learn.
[1069] The terminal sends this information to the server, which stores it in a database.
[1070] 2. Automatic generation and provision of questions:
[1071] The server generates "basic Python questions" based on User A's skill level and sends them to the terminal.
[1072] The device displays the problem to User A.
[1073] 3. Question Answers and Evaluation:
[1074] User A enters the answer to the question, and the device sends the answer to the server.
[1075] The server evaluates the answers and generates the correct answers and detailed explanations, which are sent back to the device.
[1076] 4. Review the explanation and study next time:
[1077] User A checks the explanations displayed on the device and learns about incorrect answers and areas for improvement.
[1078] The server analyzes User A's answer data, identifies weak points, and prepares the next question based on those weak points.
[1079] In this way, the system based on the present invention provides a personalized learning experience according to the user's skill level and learning progress, supporting effective learning of programming.
[1080] The processing flow will be explained below.
[1081] Step 1:
[1082] When using the service for the first time, users input their skill level and the programming language they want to learn into the terminal. For example, they input "Beginner" and "Python."
[1083] Step 2:
[1084] The terminal transmits the information input by the user to the server, including the user's skill level and learning intention.
[1085] Step 3:
[1086] The server stores the received user information in a database, which allows the user profile to be managed.
[1087] Step 4:
[1088] When the user is ready to solve the next programming problem, he or she requests the problem be provided through the terminal.
[1089] Step 5:
[1090] The terminal forwards the user's request to the server, which includes the user ID.
[1091] Step 6:
[1092] The server queries the user's skill level and past learning history, and automatically generates appropriate programming questions based on that information.
[1093] Step 7:
[1094] The server transmits the generated programming questions to the terminal.
[1095] Step 8:
[1096] The terminal displays the received questions to the user, who then checks the presented questions.
[1097] Step 9:
[1098] The user inputs answers to the displayed questions.
[1099] Step 10:
[1100] The terminal transmits the user's answer to the server.
[1101] Step 11:
[1102] The server evaluates the received answers, determines whether they are correct or not, and automatically generates detailed explanations based on the evaluation results.
[1103] Step 12:
[1104] The server sends the evaluation results and explanations to the terminal.
[1105] Step 13:
[1106] The device displays the received evaluation results and explanations to the user, who then checks the explanations to deepen their understanding.
[1107] Step 14:
[1108] The server analyzes the user's answer data and identifies the user's weak points from the data.
[1109] Step 15:
[1110] Based on the identified weaknesses, the server prepares to generate customized questions for the next study.
[1111] Step 16:
[1112] After checking the explanations and evaluation results, users can move on to the problem-solving process again. By repeating this cycle, users can effectively learn programming.
[1113] Example 1
[1114] 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."
[1115] Conventional programming learning systems lacked sufficient individualized support based on the user's skill level and learning history, making it difficult to effectively support user growth. They also lacked the ability to provide detailed explanations of the user's answers or analyze their weaknesses to provide appropriate questions, making it difficult to achieve efficient learning. Furthermore, the lack of a means to input user profile information or an interface for sending and receiving data meant that the user's learning experience was not seamless.
[1116] 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.
[1117] In this invention, the server includes means for automatically generating questions based on the user's skill level and past learning history, means for evaluating the questions answered by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized questions to overcome those weaknesses, means for providing an interface for the user to input profile information, and means for transmitting and receiving user input data. This makes it possible to provide a personalized learning experience according to the user's skill level and learning progress, and to achieve effective programming learning.
[1118] "User" refers to an individual who uses the system to learn programming.
[1119] "Skill level" refers to an indicator that represents a user's programming ability and knowledge proficiency.
[1120] "Study history" refers to the records of the user's learning and answers to date.
[1121] "Means for automatically generating problems" refers to the function of dynamically creating optimal programming problems based on the user's skill level and past learning history.
[1122] "Means for determining correctness" refers to a function that evaluates whether a user's answer is correct or incorrect.
[1123] "Means for automatically generating detailed explanations" refers to a function that automatically creates explanations for a user's answers, including the correct answer, incorrect points, and areas for improvement.
[1124] "Means for analyzing weaknesses" refers to a function that analyzes a user's past answer data to identify areas or skills in which the user is weak.
[1125] "Means of providing customized solutions" refers to the ability to create and provide special problems to users to overcome their weaknesses.
[1126] "Profile information input interface" refers to the screens or forms used by users to input information such as their skill level or programming languages they wish to learn.
[1127] "Means for transmitting and receiving input data" refers to a communication function for transmitting data input by a user to a server and displaying response data from the server to the user.
[1128] This invention provides a fully automated programming school system that allows users to efficiently advance their programming studies. The system automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system analyzes the user's weaknesses and suggests customized problems to help them overcome them.
[1129] System configuration
[1130] Server Roles
[1131] 1. Manage your user profile:
[1132] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[1133] 2. Automatic question generation:
[1134] The server automatically generates programming problems optimized for each user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress. The server also uses a generative AI model to create problems that are individually optimized for each user.
[1135] 3. Evaluate answers and generate explanations:
[1136] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[1137] 4. Weakness analysis and customized problem provision:
[1138] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[1139] Device Role
[1140] 1. Providing a user interface:
[1141] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[1142] 2. Data transmission and reception:
[1143] The device sends the user's input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, allowing the user to have a seamless learning experience.
[1144] User Roles
[1145] 1. Profile Settings:
[1146] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[1147] 2. Answer to the question:
[1148] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[1149] 3. Check the explanation:
[1150] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[1151] Specific examples
[1152] 1. Setting up your user profile:
[1153] User A sets his skill level as "Beginner" and enters "Python" as the language to learn.
[1154] The terminal sends this information to the server, which stores it in a database.
[1155] 2. Automatic generation and provision of questions:
[1156] The server generates "basic Python questions" based on User A's skill level and sends them to the terminal.
[1157] The device displays the problem to User A.
[1158] 3. Question Answers and Evaluation:
[1159] User A enters the answer to the question, and the device sends the answer to the server.
[1160] The server evaluates the answers and generates the correct answers and detailed explanations, which are sent back to the device.
[1161] 4. Review the explanation and study next time:
[1162] User A checks the explanations displayed on the device and learns about incorrect answers and areas for improvement.
[1163] The server analyzes User A's answer data, identifies weak points, and prepares the next question based on those weak points.
[1164] Example prompts to input to the generative AI model
[1165] Here are some examples of prompts to input to a generative AI model:
[1166] plain
[1167] When a user first uses the system, how can I set their skill level (beginner) and the programming language they want to learn (Python) as input data? Also, can you provide an example program to save that information to a database?
[1168] In this way, the system provides a personalized learning experience that is tailored to the user's skill level and learning progress, supporting effective programming learning.
[1169] The flow of the identification process in the first embodiment will be described with reference to FIG.
[1170] Step 1:
[1171] Entering and saving your user profile
[1172] The user uses the device interface to input their skill level and the programming language they wish to learn. For example, the user might specify their skill level as "beginner" and the language they wish to learn as "Python." The device then sends this information to the server, which then stores it in a database. The server then accepts the input data and saves it in the database.
[1173] Input: User's skill level and programming language they want to learn
[1174] Data processing and calculation: Acceptance of input data and storage in database
[1175] Output: User profile information stored in a database
[1176] Step 2:
[1177] Automatic question generation
[1178] The server automatically generates programming problems optimized for the user's skill level based on the saved user profile information and learning history. Specifically, the server uses a generative AI model to create problems and dynamically adjusts the content and difficulty. The generated problems are then sent to the device.
[1179] Input: User profile information, learning history
[1180] Data processing and calculation: Creating questions using generative AI models and dynamically adjusting difficulty
[1181] Output: Generated programming problem
[1182] Step 3:
[1183] Presenting questions and entering answers
[1184] The terminal displays the programming problem received from the server to the user. For example, it displays "Write Python code to find the sum of the elements in the list [1, 2, 3]." The user enters the answer to the displayed problem, and the terminal sends the answer to the server.
[1185] Input: Programming questions from the server
[1186] Data processing and calculation: Displaying questions and inputting answers by users
[1187] Output: User's answer data
[1188] Step 4:
[1189] Submitting and grading answers
[1190] The device sends the answer entered by the user to the server. The server analyzes the received answer and determines whether it is correct. For example, the server checks that the answer should be "sum([1, 2, 3])" and determines whether the user's answer is correct. The evaluation results are stored in a database.
[1191] Input: User's answer data
[1192] Data processing and calculation: Analysis of answers and determination of correctness
[1193] Output: Evaluation results
[1194] Step 5:
[1195] Generate and display explanations
[1196] The server generates a detailed explanation based on the evaluation result, for example, "The correct answer is 6. Your answer is correct. This is the correct way to use the sum function." This explanation is sent from the server to the terminal, and the terminal displays it to the user.
[1197] Input: Evaluation result
[1198] Data processing and calculation: Automatic generation of detailed explanations
[1199] Output: Generated commentary, displayed to the user
[1200] Step 6:
[1201] Weakness analysis and customized problem provision
[1202] The server performs detailed analysis of the user's past answer data to identify the user's weaknesses. For example, if the user is identified as weak at loop processing, the server will use a generative AI model to create special problems to overcome the user's weaknesses. These new problems will be displayed on the device for the next learning session.
[1203] Input: User's past answer data
[1204] Data processing and calculation: Deeply analyze data, identify weaknesses, and create customized questions using generative AI models
[1205] Output: Customized next study question
[1206] (Application example 1)
[1207] 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."
[1208] Conventional programming learning systems struggle to provide customized problems based on a user's learning progress and weaknesses, preventing maximum learning effectiveness. Furthermore, they lacked the ability to dynamically deliver diverse content formats (video, text, interactive problems), preventing efficient learning that adapts to the user's learning style. Furthermore, they lacked the ability to provide real-time feedback using generative AI models, meaning users lost opportunities to quickly deepen their understanding. To solve these problems, it is necessary to provide effective problem generation based on the user's learning history, real-time feedback, and customized problems based on their weaknesses.
[1209] 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.
[1210] In this invention, the server includes: a means for automatically generating programming problems based on the user's skill level and past learning history; a means for evaluating the problems answered by the user and determining whether they are correct; a means for automatically generating detailed explanations for the user's answers; a means for dynamically delivering multiple content formats (video, text, interactive problems) according to the user's progress; a means for providing real-time feedback based on the evaluation results of the answers; and a means for utilizing a generative AI model to generate customized learning content based on identified weaknesses. This enables the provision of problems and content optimized for the user's learning progress, supporting efficient learning. Furthermore, real-time feedback provides users with opportunities to instantly deepen their understanding, maximizing the effectiveness of their learning.
[1211] "User skill level" is an indicator that shows the user's level of technical ability in learning programming.
[1212] "Past learning history" is information that indicates what the user has studied and the history of questions they have answered.
[1213] "Programming problems" are tasks that users can answer to improve their programming skills and knowledge.
[1214] "Automatic generation" is the process by which a system creates programming problems based on user information without manual intervention.
[1215] "Evaluation" means determining whether the programming questions answered by the user are correct or incorrect.
[1216] "Detailed explanation" refers to an explanation of the question the user answered, including the correct answer, incorrect answers, and areas for improvement.
[1217] "Weaknesses" refer to areas where the user has particularly poor understanding or makes many mistakes based on their past learning and answer history.
[1218] "Customized problems" are programming problems that are individually optimized according to the user's weaknesses and learning progress.
[1219] "Content format" refers to the way in which information necessary for learning programming is presented, such as through video, text, or interactive questions.
[1220] "Progress" is a status that indicates how far a user has progressed in learning programming.
[1221] "Dynamic delivery" means sending appropriate content in real time according to the user's progress and situation.
[1222] "Feedback" means immediately returning evaluation results and suggestions for improvement for the questions the user has answered.
[1223] A "generative AI model" is an artificial intelligence model that uses machine learning to generate new questions, explanations, etc. from data.
[1224] The system for realizing this invention is configured through the interaction of a server, a terminal, and a user.
[1225] Server Roles
[1226] 1. Managing your data:
[1227] The server stores the user's skill level and past learning history in a database and manages the user profile. The database used is Amazon RDS, and the interface is provided using Django.
[1228] 2. Automatic question generation:
[1229] The server generates appropriate programming problems based on the user's skill level and learning history, utilizing a generative AI model powered by Amazon SageMaker to automatically generate the most suitable problems for the user.
[1230] 3. Evaluate answers and provide feedback:
[1231] The server analyzes the content of the programming questions the user answers and judges whether they are correct or not. Based on the evaluation results, the server provides detailed explanations and real-time feedback.
[1232] 4. Weakness analysis and customized problem provision:
[1233] The server analyzes the user's past answer data to identify weaknesses, and then uses this information to generate customized questions to address those weaknesses and provide them to the user.
[1234] 5. Dynamic Delivery of Content Formats:
[1235] It dynamically delivers multiple content formats, including video, text, and interactive questions, depending on the user's progress, providing a learning experience optimized for the user's learning style.
[1236] Device Role
[1237] 1. Providing a user interface:
[1238] The terminal provides an interface for users to enter their profile and answer programming questions, using React Native and TypeScript as front-end technologies.
[1239] 2. Data transmission and reception:
[1240] It sends user input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, thereby providing a seamless learning experience.
[1241] User Roles
[1242] 1. Profile Settings:
[1243] When users start using the system, they input their skill level and the programming language they want to learn, which gives the server the basic data to provide the most suitable problems.
[1244] 2. Answer to the question:
[1245] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[1246] 3. Check the explanation:
[1247] Users can learn about their mistakes and areas for improvement by checking the evaluation results and detailed explanations of their answers provided by the server.
[1248] Specific examples
[1249] For example, if User A has beginner-level skills and wants to learn Python, he or she enters his or her skill level and the language he or she is learning when he or she first accesses the device. The device sends this information to the server, which stores the data in Amazon RDS. The server then uses Amazon SageMaker to generate basic Python questions and sends them to the device. When User A answers the questions, the answers are sent to the server, which generates evaluation results and detailed explanations. User A deepens his or her learning through real-time feedback, and the next questions are provided based on his or her progress.
[1250] Example prompt sentence:
[1251] User A's skill level is beginner, and the learning language is Python. Please generate basic Python questions based on this user's learning history.
[1252] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[1253] Step 1:
[1254] Setting up your user profile
[1255] Subject: User
[1256] When users first access the service, they enter information such as their skill level, the programming language they want to learn, and their learning goals. The entered data is sent from the device to the server, which receives the data and stores it appropriately in Amazon RDS. This information is used to automatically generate subsequent programming problems and provide customized problems.
[1257] Step 2:
[1258] Automatic question generation
[1259] Subject: Server
[1260] The server uses Amazon SageMaker to generate appropriate programming problems based on the received user profile and past learning history. The user's skill level and learning language are entered into the prompt, and a problem is generated using a generative AI model. The generated problem is constructed by the server and sent to the device. The data is then processed on the server to be formatted into the generated problem before being sent.
[1261] Step 3:
[1262] Providing a problem
[1263] Subject: Terminal
[1264] The terminal displays the programming problems received from the server to the user. The user inputs the answers to the displayed problems. The terminal then transmits the user's answers to the server.
[1265] Step 4:
[1266] Evaluating answers
[1267] Subject: Server
[1268] The server evaluates the received answers and determines whether they are correct. The determination is performed on the server, and an evaluation program references the user's answers and compares them with the correct answers. Based on this result, a detailed explanation is automatically generated. The evaluation results and explanation are sent from the server to the terminal.
[1269] Step 5:
[1270] Providing Feedback
[1271] Subject: Terminal
[1272] The device receives the evaluation results and detailed explanations from the server and displays them to the user, allowing the user to check whether their answers are correct and receive feedback to deepen their understanding.
[1273] Step 6:
[1274] Weakness analysis and customization problem generation
[1275] Subject: Server
[1276] The server uses Amazon SageMaker to analyze the user's past answer data and identify the user's weaknesses. Based on the identified weaknesses, new customized questions are generated, and the data is again processed within the server and sent to the device. In terms of operation, questions are automatically generated using a generative AI model based on the identified weakness information.
[1277] Step 7:
[1278] Providing customized questions
[1279] Subject: Terminal
[1280] The device provides the user with customized problems received from the server, and the user can use the feedback to address the problems to overcome identified weaknesses.
[1281] As a concrete example, if User A wants to learn Python as a "beginner," the system will execute a series of processes from Step 1 to Step 7 to provide User A with the optimal learning experience. An example of a prompt would be, "User A's skill level is beginner, and the learning language is Python. Please generate basic Python questions based on this user's learning history." Based on this prompt, the system makes full use of a generative AI model to provide User A with the optimal questions.
[1282] 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.
[1283] This invention combines an emotion engine with a fully automated programming school system to help users efficiently advance their programming studies. The system based on this invention automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system not only analyzes the user's weaknesses and suggests customized problems to overcome them, but also recognizes the user's emotions and optimizes the learning experience based on them.
[1284] System configuration
[1285] Server Roles
[1286] 1. Manage your user profile:
[1287] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[1288] 2. Automatic question generation:
[1289] The server automatically generates programming problems optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress.
[1290] 3. Evaluate answers and generate explanations:
[1291] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[1292] 4. Weakness analysis and customized problem provision:
[1293] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[1294] 5. User Emotion Recognition:
[1295] The server runs an emotion engine through facial recognition and voice analysis to identify the user's current emotional state, which is classified into multiple categories such as joy, anger, sadness, surprise, and fear.
[1296] 6. Optimizing the learning experience based on emotions:
[1297] The server dynamically adjusts the content and difficulty of the questions it provides based on the user's perceived emotional state, and also changes the way it presents explanations to match the user's emotions.
[1298] Device Role
[1299] 1. Providing a user interface:
[1300] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[1301] 2. Data transmission and reception:
[1302] The device sends the user's input data to the server and receives response data (questions, assessment results, explanations, emotional assessments, etc.) from the server and displays them to the user, allowing the user to have a seamless learning experience.
[1303] 3. Collecting Emotional Data:
[1304] The device uses a camera and microphone to capture the user's facial and voice data, which is then sent to a server for analysis of their emotional state.
[1305] User Roles
[1306] 1. Profile Settings:
[1307] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[1308] 2. Answer to the question:
[1309] The user inputs answers to the programming questions displayed on the terminal.
[1310] 3. Check the explanation:
[1311] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[1312] 4. Providing Emotion Data:
[1313] The user follows instructions from the device, uses the camera and microphone appropriately, and transmits their emotional state to the server.
[1314] Specific examples
[1315] 1. Setting up your user profile:
[1316] User B sets his skill level as "Intermediate" and inputs "JavaScript" as the language to learn. The device sends this information to the server, which stores it in a database.
[1317] 2. Automatic generation and provision of questions:
[1318] The server generates "intermediate JavaScript problems" based on User B's skill level and sends them to the device. The device displays the problems to User B.
[1319] 3. Question Answers and Evaluation:
[1320] User B enters the answer to the question, and the device sends the answer to the server, which evaluates the answer and generates a correct answer and detailed explanation, which are sent back to the device.
[1321] 4. Emotion recognition and learning experience optimization:
[1322] While User B is answering the questions, the device's camera and microphone collect data on User B's facial expressions and voice. The server uses an emotion engine to analyze User B's emotions and determines that he or she is "concentrating."
[1323] Based on the results of the sentiment analysis, the server decides to slightly increase the difficulty of the next question.
[1324] 5. Providing customized questions:
[1325] The server analyzes User B's weaknesses and generates a customized next question, allowing User B to effectively study to overcome their weaknesses.
[1326] In this way, the system based on the present invention provides a personalized learning experience that is tailored to the user's skill level and learning progress, and further takes into account the user's emotional state to maximize the effectiveness of learning.
[1327] The processing flow will be explained below.
[1328] Step 1:
[1329] When using the device for the first time, users input their skill level and the programming language they want to learn into the device. For example, they input "Intermediate" and "JavaScript."
[1330] Step 2:
[1331] The terminal transmits the information input by the user to the server, including the user's skill level and learning intention.
[1332] Step 3:
[1333] The server stores the received user information in a database, which allows the user profile to be managed.
[1334] Step 4:
[1335] When the user is ready to solve the next programming problem, he or she requests the problem be provided through the terminal.
[1336] Step 5:
[1337] The terminal forwards the user's request to the server, which includes the user ID.
[1338] Step 6:
[1339] The server queries the user's skill level and past learning history, and automatically generates appropriate programming questions based on that information.
[1340] Step 7:
[1341] The server transmits the generated programming questions to the terminal.
[1342] Step 8:
[1343] The terminal displays the received questions to the user, who then checks the presented questions.
[1344] Step 9:
[1345] The user inputs answers to the displayed questions.
[1346] Step 10:
[1347] The terminal transmits the user's answer to the server.
[1348] Step 11:
[1349] The server evaluates the received answers, determines whether they are correct or not, and automatically generates detailed explanations based on the evaluation results.
[1350] Step 12:
[1351] The server sends the evaluation results and explanations to the terminal.
[1352] Step 13:
[1353] The device displays the received evaluation results and explanations to the user, who then checks the explanations to deepen their understanding.
[1354] Step 14:
[1355] The server analyzes the user's answer data and identifies the user's weak points from the data.
[1356] Step 15:
[1357] Based on the identified weaknesses, the server prepares to generate customized questions for the next study.
[1358] Step 16:
[1359] The device uses a camera and microphone to collect the user's facial expression and voice data and transmits it to a server.
[1360] Step 17:
[1361] The server uses an emotion engine to recognize the user's emotional state, which is classified into categories such as "concentrated," "tired," and "excited."
[1362] Step 18:
[1363] The server dynamically adjusts the difficulty and content of the questions it provides based on the recognized emotion, and also changes the way it presents explanations according to the emotion.
[1364] Step 19:
[1365] The terminal will then present the adjusted questions again and the user can continue answering them.
[1366] Step 20:
[1367] Users continue to tackle new problems and learn, and by repeating this process, they can effectively improve their programming skills.
[1368] Example 2
[1369] 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."
[1370] Conventional programming learning systems have the problem that it is difficult to generate appropriate questions based on the user's skill level and past learning history, and they are also unable to optimize the system to reflect the user's learning progress and emotional state in real time. This makes it difficult for users to progress in their learning efficiently and effectively.
[1371] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[1372] In this invention, the server includes means for automatically generating programming problems based on the user's skill level and past learning history, means for evaluating the problems answered by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized problems to overcome those weaknesses, and means for recognizing the user's emotional state and optimizing the learning content based thereon. This makes it possible to improve the user's learning efficiency and provide an optimal learning experience according to the individual's learning progress and skill level.
[1373] "User" refers to an individual or organization that uses the system to learn programming.
[1374] "Skill level" refers to the user's level of programming knowledge and technical proficiency.
[1375] "Learning history" refers to the records and results of the programming learning a user has undertaken to date.
[1376] "Programming problems" refer to tasks that require users to create or modify computer programs to solve them.
[1377] "Solution" refers to the code or answer submitted by a user to a programming problem.
[1378] "Correctness determination" refers to the server determining whether the user's answer is correct or incorrect.
[1379] "Detailed explanations" refer to explanations provided based on the evaluation results of the user's answers, including reasons for correct and incorrect answers and areas for improvement.
[1380] "Weaknesses" refer to areas where the user is particularly lacking in understanding or mastery when learning programming.
[1381] "Customized problems" refer to programming problems that are specifically created to address a user's learning status, skill level, and particularly to address weaknesses.
[1382] "Emotional state" refers to the user's psychological state or mood during learning, including joy, anger, sadness, surprise, fear, etc.
[1383] "Emotion engine" refers to technology that recognizes a user's emotional state by analyzing facial and voice data.
[1384] "Optimization" refers to adjusting the content and difficulty of questions to make the user's learning experience more effective and efficient.
[1385] MODE FOR CARRYING OUT THE INVENTION
[1386] This invention combines an emotion engine with a fully automated programming school system that allows users to efficiently advance their programming studies. Now, we will explain how to put this invention into practice in concrete terms.
[1387] Hardware and software used
[1388] Server: Consists of a high-performance computer (including CPU, memory, and storage) with dedicated server software installed.
[1389] Device: A computing device used by a user, such as a PC, tablet, or smartphone.
[1390] Database: A database server that stores user profiles, learning history, etc.
[1391] Emotion engine: An AI engine with facial recognition and voice analysis functions.
[1392] Program processing
[1393] When a user first accesses the system, they enter their skill level and the programming language they want to learn. This information is sent from the device to the server, which then stores it in a database.
[1394] The server then automatically generates programming problems based on the user's saved profile and past learning history, optimized for the user's skill level, providing a challenge of the right difficulty level for the user.
[1395] The terminal displays the generated questions to the user, who then inputs the answers through the terminal. The answers are then sent back to the server, which determines whether the answers are correct or not. The server then automatically generates an evaluation result and detailed explanation of the answers and sends this information to the terminal.
[1396] The server then analyzes the user's answer history to identify their weaknesses. Customized programming questions are then generated for the next lesson to address those weaknesses. The device also uses a camera and microphone to collect data on the user's facial expressions and voice, and sends that data to the server.
[1397] The server runs an emotion engine to recognize the user's emotional state, which is classified as "joy," "anger," "sadness," "surprise," "fear," etc. Based on this recognition result, the server dynamically adjusts the content and difficulty of the questions provided, as well as the way explanations are presented, in order to optimize the user's learning experience.
[1398] Specific examples
[1399] 1. User profile settings:
[1400] User A accesses the system, sets his skill level as "Beginner" and enters "Python" as the learning language.
[1401] 2. Automatic generation of programming problems:
[1402] The server generates a "Basic Variable Manipulation in Python" problem based on User A's skill level and sends it to the terminal.
[1403] 3. Enter and evaluate your answers:
[1404] User A enters the answer to the question displayed on the terminal (e.g., "x = 5") and sends the answer to the server.
[1405] The server evaluates the answer and generates a detailed explanation such as "Correct. Assigning 5 to variable x is the correct operation." and sends it to the terminal.
[1406] 4. Emotion recognition and learning experience optimization:
[1407] The device's camera and microphone collect facial and voice data from user A and send it to the server.
[1408] The server uses an emotion engine to analyze User A's emotion as "concentrated."
[1409] The server will increase the difficulty of the next question slightly and change the explanation to a more concise form.
[1410] Prompt Sentence Examples
[1411] "Build a system that generates appropriate programming problems based on a specified skill level, and provides a rating and explanation for the user's answers. Additionally, include the ability to analyze the user's emotional state and optimize the learning experience accordingly."
[1412] The flow of the identification process in the second embodiment will be described with reference to FIG.
[1413] Step 1:
[1414] A user accesses the system for the first time and enters their profile information.
[1415] Specifically, the user inputs their skill level (e.g., "Beginner") and language of study (e.g., "Python") into the device interface. The input data are the skill level and language of study.
[1416] Step 2:
[1417] The device transmits the entered profile information to the server.
[1418] The server stores the received profile information in a database. The input data is the user's profile information obtained in step 1, and the output is the profile information stored in the database.
[1419] Step 3:
[1420] The server retrieves the user profile and past learning history from the database.
[1421] Based on the user's profile and learning history, appropriate programming problems are automatically generated. The input data is the user's profile and learning history, and the output is the automatically generated programming problems.
[1422] Step 4:
[1423] The server sends the generated programming questions to the terminal.
[1424] The terminal displays the received programming problems to the user. The input data is the generated programming problem, and the output is the programming problem displayed on the terminal.
[1425] Step 5:
[1426] Users answer programming questions through their terminals.
[1427] The user inputs the answer and sends it to the terminal. The input data is the answer given by the user.
[1428] Step 6:
[1429] The device sends the user's answer to the server.
[1430] The server receives the answer and judges whether it is correct or not. The input data is the user's answer, and the output is the judgement result.
[1431] Step 7:
[1432] The server automatically generates an evaluation result of the answer and a detailed explanation.
[1433] The evaluation results include a correct / incorrect judgment, and the detailed explanation includes points for improving the correct and incorrect answers. The input data is the judgment result, and the output is the evaluation result and a detailed explanation.
[1434] Step 8:
[1435] The server sends the generated evaluation results and explanations to the terminal.
[1436] The terminal receives the evaluation results and explanations and displays them to the user. The input data are the evaluation results and detailed explanations, and the output is the evaluation results and explanations displayed on the terminal.
[1437] Step 9:
[1438] The device uses a camera and microphone to collect data on the user's facial expressions and voice.
[1439] The data collected is the user's facial expressions and voice.
[1440] Step 10:
[1441] The facial expression and voice data collected by the device is sent to a server.
[1442] The server runs an emotion engine to recognize the user's emotional state. The input data is the user's facial expression and voice data, and the output is the recognized emotional state.
[1443] Step 11:
[1444] The server optimizes the content and difficulty of the next question to be presented based on the recognized emotional state.
[1445] The input data are the emotional state and learning history, and the output is the next optimized programming problem provided.
[1446] Step 12:
[1447] The server sends the newly generated optimized programming problem to the terminal.
[1448] The terminal receives the problem and displays it to the user. The input data is the newly generated programming problem, and the output is the problem displayed on the terminal.
[1449] (Application example 2)
[1450] 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."
[1451] Conventional learning systems struggle to provide appropriate training scenarios based on the user's skill level and learning history. Furthermore, they often fail to optimize the learning experience by taking into account the user's emotional state, resulting in failure to maximize learning effectiveness. The objective of this invention is to develop a system that solves these problems and provides a more effective and personalized learning experience.
[1452] The specific processing by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for automatically generating training scenarios based on the user's skill level and past learning history, means for evaluating the training scenarios performed by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized training scenarios to overcome those weaknesses, and means for analyzing the user's emotional state and adjusting the difficulty level of the training scenarios based on the analysis results. This makes it possible to provide effective learning scenarios that meet the learning needs of each user.
[1453] "User" means an individual who uses the system to execute training scenarios and advance learning.
[1454] "Skill level" is an indicator that shows the user's level of proficiency in a particular skill or knowledge.
[1455] "Learning history" is a record of what a user has learned, the training scenarios they have performed, and their performance.
[1456] A "training scenario" is a set of specific challenges or tasks that users perform to learn a particular skill.
[1457] "Automatic generation" means that the system automatically creates training scenarios, explanatory text, etc. based on the user's conditions.
[1458] "Evaluation" refers to judging the accuracy and completeness of a user's answers and the results of the executed training scenarios.
[1459] "Correct or incorrect" refers to determining whether the user's answer or action is correct or incorrect.
[1460] "Explanation" is a detailed explanation provided to users on how to answer the training scenario and to deepen their understanding.
[1461] "Weaknesses" refer to areas where the user has difficulty or insufficient understanding.
[1462] "Customization" means adjusting the system's offerings to suit each user's specific conditions and needs.
[1463] "Emotional state" refers to the user's mental state or emotional expression, including joy, anger, sadness, surprise, and fear.
[1464] "Analysis" means that the system processes the data obtained from the user and extracts meaning and trends from it.
[1465] "Difficulty" is an index that indicates how difficult a training scenario is for the user.
[1466] This invention is a system that automatically generates training scenarios based on a user's skill level and past learning history, providing a customized learning experience.
[1467] Server Roles
[1468] Managing your user profile
[1469] The server stores profile information, such as skill level and desired skills, entered by the user when they first access the system in a database. This information is managed individually for each user.
[1470] Automatic generation of training scenarios
[1471] The server automatically generates training scenarios optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the training scenarios are dynamically adjusted and change according to the user's learning progress.
[1472] Evaluating answers and generating explanations
[1473] After the user completes the training scenario, the server receives the results and determines whether they were correct or incorrect. Based on the results, the server automatically generates detailed explanations to help the user deepen their understanding. The explanations include the correct answers, mistakes, and areas for improvement.
[1474] Weakness analysis and customized problem provision
[1475] The server analyzes the user's past performance data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized training scenarios to overcome those weaknesses in the next training session.
[1476] User emotion recognition
[1477] The server runs an emotion engine through facial recognition and voice analysis to identify the user's current emotional state, which is classified into multiple categories such as joy, anger, sadness, surprise, and fear.
[1478] Optimizing the learning experience based on emotions
[1479] The server dynamically adjusts the content and difficulty of the training scenarios it provides based on the user's perceived emotional state, and also adapts the way the explanations are presented to suit the user's emotions.
[1480] Device Role
[1481] Providing a user interface
[1482] The terminal provides the user with an interface for using the system, which serves as the means for the user to enter their profile, run training scenarios, and view commentary.
[1483] Sending and receiving data
[1484] The device sends the user's input data to the server and receives response data (training scenario, evaluation results, explanations, emotional evaluation, etc.) from the server and displays them to the user, allowing the user to have a seamless learning experience.
[1485] Collecting Emotional Data
[1486] The device uses a camera and microphone to capture the user's facial and voice data, which is then sent to a server for analysis of their emotional state.
[1487] User Roles
[1488] Profile Settings
[1489] When users start using the system, they input their skill level and the skills they want to learn. This information is used as the basis for providing optimal training scenarios.
[1490] Execution of training scenarios
[1491] The user executes the training scenario displayed on the terminal.
[1492] Check the explanation
[1493] Users can check the evaluation results and detailed explanations of their answers provided by the server, which will help them understand their mistakes and areas for improvement.
[1494] Providing emotion data
[1495] The user uses the device's camera and microphone appropriately to transmit their emotional state to the server.
[1496] Hardware and software used
[1497] The system is implemented using the following hardware and software:
[1498] Camera and microphone: Used to collect user emotional data.
[1499] Server: The central device that processes and analyzes data.
[1500] Terminal: Provides the user interface and sends and receives data.
[1501] Software Libraries: OpenCV (cv2 library) and scikit-learn are used for sentiment analysis.
[1502] Specific examples
[1503] If User B has intermediate-level JavaScript skills, the system automatically generates an "intermediate JavaScript training scenario" and displays it to User B. While User B is performing the scenario, the camera and microphone collect User B's facial expressions and voice, and the emotion engine determines that User B is "concentrated." As a result, the system presents the next training scenario with a slightly higher level of difficulty.
[1504] Prompt Sentence Examples
[1505] Examples of prompt sentences include the following:
[1506] Example prompt 1:
[1507] "User B's skill level is intermediate. Please suggest a customized learning schedule for JavaScript that they should master over the next six months."
[1508] Example prompt 2:
[1509] "Generate customized training scenarios to deliver to workers when they are under stress. Current training skill level is beginner."
[1510] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[1511] Step 1:
[1512] The server receives the user's initial profile data. The user inputs information about their skill level and the skills they want to learn through their device, which is then sent to the server. This information is saved in a database. This input data (user's skill level, skills they want to learn) is stored in the database and used to generate subsequent training scenarios.
[1513] Step 2:
[1514] The server automatically generates training scenarios based on the user's skill level and past learning history. Based on the saved user profile and historical data, an algorithm generates the optimal training scenario. The content and difficulty of this training scenario are dynamically adjusted according to the user's learning progress. The generated training scenario is sent to the device.
[1515] Step 3:
[1516] The user executes the training scenario displayed on the terminal. After the user completes the operation corresponding to the training scenario, the terminal sends the execution results to the server. This execution result (user operation data) is sent to the server and used for evaluation.
[1517] Step 4:
[1518] The server evaluates the received execution results and determines whether they are correct or incorrect. An internal algorithm analyzes the user's operation data, determines whether the operation was correct, and generates a result. This judgment result (correct or incorrect data) is sent back to the terminal along with detailed explanation data.
[1519] Step 5:
[1520] The user checks the evaluation results and detailed explanations from the server. The terminal displays this information, allowing the user to learn about their mistakes and areas for improvement. This feedback data (evaluation results and detailed explanations) is presented to the user.
[1521] Step 6:
[1522] The server analyzes the user's past execution data to identify weaknesses and generates customized training scenarios to overcome those weaknesses in the next learning session. It uses past operation data and evaluation results to identify appropriate improvement focus points and create new training scenarios. This customized training scenario is provided for the next execution.
[1523] Step 7:
[1524] The device uses a camera and microphone to collect the user's facial and voice data and sends it to an emotion recognition engine. The collected emotion data is sent to a server and used for emotion analysis. This input data (facial and voice data) is used as the basis for emotion analysis.
[1525] Step 8:
[1526] The server analyzes the user's emotional state using an emotion engine, which analyzes the collected facial and voice data to determine the user's current emotional state (e.g., joy, anger, sadness, surprise, fear, etc.).
[1527] Step 9:
[1528] The server dynamically adjusts the content and difficulty of the training scenarios provided based on the recognized emotional state. For example, if the user is determined to be "concentrated," the difficulty of the next training scenario will be slightly increased. This difficulty adjustment result (difficulty data) will be reflected in the next training scenario.
[1529] Step 10:
[1530] The device displays the newly adjusted training scenario to the user, who then executes the customized training scenario and the learning process begins again.
[1531] 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.
[1532] 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.
[1533] 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.
[1534] [Fourth embodiment]
[1535] FIG. 7 shows an example of the configuration of a data processing system 410 according to the fourth embodiment.
[1536] 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.
[1537] 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).
[1538] 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.
[1539] 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.
[1540] 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).
[1541] 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.
[1542] 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.
[1543] 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.
[1544] 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.
[1545] 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.
[1546] 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.
[1547] 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."
[1548] This invention provides a fully automated programming school system that allows users to efficiently advance their programming studies. The system automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system analyzes the user's weaknesses and suggests customized problems to help them overcome them.
[1549] System configuration
[1550] Server Roles
[1551] 1. Manage your user profile:
[1552] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[1553] 2. Automatic question generation:
[1554] The server automatically generates programming problems optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress.
[1555] 3. Evaluate answers and generate explanations:
[1556] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[1557] 4. Weakness analysis and customized problem provision:
[1558] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[1559] Device Role
[1560] 1. Providing a user interface:
[1561] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[1562] 2. Data transmission and reception:
[1563] The device sends the user's input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, allowing the user to have a seamless learning experience.
[1564] User Roles
[1565] 1. Profile Settings:
[1566] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[1567] 2. Answer to the question:
[1568] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[1569] 3. Check the explanation:
[1570] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[1571] Specific examples
[1572] 1. Setting up your user profile:
[1573] User A sets his skill level as "Beginner" and enters "Python" as the language to learn.
[1574] The terminal sends this information to the server, which stores it in a database.
[1575] 2. Automatic generation and provision of questions:
[1576] The server generates "basic Python questions" based on User A's skill level and sends them to the terminal.
[1577] The device displays the problem to User A.
[1578] 3. Question Answers and Evaluation:
[1579] User A enters the answer to the question, and the device sends the answer to the server.
[1580] The server evaluates the answers and generates the correct answers and detailed explanations, which are sent back to the device.
[1581] 4. Review the explanation and study next time:
[1582] User A checks the explanations displayed on the device and learns about incorrect answers and areas for improvement.
[1583] The server analyzes User A's answer data, identifies weak points, and prepares the next question based on those weak points.
[1584] In this way, the system based on the present invention provides a personalized learning experience according to the user's skill level and learning progress, supporting effective learning of programming.
[1585] The processing flow will be explained below.
[1586] Step 1:
[1587] When using the service for the first time, users input their skill level and the programming language they want to learn into the terminal. For example, they input "Beginner" and "Python."
[1588] Step 2:
[1589] The terminal transmits the information input by the user to the server, including the user's skill level and learning intention.
[1590] Step 3:
[1591] The server stores the received user information in a database, which allows the user profile to be managed.
[1592] Step 4:
[1593] When the user is ready to solve the next programming problem, he or she requests the problem be provided through the terminal.
[1594] Step 5:
[1595] The terminal forwards the user's request to the server, which includes the user ID.
[1596] Step 6:
[1597] The server queries the user's skill level and past learning history, and automatically generates appropriate programming questions based on that information.
[1598] Step 7:
[1599] The server transmits the generated programming questions to the terminal.
[1600] Step 8:
[1601] The terminal displays the received questions to the user, who then checks the presented questions.
[1602] Step 9:
[1603] The user inputs answers to the displayed questions.
[1604] Step 10:
[1605] The terminal transmits the user's answer to the server.
[1606] Step 11:
[1607] The server evaluates the received answers, determines whether they are correct or not, and automatically generates detailed explanations based on the evaluation results.
[1608] Step 12:
[1609] The server sends the evaluation results and explanations to the terminal.
[1610] Step 13:
[1611] The device displays the received evaluation results and explanations to the user, who then checks the explanations to deepen their understanding.
[1612] Step 14:
[1613] The server analyzes the user's answer data and identifies the user's weak points from the data.
[1614] Step 15:
[1615] Based on the identified weaknesses, the server prepares to generate customized questions for the next study.
[1616] Step 16:
[1617] After checking the explanations and evaluation results, users can move on to the problem-solving process again. By repeating this cycle, users can effectively learn programming.
[1618] Example 1
[1619] 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."
[1620] Conventional programming learning systems lacked sufficient individualized support based on the user's skill level and learning history, making it difficult to effectively support user growth. They also lacked the ability to provide detailed explanations of the user's answers or analyze their weaknesses to provide appropriate questions, making it difficult to achieve efficient learning. Furthermore, the lack of a means to input user profile information or an interface for sending and receiving data meant that the user's learning experience was not seamless.
[1621] 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.
[1622] In this invention, the server includes means for automatically generating questions based on the user's skill level and past learning history, means for evaluating the questions answered by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized questions to overcome those weaknesses, means for providing an interface for the user to input profile information, and means for transmitting and receiving user input data. This makes it possible to provide a personalized learning experience according to the user's skill level and learning progress, and to achieve effective programming learning.
[1623] "User" refers to an individual who uses the system to learn programming.
[1624] "Skill level" refers to an indicator that represents a user's programming ability and knowledge proficiency.
[1625] "Study history" refers to the records of the user's learning and answers to date.
[1626] "Means for automatically generating problems" refers to the function of dynamically creating optimal programming problems based on the user's skill level and past learning history.
[1627] "Means for determining correctness" refers to a function that evaluates whether a user's answer is correct or incorrect.
[1628] "Means for automatically generating detailed explanations" refers to a function that automatically creates explanations for a user's answers, including the correct answer, incorrect points, and areas for improvement.
[1629] "Means for analyzing weaknesses" refers to a function that analyzes a user's past answer data to identify areas or skills in which the user is weak.
[1630] "Means of providing customized solutions" refers to the ability to create and provide special problems to users to overcome their weaknesses.
[1631] "Profile information input interface" refers to the screens or forms used by users to input information such as their skill level or programming languages they wish to learn.
[1632] "Means for transmitting and receiving input data" refers to a communication function for transmitting data input by a user to a server and displaying response data from the server to the user.
[1633] This invention provides a fully automated programming school system that allows users to efficiently advance their programming studies. The system automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system analyzes the user's weaknesses and suggests customized problems to help them overcome them.
[1634] System configuration
[1635] Server Roles
[1636] 1. Manage your user profile:
[1637] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[1638] 2. Automatic question generation:
[1639] The server automatically generates programming problems optimized for each user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress. The server also uses a generative AI model to create problems that are individually optimized for each user.
[1640] 3. Evaluate answers and generate explanations:
[1641] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[1642] 4. Weakness analysis and customized problem provision:
[1643] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[1644] Device Role
[1645] 1. Providing a user interface:
[1646] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[1647] 2. Data transmission and reception:
[1648] The device sends the user's input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, allowing the user to have a seamless learning experience.
[1649] User Roles
[1650] 1. Profile Settings:
[1651] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[1652] 2. Answer to the question:
[1653] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[1654] 3. Check the explanation:
[1655] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[1656] Specific examples
[1657] 1. Setting up your user profile:
[1658] User A sets his skill level as "Beginner" and enters "Python" as the language to learn.
[1659] The terminal sends this information to the server, which stores it in a database.
[1660] 2. Automatic generation and provision of questions:
[1661] The server generates "basic Python questions" based on User A's skill level and sends them to the terminal.
[1662] The device displays the problem to User A.
[1663] 3. Question Answers and Evaluation:
[1664] User A enters the answer to the question, and the device sends the answer to the server.
[1665] The server evaluates the answers and generates the correct answers and detailed explanations, which are sent back to the device.
[1666] 4. Review the explanation and study next time:
[1667] User A checks the explanations displayed on the device and learns about incorrect answers and areas for improvement.
[1668] The server analyzes User A's answer data, identifies weak points, and prepares the next question based on those weak points.
[1669] Example prompts to input to the generative AI model
[1670] Here are some examples of prompts to input to a generative AI model:
[1671] plain
[1672] When a user first uses the system, how can I set their skill level (beginner) and the programming language they want to learn (Python) as input data? Also, can you provide an example program to save that information to a database?
[1673] In this way, the system provides a personalized learning experience that is tailored to the user's skill level and learning progress, supporting effective programming learning.
[1674] The flow of the identification process in the first embodiment will be described with reference to FIG.
[1675] Step 1:
[1676] Entering and saving your user profile
[1677] The user uses the device interface to input their skill level and the programming language they wish to learn. For example, the user might specify their skill level as "beginner" and the language they wish to learn as "Python." The device then sends this information to the server, which then stores it in a database. The server then accepts the input data and saves it in the database.
[1678] Input: User's skill level and programming language they want to learn
[1679] Data processing and calculation: Acceptance of input data and storage in database
[1680] Output: User profile information stored in a database
[1681] Step 2:
[1682] Automatic question generation
[1683] The server automatically generates programming problems optimized for the user's skill level based on the saved user profile information and learning history. Specifically, the server uses a generative AI model to create problems and dynamically adjusts the content and difficulty. The generated problems are then sent to the device.
[1684] Input: User profile information, learning history
[1685] Data processing and calculation: Creating questions using generative AI models and dynamically adjusting difficulty
[1686] Output: Generated programming problem
[1687] Step 3:
[1688] Presenting questions and entering answers
[1689] The terminal displays the programming problem received from the server to the user. For example, it displays "Write Python code to find the sum of the elements in the list [1, 2, 3]." The user enters the answer to the displayed problem, and the terminal sends the answer to the server.
[1690] Input: Programming questions from the server
[1691] Data processing and calculation: Displaying questions and inputting answers by users
[1692] Output: User's answer data
[1693] Step 4:
[1694] Submitting and grading answers
[1695] The device sends the answer entered by the user to the server. The server analyzes the received answer and determines whether it is correct. For example, the server checks that the answer should be "sum([1, 2, 3])" and determines whether the user's answer is correct. The evaluation results are stored in a database.
[1696] Input: User's answer data
[1697] Data processing and calculation: Analysis of answers and determination of correctness
[1698] Output: Evaluation results
[1699] Step 5:
[1700] Generate and display explanations
[1701] The server generates a detailed explanation based on the evaluation result, for example, "The correct answer is 6. Your answer is correct. This is the correct way to use the sum function." This explanation is sent from the server to the terminal, and the terminal displays it to the user.
[1702] Input: Evaluation result
[1703] Data processing and calculation: Automatic generation of detailed explanations
[1704] Output: Generated commentary, displayed to the user
[1705] Step 6:
[1706] Weakness analysis and customized problem provision
[1707] The server performs detailed analysis of the user's past answer data to identify the user's weaknesses. For example, if the user is identified as weak at loop processing, the server will use a generative AI model to create special problems to overcome the user's weaknesses. These new problems will be displayed on the device for the next learning session.
[1708] Input: User's past answer data
[1709] Data processing and calculation: Deeply analyze data, identify weaknesses, and create customized questions using generative AI models
[1710] Output: Customized next study question
[1711] (Application example 1)
[1712] 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."
[1713] Conventional programming learning systems struggle to provide customized problems based on a user's learning progress and weaknesses, preventing maximum learning effectiveness. Furthermore, they lacked the ability to dynamically deliver diverse content formats (video, text, interactive problems), preventing efficient learning that adapts to the user's learning style. Furthermore, they lacked the ability to provide real-time feedback using generative AI models, meaning users lost opportunities to quickly deepen their understanding. To solve these problems, it is necessary to provide effective problem generation based on the user's learning history, real-time feedback, and customized problems based on their weaknesses.
[1714] 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.
[1715] In this invention, the server includes: a means for automatically generating programming problems based on the user's skill level and past learning history; a means for evaluating the problems answered by the user and determining whether they are correct; a means for automatically generating detailed explanations for the user's answers; a means for dynamically delivering multiple content formats (video, text, interactive problems) according to the user's progress; a means for providing real-time feedback based on the evaluation results of the answers; and a means for utilizing a generative AI model to generate customized learning content based on identified weaknesses. This enables the provision of problems and content optimized for the user's learning progress, supporting efficient learning. Furthermore, real-time feedback provides users with opportunities to instantly deepen their understanding, maximizing the effectiveness of their learning.
[1716] "User skill level" is an indicator that shows the user's level of technical ability in learning programming.
[1717] "Past learning history" is information that indicates what the user has studied and the history of questions they have answered.
[1718] "Programming problems" are tasks that users can answer to improve their programming skills and knowledge.
[1719] "Automatic generation" is the process by which a system creates programming problems based on user information without manual intervention.
[1720] "Evaluation" means determining whether the programming questions answered by the user are correct or incorrect.
[1721] "Detailed explanation" refers to an explanation of the question the user answered, including the correct answer, incorrect answers, and areas for improvement.
[1722] "Weaknesses" refer to areas where the user has particularly poor understanding or makes many mistakes based on their past learning and answer history.
[1723] "Customized problems" are programming problems that are individually optimized according to the user's weaknesses and learning progress.
[1724] "Content format" refers to the way in which information necessary for learning programming is presented, such as through video, text, or interactive questions.
[1725] "Progress" is a status that indicates how far a user has progressed in learning programming.
[1726] "Dynamic delivery" means sending appropriate content in real time according to the user's progress and situation.
[1727] "Feedback" means immediately returning evaluation results and suggestions for improvement for the questions the user has answered.
[1728] A "generative AI model" is an artificial intelligence model that uses machine learning to generate new questions, explanations, etc. from data.
[1729] The system for realizing this invention is configured through the interaction of a server, a terminal, and a user.
[1730] Server Roles
[1731] 1. Managing your data:
[1732] The server stores the user's skill level and past learning history in a database and manages the user profile. The database used is Amazon RDS, and the interface is provided using Django.
[1733] 2. Automatic question generation:
[1734] The server generates appropriate programming problems based on the user's skill level and learning history, utilizing a generative AI model powered by Amazon SageMaker to automatically generate the most suitable problems for the user.
[1735] 3. Evaluate answers and provide feedback:
[1736] The server analyzes the content of the programming questions the user answers and judges whether they are correct or not. Based on the evaluation results, the server provides detailed explanations and real-time feedback.
[1737] 4. Weakness analysis and customized problem provision:
[1738] The server analyzes the user's past answer data to identify weaknesses, and then uses this information to generate customized questions to address those weaknesses and provide them to the user.
[1739] 5. Dynamic Delivery of Content Formats:
[1740] It dynamically delivers multiple content formats, including video, text, and interactive questions, depending on the user's progress, providing a learning experience optimized for the user's learning style.
[1741] Device Role
[1742] 1. Providing a user interface:
[1743] The terminal provides an interface for users to enter their profile and answer programming questions, using React Native and TypeScript as front-end technologies.
[1744] 2. Data transmission and reception:
[1745] It sends user input data to the server, receives response data (questions, assessment results, explanations, etc.) from the server, and displays them to the user, thereby providing a seamless learning experience.
[1746] User Roles
[1747] 1. Profile Settings:
[1748] When users start using the system, they input their skill level and the programming language they want to learn, which gives the server the basic data to provide the most suitable problems.
[1749] 2. Answer to the question:
[1750] Users input answers to programming questions displayed on their terminals, and the answers are sent to the server for evaluation and analysis.
[1751] 3. Check the explanation:
[1752] Users can learn about their mistakes and areas for improvement by checking the evaluation results and detailed explanations of their answers provided by the server.
[1753] Specific examples
[1754] For example, if User A has beginner-level skills and wants to learn Python, he or she enters his or her skill level and the language he or she is learning when he or she first accesses the device. The device sends this information to the server, which stores the data in Amazon RDS. The server then uses Amazon SageMaker to generate basic Python questions and sends them to the device. When User A answers the questions, the answers are sent to the server, which generates evaluation results and detailed explanations. User A deepens his or her learning through real-time feedback, and the next questions are provided based on his or her progress.
[1755] Example prompt sentence:
[1756] User A's skill level is beginner, and the learning language is Python. Please generate basic Python questions based on this user's learning history.
[1757] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[1758] Step 1:
[1759] Setting up your user profile
[1760] Subject: User
[1761] When users first access the service, they enter information such as their skill level, the programming language they want to learn, and their learning goals. The entered data is sent from the device to the server, which receives the data and stores it appropriately in Amazon RDS. This information is used to automatically generate subsequent programming problems and provide customized problems.
[1762] Step 2:
[1763] Automatic question generation
[1764] Subject: Server
[1765] The server uses Amazon SageMaker to generate appropriate programming problems based on the received user profile and past learning history. The user's skill level and learning language are entered into the prompt, and a problem is generated using a generative AI model. The generated problem is constructed by the server and sent to the device. The data is then processed on the server to be formatted into the generated problem before being sent.
[1766] Step 3:
[1767] Providing a problem
[1768] Subject: Terminal
[1769] The terminal displays the programming problems received from the server to the user. The user inputs the answers to the displayed problems. The terminal then transmits the user's answers to the server.
[1770] Step 4:
[1771] Evaluating answers
[1772] Subject: Server
[1773] The server evaluates the received answers and determines whether they are correct. The determination is performed on the server, and an evaluation program references the user's answers and compares them with the correct answers. Based on this result, a detailed explanation is automatically generated. The evaluation results and explanation are sent from the server to the terminal.
[1774] Step 5:
[1775] Providing Feedback
[1776] Subject: Terminal
[1777] The device receives the evaluation results and detailed explanations from the server and displays them to the user, allowing the user to check whether their answers are correct and receive feedback to deepen their understanding.
[1778] Step 6:
[1779] Weakness analysis and customization problem generation
[1780] Subject: Server
[1781] The server uses Amazon SageMaker to analyze the user's past answer data and identify the user's weaknesses. Based on the identified weaknesses, new customized questions are generated, and the data is again processed within the server and sent to the device. In terms of operation, questions are automatically generated using a generative AI model based on the identified weakness information.
[1782] Step 7:
[1783] Providing customized questions
[1784] Subject: Terminal
[1785] The device provides the user with customized problems received from the server, and the user can use the feedback to address the problems to overcome identified weaknesses.
[1786] As a concrete example, if User A wants to learn Python as a "beginner," the system will execute a series of processes from Step 1 to Step 7 to provide User A with the optimal learning experience. An example of a prompt would be, "User A's skill level is beginner, and the learning language is Python. Please generate basic Python questions based on this user's learning history." Based on this prompt, the system makes full use of a generative AI model to provide User A with the optimal questions.
[1787] 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.
[1788] This invention combines an emotion engine with a fully automated programming school system to help users efficiently advance their programming studies. The system based on this invention automatically generates programming problems based on the user's skill level and past learning history, evaluates the user's answers, and provides the results along with detailed explanations. Furthermore, the system not only analyzes the user's weaknesses and suggests customized problems to overcome them, but also recognizes the user's emotions and optimizes the learning experience based on them.
[1789] System configuration
[1790] Server Roles
[1791] 1. Manage your user profile:
[1792] The server stores profile information, such as skill level and programming languages that users want to learn, entered when they first access the system in a database. This information is managed individually for each user.
[1793] 2. Automatic question generation:
[1794] The server automatically generates programming problems optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the problems are dynamically adjusted and change according to the user's learning progress.
[1795] 3. Evaluate answers and generate explanations:
[1796] After the user answers the questions, the server receives the answer and determines whether it is correct or incorrect. Based on the result of the determination, the server automatically generates a detailed explanation to help the user deepen their understanding. The explanation includes the correct answer, incorrect parts, and areas for improvement.
[1797] 4. Weakness analysis and customized problem provision:
[1798] The server analyzes the user's past answer data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized questions to overcome those weaknesses in the next study session.
[1799] 5. User Emotion Recognition:
[1800] The server runs an emotion engine through facial recognition and voice analysis to identify the user's current emotional state, which is classified into multiple categories such as joy, anger, sadness, surprise, and fear.
[1801] 6. Optimizing the learning experience based on emotions:
[1802] The server dynamically adjusts the content and difficulty of the questions it provides based on the user's perceived emotional state, and also changes the way it presents explanations to match the user's emotions.
[1803] Device Role
[1804] 1. Providing a user interface:
[1805] The terminal provides the user with an interface for using the system, which serves as a means for the user to enter their profile, answer programming questions, and view explanations.
[1806] 2. Data transmission and reception:
[1807] The device sends the user's input data to the server and receives response data (questions, assessment results, explanations, emotional assessments, etc.) from the server and displays them to the user, allowing the user to have a seamless learning experience.
[1808] 3. Collecting Emotional Data:
[1809] The device uses a camera and microphone to capture the user's facial and voice data, which is then sent to a server for analysis of their emotional state.
[1810] User Roles
[1811] 1. Profile Settings:
[1812] When users start using the system, they input their skill level and the programming language they want to learn, which is used as the basis for providing the most suitable problems.
[1813] 2. Answer to the question:
[1814] The user inputs answers to the programming questions displayed on the terminal.
[1815] 3. Check the explanation:
[1816] Users can check the evaluation results and detailed explanations of their answers provided by the server, which allows them to learn about their mistakes and areas for improvement.
[1817] 4. Providing Emotion Data:
[1818] The user follows instructions from the device, uses the camera and microphone appropriately, and transmits their emotional state to the server.
[1819] Specific examples
[1820] 1. Setting up your user profile:
[1821] User B sets his skill level as "Intermediate" and inputs "JavaScript" as the language to learn. The device sends this information to the server, which stores it in a database.
[1822] 2. Automatic generation and provision of questions:
[1823] The server generates "intermediate JavaScript problems" based on User B's skill level and sends them to the device. The device displays the problems to User B.
[1824] 3. Question Answers and Evaluation:
[1825] User B enters the answer to the question, and the device sends the answer to the server, which evaluates the answer and generates a correct answer and detailed explanation, which are sent back to the device.
[1826] 4. Emotion recognition and learning experience optimization:
[1827] While User B is answering the questions, the device's camera and microphone collect data on User B's facial expressions and voice. The server uses an emotion engine to analyze User B's emotions and determines that he or she is "concentrating."
[1828] Based on the results of the sentiment analysis, the server decides to slightly increase the difficulty of the next question.
[1829] 5. Providing customized questions:
[1830] The server analyzes User B's weaknesses and generates a customized next question, allowing User B to effectively study to overcome their weaknesses.
[1831] In this way, the system based on the present invention provides a personalized learning experience that is tailored to the user's skill level and learning progress, and further takes into account the user's emotional state to maximize the effectiveness of learning.
[1832] The processing flow will be explained below.
[1833] Step 1:
[1834] When using the device for the first time, users input their skill level and the programming language they want to learn into the device. For example, they input "Intermediate" and "JavaScript."
[1835] Step 2:
[1836] The terminal transmits the information input by the user to the server, including the user's skill level and learning intention.
[1837] Step 3:
[1838] The server stores the received user information in a database, which allows the user profile to be managed.
[1839] Step 4:
[1840] When the user is ready to solve the next programming problem, he or she requests the problem be provided through the terminal.
[1841] Step 5:
[1842] The terminal forwards the user's request to the server, which includes the user ID.
[1843] Step 6:
[1844] The server queries the user's skill level and past learning history, and automatically generates appropriate programming questions based on that information.
[1845] Step 7:
[1846] The server transmits the generated programming questions to the terminal.
[1847] Step 8:
[1848] The terminal displays the received questions to the user, who then checks the presented questions.
[1849] Step 9:
[1850] The user inputs answers to the displayed questions.
[1851] Step 10:
[1852] The terminal transmits the user's answer to the server.
[1853] Step 11:
[1854] The server evaluates the received answers, determines whether they are correct or not, and automatically generates detailed explanations based on the evaluation results.
[1855] Step 12:
[1856] The server sends the evaluation results and explanations to the terminal.
[1857] Step 13:
[1858] The device displays the received evaluation results and explanations to the user, who then checks the explanations to deepen their understanding.
[1859] Step 14:
[1860] The server analyzes the user's answer data and identifies the user's weak points from the data.
[1861] Step 15:
[1862] Based on the identified weaknesses, the server prepares to generate customized questions for the next study.
[1863] Step 16:
[1864] The device uses a camera and microphone to collect the user's facial expression and voice data and transmits it to a server.
[1865] Step 17:
[1866] The server uses an emotion engine to recognize the user's emotional state, which is classified into categories such as "concentrated," "tired," and "excited."
[1867] Step 18:
[1868] The server dynamically adjusts the difficulty and content of the questions it provides based on the recognized emotion, and also changes the way it presents explanations according to the emotion.
[1869] Step 19:
[1870] The terminal will then present the adjusted questions again and the user can continue answering them.
[1871] Step 20:
[1872] Users continue to tackle new problems and learn, and by repeating this process, they can effectively improve their programming skills.
[1873] Example 2
[1874] 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."
[1875] Conventional programming learning systems have the problem that it is difficult to generate appropriate questions based on the user's skill level and past learning history, and they are also unable to optimize the system to reflect the user's learning progress and emotional state in real time. This makes it difficult for users to progress in their learning efficiently and effectively.
[1876] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[1877] In this invention, the server includes means for automatically generating programming problems based on the user's skill level and past learning history, means for evaluating the problems answered by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized problems to overcome those weaknesses, and means for recognizing the user's emotional state and optimizing the learning content based thereon. This makes it possible to improve the user's learning efficiency and provide an optimal learning experience according to the individual's learning progress and skill level.
[1878] "User" refers to an individual or organization that uses the system to learn programming.
[1879] "Skill level" refers to the user's level of programming knowledge and technical proficiency.
[1880] "Learning history" refers to the records and results of the programming learning a user has undertaken to date.
[1881] "Programming problems" refer to tasks that require users to create or modify computer programs to solve them.
[1882] "Solution" refers to the code or answer submitted by a user to a programming problem.
[1883] "Correctness determination" refers to the server determining whether the user's answer is correct or incorrect.
[1884] "Detailed explanations" refer to explanations provided based on the evaluation results of the user's answers, including reasons for correct and incorrect answers and areas for improvement.
[1885] "Weaknesses" refer to areas where the user is particularly lacking in understanding or mastery when learning programming.
[1886] "Customized problems" refer to programming problems that are specifically created to address a user's learning status, skill level, and particularly to address weaknesses.
[1887] "Emotional state" refers to the user's psychological state or mood during learning, including joy, anger, sadness, surprise, fear, etc.
[1888] "Emotion engine" refers to technology that recognizes a user's emotional state by analyzing facial and voice data.
[1889] "Optimization" refers to adjusting the content and difficulty of questions to make the user's learning experience more effective and efficient.
[1890] MODE FOR CARRYING OUT THE INVENTION
[1891] This invention combines an emotion engine with a fully automated programming school system that allows users to efficiently advance their programming studies. Now, we will explain how to put this invention into practice in concrete terms.
[1892] Hardware and software used
[1893] Server: Consists of a high-performance computer (including CPU, memory, and storage) with dedicated server software installed.
[1894] Device: A computing device used by a user, such as a PC, tablet, or smartphone.
[1895] Database: A database server that stores user profiles, learning history, etc.
[1896] Emotion engine: An AI engine with facial recognition and voice analysis functions.
[1897] Program processing
[1898] When a user first accesses the system, they enter their skill level and the programming language they want to learn. This information is sent from the device to the server, which then stores it in a database.
[1899] The server then automatically generates programming problems based on the user's saved profile and past learning history, optimized for the user's skill level, providing a challenge of the right difficulty level for the user.
[1900] The terminal displays the generated questions to the user, who then inputs the answers through the terminal. The answers are then sent back to the server, which determines whether the answers are correct or not. The server then automatically generates an evaluation result and detailed explanation of the answers and sends this information to the terminal.
[1901] The server then analyzes the user's answer history to identify their weaknesses. Customized programming questions are then generated for the next lesson to address those weaknesses. The device also uses a camera and microphone to collect data on the user's facial expressions and voice, and sends that data to the server.
[1902] The server runs an emotion engine to recognize the user's emotional state, which is classified as "joy," "anger," "sadness," "surprise," "fear," etc. Based on this recognition result, the server dynamically adjusts the content and difficulty of the questions provided, as well as the way explanations are presented, in order to optimize the user's learning experience.
[1903] Specific examples
[1904] 1. User profile settings:
[1905] User A accesses the system, sets his skill level as "Beginner" and enters "Python" as the learning language.
[1906] 2. Automatic generation of programming problems:
[1907] The server generates a "Basic Variable Manipulation in Python" problem based on User A's skill level and sends it to the terminal.
[1908] 3. Enter and evaluate your answers:
[1909] User A enters the answer to the question displayed on the terminal (e.g., "x = 5") and sends the answer to the server.
[1910] The server evaluates the answer and generates a detailed explanation such as "Correct. Assigning 5 to variable x is the correct operation." and sends it to the terminal.
[1911] 4. Emotion recognition and learning experience optimization:
[1912] The device's camera and microphone collect facial and voice data from user A and send it to the server.
[1913] The server uses an emotion engine to analyze User A's emotion as "concentrated."
[1914] The server will increase the difficulty of the next question slightly and change the explanation to a more concise form.
[1915] Prompt Sentence Examples
[1916] "Build a system that generates appropriate programming problems based on a specified skill level, and provides a rating and explanation for the user's answers. Additionally, include the ability to analyze the user's emotional state and optimize the learning experience accordingly."
[1917] The flow of the identification process in the second embodiment will be described with reference to FIG.
[1918] Step 1:
[1919] A user accesses the system for the first time and enters their profile information.
[1920] Specifically, the user inputs their skill level (e.g., "Beginner") and language of study (e.g., "Python") into the device interface. The input data are the skill level and language of study.
[1921] Step 2:
[1922] The device transmits the entered profile information to the server.
[1923] The server stores the received profile information in a database. The input data is the user's profile information obtained in step 1, and the output is the profile information stored in the database.
[1924] Step 3:
[1925] The server retrieves the user profile and past learning history from the database.
[1926] Based on the user's profile and learning history, appropriate programming problems are automatically generated. The input data is the user's profile and learning history, and the output is the automatically generated programming problems.
[1927] Step 4:
[1928] The server sends the generated programming questions to the terminal.
[1929] The terminal displays the received programming problems to the user. The input data is the generated programming problem, and the output is the programming problem displayed on the terminal.
[1930] Step 5:
[1931] Users answer programming questions through their terminals.
[1932] The user inputs the answer and sends it to the terminal. The input data is the answer given by the user.
[1933] Step 6:
[1934] The device sends the user's answer to the server.
[1935] The server receives the answer and judges whether it is correct or not. The input data is the user's answer, and the output is the judgement result.
[1936] Step 7:
[1937] The server automatically generates an evaluation result of the answer and a detailed explanation.
[1938] The evaluation results include a correct / incorrect judgment, and the detailed explanation includes points for improving the correct and incorrect answers. The input data is the judgment result, and the output is the evaluation result and a detailed explanation.
[1939] Step 8:
[1940] The server sends the generated evaluation results and explanations to the terminal.
[1941] The terminal receives the evaluation results and explanations and displays them to the user. The input data are the evaluation results and detailed explanations, and the output is the evaluation results and explanations displayed on the terminal.
[1942] Step 9:
[1943] The device uses a camera and microphone to collect data on the user's facial expressions and voice.
[1944] The data collected is the user's facial expressions and voice.
[1945] Step 10:
[1946] The facial expression and voice data collected by the device is sent to a server.
[1947] The server runs an emotion engine to recognize the user's emotional state. The input data is the user's facial expression and voice data, and the output is the recognized emotional state.
[1948] Step 11:
[1949] The server optimizes the content and difficulty of the next question to be presented based on the recognized emotional state.
[1950] The input data are the emotional state and learning history, and the output is the next optimized programming problem provided.
[1951] Step 12:
[1952] The server sends the newly generated optimized programming problem to the terminal.
[1953] The terminal receives the problem and displays it to the user. The input data is the newly generated programming problem, and the output is the problem displayed on the terminal.
[1954] (Application example 2)
[1955] 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."
[1956] Conventional learning systems struggle to provide appropriate training scenarios based on the user's skill level and learning history. Furthermore, they often fail to optimize the learning experience by taking into account the user's emotional state, resulting in failure to maximize learning effectiveness. The objective of this invention is to develop a system that solves these problems and provides a more effective and personalized learning experience.
[1957] The specific processing by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for automatically generating training scenarios based on the user's skill level and past learning history, means for evaluating the training scenarios performed by the user and determining whether they are correct or incorrect, means for automatically generating detailed explanations for the user's answers, means for analyzing the user's weaknesses and providing customized training scenarios to overcome those weaknesses, and means for analyzing the user's emotional state and adjusting the difficulty level of the training scenarios based on the analysis results. This makes it possible to provide effective learning scenarios that meet the learning needs of each user.
[1958] "User" means an individual who uses the system to execute training scenarios and advance learning.
[1959] "Skill level" is an indicator that shows the user's level of proficiency in a particular skill or knowledge.
[1960] "Learning history" is a record of what a user has learned, the training scenarios they have performed, and their performance.
[1961] A "training scenario" is a set of specific challenges or tasks that users perform to learn a particular skill.
[1962] "Automatic generation" means that the system automatically creates training scenarios, explanatory text, etc. based on the user's conditions.
[1963] "Evaluation" refers to judging the accuracy and completeness of a user's answers and the results of the executed training scenarios.
[1964] "Correct or incorrect" refers to determining whether the user's answer or action is correct or incorrect.
[1965] "Explanation" is a detailed explanation provided to users on how to answer the training scenario and to deepen their understanding.
[1966] "Weaknesses" refer to areas where the user has difficulty or insufficient understanding.
[1967] "Customization" means adjusting the system's offerings to suit each user's specific conditions and needs.
[1968] "Emotional state" refers to the user's mental state or emotional expression, including joy, anger, sadness, surprise, and fear.
[1969] "Analysis" means that the system processes the data obtained from the user and extracts meaning and trends from it.
[1970] "Difficulty" is an index that indicates how difficult a training scenario is for the user.
[1971] This invention is a system that automatically generates training scenarios based on a user's skill level and past learning history, providing a customized learning experience.
[1972] Server Roles
[1973] Managing your user profile
[1974] The server stores profile information, such as skill level and desired skills, entered by the user when they first access the system in a database. This information is managed individually for each user.
[1975] Automatic generation of training scenarios
[1976] The server automatically generates training scenarios optimized for the user's skill level based on the user's saved profile information and learning history. The content and difficulty of the training scenarios are dynamically adjusted and change according to the user's learning progress.
[1977] Evaluating answers and generating explanations
[1978] After the user completes the training scenario, the server receives the results and determines whether they were correct or incorrect. Based on the results, the server automatically generates detailed explanations to help the user deepen their understanding. The explanations include the correct answers, mistakes, and areas for improvement.
[1979] Weakness analysis and customized problem provision
[1980] The server analyzes the user's past performance data to identify the user's weaknesses, and based on the identified weaknesses, generates and provides customized training scenarios to overcome those weaknesses in the next training session.
[1981] User emotion recognition
[1982] The server runs an emotion engine through facial recognition and voice analysis to identify the user's current emotional state, which is classified into multiple categories such as joy, anger, sadness, surprise, and fear.
[1983] Optimizing the learning experience based on emotions
[1984] The server dynamically adjusts the content and difficulty of the training scenarios it provides based on the user's perceived emotional state, and also adapts the way the explanations are presented to suit the user's emotions.
[1985] Device Role
[1986] Providing a user interface
[1987] The terminal provides the user with an interface for using the system, which serves as the means for the user to enter their profile, run training scenarios, and view commentary.
[1988] Sending and receiving data
[1989] The device sends the user's input data to the server and receives response data (training scenario, evaluation results, explanations, emotional evaluation, etc.) from the server and displays them to the user, allowing the user to have a seamless learning experience.
[1990] Collecting Emotional Data
[1991] The device uses a camera and microphone to capture the user's facial and voice data, which is then sent to a server for analysis of their emotional state.
[1992] User Roles
[1993] Profile Settings
[1994] When users start using the system, they input their skill level and the skills they want to learn. This information is used as the basis for providing optimal training scenarios.
[1995] Execution of training scenarios
[1996] The user executes the training scenario displayed on the terminal.
[1997] Check the explanation
[1998] Users can check the evaluation results and detailed explanations of their answers provided by the server, which will help them understand their mistakes and areas for improvement.
[1999] Providing emotion data
[2000] The user uses the device's camera and microphone appropriately to transmit their emotional state to the server.
[2001] Hardware and software used
[2002] The system is implemented using the following hardware and software:
[2003] Camera and microphone: Used to collect user emotional data.
[2004] Server: The central device that processes and analyzes data.
[2005] Terminal: Provides the user interface and sends and receives data.
[2006] Software Libraries: OpenCV (cv2 library) and scikit-learn are used for sentiment analysis.
[2007] Specific examples
[2008] If User B has intermediate-level JavaScript skills, the system automatically generates an "intermediate JavaScript training scenario" and displays it to User B. While User B is performing the scenario, the camera and microphone collect User B's facial expressions and voice, and the emotion engine determines that User B is "concentrated." As a result, the system presents the next training scenario with a slightly higher level of difficulty.
[2009] Prompt Sentence Examples
[2010] Examples of prompt sentences include the following:
[2011] Example prompt 1:
[2012] "User B's skill level is intermediate. Please suggest a customized learning schedule for JavaScript that they should master over the next six months."
[2013] Example prompt 2:
[2014] "Generate customized training scenarios to deliver to workers when they are under stress. Current training skill level is beginner."
[2015] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[2016] Step 1:
[2017] The server receives the user's initial profile data. The user inputs information about their skill level and the skills they want to learn through their device, which is then sent to the server. This information is saved in a database. This input data (user's skill level, skills they want to learn) is stored in the database and used to generate subsequent training scenarios.
[2018] Step 2:
[2019] The server automatically generates training scenarios based on the user's skill level and past learning history. Based on the saved user profile and historical data, an algorithm generates the optimal training scenario. The content and difficulty of this training scenario are dynamically adjusted according to the user's learning progress. The generated training scenario is sent to the device.
[2020] Step 3:
[2021] The user executes the training scenario displayed on the terminal. After the user completes the operation corresponding to the training scenario, the terminal sends the execution results to the server. This execution result (user operation data) is sent to the server and used for evaluation.
[2022] Step 4:
[2023] The server evaluates the received execution results and determines whether they are correct or incorrect. An internal algorithm analyzes the user's operation data, determines whether the operation was correct, and generates a result. This judgment result (correct or incorrect data) is sent back to the terminal along with detailed explanation data.
[2024] Step 5:
[2025] The user checks the evaluation results and detailed explanations from the server. The terminal displays this information, allowing the user to learn about their mistakes and areas for improvement. This feedback data (evaluation results and detailed explanations) is presented to the user.
[2026] Step 6:
[2027] The server analyzes the user's past execution data to identify weaknesses and generates customized training scenarios to overcome those weaknesses in the next learning session. It uses past operation data and evaluation results to identify appropriate improvement focus points and create new training scenarios. This customized training scenario is provided for the next execution.
[2028] Step 7:
[2029] The device uses a camera and microphone to collect the user's facial and voice data and sends it to an emotion recognition engine. The collected emotion data is sent to a server and used for emotion analysis. This input data (facial and voice data) is used as the basis for emotion analysis.
[2030] Step 8:
[2031] The server analyzes the user's emotional state using an emotion engine, which analyzes the collected facial and voice data to determine the user's current emotional state (e.g., joy, anger, sadness, surprise, fear, etc.).
[2032] Step 9:
[2033] The server dynamically adjusts the content and difficulty of the training scenarios provided based on the recognized emotional state. For example, if the user is determined to be "concentrated," the difficulty of the next training scenario will be slightly increased. This difficulty adjustment result (difficulty data) will be reflected in the next training scenario.
[2034] Step 10:
[2035] The device displays the newly adjusted training scenario to the user, who then executes the customized training scenario and the learning process begins again.
[2036] 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.
[2037] 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.
[2038] 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.
[2039] 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.
[2040] 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.
[2041] 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.
[2042] 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).
[2043] 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.
[2044] 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."
[2045] 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.
[2046] 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).
[2047] 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.
[2048] 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.
[2049] 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.
[2050] 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.
[2051] 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.
[2052] 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.
[2053] 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.
[2054] 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.
[2055] 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.
[2056] 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.
[2057] The following is further disclosed regarding the above embodiment.
[2058] (Claim 1)
[2059] A means for automatically generating programming problems based on a user's skill level and past learning history;
[2060] A means for evaluating the questions answered by the user and determining whether they are correct or incorrect;
[2061] A means of automatically generating detailed explanations for users' answers;
[2062] A means of analyzing users' weaknesses and providing customized problems to overcome those weaknesses;
[2063] A system including:
[2064] (Claim 2)
[2065] 10. The system of claim 1, further comprising means for selecting programming problems based on a skill level of the user and providing the problems to the user.
[2066] (Claim 3)
[2067] 10. The system of claim 1, further comprising means for tracking a progress of a user's understanding based on the user's answer history and adjusting the difficulty of the questions to be presented next.
[2068] "Example 1"
[2069] (Claim 1)
[2070] A means for automatically generating questions based on the user's skill level and past learning history;
[2071] A means for evaluating the questions answered by the user and determining whether they are correct or incorrect;
[2072] A means of automatically generating detailed explanations for users' answers;
[2073] A means of analyzing users' weaknesses and providing customized problems to overcome those weaknesses;
[2074] means for providing an interface for a user to input profile information;
[2075] a means for sending and receiving user input data;
[2076] A system including:
[2077] (Claim 2)
[2078] 10. The system of claim 1, wherein the system selects questions based on the user's skill level and provides the questions to the user.
[2079] (Claim 3)
[2080] 10. The system of claim 1, wherein the system tracks the progress of the user's understanding based on the user's answer history and adjusts the difficulty of the questions it provides next.
[2081] "Application Example 1"
[2082] (Claim 1)
[2083] A means for automatically generating programming problems based on a user's skill level and past learning history;
[2084] A means for evaluating the questions answered by the user and determining whether they are correct or incorrect;
[2085] A means of automatically generating detailed explanations for users' answers;
[2086] A means of analyzing users' weaknesses and providing customized problems to overcome those weaknesses;
[2087] A means to dynamically deliver multiple content formats (video, text, interactive questions) based on the user's progress;
[2088] a means for providing real-time feedback based on the evaluation of the answers; and
[2089] a means for utilizing a generative AI model to generate customized learning content based on the identified weaknesses;
[2090] A system including:
[2091] (Claim 2)
[2092] 10. The system of claim 1, further comprising means for selecting programming problems based on a skill level of the user and providing the problems to the user.
[2093] (Claim 3)
[2094] 10. The system of claim 1, further comprising means for tracking a progress of a user's understanding based on the user's answer history and adjusting the difficulty of the questions to be presented next.
[2095] "Example 2: Combining Emotion Engines"
[2096] (Claim 1)
[2097] A means for automatically generating programming problems based on a user's skill level and past learning history;
[2098] A means for evaluating the questions answered by the user and determining whether they are correct or incorrect;
[2099] A means of automatically generating detailed explanations for users' answers;
[2100] A means of analyzing users' weaknesses and providing customized problems to overcome those weaknesses;
[2101] A means of recognizing the user's emotional state and optimizing learning accordingly; and
[2102] A system including:
[2103] (Claim 2)
[2104] 10. The system of claim 1, wherein the system selects and provides programming problems to the user based on the user's skill level.
[2105] (Claim 3)
[2106] 10. The system of claim 1, wherein the system tracks the progress of the user's understanding based on the user's answer history and adjusts the difficulty of the questions it provides next.
[2107] "Application example 2 when combining emotion engines"
[2108] (Claim 1)
[2109] means for automatically generating training scenarios based on a user's skill level and past learning history;
[2110] A me...
Claims
1. A means for automatically generating programming problems based on a user's skill level and past learning history; A means for evaluating the questions answered by the user and determining whether they are correct or incorrect; A means of automatically generating detailed explanations for users' answers; A means of analyzing users' weaknesses and providing customized problems to overcome those weaknesses; A system including:
2. 10. The system of claim 1, further comprising means for selecting programming problems based on a skill level of the user and providing the problems to the user.
3. 2. The system of claim 1, further comprising means for tracking the progress of the user's understanding based on the user's answer history and adjusting the difficulty of the questions to be presented next.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A