Programming learning support methods, programming learning support devices
By combining a programming learning support system and an LLM server, personalized programming guidance is provided, solving the problem of lack of guidance in self-learning programming and effectively cultivating logical thinking and improving learning outcomes.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- TABLY CO LTD
- Filing Date
- 2024-11-12
- Publication Date
- 2026-05-22
AI Technical Summary
Existing technologies make it difficult to achieve programming learning outcomes through self-study, lack guidance, cannot replace the role of teachers or teaching assistants, and cannot effectively cultivate logical thinking skills.
The programming learning support system utilizes an LLM server and knowledge database to provide personalized programming guidance, including error analysis and solutions. Combined with learning support devices and terminals for specific programming languages, it enables real-time analysis and guidance of programming errors.
It achieved learning outcomes comparable to those of teachers or teaching assistants, enhancing the guidance and logical thinking development of programming learning.
Smart Images

Figure 2026084939000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a technology for assisting programming learning.
Background Art
[0002] Various technologies for assisting programming learning have been proposed. For example, Patent Document 1 discloses a technology that can efficiently improve the programming ability of novice programmers. The information processing system of Patent Document 1 includes a distribution device, a notification device, an evaluation device, and a user terminal. In this information processing system, the evaluation device identifies a specific bug among a plurality of bugs detected in a plurality of program codes generated by each of a plurality of users for a specific problem, where the detection status satisfies a predetermined condition. When the evaluation device receives a new program code created by a specific user among a plurality of users for a specific problem, it detects new bugs included in the new program code, and generates information indicating a first range that partially includes a location corresponding to the new bugs in the new program code, and information indicating a second range that partially includes the first range in the new program code. The evaluation device then transmits information indicating the specific bug, information indicating the first range, and information indicating the second range to a transmission destination corresponding to the specific user.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In programming learning, learners deepen their understanding of programs by repeating a two-step trial-and-error process: writing a program, running it on a PC to identify the cause of problems, improving the program, and running it again.
[0005] In programming education, it is extremely rare for learners to be able to make programs work as expected through self-study alone, without relying on the support of instructors or teaching assistants. In reality, the presence of instructors or teaching assistants who can provide advice in appropriate language and style tailored to the problems learners face is essential. Furthermore, in order to make programs work as expected, learners need to develop their logical thinking skills. To cultivate learners' logical thinking skills, instructors and teaching assistants need to provide step-by-step guidance, such as first helping learners understand the cause of the error, and then helping them understand how to fix it based on that cause, rather than immediately presenting how to fix the program.
[0006] However, the information processing system described in Patent Document 1 merely distinguishes and presents the location of bugs within the program code according to the attributes of the bugs, and is not capable of replacing instructors or teaching assistants, who have been indispensable in programming education until now.
[0007] This invention has been made in view of these problems, and aims to provide a technical means that can achieve learning effects equivalent to those obtained by instructors or teaching assistants. [Means for solving the problem]
[0008] To solve the above problems, a preferred embodiment of the present invention is a programming learning support method comprising a programming learning support system including a terminal for learners of a predetermined programming language and a programming learning support device for supporting programming learning by the learner, wherein the storage means of the programming learning support device stores documents relating to the grammar, instructions and functions of the programming language, the parameters that can be specified and their constraints, the terminal displays a learning support screen having a program description field for writing a program in the programming language and an execution result display field for displaying the execution result of the program in the program description field, and when an error occurs during the execution of one or more lines of program written in the program description field, the program written on the line where the error occurred and the The method is characterized by comprising: a first step of sending an advice request message containing error information to the programming learning support device; a second step of the programming learning support device, upon receiving the advice request message, searching the document in the storage means for text that is strongly associated with the error information in the advice request message, sending the searched text, the program described in the line where the error occurred in the advice request message, and a prompt embedded with the error information to an external LLM server, and receiving a response obtained from the LLM server through inference processing; a third step of the programming learning support device sending the response received from the LLM server to the terminal as an advice message; and a fourth step of the terminal, upon receiving the advice message, displaying the received advice message.
[0009] In this embodiment, the storage means has a knowledge database that stores a numerical vector V obtained by associating each of a plurality of chunks obtained by dividing the document into chunks with a numerical vector V obtained by applying an embedding representation process of a predetermined number of dimensions to each chunk, and in the third step, the programming learning support device may obtain a numerical vector W obtained by applying the embedding representation process of a predetermined number of dimensions to the error information in the advice request message, search the knowledge database for chunks associated with a predetermined number of numerical vectors V that have a high similarity to the numerical vector W, and send a prompt to the LLM server with the chunks found in the knowledge database embedded.
[0010] Furthermore, in the first step, the terminal transmits the advice request message including attribute information indicating the learner's attributes, and in the third step, the programming learning support device embeds chunks retrieved from the knowledge database into a predetermined prompt template, and transmits to the LLM server as a prompt the result of removing all but the boilerplate text corresponding to the attribute information from among a plurality of boilerplate texts that specify the manner of response expression in the prompt template.
[0011] Furthermore, the storage means stores screen structured data in which the layout of the learning support screen is described in a markup language, and which contains a script that functions as a language engine for executing a program of the programming language. In the first step, the programming learning support device transmits the screen structured data stored in the storage means to the terminal in response to a request from the terminal, and the control unit of the terminal interprets the screen structured data to display the learning support screen on the display means, and also executes the script embedded in the screen structured data, and may also operate as the language engine.
[0012] Another preferred embodiment of the present invention is a programming learning support device that supports programming learning by a learner of a predetermined programming language, comprising: a storage means that stores documents relating to the grammar, instructions and functions of the programming language, the ability to specify parameters and their constraints; a first processing means that, when it receives an advice request message from the learner's terminal containing the program described on the line where an error occurred in the program description field of the terminal's learning support screen, and error information, searches the documents in the storage means for text that is strongly related to the error information in the advice request message; a second processing means that sends a prompt to an external LLM server with the text retrieved from the documents in the storage means, the program described on the line where an error occurred in the advice request message, and error information embedded within it, and receives a response obtained from the LLM server through inference processing; and a third processing means that sends the response received from the LLM server to the terminal as an advice message.
[0013] Another preferred embodiment of the present invention is a programming learning support device that supports programming learning by learners of a predetermined programming language, comprising: a storage means that stores screen structured data describing the layout of a learning support screen in a markup language; and a processing means that transmits the screen structured data stored in the storage means to the learner's terminal in response to a request from the terminal, wherein the learning support screen has a programming window on one side and a learning support window on the other side, the programming window has a program description field, an execution button outside the program description field within the programming window, and the program description field is configured to allow the writing of a program in the programming language, the learning support window displays the execution result of the program when the execution button is selected and there are no errors in the program written in the program description field, and the learning support window displays an error message and the line number of the program in the program description field where the error occurred when the execution button is selected and there are errors in the program written in the program description field. [Effects of the Invention]
[0014] According to the present invention, it is possible to obtain learning effects equivalent to those achieved when an instructor or teaching assistant is present to guide the learner. [Brief explanation of the drawing]
[0015] [Figure 1] This is a block diagram showing the configuration of a programming learning support system 9, which includes a programming learning support device 4, which is one embodiment of the present invention. [Figure 2] This diagram shows the main commands and their respective functions in a programming language specifically designed for beginners. [Figure 3] This diagram shows the main functions and their respective features in a programming language specifically designed for beginners. [Figure 4]It is a diagram showing the Studio screen displayed on the user terminal 1 of the programming learning support system 9. [Figure 5] It is a diagram showing the execution result of a program on the Studio screen. [Figure 6] It is a diagram showing the error information EM on the Studio screen. [Figure 7] It is a diagram showing the configuration of the user terminal 1 in the programming learning support system 9 of FIG. 1. [Figure 8] It is a diagram showing the configuration of the dialogue learning support server 2 in the programming learning support system 9 of FIG. 1. [Figure 9] It is a diagram showing the configuration of the knowledge DB server 3 in the programming learning support system 9 of FIG. 1. [Figure 10] It is a diagram showing the data structure of the knowledge DB 338 in the knowledge DB server 3. [Figure 11] It is a diagram showing the operation of the programming learning support system 9. [Figure 12] It is a diagram showing the details of step S140 in FIG. 11. [Figure 13] It is a diagram showing the prompt prototype PT. [Figure 14] It is a diagram showing an example display of the advice message ASM on the Studio screen. [Figure 15] It is a diagram showing an example display of the advice message ASM on the Studio screen. [Figure 16] It is a display screen when the gear icon 604 in FIG. 4 is selected. [Figure 17] It is a display screen when the edit menu button 606 in FIG. 4 is selected. [Figure 18] It is a display screen when the sprite button 66 in FIG. 4 is selected. [Figure 19] It is a display screen when the background button 67 in FIG. 4 is selected. [Figure 20] It is a display screen when the document tab 73 in FIG. 4 is selected. [Figure 21]This is the screen displayed when question tab 74 in Figure 4 is selected. [Figure 22] This is the screen displayed when the game creation icon 171 in Figure 4 is selected. [Figure 23] This is the screen displayed when the project list icon 172 in Figure 4 is selected. [Figure 24] This is the screen displayed when document icon 173 in Figure 4 is selected. [Figure 25] This is the screen displayed when account icon 174 in Figure 4 is selected. [Modes for carrying out the invention]
[0016] Figure 1 is a block diagram showing the configuration of a programming learning support system 9, which includes a programming learning support device 4, as one embodiment of the present invention. As shown in Figure 1, the programming learning support system 9 includes a user terminal 1, a programming learning support device 4, and an LLM (Large Language Models) server 8. The programming learning support device 4 includes an interactive learning support server 2 and a knowledge DB server 3.
[0017] Interactive Learning Support Server 2 and Knowledge DB Server 3 are servers that operate under the management of the operators of the programming learning support site. User Terminal 1 is a personal computer or tablet used by learners. Learners can learn programming on the programming learning support site by registering an account on the site. During account registration, learners register their name, age, and programming language, and are issued a login ID and password. This learner's name, age, and programming language are stored in the account information management area of User Terminal 1 and Interactive Learning Support Server 2.
[0018] This programming learning support system 9 allows learners to acquire the fundamentals of programming common to existing languages such as Python, Java, and C# by accumulating experience in creating programs using a proprietary programming language (hereinafter referred to as the "programming beginner-specific language") developed by the operators of the programming learning support site for beginners, on a learning support screen called the Studio screen on the programming learning support site, and improving their programs by receiving feedback on the causes and solutions of errors from LLM.
[0019] The programming language designed for beginners in this embodiment has a simpler syntax and fewer types of instructions and functions that can be used as statement tokens (syntactic elements) compared to existing languages. Figure 2 shows the main instructions and their respective functions in the programming language designed for beginners in this embodiment. Figure 3 shows the main functions and their respective functions in the programming language designed for beginners in this embodiment.
[0020] Here, the programming learning support site publishes a programmer's guide and an instruction / function dictionary, which are documents related to the grammar, usage of commands and functions, and the parameters and constraints that can be specified for a language specifically designed for programming beginners. The programmer's guide describes terms and concepts necessary for learning programming, such as projects, commands, programs, comments, numbers, strings, variables, arrays, expressions and operators, functions, custom functions, conditional branching, loops, procedures, reserved words, error messages, text screens, graphic screens, PIC patterns, sprites, backgrounds, input devices, music, sound, debugging, network communication, testing, and Web APIs. The instruction / function dictionary describes the function, grammar, and usage precautions for each command shown in Figure 2 and the function shown in Figure 3. Learners can obtain the necessary knowledge for learning from these documents.
[0021] Figure 4 shows the Studio screen. The Studio screen is the first screen displayed after logging into the programming learning support site. In this embodiment, a series of programs being created on the programming learning support site is called a "project". In the upper left of the Studio screen is the project identification information (Project 4 in the example in Figure 4). In the upper right of the Studio screen are the game creation icon 171, the project list icon 172, the document icon 173, and the account icon 174.
[0022] To the left of the center of the Studio screen is the Programming Window 60, and to the right of the center is the Learning Support Window 70.
[0023] At the top of the programming window 60 are the editor tab 61, the test tab 62, the debug tab 63, the gear icon 604, and the maximize icon 605. Below the gear icon 604 is the edit menu button 606. In the center of the programming window 60 is the program writing area 65. At the right edge of the program writing area 65 is the scroll bar 607. At the bottom of the programming window 60 are the sprite button 66, the background button 67, and the run button 68.
[0024] At the top of the learning support window 70 are the execution screen tab 71, the error tab 72, the document tab 73, the question tab 74, and the maximize icon 705. In the center of the learning support window 70 is the execution result display area 75. When the execution screen tab 71 is active, the execution result display area 75 has a black background.
[0025] In the Studio screen shown in Figure 4, selecting the maximize icon 605 for the programming window 60 expands the programming window 60 to fill the entire screen, and selecting the maximize icon 705 for the learning support window 70 expands the learning support window 70 to fill the entire screen.
[0026] The learner writes program statements, including commands and functions of a programming language specifically designed for beginners, one line at a time in the program description field 65 of the programming window 60. After finishing writing the program, the learner selects the execute button 68. Figures 5 and 6 show examples of the display of the execution result when the execute button 68 is selected.
[0027] As shown in Figure 5, if there are no errors (situations where the program cannot be executed) in the program description field 65, the execution result of the program will be displayed in the execution result display field 75.
[0028] As shown in Figure 6, if there is an error in the program in the program description field 65, the Error tab 72 of the Learning Support window 70 becomes active, and the Error Information EM and the Advice Request Button BT1 are displayed. The Error Information EM includes an error message indicating the nature of the error (in the example in Figure 6, the value of the third parameter of the line instruction is outside the acceptable range (range: 0~639, value passed: 640)) and the line number of the program in the program description field 65 where the error occurred (in the example in Figure 6, line 1). The Advice Request Button BT1 is labeled with the text, "Click here if you want to know more about the cause of the error." Here, errors include syntax errors, which can be identified before the program is executed, and runtime errors, which can only be identified after the program has been executed.
[0029] If a learner cannot resolve an error even after viewing the error information EM in the learning support window 70, they perform a predetermined operation: selecting the advice request button BT1. When the advice request button BT1 is selected, an advice message ASM in language expression appropriate to the learner's attributes is presented in stages: an advice message ASM related to the cause of the error (Figure 14) → an advice message ASM related to the solution to the error (Figure 15). Details of the process involved in presenting these advice messages ASM will be described later.
[0030] Figure 7 shows the configuration of user terminal 1. User terminal 1 has a control unit 11, a volatile memory unit 12, a non-volatile memory unit 13, a communication unit 14, an operation unit 15, a display 16, a speaker 17, and a microphone 18. The control unit 11 includes a CPU. The control unit 11 performs various calculations and processes while using the volatile memory unit 12 as a work area. The non-volatile memory unit 13 stores the OS (Operating System) 131 and a browser 132.
[0031] Figure 8 shows the configuration of the interactive learning support server 2. The interactive learning support server 2 has a control unit 21, a volatile memory unit 22, a non-volatile memory unit 23, a communication unit 24, and an operation unit 25. The control unit 21 includes a CPU. The control unit 21 performs various calculations and processes while using the volatile memory unit 22 as a work area. The non-volatile memory unit 23 stores the OS 231, Studio screen structured data 235, programmer's guide structured data 236, and instruction / function dictionary structured data 237.
[0032] The Studio screen structured data 235 is a description of the layout of the Studio screen on the programming learning support site, written in HTML (Hyper Text Markup Language). When the control unit 21 receives an HTTP (Hyper Text Transfer Protocol) request from the user terminal 1 to view the Studio screen structured data 235, it reads the Studio screen structured data 235 from the non-volatile storage unit 23 and sends it to the source of the request.
[0033] Here, the Studio screen structured data 235 contains a script that runs on the browser 132 of user terminal 1. <script>タグの開始タグと終了タグの間に記述されている。このスクリプトは、プログラミング初心者特化型言語のプログラムを実行する言語エンジンとしての機能を有するプログラムである。
[0034] プログラマーズガイド構造化データ236は、プログラマーズガイドの公開画面のレイアウトをHTMLにより記述したものである。制御部21は、ユーザ端末1から、プログラマーズガイド構造化データ236の閲覧を求めるHTTPリクエストを受信すると、不揮発性記憶部23からプログラマーズガイド構造化データ236を読み出し、リクエストの発信元に宛てて送信する。
[0035] 命令 / 関数辞書構造化データ237は、命令 / 関数辞書の公開画面のレイアウトをHTMLにより記述したものである。制御部21は、ユーザ端末1から、命令 / 関数辞書構造化データ237の閲覧を求めるHTTPリクエストを受信すると、不揮発性記憶部23から命令 / 関数辞書構造化データ237を読み出し、リクエストの発信元に宛てて送信する。
[0036] 図9は、ナレッジDBサーバ3の構成を示す図である。ナレッジDBサーバ3は、制御部31、揮発性記憶部32、不揮発性記憶部33、通信部34、及び操作部35を有する。制御部31は、CPUを含む。制御部31は、揮発性記憶部32をワークエリアとして利用しつつ、各種演算や処理を実行する。不揮発性記憶部33には、OS331、ナレッジDB338が記憶されている。
[0037] 図10は、ナレッジDB338のデータ構造を示す図である。ナレッジDB338は、各々が、プログラマーズガイド及び命令 / 関数辞書をチャンク分割したチャンクと対応する複数のレコードの集合体である。ナレッジDB338の各レコードは、「チャンク」と「埋め込みベクトル」のフィールドを有する。
[0038] 「チャンク」のフィールドは、プログラマーズガイド及び命令 / 関数辞書から得られたチャンクを示す。「埋め込みベクトル」のフィールドは、チャンクを768次元のベクトル空間に埋め込んだ数値ベクトルV=(v1,v2,····v768)を示す。
[0039] ここで、本実施形態では、プログラマーズガイド及び命令 / 関数辞書のテキストデータからチャンク及び数値ベクトルV=(v1,v2,····v768)の生成を、次のようにして行う。
[0040] まず、プログラマーズガイド及び命令 / 関数辞書をDoc形式からマークダウン形式のテキストファイルに変換する。次に、このテキストファイルを、1つのチャンクを、第1文字数と第2文字数の間の所定文字数とし、文をチャンクの区切りとし、前後のチャンクが、上記の所定文字数よりも十分に小さな第3文字数分だけ重複するような文字数単位で分割する。次に、分割したチャンクの各々に対して、埋め込み表現処理を施し、数値ベクトルV=(v1,v2,····v768)を取得する。最後に、チャックと数値ベクトルV=(v1,v2,····v768)の組をナレッジDB338のレコードとして格納する。
[0041] 次に、本実施形態の動作を説明する。図11は、本実施形態の動作を示すフローチャートである。
[0042] 図11において、ユーザ端末1において、ブラウザ132を立ち上げ、プログラミング学習支援サイトへのアクセスを指示する操作が行われると、ユーザ端末1の制御部11は、対話学習支援サーバ2のURLを宛先とするHTTPリクエストを送信する(S100)。
[0043] 対話学習支援サーバ2の制御部21は、HTTPリクエストを受信すると、不揮発性記憶部23からStudio画面構造化データ235を読み出し、Studio画面構造化データ235をユーザ端末1に送信する(S110)。
[0044] ユーザ端末1の制御部11は、Studio画面構造化データ235を受信すると、Studio画面構造化データ235を揮発性記憶部12に記憶し、このStudio画面構造化データ235を解釈して、ディスプレイ16にStudio画面を表示させる(S120)。また、制御部11は、Studio画面構造化データ235の<script>の開始タグと終了タグの間に埋め込まれているスクリプトを実行する。これ以降、制御部11は、Studio画面において、言語エンジンとしても動作する。
[0045] 学習者は、Studio画面のプログラム記述欄65にプログラムを記述し、実行ボタン68を選択する。
[0046] 実行ボタン68が選択されると(S130:Yes)、制御部11は、言語エンジンとして、プログラム記述欄65内のプログラムを実行し、実行結果を出力する(S140)。このステップ140の処理の詳細は、図12に示す通りである。
[0047] 図12において、言語エンジンは、プログラム記述欄65内のプログラムについて、改行コードを基準として、行ごとに文字列を分割する(S141)。
[0048] 次に、言語エンジンは、前処理を行う(S142)。この前処理では、言語エンジンは、分割した各行の文字列の構文解析(プログラミング初心者特化型言語の文法に沿った文字列かどうかの確認と、構文木の構築)、及び行番号毎の構文解析の結果の保持を行う。ここで、各行の文字列の中に、プログラミング初心者特化型言語の文法に則っていない文字列がある場合は、構造解析が失敗となる。構造解析に失敗した場合、言語エンジンは、構文解析に失敗したことを示す構文エラーのエラー情報EM(図6)を表示し、処理を終了する。
[0049] 前処理において、全ての行の文字列の構造解析に成功した場合、言語エンジンは、本処理を行う(S143)。本処理では、言語エンジンは、1行目から順に、以下の第1~第5処理を行う。第1処理では、言語エンジンは、保存しておいた対象の行番号の構文木を取り出す(S143-1)。第2処理では、言語エンジンは、構文木から、行うべき命令の種類を特定する(S143-2)。第3処理では、言語エンジンは、命令の実行に必要となるパラメータについて、適正な内容かどうかを確認する(S143-3)。適正でないと判断した場合は、パラメータが適正でないことを示す構文エラーのエラー情報EM(図6)を表示し、処理を終了する。第4処理では、言語エンジンは、命令の種類に従った具体的な処理(変数の値を変更したり、線を描いたり、音声発話したり、など)を行う(S143-4)。この命令の種類に従った処理の実行の段階において、問題が検出されたときは、ランタイムエラーのエラー情報EM(図6)を表示し、処理を終了する。第5処理では、言語エンジンは、第4処理の対象であった行における命令の種類や実行結果に従って、以下のa1、a2、a3、a4、a5、a6、a7の中から、次に行う処理を決定する(S143-5)。a1.次の行番号に処理を進める。a2.特定の行番号に処理を進める。a3.(関数の処理後の場合)式の評価に戻る。a4.言語エンジンの処理を強制終了する(学習者がプログラムの実行停止を指示したとき)。a5.言語エンジンの処理を終了する(end命令またはstop命令を実行したとき)。a6.言語エンジンの処理を一時停止する(input命令による学習者からの文字入力を待ち受けるとき)。a7.言語エンジンの処理を終了する(何らかのエラー情報EMが作られていたとき)。言語エンジンは、プログラム記述欄65内の最後の行まで、第1処理~第5処理を行った後、処理を終了する。
[0050] Studio画面に、図6に示すようなエラー情報EMが表示されている場合において、学習者が、助言要求ボタンBT1を選択する操作を行うと(S150:Yes)、ユーザ端末1の制御部11は、プログラム記述欄65内のプログラムの全文、エラーが発生した行の行番号、エラーが発生した行に記述されていたプログラム、エラー情報EM、学習者の属性情報、及び助言種別情報を含む助言要求メッセージを生成し、この助言要求メッセージを対話学習支援サーバ2に送信する(S160)。
[0051] ここで、学習者の属性情報には、使用言語が一般的な日本語であることを示す「ja_kanji」と、使用言語が小学生高学年向けの日本語であることを示す「ja_kanji_elementary」と、使用言語が英語であることを示す「en」の3種類がある。制御部11は、アカウント情報管理領域内の年齢、使用言語の情報を基に、「ja_kanji」、「ja_kanji_elementary」、「en」のうちの該当の属性情報を選択し、その属性情報を助言要求メッセージに記述する。
[0052] 助言種別情報には、エラーの発生原因に関わる助言を要求することを示す「cause」と、エラーの解決策に関わる助言を要求することを示す「fix」の2種類がある。制御部11は、助言要求ボタンBT1が選択された場合は、「cause」を助言要求メッセージに記述し、後述する助言要求ボタンBT2(図14)が選択された場合は、「fix」を助言要求メッセージに記述する。
[0053] 対話学習支援サーバ2の制御部21は、助言要求メッセージを受信すると、助言要求メッセージを揮発性記憶部22に記憶し、この助言要求メッセージ内の情報を基に、ユーザ端末1の言語エンジンにおいて発生しているエラーとの関連が強いチャンクの検索を求めるクエリを生成し、このクエリをナレッジDBサーバ3に送信する(S170)。より詳細に説明すると、このステップS170では、制御部21は、助言要求メッセージから、エラー情報EMを取り出し、このエラー情報EMに768次元の埋め込み表現処理を施した数値ベクトルW=(w1,w2,····w768)を取得する。エラー情報EMから数値ベクトルW=(w1,w2,····w768)への変換は、エラー情報EMを、埋め込み表現処理サービスを提供する外部のサーバに送信し、そのサーバから変換済みの数値ベクトルW=(w1,w2,····w768)を受信するようにするとよい。制御部21は、数値ベクトルW=(w1,w2,····w768)を取得すると、その数値ベクトルW=(w1,w2,····w768)を検索キーとするクエリを生成し、ナレッジDBサーバ3に送信する。
[0054] ナレッジDBサーバ3の制御部31は、クエリを受信すると、クエリを揮発性記憶部32に記憶し、ナレッジDB338から、クエリ内の数値ベクトルW=(w1,w2,····w768)との類似度が高い20個の数値ベクトルV=(v1,v2,····v768)と対応付けられたチャンクを検索する(S180)。より詳細に説明すると、このステップS180では、ナレッジDB338の各レコードの各々について、当該レコードに格納されているチャンクの数値ベクトルV=(v1,v2,····v768)、及び数値ベクトルW=(w1,w2,····w768)を下記式(1)に代入し、チャンク毎のコサイン類似度cosine similarity(V,W)を求める。JPEG2026084939000002.jpg25170
[0055] 制御部31は、ナレッジDB338において、コサイン類似度cosine similarity(V,W)が高い(+1に近い)上位20個の数値ベクトルW=(w1,w2,····w768)と対応付けられているチャンクが、エラーとの関連が強い上位20個のチャンクであると判定し、この20個のチャンクとそれらの順位を示す順位情報の組を、対話学習支援サーバ2に送信する。
[0056] 対話学習支援サーバ2の制御部21は、20個のチャンクと順位情報の各組を取得すると、20個のチャンクと順位情報の組を揮発性記憶部22に記憶し、助言要求メッセージ内の情報と、20個のチャンクとを埋め込んだプロンプトを生成し、このプロンプトをLLMサーバ8に送信する(S190)。このステップS190では、制御部21は、所定のプロンプト雛形PTに、ナレッジDB338から取得した20個のチャンク、助言要求メッセージ内のエラー情報EMを記述し、プロンプト雛形PTの記述の一部を、助言要求メッセージ内の属性情報及び助言種別情報を基に変更したものを、プロンプトとしてLLMサーバ8に送信する。
[0057] 図13は、プロンプト雛形PTの記述の一例である。プロンプト雛形PTは、不揮発性記憶部23に予め記憶しておき、ステップS180の実行時に揮発性記憶部22に読み出して加工するようにするとよい。
[0058] 図13に示すように、プロンプト雛形PTは、冒頭部81、チャンク埋め込み部82、エラーメッセージ第1記述部83、助言種別記述部84、応答態様記述部85、エラーメッセージ第2記述部86、エラー発生行記述部87、エラー発生行プログラム記述部88、全プログラム記述部89を有する。
[0059] 冒頭部81には、LLMに対して、どのような立場で回答を作ってほしいかを指示するための定型文が記述されている。チャンク埋め込み部82、エラーメッセージ第1記述部83、助言種別記述部84、応答態様記述部85、エラーメッセージ第2記述部86、エラー発生行記述部87、エラー発生行プログラム記述部88、全プログラム記述部89には、定型文を含むプレースホルダが記述されている。プレースホルダには、情報を埋め込むもの({{#each documents~}}、{{errorMessage}}、{errorLineNumber}、{{errorLine}}、{{program}})と、複数の定型文のうち1つを残してそれ以外を消去するもの({{#if isRequestCause}}、{{#if isRequestFix}}、{{#if isJaKanji}}、{{#if isJaKanjiElementary}}、{{#if isEn}})とがある。
[0060] 制御部21は、各部のプレースホルダを参照し、プレースホルダが情報を埋め込むものである場合は、その位置にユーザ端末1及びナレッジDB338から取得した情報を埋め込み、プレースホルダが複数の定型文のうち1つを残してそれ以外を消去するものである場合は、ユーザ端末1から受信した情報に応じた定型文だけを残す、という操作を行うことにより、プロンプトを完成する。
[0061] より詳細に説明すると、制御部21は、チャンク埋め込み部82の{{#each documents~}}と{{~ / each}}を消し、- {{this}}を20個コピーし、20個の- {{this}}における- の後の{{this}}を、ナレッジDB338から取得した20個のチャンクによって置き換える。20個のチャンクは、順位の高いものから並べて記述する。
[0062] 制御部21は、エラーメッセージ第1記述部83及びエラーメッセージ第2記述部86における{{errorMessage}}を、エラーメッセージによって置き換える。
[0063] 制御部21は、助言種別記述部84における、助言の種類を指定する2つの定型文のうち、助言種別情報と対応する定型文を残し、それ以外の文字を全て消す。
[0064] 具体的には、助言種別情報が「cause」である場合は、「エラーが発生した原因を教えてください。エラーを修正して正しく動作するための方法は必要ありません。」を残し、{{#if isRequestCause}}及び{{ / if}}を消し、{{#if isRequestFix}}及び{{ / if}}とこれらに挟まれた定型文を消す。助言種別情報が「fix」である場合は、「エラーを修正して正しく動作するための方法を教えてください。」を残し、{{#if isRequestFix}}及び{{ / if}}を消し、{{#if isRequestCause}}及び{{ / if}}とこれらに挟まれた定型文を消す。
[0065] 制御部21は、応答態様記述部85における、応答の表現の態様を指定する3つの定型文のうち、属性情報と対応する定型文を残し、それ以外の文字を全て消す。
[0066] 具体的には、属性情報が「ja_kanji」である場合は、「結果は日本語で返してください。」を残し、{{#if isJaKanji}}及び{{ / if}}を消し、{{#if isJaKanjiElementary}}及び{{ / if}}とこれらに挟まれた定型文を消し、{{#if isEn}}及び{{ / if}}とこれらに挟まれた定型文を消す。
[0067] 属性情報が「ja_kanji_elementary」である場合は、「結果は、小学4年生から小学6年生までの生徒が理解できる日本語を使って返してください。」を残し、{{#if isJaKanjiElementary}}及び{{ / if}}を消し、{{#if isJaKanji}}及び{{ / if}}とこれらに挟まれた定型文を消し、{{#if isEn}}及び{{ / if}}とこれらに挟まれた定型文を消す。
[0068] 属性情報が「en」である場合は、「結果は英語で返してください。」を残し、{{#if isEn}}及び{{ / if}}を消し、{{#if isJaKanji}}及び{{ / if}}とこれらに挟まれた定型文を消し、{{#if isJaKanjiElementary}}及び{{ / if}}とこれらに挟まれた定型文を消す。
[0069] 制御部21は、エラー発生行記述部87における{errorLineNumber}を、エラーが発生した行の行番号によって置き換える。
[0070] 制御部21は、エラー発生行プログラム記述部88における{{errorLine}}を、プログラム記述欄65のエラーが発生した行に記述されていたプログラムによって置き換える。
[0071] 制御部21は、全プログラム記述部89における{{program}})を、プログラム記述欄65の全プログラムによって置き換える。
[0072] 図11において、LLMサーバ8は、対話学習支援サーバ2から、プロンプトを受信すると、条件付き確率の推論処理を行い、この推論処理によって得られた応答を、対話学習支援サーバ2に送信する(S200)。
[0073] 対話学習支援サーバ2は、LLMサーバ8から、応答を受信すると、この応答を、助言メッセージASMとしてユーザ端末1に送信する(S210)。
[0074] ユーザ端末1は、対話学習支援サーバ2から助言メッセージASMを受信すると、この助言メッセージASMを、Studio画面の学習支援ウィンドウ70内に表示する(S220)。図14は、助言要求ボタンBT1が選択された場合における助言メッセージASMの表示例を示す図である。図14に示すように、助言要求ボタンBT1の下に、エラーの原因についての応答が、助言メッセージASMとして表示される。さらにその下には、助言要求ボタンBT2がある。助言要求ボタンBT2には、「エラーの解決策を知りたいときは、ここを押してください」という文字が記されている。
[0075] 助言要求ボタンBT2が選択された場合、ユーザ端末1の制御部11は、「fix」の助言種別情報を含む助言要求メッセージを対話学習支援サーバ2に送信し(S160)、ステップS170→ステップS180→ステップS190→ステップS200→ステップS210と処理が進む。ユーザ端末1は、対話学習支援サーバ2から助言メッセージASMを受信すると、この助言メッセージASMを、Studio画面の学習支援ウィンドウ70内に表示する(S220)。図15は、助言要求ボタンBT2が選択された場合における助言メッセージASMの表示例を示す図である。図15に示すように、助言要求ボタンBT2の下に、エラーの解決策に関わる応答が、助言メッセージASMとして表示される。
[0076] 次に、図4のテストタブ62、デバッグタブ63、歯車アイコン604、編集メニューボタン606、スプライトボタン66、背景ボタン67、ドキュメントタブ73、質問タブ74、ゲーム制作アイコン171、プロジェクト一覧アイコン172、ドキュメントアイコン173、アカウントアイコン174が選択された場合の動作を説明する。
[0077] 図4におけるテストタブ62が選択された場合、プログラムの単体テストが実行できるようになる。既存言語のプログラミングでは、あるプログラムを作成したときに、そのプログラムに含まれる処理(多くの場合は関数として作成される)の動作を確認する必要がある。単体テストでは、関数を呼び出して、その結果得られる値が期待した値かどうかを確認するための「テストプログラム」を作成する。テストプログラムを実行することで、元のプログラムの動作の妥当性を自動的に検証することが可能となる。プログラミング初心者特化型言語でも、テストタブ62を選択し、プログラム記述欄65に単体テストのためのテストプログラムを入力して実行することができる。テストタブ62を選択すると、テストプログラムを入力するためのエディター、テストプログラムを実行するためのボタンなどが表示される。
[0078] 図4におけるデバッグタブ63が選択された場合、ステップ実行ができるようになる。既存言語のIDE(統合開発環境、プロのソフトウェアエンジニアが利用するプログラミングのためのアプリ)では、プログラムを1行ずつ実行して、そのときの変数の値を確認したり、期待通りに次の行に実行が移ったかどうかを確認するための「ステップ実行」という機能が備わっている。ステップ実行を使うことで、プログラムの実行状況を把握しやすくなる。プログラミング初心者特化型言語でも、ステップ実行の機能が提供されている。デバッグタブ63を選択すると、ステップ実行のための画面(どの行が実行されているかを示すUIと、変数値が表示されるUIから構成される)が表示される。
[0079] 図16は、歯車アイコン604が選択されたときの表示画面である。この表示画面では、プログラム記述欄65のカスタマイズを行うためのダイアログ901が表示される。このダイアログ901では、以下の項目のカスタマイズが可能である。b1.キーワードの色分けプログラム記述欄65内のプログラムを文法に従って色分けをすることができる。この設定では、色のテーマを選択することができる。b2.テスト機能テスト機能を有効にするかどうかを選択できる。b3.オートコンプリートプログラム記述欄65内に数文字入力しただけで、それに対応するキーワードを自動入力する機能がある。この機能のON / OFFを選択できる。b4.文字の大きさプログラム記述欄65内の文字の大きさを変更できる。
[0080] 図17は、編集メニューボタン606が選択されたときの表示画面である。編集メニューボタン606が選択されると、プログラム記述欄65内で利用することができる機能(切り取り、コピー、貼り付け、全選択など)の編集メニュー902が表示される。
[0081] 図18は、スプライトボタン66が選択されたときの表示画面である。スプライトは、透明な板が32枚重なっていて、一つの板ごとに一つのキャラクターを表示するものである。スプライトは、簡単に重ね合わせて表示することができる。スプライトボタン66を押すと、32枚あるスプライトの板にどのキャラクターを割り当てるかを設定するためのダイアログ903が表示される。
[0082] 図19は、背景ボタン67が選択されたときの表示画面である。プログラミング初心者特化型言語では、予め提供されているPICパターン(画像のパーツ)を組み合わせて背景画像を作ることができる。そして、図2に示したbackground命令を使って、背景画像を簡単に画面に描くことができる。背景ボタン67を押すと、背景を描くためのダイアログ904が表示される。
[0083] 図20は、ドキュメントタブ73が選択されたときの表示画面である。プログラミング初心者特化型言語でプログラミングを行う際の特徴として、プログラマーズガイドや命令 / 関数辞書を見ながらプログラミングできる(プログラミングウィンドウ60のプログラムと学習支援ウィンドウ70のプログラマーズガイド又は関数辞書を1画面上で同時に見て操作できる)ということがある。ドキュメントタブ73を選択すると、プログラマーズガイドや命令 / 関数辞書における該当の部分の説明が表示される。
[0084] 図21は、質問タブ74が選択されたときの表示画面である。特に学校にて、プログラミング初心者特化型言語を利用してプログラミング学習を行う際に、生徒から遠隔に居る教師に直に質問したい場面がある。昨今では、教師と生徒が別々の場所にいて授業が行われるオンライン形式での授業も行われている。この場合は、生徒から教師に直接質問を行うことは難しく、オンライン上で何らかのコミュニケーションがとれる方が効率的である。本実施形態のプログラミング学習支援システム9では、生徒から教師への質問をチャット形式で行うことができる。質問タブ74を選択すると、チャットウィンドウ905が表示される。質問を受けた教師は、生徒に回答を返す。
[0085] 図22は、ゲーム制作アイコン171が選択されたときの表示画面である。ゲーム制作アイコン171が選択されると、ゲームを制作する方法を学ぶことができるドキュメントが表示される。
[0086] 図23は、プロジェクト一覧アイコン172が選択されたときの表示画面である。プロジェクト一覧アイコン172が選択されると、プロジェクトの一覧を含むダイアログ906が開く。
[0087] 図24は、ドキュメントアイコン173が選択されたときの表示画面である。ドキュメントアイコン173が選択されると、閲覧可能な文書の一覧のメニュー907が表示される。
[0088] 図25は、アカウントアイコン174が選択されたときの表示画面である。アカウントアイコン174が選択されると、アカウント設定やログアウトなど、学習者のカウントに関する機能を呼び出すためのメニュー908が表示される。
[0089] 以上が、本実施形態の詳細である。本実施形態によると、次の効果が得られる。第1に、本実施形態におけるプログラミング学習支援システム9は、学習者のユーザ端末1と、学習者によるプログラミングの学習を支援するプログラミング学習支援装置4である対話学習支援サーバ2及びナレッジDBサーバ3とを有する。そして、ユーザ端末1が、初心者特化型言語のプログラムを記述するプログラム記述欄65とプログラム記述欄65内のプログラムの実行結果を表示する実行結果表示欄75とを有する学習支援画面を表示し(図11のステップS120)、プログラム記述欄65に記述された1又は複数行のプログラムの実行時にエラーが発生した場合、エラーが発生した行に記述されていたプログラム、及びエラー情報EMを含む助言要求メッセージを、対話学習支援サーバ2に送信し(図11のステップS160)、対話学習支援サーバ2が、助言要求メッセージを受信した場合、ナレッジDB338内におけるプログラミング初心者特化型言語の文法、命令及び関数の使い方、指定可能なパラメータとその制約条件に関わる文書から、助言要求メッセージ内のエラー情報EMとの関連が強い部分のテキストであるチャンクを検索し、検索したテキストと、助言要求メッセージ内におけるエラーが発生した行の行番号、及びエラー情報EMを埋め込んだプロンプトを外部のLLMサーバ8に送信し(図11のステップS190)、LLMサーバ8から、推論処理によって得られた応答を受信し(図11のステップS200)、LLMサーバ8から受信した応答を、助言メッセージASMとしてユーザ端末1に送信し(図11のステップS210)、ユーザ端末1が、助言メッセージASMを受信した場合、受信した助言メッセージASMを表示させる(図11のステップS220)。よって、本実施形態によると、講師やティーチングアシスタントが学習者の傍にいて指導しているのと同等の学習効果を得ることができる。
[0090] 第2に、本実施形態では、ナレッジDB338には、プログラマーズガイドと命令 / 関数辞書をチャンク分割したチャンクの各々と、各チャンクに所定次元数(本実施形態の例では768次元)の埋め込み表現処理を施した数値ベクトルVとを対応付けて記憶している。そして、対話学習支援サーバ2は、助言要求メッセージ内のエラー情報EMに所定次元数の埋め込み表現処理を施した数値ベクトルWを取得し、ナレッジDB338から、数値ベクトルWとの類似度が高い所定個数の数値ベクトルVと対応付けられたチャンクを検索し、ナレッジDB338から検索したチャンクを埋め込んだプロンプトをLLMサーバ8に送信する。このような処理を行うことにより、LLMサーバ8との間のデータ通信量を抑えつつ、より精度の高い応答をLLMサーバ8から得ることができる。
[0091] 第3に、本実施形態では、ユーザ端末1は、学習者の使用言語及び年齢層に関わる属性を示す属性情報(「ja_kanji」、「ja_kanji_elementary」、又は「en」)を含む助言要求メッセージを送信し、対話学習支援サーバ2は、所定のプロンプト雛形PTに、ナレッジDB338から検索したチャンクを埋め込むとともに、プロンプト雛形PTにおける応答の表現の態様を指定する複数の定型文のうち、属性情報と対応する定型文を残し、それ以外を消したものを、プロンプトとしてLLMサーバ8に送信する。よって、学習者の属性に合わせた適切な表現、文体の助言を提示することができる。
[0092] 第4に、本実施形態では、対話学習支援サーバ2の不揮発性記憶部23には、Studio画面のレイアウトを、マークアップ言語であるHTMLにより記述したStudio画面構造化データ235が記憶されており、このStudio画面構造化データ235には、プログラミング初心者特化型言語のプログラムを実行する言語エンジンとしての機能を有するスクリプトが記述されている。そして、対話学習支援サーバ2は、ユーザ端末1からのリクエストに応じて、不揮発性記憶部23に記憶されたStudio画面構造化データ235をユーザ端末1に送信し、ユーザ端末1の制御部11は、Studio画面構造化データ235を解釈して、ディスプレイにStudio画面を表示させるとともに、Studio画面構造化データ235に埋め込まれているスクリプトを実行し、プログラミング初心者特化型言語を実行する言語エンジンとしても動作する。よって、学習者は、ユーザ端末1にアプリケーションプログラムやプラグインを実装しなくても、プログラミングの学習をすることができる。
[0093] 以上、本発明の一実施形態について説明したが、この実施形態に以下の変形を加えてもよい。
[0094] (1)上記実施形態では、対話学習支援サーバ2とナレッジDBサーバ3の2つのサーバにより、プログラミング学習支援装置4を構成した。しかし、ナレッジDB338を備える一つのサーバによりプログラミング学習支援装置4を構成してもよい。
[0095] (2)上記実施形態において、プログラミング学習支援装置4は、ナレッジDB338の各レコードの各々について、当該レコードに格納されているチャンクの数値ベクトルV=(v1,v2,····v768)と、エラー情報EMの数値ベクトルW=(w1,w2,····w768)との間のユークリッド距離を求め、ユークリッド距離が近い上位20個の数値ベクトルW=(w1,w2,····w768)と対応付けられているチャンクが、エラーとの関連が強い上位20個のチャンクであると判定してもよい。
[0096] (3)上記実施形態において、ナレッジDB338に、プログラミング初心者特化型言語の文法、命令及び関数の使い方、指定可能なパラメータとその制約条件に関わる文書のテキストファイルそのものを記憶しておき、このテキストファイルからエラーとの関連が強い一部のテキストデータを検索するようにしてもよい。この場合において、例えば、エラーメッセージに使われている言葉を含む所定数のセンテンスを、エラーとの関連が高いテキストであると判断してもよい。
[0097] (4)上記実施形態では、Studio画面の中央を挟んで左側にプログラミングウィンドウ60があり、右側に学習支援ウィンドウ70があった。しかし、この配置を逆にし、Studio画面の中央を挟んで左側に学習支援ウィンドウ70があり、右側にプログラミングウィンドウ60があってもよい。
[0098] (5)上記実施形態におけるプログラミング学習支援システム9を、プログラミング初心者特化型言語以外の所定のプログラミング言語(例えば、Python、Java、C#)のプログラミング学習支援システム9として構成してもよい。
[0099] (6)上記実施形態では、対話学習支援サーバ2は、ナレッジDBから検索したチャンクと、助言要求メッセージ内におけるエラーメッセージ、エラーが発生した行の行番号、プログラム記述欄65のエラーが発生した行に記述されていたプログラム、及びプログラム記述欄65の全プログラムを記述したプロンプトを、LLMサーバ8に送信した。しかし、プログラム記述欄65の全プログラムを記述せずに、エラーメッセージ、エラーが発生した行の行番号、プログラム記述欄65のエラーが発生した行に記述されていたプログラムだけを記述したプロンプトを、LLMサーバ8に送信してもよい。このような態様によっても、精度の高い応答をLLMサーバ8から得ることが可能である。
[0100] (7)上記実施形態では、助言要求メッセージのエラー情報EMに所定次元数の埋め込み表現処理を施した数値ベクトルWを検索キーとして、ナレッジDB338からチャンクの検索を行ったが、エラー情報EM内のエラーメッセージに所定次元数の埋め込み表現処理を施した数値ベクトルWを検索キーとして、ナレッジDB338からチャンクの検索を行ってもよい。
符号の説明
[0101] 1 ユーザ端末2 対話学習支援サーバ3 ナレッジDBサーバ4 プログラミング学習支援装置8 LLMサーバ9 プログラミング学習支援システム11 制御部12 揮発性記憶部13 不揮発性記憶部14 通信部15 操作部16 ディスプレイ17 スピーカ18 マイクロホン21 制御部22 揮発性記憶部23 不揮発性記憶部24 通信部25 操作部31 制御部32 揮発性記憶部33 不揮発性記憶部34 通信部35 操作部60 プログラミングウィンドウ61 エディタータブ62 テストタブ63 デバッグタブ65 プログラム記述欄66 スプライトボタン67 背景ボタン68 実行ボタン70 学習支援ウィンドウ71 実行画面タブ72 エラータブ73 ドキュメントタブ74 質問タブ75 実行結果表示欄81 冒頭部82 チャンク埋め込み部83 エラーメッセージ第1記述部84 助言種別記述部85 応答態様記述部86 エラーメッセージ第2記述部87 エラー発生行記述部88 エラー発生行プログラム記述部89 全プログラム記述部131 OS132 ブラウザ171 ゲーム制作アイコン172 プロジェクト一覧アイコン173 ドキュメントアイコン174 アカウントアイコン235 Studio画面構造化データ236 プログラマーズガイド構造化データ237 関数辞書構造化データ604 歯車アイコン605 最大化アイコン606 編集メニューボタン607 スクロールバー705 最大化アイコン901 ダイアログ903 ダイアログ904 ダイアログ905 チャットウィンドウ906 ダイアログ907 メニュー908 メニュー< / script>
Claims
1. A terminal used by learners of a specified programming language, A programming learning support device that assists learners in programming learning. A programming learning support method using a programming learning support system, The storage means of the programming learning support device stores documents relating to the grammar of the programming language, the usage of commands and functions, and the parameters that can be specified and their constraints. The first step is that the terminal displays a learning support screen having a program description field for writing a program in the programming language and an execution result display field for displaying the execution result of the program in the program description field, and if an error occurs when executing one or more lines of program written in the program description field, it sends the program written on the line where the error occurred, and an advice request message including error information, to the programming learning support device. The second step is that when the programming learning support device receives the advice request message, it searches the document in the storage means for text that is strongly related to the error information in the advice request message, sends the searched text, the program written on the line in the advice request message where the error occurred, and a prompt with the error information embedded to an external LLM server, and receives a response obtained from the LLM server through inference processing. The third step is for the programming learning support device to send the response received from the LLM server to the terminal as an advice message, If the terminal receives an advice message, the fourth step is to display the received advice message. A programming learning support method characterized by having the following features.
2. The aforementioned storage means is The document has a knowledge database that stores a plurality of chunks obtained by dividing the document into chunks, and associates each chunk with a numerical vector V obtained by applying an embedding representation process of a predetermined number of dimensions to each chunk. In step 3 above, The aforementioned programming learning support device is A numerical vector W is obtained by applying the predetermined number of-dimensional embedding processing to the error information in the advice request message; a predetermined number of numerical vectors V with a high similarity to the numerical vector W are searched from the knowledge database for chunks associated with them; and a prompt containing the chunks found from the knowledge database is sent to the LLM server. The programming learning support method according to feature 1.
3. In the first step described above, The terminal transmits the advice request message, which includes attribute information indicating the learner's attributes. In step 3 above, The aforementioned programming learning support device is The chunks retrieved from the knowledge database are embedded into a predetermined prompt template, and among a plurality of standard phrases specifying the manner of response expression in the prompt template, the standard phrases corresponding to the attribute information are retained, while the others are deleted, and this is sent to the LLM server as a prompt. The programming learning support method according to feature 2.
4. The aforementioned storage means includes: The layout of the learning support screen is described in markup language as screen structured data, and the screen structured data contains a script that functions as a language engine for executing programs of the programming language. In the first step described above, The aforementioned programming learning support device is In response to a request from the terminal, the screen structured data stored in the storage means is transmitted to the terminal. The control unit of the terminal interprets the screen structured data and displays the learning support screen on the display means, and also executes the script embedded in the screen structured data and operates as the language engine. The programming learning support method according to feature 3.
5. A programming learning support device that assists programmers learning a given programming language, A storage means that stores documents relating to the grammar, instructions, and function usage of the aforementioned programming language, as well as the parameters that can be specified and their constraints, When the first processing means receives a message from the learner's terminal containing the program described on the line where the error occurred in the program description field of the terminal's learning support screen, and error information, it searches the document in the storage means for text that is strongly related to the error information in the message. A second processing means sends the text retrieved from the document in the storage means, the program described in the line where the error occurred in the advice request message, and a prompt embedded with error information to an external LLM server, and receives a response obtained from the LLM server through inference processing. A third processing means that transmits the response received from the LLM server to the terminal as an advisory message. A programming learning support device characterized by comprising the following:
6. A programming learning support device that assists programmers learning a given programming language, A storage means that stores screen structure data, which describes the layout of the learning support screen using a markup language, Processing means that transmits screen structured data stored in the storage means to the learner's terminal in response to a request from the learner's terminal. It has, The aforementioned learning support screen is The programming window is on one side of the middle, and the learning support window is on the other side. The programming window has a program description field, and outside the program description field within the programming window, there is an execution button, and the program description field is configured to allow the writing of a program in the programming language. The learning support window will display the execution result of the program if the execute button is selected and there are no errors in the program described in the program description field. If the execute button is selected and there are errors in the program described in the program description field, the learning support window will display an error message and the line number of the program in the program description field where the error occurred. A programming learning support device characterized by the following features.