コードの強調表示を使用する

これは、ケンブリッジ大学コンピューター研究所のAdvait Sarkarの記事「プログラムの理解に対する構文の色付けの影響」のレビューと部分的な翻訳です。



まとめ



彼らは、ケンブリッジ大学から無作為に「コンピューターサイエンス」の修士課程を10人受講しました(3つの眼鏡はTobii2 X120アイトラッカー機器と部分的に互換性がないため、実際には7人)。 彼らは、Pythonでの短い計算タスクを処理することを提案しました(コード実行の正しい結果に名前を付ける必要がありました)。 タスクを完了するまでの時間を測定しました。 彼らは一枚の紙に書き留めるものを何も与えませんでした(考えてみてください、あなたは大声で話すことができます)。 前述の眼球運動システムを使用して目を監視しました。



最後に、彼らは私のプログラミング体験を評価するように私に頼みました(はい、可能性のあるDunning-Krueger効果を考えると)。



結論





強調表示により、コードのコンテンツに集中でき、使い慣れたキーワードにあまり注意を払わない方法の良い例:







一般的に、すべてがうまく、すべての色です!



記事のグラフ、数値、およびより詳細な結論:



1.タスクの実行時間







ヒストグラムは、タスクの特定の参加者が要した時間と、強調表示された通常のコードとの比較を示しています。

結果の異常な分布を考慮して、問題を解決するのにかかった時間の中央値を計算しました( WSRT :T = 136、p = 0.047)。 差は8.4秒で、バックライトが有利でした。



2.「切り替え注意」の数



注意の切り替えは、次のように決定されました。これは、以前の固定の領域とは異なる領域に注意を固定する(特定の時間に視線を転送および遅延させる)事実です。



たとえば、コードを読んだ瞬間に、「条件」セクション(通常は引数値のある領域)を一目見ただけでなく、コードに戻ることは、注意を切り替える2つの事実と見なされます。







このヒストグラムでは、「注意の切り替え」の数の比較を確認できます。



すべてが類似しています。柱の各ペアは、特定の参加者とタスクの特定のペアの結果です(強調表示された通常のコードを使用)。

メガネの参加者のパフォーマンスを除外する必要があったため、データが少なくなりました。まぶしさのため、目の動きの認識の精度が影響を受けました。



「切り替えの数」の中央値は、23の切り替えで異なり、強調表示された場合を優先します(WSRT:T = 13.5、p = 0.045)。

問題を理解して解決するためにおそらく必要な眼球運動解析の他のパラメーター(特に、オブジェクトへの注意の固定期間、オブジェクトへの視線を固定する事実の数、問題の説明への呼び出しの数)については、バックライトの影響度を確立することは不可能であることが判明しました。



3.資格の影響







データの異常な分布を補正するために、分析に「時間優位性」の値が使用されました:点灯していないコードでタスクを完了するのにかかった時間と、ハイライトされたコードで複製を実行した時間の比率 図の各ポイントは、1人の参加者による1組のタスクの実行です。



x軸では、参加者はコンピテンシーのレベルでソートされています。 y軸は対数であることに注意してください。対数正規化後、線形相関が顕著になります(r = −0.39、p = 0.033)。 技術的には、これは、初心者プログラマにとって、コードの強調表示は経験豊富なプログラマよりも重要であることを意味します。 ただし、これは相関関係にすぎません。つまり、この結論はタスクの簡潔さの結果であり、この場合の因果関係には追加の調査が必要です。



結論と仮定



この小さな調査は、コードの強調表示により、コードをより速く理解できるという直感的なアイデアを定量的に確認します。



この事実についての調和的な理論的正当化はまだありません



単純な仮説は次のようになります。バックライトにはカラーコードの形で追加のセマンティックレベルが含まれているため、消灯コードを理解するために必要な「一般的な精神的努力」は、同様の強調表示されたコードを理解するために必要な努力以上です。



これらのより多くの努力は、追加のオーバーヘッドを引き起こし、 作業引数からいくつかの要素を絞り出す可能性があります ...入力引数の値など(また、点灯していないコードによる注意切り替えのより多くのケースを説明するかもしれません)。



この仮説を確認する追加の例は、構文の強調表示により、実験の一部の参加者がコードの小さな領域に集中できることを示すデータです(注視を修正する事実のヒートマップに示されているように):










All Articles