WO2024161112A1 - Method of providing context-aware solutions to computer code errors - Google Patents
Method of providing context-aware solutions to computer code errors Download PDFInfo
- Publication number
- WO2024161112A1 WO2024161112A1 PCT/GB2024/050232 GB2024050232W WO2024161112A1 WO 2024161112 A1 WO2024161112 A1 WO 2024161112A1 GB 2024050232 W GB2024050232 W GB 2024050232W WO 2024161112 A1 WO2024161112 A1 WO 2024161112A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- user
- computer
- computer code
- input
- errors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
Definitions
- the present disclosure relates to a computer implemented method of providing context aware solutions to computer code errors.
- the present disclosure relates to how to identify errors in a computer code input selected by a user and how to provide recommended solution to an identified error based at least on the error itself and a sentiment of a user. Background While identifying errors in a computer program code during the compiling of that code is a typical part of the compiling process, the constant appearance of difficult to understand errors can be demoralising for would-be-programmers.
- a computer implemented method of providing a context-aware solution to a user-selected error in a computer code input comprising: receiving computer code input provided by a user via a computer code editor; compiling the computer code input, wherein compiling the computer code input includes identifying one or more errors in the computer code input and storing the one or more errors in a memory; receiving a text input from a user indicative of a request for assistance with a user-selected error; identifying the user-selected error from the one or more stored errors based on the text input from the user; selecting a first solution to the user-selected error based on an error checking algorithm; performing sentiment analysis of the text input and identifying a sentiment of the user based on the sentiment analysis; providing a context-aware solution to the user based on both the selected first solution and the sentiment of the user.
- identifying the one or more errors in the computer code input may comprise utilising a syntax check algorithm.
- the syntax check algorithm may comprise: parsing the abstract syntax tree for imports; searching the computer code input for all variables used in the computer code input; and sorting the variables into user-made variables, built-ins and functions.
- identifying the user-selected error from the one or more stored errors based on the text input from the user may comprise reviewing at least a subset of a chat history of the chatbox.
- performing sentiment analysis may comprise using one or more of: Text Blob; Vader; Bag of words vectorization-based models; LSTM-based models; and Transformer-based models.
- the step of compiling the computer code may be performed one or more of: periodically after a predetermined time interval; after a predetermined number of new lines have been started in the computer code editor; and after a predetermined number of words have been completed in the computer code editor.
- Figure 1 shows an example computer implemented method according to the present disclosure
- Figure 2 shows an example layout of a computer code editor according to the present disclosure
- Figure 3 shows an example layout of a chatbox laid over the computer code editor according to the present disclosure
- Figure 4 shows an example workflow for a computer-implemented method according to an embodiment of the present disclosure
- Figure 5 shows an example computer-readable medium.
- a computer implemented method 100 of providing a context-aware solution to a user-selected error in a computer code input comprises receiving 101 computer code input provided by a user via a computer code editor.
- the computer program editor 200 Upon requesting that the computer code editor 200 compiles the code, the computer program editor 200 is configured to compile the code as far as possible and to identify any errors that prevent the full compilation of the code.
- the computer code editor may comprise an error output box 202 which presents any errors which have been identified separate to the programming window 201.
- the computer code editor is further configured to store any of the errors into memory. Storing the errors in memory allows the errors to be reviewed at a later date and, in the context of the present disclosure, allows these errors to be reviewed in response to a user request for assistance.
- the computer code editor 200 may further comprise additional functionality typical for a computer code editor, such as a save function, a share function and one or more additional functions. input. Compiling the computer program code is performed in a manner known in the art.
- Compiling the computer code input includes identifying one or more errors in the computer code input and storing the one or more errors in a memory.
- Storing the one or more errors in the memory may comprise one or more of storing an indication of the type of error and text from the computer code input associated with the error.
- Identifying the one or more errors in the computer code input may comprise utilising a syntax check algorithm.
- the syntax check algorithm may comprise: parsing an abstract syntax tree for imports; searching the computer code input for all variables used in the computer code input; and sorting the variables into user-made variables, built-ins and functions.
- the step of compiling the computer code may be performed in response to receiving a compile instruction from the user which may be provided by clicking on a compile button in the computer code editor or by typing or speaking a compile command. Additionally, the step of compiling the computer program code may be performed periodically after a predetermined time interval, such as every 1 minute, every 5 minutes, every 10 minutes or after another period. Alternatively, or additionally, the step of compiling the computer program code may be performed after a certain number of new lines have been started, such as after every new line of code is started by the user in the computer code editor, after every two lines is started, after every 5 lines or after a different number of new lines have been started.
- the step of compiling the computer program code may be performed after a certain number of new words have been written such as after every five words have been completed, after every 10 words or after a different number of words have been started. Compilation of the code after either periodic or new-line-based intervals may be performed in the background without the results of the compilation being provided to the user. This may be performed so that errors can be identified and solutions recommended without the user specifically needing to compile the code before asking a question.
- the method further comprises receiving 103 a text input from a user indicative of a request for assistance with a user-selected error. That is, a user may provide a text input into an appropriate user input device within the overall program in order to request assistance.
- the user may provide their text input requesting assistance via a chatbox, i.e., a free-text input that the user can use to send messages for interaction with the software’s AI-based assistance software (chatbot).
- the chatbox may also show the associated message history may include in a separate window to the computer code editor or it may be integrated into a window that includes the computer code editor.
- Figure 3 shows an example chatbox 300 that can overlay the computer code editor wherein a chatbox is a free text input chatbox suitable for a user to provide free text into and receive responses from an automated chat assistant.
- the request for assistance is described as a text input
- this does not limit the user from providing their input as a spoken request via a sound capture device such as a microphone wherein the spoken request is captured by software and converted into a text input for interpretation by the software.
- the user is not limited to their method of input but text representative of their input is used by the system for interpretation of the request.
- the method further comprises identifying 104 the user-selected error from the one or more stored errors based on the text input from the user. That is, the software is configured to interpret the text input from the user in a manner suitable to identify a type of error indicated by the user and correlate this with one or more errors stored as errors that have occurred during compilation.
- this step and the other steps of the method are computer implemented and, as such, are not performed by a human attempting to identify the user-selected error from the text input.
- the user may request help on a specific error.
- the user can provide the text input in a natural language manner, i.e., without any special syntax of itself and more like how a person ask for help from another user or teacher.
- the system may be configured to review the text input from the user using any appropriate means to identify the desire of the user. For example, the system may use key-word identification to look for words or phrases related to particular common errors or errors which have been recently flagged during compilation of the computer code input.
- the system may identify language relating to how recently the error was made. For example, a user input may read “Can you help me with this latest error”, in which case the system may identify the last error recorded in the memory. It will be appreciated that alternative or additional method may be implemented for identifying errors referred to by the user.
- AI- based review of the user text input may be used.
- text input from the user may comprise reviewing at least a subset of a chat history of a chatbox.
- the subset of the chat history may comprise any chat messages that have been exchanged within a particular time period, such as within the last day, hour or minute, for example.
- the subset of the chat history may be any chat messages that have been exchanged with the user since a user indicated that a previous error had been resolved or since the compiler successfully resolved a most-recent user-selected error.
- the subset of the chat history may additionally or alternatively comprise messages sent within a predetermined threshold of recent messages.
- the subset of the chat history may comprise the last 20, 10, 5 or 1 messages received from the user.
- the method may comprise reviewing the whole of the chat history of the chatbox.
- identifying the user-selected error from the one or more stored errors based on the text input from the user comprises checking the text input from the user for one or more of specific error names, specific imports, and specific built-ins.
- identifying the user-selected error from the one or more stored errors based on the text input from the user may comprise checking the computer code input for one or more of specific error names; missing imports; and missing built-ins. Additionally, or alternatively, identifying the user-selected error from the one or more stored errors based on the text input from the user may comprise checking a debug report provided by the compiler upon compilation of the code for one or more of specific error names; missing imports; and missing built-ins. Finally, alternatively or additionally, identifying the user-selected error from the one or more stored errors based on the text input from the user may comprise performing a fuzzy search of the computer code input for typographical errors.
- identifying the user-selected error from one or more stored errors based on the text input from the user may comprise checking the computer code input for one or more NameErrors, correlating the one or more identified NameErrors with the text input.
- This particular embodiment may further particularly comprise performing a fuzzy search of the computer code input in order to identify typographical errors correlated with one or more both the identified NameErrors and the text input from the user.
- One or more embodiments, including the aforementioned particular embodiment may comprise reviewing a history of previously presented solutions and excluding previously presented solutions if appropriate so as to continue to provide the user with new solutions as opposed to repeated solutions. based on an error checking algorithm.
- Selecting the first solution may comprise comparing the identified error to a look-up table of errors and selecting a standardised solution template based on identified error.
- selecting the solution may comprise using a standardised solution as a template into which details of the user’s specific error can be incorporated.
- the standardised solution may comprise a variable field into which a quote from the user’s code can be inserted such that the user can be provided with a tailored solution.
- selecting the solution may comprise any other suitable approach for selecting a solution
- the method further comprises performing 106 sentiment analysis of the text input and identifying a sentiment of the user based on the sentiment analysis.
- Sentiment analysis as an isolated technique, is known in the art as a technique that allows for the determination of a user’s current outward feelings or mood.
- the sentiment analysis can be performed based on the type of language that the user uses, among other factors.
- the sentiment analysis may identify whether a user is content, frustrated, angry or is experiencing another emotion.
- Performing sentiment analysis of the text input may comprise any suitable approach for performing sentiment analysis.
- performing sentiment analysis may comprise performing sentiment analysis on at least a subset of a chat history of the chatbox.
- the subset of the chat history may comprise any chat messages that have been exchanged within a particular time period, such as within the last day, hour or minute, for example.
- the subset of the chat history may be any chat messages that have been exchanged with the user since a user indicated that a previous error had been resolved or since the compiler successfully resolved a most- recent user-selected error.
- the subset of the chat history may additionally or alternatively comprise messages sent within a predetermined threshold of recent messages.
- the subset of the chat history may comprise the last 20, 10, 5 or 1 messages received by the user.
- the method may comprise reviewing the whole of the chat history of the chatbox.
- sentiment analysis may be performed on the whole of the chat history of the chatbox. The sentiment analysis may be performed using any suitable sentiment analysis technique.
- sentiment analysis may be performed by using one or more of: Text Blob; Vader; Bag of words vectorization- based models; LSTM-based models; and Transformer-based models. based on both the selected first solution and the sentiment of the user.
- the system may be configured to incorporate the selected first solution into a frame of sentiment-aware language such that the response provided to the user is appropriate to the sentiment, or context, of the user.
- Figure 4 provides a detailed example embodiment of the present disclosure wherein possible ways in which the method of the disclosure is implemented.
- the system may comprise a python coding editor graphical user interface (GUI) 401, a compiler service 402, a syntax checker 403, an AI module 404, an ErrorAction Loop, 405 and a reporting module 406.
- GUI graphical user interface
- the python coding editor 401 may be the computer code editor and may allow the user to run the code. Running the code results in compilation of the code by the compiler service 402 and, if any errors are detected, the compiler service identifies the error types of those errors.
- the syntax checker 403 takes the error types and performs at least one of a plurality of actions.
- the compiler service 402 is configured to record one or more of code blocks, concepts and error types. These code blocks, concepts and error types may be stored in a local memory or an external memory to the compiler service.
- the system as a whole is configured such that it does not provide feedback to a user unless the user requests help.
- the user may request help via the python coding editor GUI 401, which may comprise a built-in chatbox or a chatbox which is able to overlay the coding editor.
- the compiler service 402 may be configured to register the user request and get any previously stored error types, code blocks and concepts from memory.
- the compiler service may further pass the stored error types, code blocks and concepts to the AI module 404.
- the AI module 404 may be configured to utilise the error action loop 405 in order to identify the preferred solution.
- the ErrorAction Loop 405 may be a part of the AI Module 404 or separate from the AI module 404.
- the ErrorAction Loop 405 may be configured to one or more of check for specific errors, which may be runtime errors, check for missing imports, check for missing built-ins, perform a fuzzy search to check if a user has made a typographic error, and provide one or more general pieces of advice. Additionally, or alternatively, the AI module may be configured to also identify logical errors, such as infinite loops. The AI module 404 may further be configured to identify the sentiment of the user based on current responses and the chat history. This allows for the creation of a dynamic accessible response based on the preferred identified solution and the current user sentiment. The dynamic accessible response is then provided as a message to a user. The AI module 404 can further store the interaction for reporting and future analysis of responses.
- the system may further be configured to respond to future requests for assistance from the user. For example, the user may indicate that the initial response was not helpful or did not solve the problem.
- the AI module 404 may be configured to identify a second solution, different to the first solution, by using the ErrorAction Loop 405 again but by additionally calling the previously provided solution from memory so that the same solution is not provided a second time.
- the system may further be configured such that a teacher, overseer or other assistance administrator can check the progress of a user using the reporting module 406.
- the assistance administrator may use the reporting module 406 to generate reports relating to one or more of: common errors and the general reasons for those errors; grit analysis; troublesome code blocks; and a user’s concept understanding.
- FIG 4 provides just one example of how the system could be implemented in software. Functionalities depicted as being incorporated into one module in figure 4 may, in other embodiments, be implemented by other modules and more or fewer modules may be used in other embodiments.
- Figure 5 shows an example computer-readable medium comprising computer program code which, when executed by a computer, cause the computer to carry out the method of the present disclosure.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
A computer implemented method of providing a context-aware solution to a user- selected error in a computer code input, the method comprising : receiving computer code input provided by a user via a computer code editor; compiling the computer code input, wherein compiling the computer code input includes identifying one or more errors in the computer code input and storing the one or more errors in a memory; receiving a text input from a user indicative of a request for assistance with a user- selected error; identifying the user-selected error from the one or more stored errors; selecting a first solution to the user-selected error based on an error checking algorithm; performing sentiment analysis of the text input and identifying a sentiment of the user based on the sentiment analysis; providing a context-aware solution to the user based on both the selected first solution and the sentiment of the user.
Description
METHOD OF PROVIDING CONTEXT-AWARE SOLUTIONS TO COMPUTER CODE ERRORS Field The present disclosure relates to a computer implemented method of providing context aware solutions to computer code errors. In particular, the present disclosure relates to how to identify errors in a computer code input selected by a user and how to provide recommended solution to an identified error based at least on the error itself and a sentiment of a user. Background
While identifying errors in a computer program code during the compiling of that code is a typical part of the compiling process, the constant appearance of difficult to understand errors can be demoralising for would-be-programmers. Some attempts have been made to explain errors in simple language to the programmer, however, such attempts do not necessarily prevent the programmer from the fatigue that can set in when presented with continuous errors. Over-fatigue from the presentation of constant errors can lower the resilience of a user and result in them abandoning their ambitions to continue learning the art of programming. Summary According to a first aspect of the present disclosure, there is provided a computer implemented method of providing a context-aware solution to a user-selected error in a computer code input, the method comprising: receiving computer code input provided by a user via a computer code editor; compiling the computer code input, wherein compiling the computer code input includes identifying one or more errors in the computer code input and storing the one or more errors in a memory; receiving a text input from a user indicative of a request for assistance with a user-selected error; identifying the user-selected error from the one or more stored errors based on the text input from the user; selecting a first solution to the user-selected error based on an error checking algorithm; performing sentiment analysis of the text input and identifying a sentiment of the user based on the sentiment analysis; providing a context-aware solution to the user based on both the selected first solution and the sentiment of the user.
assistance may be received via a chatbox. In one or more embodiments, the context-aware recommended solution may be provided to the user via a chatbox. In one or more embodiments, identifying the one or more errors in the computer code input may comprise utilising a syntax check algorithm. In one or more embodiments, the syntax check algorithm may comprise: parsing the abstract syntax tree for imports; searching the computer code input for all variables used in the computer code input; and sorting the variables into user-made variables, built-ins and functions. In one or more embodiments, identifying the user-selected error from the one or more stored errors based on the text input from the user may comprise reviewing at least a subset of a chat history of the chatbox. In one or more embodiments, identifying the user-selected error from the one or more stored errors based on the text input from the user may comprise one or more of: checking the text input from the user for specific error names; checking the text input from the user for specific imports; checking the text input from the user for specific built-ins; checking the computer code input for specific error names; checking the computer code input for missing imports; checking the computer code input for missing built-ins; checking the computer code input for predefined logical errors; checking a debug report provided by the compiler upon compilation of the code for specific error names; checking a debug report provided by the compiler upon compilation of the code for missing imports; checking a debug report provided by the compiler upon compilation of the code for missing built-ins; and performing a fuzzy search of the computer code input for typographical errors.
comprise performing sentiment analysis on at least a subset of a chat history of the chatbox. In one or more embodiments, performing sentiment analysis may comprise using one or more of: Text Blob; Vader; Bag of words vectorization-based models; LSTM-based models; and Transformer-based models. In one or more embodiments, the step of compiling the computer code may be performed one or more of: periodically after a predetermined time interval; after a predetermined number of new lines have been started in the computer code editor; and after a predetermined number of words have been completed in the computer code editor. According to a second aspect of the present disclosure, there is provided a computer readable medium comprising computer program code which, when executed by a computer, cause the computer to carry out the method of the first aspect. Brief Description of the Drawings be described by way of example only with reference
to the accompanying drawings in which: Figure 1 shows an example computer implemented method according to the present disclosure; Figure 2 shows an example layout of a computer code editor according to the present disclosure; Figure 3 shows an example layout of a chatbox laid over the computer code editor according to the present disclosure; Figure 4 shows an example workflow for a computer-implemented method according to an embodiment of the present disclosure; and Figure 5 shows an example computer-readable medium. Detailed Description nation of error and solution identification with sentiment analysis
in a single software solution, as disclosed herein, can improve the retention of aspiring programmers (users). Improving the retention of users that are learning to program
understanding of coding in the general populace. According to the present disclosure, there is disclosed a computer implemented method 100 of providing a context-aware solution to a user-selected error in a computer code input. That is, a user is able to select an error which has arisen in a computer code input, as will be described later, and the method will provide for a solution, which may be a specific solution or general advice, to the user. The solution provided to the user will be context-aware, which is to say that the solution will be tailored to the context, or sentiment, of a user based on the way in which they provided their request for feedback. The context-aware way in which the solution is presented is based on sentiment analysis of the user’s request for help. The method 100 comprises receiving 101 computer code input provided by a user via a computer code editor. Computer code input in this context refers to coding written by a user for compilation into an executable computer program. For example, the computer code input may be written in the python programming language, C, C++, C#, Java or any other programming language. Figure 2 shows an example computer code editor 200. The computer code editor 200 is a part of the software comprising a programming window 201 into which a user can enter text that is suitable for compiling into a computer program. The computer code editor further comprises a compile or run button which, upon pressing the compile or run button causes the computer code editor to compile any code which has been entered into the programming window and, optionally, run that code. Upon requesting that the computer code editor 200 compiles the code, the computer program editor 200 is configured to compile the code as far as possible and to identify any errors that prevent the full compilation of the code. The computer code editor may comprise an error output box 202 which presents any errors which have been identified separate to the programming window 201. The computer code editor is further configured to store any of the errors into memory. Storing the errors in memory allows the errors to be reviewed at a later date and, in the context of the present disclosure, allows these errors to be reviewed in response to a user request for assistance. The computer code editor 200 may further comprise additional functionality typical for a computer code editor, such as a save function, a share function and one or more additional functions.
input. Compiling the computer program code is performed in a manner known in the art. Compiling the computer code input includes identifying one or more errors in the computer code input and storing the one or more errors in a memory. Storing the one or more errors in the memory may comprise one or more of storing an indication of the type of error and text from the computer code input associated with the error. Identifying the one or more errors in the computer code input may comprise utilising a syntax check algorithm. The syntax check algorithm may comprise: parsing an abstract syntax tree for imports; searching the computer code input for all variables used in the computer code input; and sorting the variables into user-made variables, built-ins and functions. The step of compiling the computer code may be performed in response to receiving a compile instruction from the user which may be provided by clicking on a compile button in the computer code editor or by typing or speaking a compile command. Additionally, the step of compiling the computer program code may be performed periodically after a predetermined time interval, such as every 1 minute, every 5 minutes, every 10 minutes or after another period. Alternatively, or additionally, the step of compiling the computer program code may be performed after a certain number of new lines have been started, such as after every new line of code is started by the user in the computer code editor, after every two lines is started, after every 5 lines or after a different number of new lines have been started. Alternatively, or additionally, the step of compiling the computer program code may be performed after a certain number of new words have been written such as after every five words have been completed, after every 10 words or after a different number of words have been started. Compilation of the code after either periodic or new-line-based intervals may be performed in the background without the results of the compilation being provided to the user. This may be performed so that errors can be identified and solutions recommended without the user specifically needing to compile the code before asking a question. The method further comprises receiving 103 a text input from a user indicative of a request for assistance with a user-selected error. That is, a user may provide a text input into an appropriate user input device within the overall program in order to request assistance. For example, in one or more embodiments, the user may provide their text input requesting assistance via a chatbox, i.e., a free-text input that the user can use to send messages for interaction with the software’s AI-based assistance software (chatbot). The chatbox may also show the associated message history
may include in a separate window to the computer code editor or it may be integrated into a window that includes the computer code editor. Figure 3 shows an example chatbox 300 that can overlay the computer code editor wherein a chatbox is a free text input chatbox suitable for a user to provide free text into and receive responses from an automated chat assistant. It will be appreciated that, while the request for assistance is described as a text input, this does not limit the user from providing their input as a spoken request via a sound capture device such as a microphone wherein the spoken request is captured by software and converted into a text input for interpretation by the software. In this way, the user is not limited to their method of input but text representative of their input is used by the system for interpretation of the request. The method further comprises identifying 104 the user-selected error from the one or more stored errors based on the text input from the user. That is, the software is configured to interpret the text input from the user in a manner suitable to identify a type of error indicated by the user and correlate this with one or more errors stored as errors that have occurred during compilation. For the avoidance of doubt, this step and the other steps of the method, are computer implemented and, as such, are not performed by a human attempting to identify the user-selected error from the text input. In terms of the text input provided by the user, the user may request help on a specific error. The user can provide the text input in a natural language manner, i.e., without any special syntax of itself and more like how a person ask for help from another user or teacher. The system may be configured to review the text input from the user using any appropriate means to identify the desire of the user. For example, the system may use key-word identification to look for words or phrases related to particular common errors or errors which have been recently flagged during compilation of the computer code input. Additionally, or alternatively, the system may identify language relating to how recently the error was made. For example, a user input may read “Can you help me with this latest error”, in which case the system may identify the last error recorded in the memory. It will be appreciated that alternative or additional method may be implemented for identifying errors referred to by the user. For example, AI- based review of the user text input may be used.
text input from the user may comprise reviewing at least a subset of a chat history of a chatbox. For example, the subset of the chat history may comprise any chat messages that have been exchanged within a particular time period, such as within the last day, hour or minute, for example. Alternatively, the subset of the chat history may be any chat messages that have been exchanged with the user since a user indicated that a previous error had been resolved or since the compiler successfully resolved a most-recent user-selected error. The subset of the chat history may additionally or alternatively comprise messages sent within a predetermined threshold of recent messages. For example, the subset of the chat history may comprise the last 20, 10, 5 or 1 messages received from the user. Alternatively, the method may comprise reviewing the whole of the chat history of the chatbox. In particular, identifying the user-selected error from the one or more stored errors based on the text input from the user comprises checking the text input from the user for one or more of specific error names, specific imports, and specific built-ins. Additionally, or alternatively, identifying the user-selected error from the one or more stored errors based on the text input from the user may comprise checking the computer code input for one or more of specific error names; missing imports; and missing built-ins. Additionally, or alternatively, identifying the user-selected error from the one or more stored errors based on the text input from the user may comprise checking a debug report provided by the compiler upon compilation of the code for one or more of specific error names; missing imports; and missing built-ins. Finally, alternatively or additionally, identifying the user-selected error from the one or more stored errors based on the text input from the user may comprise performing a fuzzy search of the computer code input for typographical errors. In particular, when using the python coding language, identifying the user-selected error from one or more stored errors based on the text input from the user may comprise checking the computer code input for one or more NameErrors, correlating the one or more identified NameErrors with the text input. This particular embodiment may further particularly comprise performing a fuzzy search of the computer code input in order to identify typographical errors correlated with one or more both the identified NameErrors and the text input from the user. One or more embodiments, including the aforementioned particular embodiment, may comprise reviewing a history of previously presented solutions and excluding previously presented solutions if appropriate so as to continue to provide the user with new solutions as opposed to repeated solutions.
based on an error checking algorithm. Selecting the first solution may comprise comparing the identified error to a look-up table of errors and selecting a standardised solution template based on identified error. In other examples, selecting the solution may comprise using a standardised solution as a template into which details of the user’s specific error can be incorporated. For example, the standardised solution may comprise a variable field into which a quote from the user’s code can be inserted such that the user can be provided with a tailored solution. Alternatively, selecting the solution may comprise any other suitable approach for selecting a solution The method further comprises performing 106 sentiment analysis of the text input and identifying a sentiment of the user based on the sentiment analysis. Sentiment analysis, as an isolated technique, is known in the art as a technique that allows for the determination of a user’s current outward feelings or mood. The sentiment analysis can be performed based on the type of language that the user uses, among other factors. For example, the sentiment analysis may identify whether a user is content, frustrated, angry or is experiencing another emotion. Performing sentiment analysis of the text input may comprise any suitable approach for performing sentiment analysis. For example, performing sentiment analysis may comprise performing sentiment analysis on at least a subset of a chat history of the chatbox. For example, the subset of the chat history may comprise any chat messages that have been exchanged within a particular time period, such as within the last day, hour or minute, for example. Alternatively, the subset of the chat history may be any chat messages that have been exchanged with the user since a user indicated that a previous error had been resolved or since the compiler successfully resolved a most- recent user-selected error. The subset of the chat history may additionally or alternatively comprise messages sent within a predetermined threshold of recent messages. For example, the subset of the chat history may comprise the last 20, 10, 5 or 1 messages received by the user. Alternatively, the method may comprise reviewing the whole of the chat history of the chatbox. Alternatively, sentiment analysis may be performed on the whole of the chat history of the chatbox. The sentiment analysis may be performed using any suitable sentiment analysis technique. To provide some particular, examples, sentiment analysis may be performed by using one or more of: Text Blob; Vader; Bag of words vectorization- based models; LSTM-based models; and Transformer-based models.
based on both the selected first solution and the sentiment of the user. Thus, the system may be configured to incorporate the selected first solution into a frame of sentiment-aware language such that the response provided to the user is appropriate to the sentiment, or context, of the user. By taking this approach, the user is able to be encouraged to continue in a manner which suits their current mindset and, thereby, their likelihood of continued engagement with the programming exercise is increased. By encouraging continued engagement, users are more likely to develop their skills to a higher level of competency and, as such, result in a higher number of experienced and skilled programmers in society. Figure 4 provides a detailed example embodiment of the present disclosure wherein possible ways in which the method of the disclosure is implemented. As shown in figure 4, the system may comprise a python coding editor graphical user interface (GUI) 401, a compiler service 402, a syntax checker 403, an AI module 404, an ErrorAction Loop, 405 and a reporting module 406. The python coding editor 401 may be the computer code editor and may allow the user to run the code. Running the code results in compilation of the code by the compiler service 402 and, if any errors are detected, the compiler service identifies the error types of those errors. The syntax checker 403 takes the error types and performs at least one of a plurality of actions. These actions include searching the code for all variables, which may be anything one can call or assign), sorting variables into user- made variables, built-ins and functions, and parsing an abstract syntax tree for imports. Based on the results of the syntax checker, the compiler service 402 is configured to record one or more of code blocks, concepts and error types. These code blocks, concepts and error types may be stored in a local memory or an external memory to the compiler service. The system as a whole is configured such that it does not provide feedback to a user unless the user requests help. The user may request help via the python coding editor GUI 401, which may comprise a built-in chatbox or a chatbox which is able to overlay the coding editor. Based on the request for help, the compiler service 402 may be configured to register the user request and get any previously stored error types, code blocks and concepts from memory. The compiler service may further pass the stored error types, code blocks and concepts to the AI module 404.
identify a preferred solution based on an error hierarchy workflow. The AI module 404 may be configured to utilise the error action loop 405 in order to identify the preferred solution. The ErrorAction Loop 405 may be a part of the AI Module 404 or separate from the AI module 404. The ErrorAction Loop 405 may be configured to one or more of check for specific errors, which may be runtime errors, check for missing imports, check for missing built-ins, perform a fuzzy search to check if a user has made a typographic error, and provide one or more general pieces of advice. Additionally, or alternatively, the AI module may be configured to also identify logical errors, such as infinite loops. The AI module 404 may further be configured to identify the sentiment of the user based on current responses and the chat history. This allows for the creation of a dynamic accessible response based on the preferred identified solution and the current user sentiment. The dynamic accessible response is then provided as a message to a user. The AI module 404 can further store the interaction for reporting and future analysis of responses. The system may further be configured to respond to future requests for assistance from the user. For example, the user may indicate that the initial response was not helpful or did not solve the problem. In response to this, the AI module 404 may be configured to identify a second solution, different to the first solution, by using the ErrorAction Loop 405 again but by additionally calling the previously provided solution from memory so that the same solution is not provided a second time. The system may further be configured such that a teacher, overseer or other assistance administrator can check the progress of a user using the reporting module 406. The assistance administrator may use the reporting module 406 to generate reports relating to one or more of: common errors and the general reasons for those errors; grit analysis; troublesome code blocks; and a user’s concept understanding. These reports may be used to adapt a lesson plan or private tuition to further improve the training of the user. It will be appreciated that the embodiment depicted in figure 4 provides just one example of how the system could be implemented in software. Functionalities depicted as being incorporated into one module in figure 4 may, in other embodiments, be implemented by other modules and more or fewer modules may be used in other embodiments.
Figure 5 shows an example computer-readable medium comprising computer program code which, when executed by a computer, cause the computer to carry out the method of the present disclosure.
Claims
1. A computer implemented method of providing a context-aware solution to a user-selected error in a computer code input, the method comprising: receiving computer code input provided by a user via a computer code editor; compiling the computer code input, wherein compiling the computer code input includes identifying one or more errors in the computer code input and storing the one or more errors in a memory; receiving a text input from a user indicative of a request for assistance with a user-selected error; identifying the user-selected error from the one or more stored errors based on the text input from the user; selecting a first solution to the user-selected error based on an error checking algorithm; performing sentiment analysis of the text input and identifying a sentiment of the user based on the sentiment analysis; providing a context-aware solution to the user based on both the selected first solution and the sentiment of the user.
2. The computer implemented method of claim 1 wherein the text input from the user indicative of a request for assistance is received via a chatbox.
3. The computer implemented method of any preceding claim wherein the context- aware recommended solution is provided to the user via a chatbox.
4. The computer implemented method of any preceding claim wherein identifying the one or more errors in the computer code input comprises utilising a syntax check algorithm.
5. The computer-implemented method of claim 4 wherein the syntax check algorithm comprises: parsing the abstract syntax tree for imports; searching the computer code input for all variables used in the computer code input; and sorting the variables into user-made variables, built-ins and functions.
the user-selected error from the one or more stored errors based on the text input from the user comprises reviewing at least a subset of a chat history of the chatbox. 7. The computer-implemented method of any preceding claim wherein identifying the user-selected error from the one or more stored errors based on the text input from the user comprises one or more of: checking the text input from the user for specific error names; checking the text input from the user for specific imports; checking the text input from the user for specific built-ins; checking the computer code input for specific error names; checking the computer code input for missing imports; checking the computer code input for missing built-ins; checking the computer code input for predefined logical errors; checking a debug report provided by the compiler upon compilation of the code for specific error names; checking a debug report provided by the compiler upon compilation of the code for missing imports; checking a debug report provided by the compiler upon compilation of the code for missing built-ins; and performing a fuzzy search of the computer code input for typographical errors. 8. The computer-implemented method of any of claims 2 – 7 wherein performing sentiment analysis of the text input comprises performing sentiment analysis on at least a subset of a chat history of the chatbox. 9. The computer-implemented method of claim 8 wherein performing sentiment analysis comprises using one or more of: Text Blob; Vader; Bag of words vectorization-based models; LSTM-based models; and Transformer-based models. 10. The computer-implemented method of any preceding claim wherein the step of compiling the computer code is performed one or more of: periodically after a predetermined time interval;
code editor; and after a predetermined number of words have been completed in the computer code editor. 11. A computer readable medium comprising computer program code which, when executed by a computer, cause the computer to carry out the method of any of claims 1 – 10.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202363441883P | 2023-01-30 | 2023-01-30 | |
| US63/441,883 | 2023-01-30 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024161112A1 true WO2024161112A1 (en) | 2024-08-08 |
Family
ID=89853324
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/GB2024/050232 Ceased WO2024161112A1 (en) | 2023-01-30 | 2024-01-29 | Method of providing context-aware solutions to computer code errors |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2024161112A1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6367068B1 (en) * | 1998-11-13 | 2002-04-02 | Microsoft Corporation | Dynamic parsing |
| US20200150937A1 (en) * | 2018-11-09 | 2020-05-14 | Manhattan Engineering Incorporated | Advanced machine learning interfaces |
-
2024
- 2024-01-29 WO PCT/GB2024/050232 patent/WO2024161112A1/en not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6367068B1 (en) * | 1998-11-13 | 2002-04-02 | Microsoft Corporation | Dynamic parsing |
| US20200150937A1 (en) * | 2018-11-09 | 2020-05-14 | Manhattan Engineering Incorporated | Advanced machine learning interfaces |
Non-Patent Citations (1)
| Title |
|---|
| BJÃ RN HARTMANN ET AL: "What would other programmers do", CHI 2010 >INPUT, SECURITY, AND PRIVACY POLICIES, ACM, ATLANTA, GA, USA, 10 April 2010 (2010-04-10), pages 1019 - 1028, XP058405057, ISBN: 978-1-60558-929-9, DOI: 10.1145/1753326.1753478 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20240038226A1 (en) | Prompt generation for guided custom machine learning collaboration | |
| US6434738B1 (en) | System and method for testing computer software | |
| US11226801B2 (en) | System and methods for voice controlled automated computer code deployment | |
| Koutcheme et al. | Evaluating language models for generating and judging programming feedback | |
| CN117289841B (en) | Interaction method and device based on large language model, storage medium and electronic device | |
| US12253932B1 (en) | Automated multi-stage computer code generation | |
| CN117113080B (en) | Data processing and code processing methods, devices, all-in-one machines, and storage media | |
| Dominic et al. | Onboarding bot for newcomers to software engineering | |
| Wakatani et al. | Evaluation of software education using auto-generated exercises | |
| WO2024161112A1 (en) | Method of providing context-aware solutions to computer code errors | |
| Ragavan et al. | Version control systems: An information foraging perspective | |
| Oezbek et al. | Jtourbus: Simplifying program understanding by documentation that provides tours through the source code | |
| CN114461514A (en) | Automatic testing method and system based on low codes | |
| Adel et al. | DERE: A task and domain-independent slot filling framework for declarative relation extraction | |
| Wickramasinghe et al. | Smart exam evaluator for object-oriented programming modules | |
| CN119250226A (en) | A method, device, equipment and medium for intelligent agent application based on large model | |
| CN118364068A (en) | Intelligent question-answering method, device, equipment and medium | |
| CN118227421A (en) | Log analysis positioning method and system based on large model technology | |
| CN113778454B (en) | Automatic evaluation method and system for artificial intelligent experiment platform | |
| EP4562546A1 (en) | Prompt generation for guided custom machine learning collaboration | |
| CN114090443A (en) | Problem locating method and device in multi-level component calling scenario | |
| CN112102676A (en) | Training content generation method and device | |
| CN120542582B (en) | Verification method, verification device, storage medium and verification equipment for LLM output result | |
| Perera et al. | Task and Process Capturing Toolkit using GUI Automation | |
| US12541447B2 (en) | Automated multi-stage computer code generation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24703851 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |