Computation Layer(CL)は、他のプログラミング言語とは異なっていると感じる場合があります。
CLを使用すると、コマンドを次々に実行するのではなく、さまざまな部分を接続して値の一貫性を保つことができます。例えば、「a = b」は、a と b の値が常に等しいことを意味します。a の値は、b の値が変化するたびに変わります。これは Spreadsheet の動作とよく似ていて、Desmos Graphing Calculator の仕組みでもあります。
「シンク(Sinks)」と「ソース(Sources)」は、コンポーネントに値を出し入れする方法です。例えば、
number( "m" ):exp1.numericValue
という指示は、このグラフコンポーネント内の「m」の値が、「exp1」という名前の数式での回答欄のコンポーネントの計算した値と等しいことを意味します。学生が数式を入力すると、グラフの m の値がすぐに更新されます。
これは、Spreadsheet や Desmos Graphing Calculator の動作にも似ています。
シンク(Sinks)について
シンクを使用することで、コンポーネントに値を挿入することができます。シンクは緑色で、常にコロン「 : 」が続きます。例えば、y=mx+b のグラフを作成し、「number」シンクを使用して、変数 m と b の値を指定できます。解答欄に最初から表示する文章を指定します。
number("m") : 1.5
number("b") : 2

この例を試すには、こちらのリンクをクリックしてください。
変数(Variables)について
スクリプト内で変数(Variables)を定義することができます。これによってコードを再利用しやすくなり、同じコードを繰り返す必要がなくなります。変数はシンクと一見よく似ていますが、動作が全く異なることに注意してください。
回答の送信用ボタン(submitLabel)と説明文の最初(initialText)に 「こんにちは!」 という文字を表示させたいとします。回答欄のスクリプトに次のように入力しましょう。
customString = "こんにちは!"
submitLabel: customString
initialText: customString
上級者向け:「script」というキーワードを利用することで、別のコンポーネントで定義されている変数を呼び出すことができます。例えば、選択肢(Multiple Choice)コンポーネントのスクリプトに、次のように入力しましょう。
choiceContent(1): input1.script.customString

この例を試すには、こちらのリンクをクリックしてください。
ソース(Sources)について
ソースを使用することで、コンポーネントから値を引き出すことができます。この値は通常、生徒が行った作業に基づいています。ソースを使用するには、まずコンポーネントに名前を付けて、その後スクリプトでその名前を利用すればよいです。
例えば、「btn1」という名前のボタンがあるとします。このソースを次のように、アクティビティ内のスクリプトで使用することができます。
number("b"): btn1.pressCount
number("a"): btn1.timeSincePress(10)
上級者向け:現在のコンポーネントからソースにアクセスする場合は、コンポーネントに名前を付ける必要はありません。例えば、ボタンコンポーネントのスクリプトに次のように入力すると、ボタンを押した回数を表示することができます。
label: "${this.pressCount}"

この例を試すには、こちらのリンクをクリックしてください。