論文の概要: Anti-patterns in Students' Conditional Statements
- arxiv url: http://arxiv.org/abs/2410.18989v1
- Date: Thu, 10 Oct 2024 10:12:50 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-11-03 08:52:33.802181
- Title: Anti-patterns in Students' Conditional Statements
- Title(参考訳): 学生の条件文におけるアンチパターン
- Authors: Etienne Naude, Paul Denny, Andrew Luxton-Reilly,
- Abstract要約: 本研究では,Pythonの入門コースにおける学生によるコード提出における条件文に関するアンチパターンについて検討した。
オープンソースの"qChecker"ツールを使って、条件付きステートメントに関連する15のアンチパターンを識別しました。
- 参考スコア(独自算出の注目度): 2.185263087861945
- License:
- Abstract: Producing high-quality code is essential as it makes a codebase more maintainable, reducing the cost and effort associated with a project. However, students learning to program are often given short, automatically graded programming tasks that they do not need to alter or maintain in the future. This can lead to poor-quality code that, although it may pass the test cases associated with the problem, contains anti-patterns - commonly occurring but ineffective or counterproductive programming patterns. This study investigates anti-patterns relating to conditional statements in code submissions made by students in an introductory Python course. Our primary motivation is to understand the prevalence and types of anti-patterns that occur in novice code. We analyzed 41,032 Python code submissions from 398 first-year students, using the open-source "qChecker" tool to identify 15 specific anti-patterns related to conditional statements. Our findings reveal that the most common anti-patterns are "if/else return bool", "confusing else", and "nested if", with "if/else return bool" and "confusing else" alone constituting nearly 60% of the total anti-patterns observed. These anti-patterns were prevalent across various lab exercises, suggesting a need for targeted educational interventions. Our main contribution includes a detailed analysis of anti-patterns in student code, and recommendations for improving coding practices in computing education contexts. The submissions we analyse were also collected prior to the emergence of generative AI tools, providing a snapshot of the issues present in student code before the availability of AI tool support.
- Abstract(参考訳): コードベースをよりメンテナンスしやすくし、プロジェクトに関連するコストと労力を削減するため、高品質なコードを生成することが不可欠です。
しかし、プログラムを学ぶ学生は、将来変更や維持を必要としない、短時間で自動的に格付けされたプログラミングタスクを与えられることが多い。
これは、問題に関連するテストケースをパスする可能性があるが、アンチパターンを含む、品質の悪いコードにつながる可能性がある。
本研究では,Pythonの入門コースにおける学生によるコード提出における条件文に関するアンチパターンについて検討した。
私たちの主な動機は、初心者のコードで発生するアンチパターンの頻度とタイプを理解することです。
オープンソースの"qChecker"ツールを使って、条件付きステートメントに関連する15のアンチパターンを識別しました。
その結果,最も一般的な抗パターンは「if/else return bool」,「confusing else」,「nested if」,「if/else return bool」,「confusing else」のみであり,全抗パターンの60%近くを占めていた。
これらのアンチパターンは様々な実験室で流行し、標的とする教育介入の必要性が示唆された。
我々の主な貢献は、学生のコードにおけるアンチパターンの詳細な分析と、コンピュータ教育の文脈におけるコーディングの実践を改善するためのレコメンデーションである。
私たちが分析した投稿は、生成型AIツールの出現前に収集され、AIツールのサポートが利用可能になる前に学生コードに存在する問題のスナップショットを提供する。
関連論文リスト
- Refactoring Programs Using Large Language Models with Few-Shot Examples [20.48175387745551]
ユーザ記述型Pythonプログラムのより複雑なバージョンを提案するために,大規模言語モデル (LLM) である GPT-3.5 を用いることを実演する。
95.68%のプログラムは、それぞれ10の候補を発生させ、結果として平均的なサイクロマティックな複雑さが17.35%減少することを示した。
論文 参考訳(メタデータ) (2023-11-20T11:43:45Z) - Large Language Models as Analogical Reasoners [155.9617224350088]
CoT(Chain-of- Thought)は、言語モデルのプロンプトとして、推論タスク全体で素晴らしいパフォーマンスを示す。
そこで本稿では,大規模言語モデルの推論プロセスを自動的にガイドする,新たなプロンプト手法であるアナログプロンプトを導入する。
論文 参考訳(メタデータ) (2023-10-03T00:57:26Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - TypeT5: Seq2seq Type Inference using Static Analysis [51.153089609654174]
本稿では,型予測をコード入力タスクとして扱う新しい型推論手法を提案する。
本手法では静的解析を用いて,型シグネチャがモデルによって予測されるコード要素毎に動的コンテキストを構築する。
また,モデルの入力コンテキストに事前の型予測を組み込んだ反復復号方式を提案する。
論文 参考訳(メタデータ) (2023-03-16T23:48:00Z) - Code Sophistication: From Code Recommendation to Logic Recommendation [2.8575516056239576]
プログラミングの典型的なアプローチは、まずメインの実行シナリオをコーディングし、次に代替の振る舞いやコーナーケースを埋めることに集中することである。
しかし、ほとんどの場合、プログラム仕様では予測が難しい非定型的な振る舞いを引き起こす異常な条件が存在する。
コードの高度化(code sophistication)と呼ばれるタスクである、そのような欠落した振る舞いを検出して推奨する問題を考察する。
論文 参考訳(メタデータ) (2022-01-19T15:54:48Z) - ProtoTransformer: A Meta-Learning Approach to Providing Student Feedback [54.142719510638614]
本稿では,フィードバックを数発の分類として提供するという課題について考察する。
メタラーナーは、インストラクターによるいくつかの例から、新しいプログラミング質問に関する学生のコードにフィードバックを与えるように適応します。
本手法は,第1段階の大学が提供したプログラムコースにおいて,16,000名の学生試験ソリューションに対するフィードバックの提供に成功している。
論文 参考訳(メタデータ) (2021-07-23T22:41:28Z) - Enforcing Consistency in Weakly Supervised Semantic Parsing [68.2211621631765]
本稿では,関連する入力に対する出力プログラム間の整合性を利用して,スプリアスプログラムの影響を低減することを提案する。
より一貫性のあるフォーマリズムは、一貫性に基づくトレーニングを必要とせずに、モデルパフォーマンスを改善することにつながります。
論文 参考訳(メタデータ) (2021-07-13T03:48:04Z) - Measuring Coding Challenge Competence With APPS [54.22600767666257]
コード生成のベンチマークであるAPPSを紹介する。
私たちのベンチマークには1万の問題が含まれています。
GPT-Neoのような最近のモデルでは、導入問題のテストケースの約15%をパスできる。
論文 参考訳(メタデータ) (2021-05-20T17:58:42Z) - Generating Bug-Fixes Using Pretrained Transformers [11.012132897417592]
実世界のgithubからマイニングしたjavaメソッドのバグの検出と修正を学ぶ,データ駆動型プログラム修復手法を導入する。
ソースコードプログラムの事前トレーニングは,スクラッチからの教師ありトレーニングに比べて,33%のパッチ数を改善することを示す。
我々は,標準精度評価基準を非削除および削除のみの修正に洗練し,我々の最良モデルが従来よりも75%多くの非削除修正を生成することを示す。
論文 参考訳(メタデータ) (2021-04-16T05:27:04Z) - Catalogs of C and Python Antipatterns by CS1 Students [3.0896809604505924]
CとPythonの2つのプログラミング言語に対するアンチパターンのカタログ。
41のCS1アンチパターンがCとPythonの95の誤認識をカタログ化した。
各アンチパターンに対して、コード例、学生のソリューション(もし存在するなら)を提示する。
論文 参考訳(メタデータ) (2021-04-02T02:12:41Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。