カランのブログ

Kalan 頭像照片,在淡水拍攝,淺藍背景

四零二曜日電子報上線啦!訂閱訂起來

ソフトウェアエンジニア / 台湾人 / 福岡生活
このブログはRSS Feed をサポートしています。RSSリンクをクリックして設定してください。技術に関する記事はコードがあるのでブログで閲覧することをお勧めします。

今のモード ライト

我會把一些不成文的筆記或是最近的生活雜感放在短筆記,如果有興趣的話可以來看看唷!

記事のタイトルや概要は自動翻訳であるため(中身は翻訳されてない場合が多い)、変な言葉が出たり、意味伝わらない場合がございます。空いてる時間で翻訳します。

なぜ心のモデルはプログラミング言語の学習において重要なのですか?

前言

  • 本記事では、JavaScriptのプリミティブ型を例に挙げ、他のプログラミング言語との違いについて説明します。
  • プリミティブ型の動作はオブジェクトや配列とは異なります。ここではプリミティブ型のみを例に挙げます。

心のモデルとは何ですか

心のモデルとは、物事の発展を予測したり、物事がどのように動作するかを認識するプロセスのことです。

少し学術的に聞こえるかもしれませんが、例えば画面上でボタンのUIを見たとき、私たちはそのUIをクリックできるものと予測し、クリック後には一連のイベントが発生する可能性があると期待します。したがって、ユーザーがそのUIが予想と異なる場合、彼らは困惑するでしょう。

しかし、なぜ私たちはそのようなUIをボタンとして扱うのでしょうか?それは一方面は私たちの環境、もう一方は経験によるものです。ユーザーはウェブページに触れることから始めて、このようなルールに基づいてボタンを判断しているため、自然とそれが他のウェブページにも適用されます。

このようなダイヤルの例ですが、なぜ最初に回すというよりも押すという方法を思い浮かべるのでしょうか?なぜなら、日常生活では、ほとんどの円形の機構は調整のために回転することが一般的ですので、このルールを他の場所にも適用するからです。

IMG_1170

また、ドアのハンドルの例ですが、なぜ回す方法ではなく押す方法で開けるのでしょうか?これもハンドルの動作に対する私たちの認識によるもので、ドアを押すと開くことができると予想するからです。

IMG_1171

プログラミング言語を学ぶ過程で、学習の進行とともに、プログラミング言語の動作に対する心のモデルが形成され、これらのコードがどのように実行されるかを予測します。

心のモデルの重要性

ここではJavaScriptのコードを例に説明します。

let a = 3;
let b = a + 3;
a += 1;
console.log(b); // b

これは非常に基本的なJavaScriptのコードですが、経験豊富な人ならば答えや落とし穴を知っているでしょう。今日は間違った心のモデルを使ってこのコードを描写すると、次のような結果になるかもしれません。

1. a+=1が実行される前:

1

2. a+=1が実行された後:

2

自然と、a+1 が行われたので、円の中の3を4に変更します。

b=a+3 ですから、aが変わったので、bが指す円も7に変わるべきです。したがって、誤った理解を持つ人々は自然に「7」と答えるでしょう。

強調したいのは、答えが間違っているとしても、これは完全に学習者の過失ではないということです。通常の思考パターンでは、b = a + 3 を式として理解し、その後 a+=1 が行われるので、当然bも変化すると考えるからです。

一度学習者がこのような思考パターンを持つと、修正するための学習が非常に困難になり、自分自身では説明できないバグに遭遇する可能性が高くなります。

何が問題なのか?

JavaScriptでは、プリミティブの値を変更することはできません。この文は短く見えますが、初心者にとっては本質的な意味を理解することがほとんど不可能です。

正しい動作は次のようになります:

correct

プリミティブ型は値を変更できないため、私たちは円の中の3を直接4(3 + 1)に変更することはできません。代わりに、新しい値4を作成し、aの矢印をそれに向けます。元の3は変わりません(青い円)、したがって、aの値がどのように変化しても、bの結果には影響しません。

教科書の記述「JavaScriptではプリミティブの値は変更できない」よりも、私はこのように答える方が好ましいと思います。これは理解を助け、実際のJavaScriptコードの動作方法を示しています。注意深く観察すると、2つのモデルは非常に似ていますが、最も重要な違いは、学習者がJavaScriptのプリミティブ値の特性と動作原理を理解しているかどうかです。

学習者がこれをさまざまな例に適用できるかどうかは、心のモデルに依存します。学習者が常に最初のモデルを使用する場合、学習過程で「プリミティブ型は変更できない」という文を見ていても、間違った結果を得る可能性が高いです。

次の記事

無接点静電容鍵盤 HHKB HYBRID Type-S 使用心得

前の記事

これらの年間、私が使用していたコードフォントは以下の通りです。

この文章が役に立つと思うなら、下のリンクで応援してくれると大変嬉しいです✨

Buy me a coffee