論文の概要: Fixing Your Own Smells: Adding a Mistake-Based Familiarisation Step When
Teaching Code Refactoring
- arxiv url: http://arxiv.org/abs/2401.01011v1
- Date: Tue, 2 Jan 2024 03:39:19 GMT
- ステータス: 処理完了
- システム内更新日: 2024-01-03 15:01:20.968316
- Title: Fixing Your Own Smells: Adding a Mistake-Based Familiarisation Step When
Teaching Code Refactoring
- Title(参考訳): コードリファクタリングを教えるとき、誤解に基づくファミリアライゼーションステップを追加する
- Authors: Ivan Tan, Christopher M. Poskitt
- Abstract要約: 学生はまず、コードの臭いを発生させるためにプログラミング演習を完了しなければなりません。
この単純な介入は、学生がコードに精通している場合、学習が簡単であるという考えに基づいている。
本研究は,35人の初等生を対象に,従来の「ミステイク」アプローチと「ミステイク」アプローチを交互に指導し,様々な演習を修了した。
- 参考スコア(独自算出の注目度): 2.021502591596062
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Programming problems can be solved in a multitude of functionally correct
ways, but the quality of these solutions (e.g. readability, maintainability)
can vary immensely. When code quality is poor, symptoms emerge in the form of
'code smells', which are specific negative characteristics (e.g. duplicate
code) that can be resolved by applying refactoring patterns. Many undergraduate
computing curricula train students on this software engineering practice, often
doing so via exercises on unfamiliar instructor-provided code. Our observation,
however, is that this makes it harder for novices to internalise refactoring as
part of their own development practices. In this paper, we propose a new
approach to teaching refactoring, in which students must first complete a
programming exercise constrained to ensure they will produce a code smell. This
simple intervention is based on the idea that learning refactoring is easier if
students are familiar with the code (having built it), that it brings
refactoring closer to their regular development practice, and that it presents
a powerful opportunity to learn from a 'mistake'. We designed and conducted a
study with 35 novice undergraduates in which they completed various refactoring
exercises alternately taught using a traditional and our 'mistake-based'
approach, finding that students were significantly more effective and confident
at completing exercises using the latter.
- Abstract(参考訳): プログラミングの問題は多くの機能的に正しい方法で解決できるが、これらのソリューションの品質(可読性、保守性など)は非常に異なる。
コード品質が低い場合には、リファクタリングパターンを適用することで解決できる特定の負の特性(重複コードなど)である「コードの臭い」という形で症状が現れる。
多くの学部生が、このソフトウェアエンジニアリングの練習で学生を訓練し、よく知らないインストラクターが提供するコードで練習する。
しかし、私たちの観察では、初心者が自分たちの開発プラクティスの一部としてリファクタリングを内部化するのが難しくなります。
本稿では,学生がコード臭いの発生を確実にするために制約付きプログラミング演習を最初に完了しなければならないリファクタリングの新たな手法を提案する。
この単純な介入は、コード(ビルド済み)に慣れている学生にとってリファクタリングの学習がより簡単である、通常の開発プラクティスに近いリファクタリングをもたらす、そして'ミステイク'から学ぶ強力な機会を提供する、という考え方に基づいている。
我々は,35人の初等生を対象に,従来の「ミステイクベース」アプローチを交互に指導する様々なリファクタリング演習を受講した研究を設計・実施した。
関連論文リスト
- ReGAL: Refactoring Programs to Discover Generalizable Abstractions [66.37493420911979]
Generalizable Abstraction Learning (ReGAL)は、コードカプセル化によって再利用可能な関数のライブラリを学ぶ方法である。
ReGALによって発見された共有関数ライブラリは、プログラムが様々な領域で容易に予測できることを示している。
CodeLlama-13Bでは、ReGALはグラフィックスで11.5%、日付理解で26.1%、MinecraftベースのテキストゲームであるTextCraftで8.1%という絶対的な精度向上を実現している。
論文 参考訳(メタデータ) (2024-01-29T18:45:30Z) - Automating Source Code Refactoring in the Classroom [15.194527511076725]
本稿では,アンチパターン検出と修正をサポートするEclipseプラグインであるJandanrantを用いて,アンチパターンの除去を目的とした各種教室活動の実施に関する実験結果について述べる。
171人の学生による定量的・質的分析の結果、学生は学習の考え方を高く評価し、JDeodorantプラグインの動作の様々な側面に満足していることが示された。
論文 参考訳(メタデータ) (2023-11-05T18:46:00Z) - Promptly: Using Prompt Problems to Teach Learners How to Effectively
Utilize AI Code Generators [5.458849730200646]
本稿では,「プロンプト問題」として知られる新しい教育概念を紹介する。
プロンプト問題(英: Prompt Problem)は、学生が自然言語のプロンプトを作成し、LLMが特定の問題に対して正しいコードを生成するよう促す問題である。
Promptlyを初年度のPythonプログラミングコースに導入したフィールドスタディから経験的知見を報告する。
論文 参考訳(メタデータ) (2023-07-31T01:46:42Z) - Empirical Evaluation of a Live Environment for Extract Method
Refactoring [0.0]
我々は,抽出手法を視覚的に識別し,推奨し,適用するLive Refactoring Environmentを開発した。
私たちの結果は、追加の助けなしに手作業で行うコードとは大きく異なり、改善されました。
論文 参考訳(メタデータ) (2023-07-20T16:36:02Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
セルフ教師付き事前トレーニングは、多くのダウンストリームSEタスクに価値のあるジェネリックコード表現を学ぶための牽引役になった。
汎用的な表現学習のために、開発者が日々どのようにコードをコーディングするかは、要因としても不可欠である、と私たちは主張する。
特に,表現空間に良性クローンを近づける自己教師型コントラスト学習戦略であるCONCORDを提案する。
論文 参考訳(メタデータ) (2023-06-05T20:39:08Z) - Coder Reviewer Reranking for Code Generation [56.80381384717]
本稿では,コード言語モデルから多様なプログラムを抽出し,モデル確率で再ランク付けする手法として,Coder-Reviewerの再ランク付けを提案する。
実験の結果、Coder-Reviewerのリランクは、Coderモデルのみのリランクよりも一貫性と大幅な改善をもたらすことが示された。
Coder-Reviewerのリランクは、プロンプトによって実装が容易で、異なるプログラミング言語に一般化でき、既定のハイパーパラメータとうまく機能する。
論文 参考訳(メタデータ) (2022-11-29T18:56:33Z) - Competition-Level Code Generation with AlphaCode [74.87216298566942]
より深い推論を必要とする問題に対する新しいソリューションを作成することができるコード生成システムであるAlphaCodeを紹介する。
Codeforcesプラットフォームにおける最近のプログラミングコンペティションのシミュレーション評価において、AlphaCodeは平均54.3%のランキングを達成した。
論文 参考訳(メタデータ) (2022-02-08T23:16:31Z) - ProtoTransformer: A Meta-Learning Approach to Providing Student Feedback [54.142719510638614]
本稿では,フィードバックを数発の分類として提供するという課題について考察する。
メタラーナーは、インストラクターによるいくつかの例から、新しいプログラミング質問に関する学生のコードにフィードバックを与えるように適応します。
本手法は,第1段階の大学が提供したプログラムコースにおいて,16,000名の学生試験ソリューションに対するフィードバックの提供に成功している。
論文 参考訳(メタデータ) (2021-07-23T22:41:28Z) - Measuring Coding Challenge Competence With APPS [54.22600767666257]
コード生成のベンチマークであるAPPSを紹介する。
私たちのベンチマークには1万の問題が含まれています。
GPT-Neoのような最近のモデルでは、導入問題のテストケースの約15%をパスできる。
論文 参考訳(メタデータ) (2021-05-20T17:58:42Z) - How We Refactor and How We Document it? On the Use of Supervised Machine
Learning Algorithms to Classify Refactoring Documentation [25.626914797750487]
リファクタリングは、外部の振る舞いを変えることなく、システムの設計を改善する技術である。
この研究はコミットを、従来のBugFixやFunctionalのカテゴリとともに、内部QA、外部QA、Code Smell Resolutionの3つのカテゴリに分類する。
分類結果をよりよく理解するために、私たちはコミットメッセージを分析して、開発者が定期的に臭いを説明するために使用するパターンを抽出しました。
論文 参考訳(メタデータ) (2020-10-26T20:33:17Z) - Knowledge Refactoring for Inductive Program Synthesis [37.54933305877746]
人間は知識をより効率的に利用するために常に知識を再構築する。
私たちのゴールは、機械学習システムに似た能力を提供することで、より効率的に学習できるようにすることです。
論文 参考訳(メタデータ) (2020-04-21T12:04:38Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。