論文の概要: Flexible Control Flow Graph Alignment for Delivering Data-Driven
Feedback to Novice Programming Learners
- arxiv url: http://arxiv.org/abs/2401.01416v1
- Date: Tue, 2 Jan 2024 19:56:50 GMT
- ステータス: 処理完了
- システム内更新日: 2024-01-04 16:00:46.540011
- Title: Flexible Control Flow Graph Alignment for Delivering Data-Driven
Feedback to Novice Programming Learners
- Title(参考訳): 初級プログラミング学習者にデータ駆動フィードバックを提供するフレキシブル制御フローグラフアライメント
- Authors: Md Towhidul Absar Chowdhury, Maheen Riaz Contractor, Carlos R. Rivero
- Abstract要約: 我々は,オープンソースのデータ駆動型自動修復手法であるCLARAに,いくつかの改良を加えて提案する。
我々はCLARAの抽象構文木プロセッサを拡張し、一般的な入門プログラミング構造を扱う。
CLARAの修復プロセスを適用するために,不正プログラムの制御フローグラフを修正した。
- 参考スコア(独自算出の注目度): 0.847136673632881
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Supporting learners in introductory programming assignments at scale is a
necessity. This support includes automated feedback on what learners did
incorrectly. Existing approaches cast the problem as automatically repairing
learners' incorrect programs extrapolating the data from an existing correct
program from other learners. However, such approaches are limited because they
only compare programs with similar control flow and order of statements. A
potentially valuable set of repair feedback from flexible comparisons is thus
missing. In this paper, we present several modifications to CLARA, a
data-driven automated repair approach that is open source, to deal with
real-world introductory programs. We extend CLARA's abstract syntax tree
processor to handle common introductory programming constructs. Additionally,
we propose a flexible alignment algorithm over control flow graphs where we
enrich nodes with semantic annotations extracted from programs using operations
and calls. Using this alignment, we modify an incorrect program's control flow
graph to match the correct programs to apply CLARA's original repair process.
We evaluate our approach against a baseline on the twenty most popular
programming problems in Codeforces. Our results indicate that flexible
alignment has a significantly higher percentage of successful repairs at 46%
compared to 5% for baseline CLARA. Our implementation is available at
https://github.com/towhidabsar/clara.
- Abstract(参考訳): 導入型プログラミング課題における学習者のサポートは不可欠である。
このサポートには、学習者が誤って行ったことに対する自動フィードバックが含まれている。
既存のアプローチは、既存の正しいプログラムからデータを外挿する学習者の誤ったプログラムを自動的に修復するものである。
しかし、プログラムを同様の制御フローとステートメントの順序としか比較しないため、そのようなアプローチは限られている。
したがって、フレキシブルな比較による潜在的に価値のある修復フィードバックは欠落している。
本稿では,実世界の導入プログラムを扱うために,オープンソースであるデータ駆動型自動修復アプローチであるclaraにいくつかの修正を加える。
我々はCLARAの抽象構文木プロセッサを拡張し、一般的な入門プログラミング構造を扱う。
さらに,制御フローグラフ上の柔軟なアライメントアルゴリズムを提案する。
このアライメントを用いて、不正プログラムの制御フローグラフを修正して正しいプログラムに適合させ、CLARAの本来の修復プロセスを適用する。
Codeforcesにおける20のプログラミング問題に対するベースラインに対する我々のアプローチを評価する。
以上の結果から,フレキシブルアライメントは46%の修理成功率で,ベースラインクララは5%に比較して有意に高い値を示した。
私たちの実装はhttps://github.com/towhidabsar/claraで利用可能です。
関連論文リスト
- A Novel Approach for Automatic Program Repair using Round-Trip
Translation with Large Language Models [50.86686630756207]
研究によると、ある文の文法的誤りは、それを他の言語に翻訳し、その語を返せば修正できる。
現在の自動プログラム修復(APR)生成モデルは、ソースコードで事前訓練され、修正のために微調整されている。
本稿では,あるプログラミング言語から別のプログラミング言語,あるいは自然言語へのコード変換,そして,その逆といった,微調整ステップをバイパスし,ラウンド・トリップ変換(RTT)を用いる手法を提案する。
論文 参考訳(メタデータ) (2024-01-15T22:36:31Z) - How Helpful do Novice Programmers Find the Feedback of an Automated
Repair Tool? [1.2990666399718034]
自動修復ツールであるCLARAを使って初心者にフィードバックを提供する経験について述べる。
まず、私たちはCLARAを拡張してPython言語のより大きなサブセットをサポートし、それからプログラミング演習に使用するJupyter Notebooksと統合しました。
初心者は、しばしば、提案された修復を理解するのに苦労し、コンパイラ/解釈メッセージを理解するのがよく知られた課題であることがわかった。
論文 参考訳(メタデータ) (2023-10-02T07:45:56Z) - Neural Program Repair with Program Dependence Analysis and Effective
Filter Mechanism [37.70518599085677]
単行Javaバグを修正するために、一般的な事前学習言語モデルに適応する、アプローチと呼ばれる新しいニューラルプログラム修復フレームワークを提案する。
我々は,プログラムスライシングを用いて,与えられたバギー文に直接関連した文脈情報を,対応するプログラム依存グラフから補修材料として抽出する試みを行う。
最先端のベースラインと比較して,5つのベンチマークに対するアプローチの有効性を示す。
論文 参考訳(メタデータ) (2023-05-16T09:43:04Z) - RunBugRun -- An Executable Dataset for Automated Program Repair [15.670905650869704]
プログラム競合サイトに提出された45万個の小さなバグ/修正プログラムペアの完全な実行可能データセットを提示する。
プログラムをコンパイルし、安全に実行し、テストするためのインフラと、きめ細かいバグタイプのラベルを提供します。
論文 参考訳(メタデータ) (2023-04-03T16:02:00Z) - The Wisdom of Hindsight Makes Language Models Better Instruction
Followers [84.9120606803906]
強化学習は、人間のフィードバックによる指示に合うように、大きな言語モデルを微調整することに成功している。
そこで本稿では,本論文で提案するアプローチとして,原文を緩和することでフィードバックを指導に変換する手法と,教師付き手法によるアライメント向上のためのモデルをトレーニングする手法を提案する。
言語モデルと命令を整合させる新しいアルゴリズムであるHIR(Hindsight Instruction Relabeling)を提案する。
論文 参考訳(メタデータ) (2023-02-10T12:16:38Z) - Giving Feedback on Interactive Student Programs with Meta-Exploration [74.5597783609281]
ウェブサイトやゲームのようなインタラクティブなソフトウェアを開発することは、特にコンピュータ科学を学ぶための魅力的な方法である。
標準的アプローチでは、インストラクターは、学生が実装した対話型プログラムを手動で評価する必要がある。
Code.orgのような何百万ものオンラインプラットフォームは、インタラクティブなプログラムを実装するための代入に関するフィードバックを提供することができない。
論文 参考訳(メタデータ) (2022-11-16T10:00:23Z) - NAPG: Non-Autoregressive Program Generation for Hybrid Tabular-Textual
Question Answering [52.10214317661547]
現在の数値推論法はプログラムシーケンスを自己回帰的にデコードする。
プログラム生成の精度は、デコードステップがエラー伝搬によって展開されるにつれて急激に低下する。
本稿では,非自己回帰型プログラム生成フレームワークを提案する。
論文 参考訳(メタデータ) (2022-11-07T11:25:21Z) - Learning from Self-Sampled Correct and Partially-Correct Programs [96.66452896657991]
そこで本研究では,モデルが学習中にサンプリングを行い,自己サンプリングされた完全正当プログラムと部分正当プログラムの両方から学習することを提案する。
自己サンプリング型プログラムと部分修正型プログラムを併用することで,学習とサンプリングプロセスのガイドに役立てることができることを示す。
提案手法は,MLEを用いた単一の参照プログラムからの学習と比較して,パス@kの性能を3.1%から12.3%向上させる。
論文 参考訳(メタデータ) (2022-05-28T03:31:07Z) - Leveraging Causal Inference for Explainable Automatic Program Repair [24.146216081282798]
本稿では,因果推論を用いたシーケンス・ツー・シーケンスモデルに基づくプログラム修復のための解釈可能なアプローチを提案する。
我々の手法はCPRと呼ばれ、因果プログラムの修復に短い。
4つのプログラミング言語の実験では、CPRが合理的な解釈のために因果グラフを生成できることが示されている。
論文 参考訳(メタデータ) (2022-05-26T13:25:33Z) - Graph-based, Self-Supervised Program Repair from Diagnostic Feedback [108.48853808418725]
本稿では,ソースコードの修復や診断フィードバックに関連するシンボルを結合するプログラムフィードバックグラフを提案する。
次に、推論プロセスのモデル化にグラフニューラルネットワークを適用します。
オンラインで利用可能なラベルのないプログラムを活用するプログラム修復のための自己指導型学習パラダイムを提案する。
論文 参考訳(メタデータ) (2020-05-20T07:24:28Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。