VEXcode VR でスイッチブロックを使用してブロックからテキストベースのコーディングに移行する

VEXcode VR のスイッチ ブロックにアクセスするには、VEXcode VR Premium ライセンスが必要です。 VEXcode VRでスイッチブロックにアクセスする方法の詳細については、この記事を参照してください

初心者のプログラマーはブロックベースのインターフェースを使用する傾向がありますが、上級の学生は Python などのテキストベースのプログラミング言語を使用してロボットをコーディングすることに興味があるかもしれません。 歴史的に、ブロックからテキストベースのプログラミングへの移行は、学生にとってはまったく新しい言語を学習しているように感じられ、ブロックを使用して以前に学習したロジックを適用することはできません1 VEXcode VR のスイッチ ブロックは、ブロックベースのプログラミングからテキストベースのプログラミングへの移行を容易にするために開発されました。 この記事では、VEXcode VR でスイッチ ブロックを使用する方法について説明し、教室のシナリオを通じてそれらの機能を状況に応じて説明および図示します。

ブロックベースのコーディング環境を紹介する VEXcode VR インターフェースのスクリーンショット。この環境は、仮想ロボットを通じてコーディングの概念を教えるために設計されており、STEM 教育における教室学習や個人学習に適しています。

スイッチブロックの使用

Switch は、ブロックベースのプログラミングの使い慣れた要素を組み込み、テキスト コマンドを入力できるテキスト ボックスを統合します。 これにより、生徒は Python に伴うコマンドと構文を学習しながら、徐々にテキストに移行することができます。


Switch は、生徒に Blocks からテキストベースのコーディングへの自然な橋渡しを提供します。 生徒がコマンドのロジックと順序に慣れてくると、プロジェクトを 1 ブロックずつ変換できるようになります。 

これにより、生徒はブロックベースのプログラムのロジックフローを引き続き操作することができ、他のブロックの周りをループがラップする様子などを物理的に確認しながら、テキストコマンドを自分で試すこともできます。 ブロックが Switch に変換されると、生徒はパラメータを簡単に変更し、テキスト コマンドの構文を理解し始めることができます。 このセクションでは、学生による Switch の使用例を取り上げながら、VEXcode VR プロジェクトでこれらのブロックを使用する方法を説明します。

Switch は VEXcode VR Premium ライセンスで利用できます。 VEXcode VRサブスクリプションの詳細については、こちらをご覧ください

ライセンスを取得したら、この記事の情報を使用してSwitchにアクセスする方法を学んで

教室のスイッチ

オースティンは、数年間ブロックを使ってコーディングを続けている学生です。 クラスの生徒の中にはまだコーディング初心者もいますが、オースティンは Python についてさらに学び、テキストを使用して VR ロボットをコーディングする方法を学びたいと考えています。 コンピュータサイエンスの教師であるハンター先生は、オースティンがさらなる挑戦の準備ができていることに気づき、オースティンの学習を支援し、テキストベースのコーディングを導入するために Switch を導入しました。 ハンターさんは、ブロックを変換したり、ヘルプを開いて各ブロックの Switch Python コマンドの詳細を確認したりするなど、いくつかの基本を実演しました。 

今日、ハンター先生はクラスに サンゴ礁の清掃活動 を割り当てました。 彼女はコーディングの授業に VEXcode VR を使用しています。指導内容を差別化し、同じアクティビティでさまざまなコーディング レベルの生徒にアプローチできることを知っているからです。 スイッチ モードは、オースティンのような生徒の差別化を促進するのに役立ちます。 サンゴ礁クリーンアップアクティビティの目標は、VR ロボットのバッテリーが切れる前にできるだけ多くのゴミを集めることです。 課題と基本的なアルゴリズムのコーディング方法を理解したオースティンは、ダウンアイセンサーを使用してプレイグラウンドの境界を検出し、サンゴを傷つけないように後進する VEXcode VR プロジェクトを作成しました。

仮想ロボットをプログラミングするためのブロックベースのコーディング オプションを紹介する VEXcode VR インターフェースのスクリーンショット。コーディングの概念とロボットの原理を教室で教えるための教育用に設計されています。

単一ブロックをスイッチに変換する

1ブロックを変換する


Austin はテストして動作を検証したプロジェクトを作成したので、次のステップではブロックを Switch に変換して Python の調査を開始します。 


こちらのビデオに示されているように、ブロックを長押しするか右クリックし、「スイッチ ブロックに変換」オプションを選択すると、ブロックをスイッチに変換できます。

Austin は、[Drive for] ブロックが drive_for Python コマンドに変わったことを確認できます。 変換後、オースティンはプロジェクトを実行して、意図したとおりに動作することを確認します。 変換後、オースティンは drive_for コマンドについてさらに詳しく知りたいと考えています。 [Drive for] ブロックのヘルプを開くと、Austin はブロックのパラメータと Python コマンド間の接続を作成できます。

ヘルプを使用して Switch Python コマンドの詳細を確認する

ヘルプを開く


ヘルプの Switch Python コマンド情報を確認するために、Austin はヘルプ ウィンドウを開いて [Drive for] ブロックを選択し、こちらのビデオに示されているように一番下までスクロールします。 

ハンター先生がチェックインすると、オースティンが [Drive for] ブロックについてさらに学んでいることがわかりました。 彼女は、ブロックを変換して新しいブロックに入力することで学んだことを応用するように彼に挑戦させました。 彼女は Switch ブロックをドラッグする方法を示し、Austin にブロックに turn_for コマンドを入力させました。 Austin はブロックのヘルプを開き、コマンドの構造についてメモします。 

スイッチブロックの入力

ブロックを追加する


ヘルプを確認して Python コマンドを知っているので、Austin は Switch ブロックに直接入力したいと考えています。 ツールボックスから [Switch Stack] ブロックをドラッグして、Austin はそれを [Turn for] ブロックの上に追加します。 

ブロックに入力してください


次に、Austin はカーソルを使用して Switch ブロックを選択し、ここに示すように turn_for Python コマンドの入力を開始します。 


新しいコマンドを入力し、パラメータが元のブロックと一致していることを確認したら、[Turn for] ブロックを削除できます。 

ハンター先生がオースティンの進捗状況を確認するためにやって来ます。 彼女は Switch プロジェクトを見て、コマンドが正しく入力されているか確認するためにプロジェクトの実行を依頼します。 プロジェクトが機能することを確認した後、彼女は別の機能である複数行ブロックのデモンストレーションを行います。

コピー&ペースト


[スイッチ スタック] ブロックには、複数行のコードを入力できます。 Austin は、 turn_for というテキストをコピーし、こちらのビデオに示されているように、上のブロックに貼り付けます。

 

Austin は、キーボードで「Enter」または「Return」を押すとブロックに行を追加できることに気づき、Python コマンドの追加を続けます。

Python の Drivetrain コマンドの達人になったような気分になった Austin は、証明書を印刷し、次回のためにプロジェクトを保存します。

スタックをスイッチに変換する

学年の後半に、ハンター先生はサンゴ礁清掃活動を再度取り上げ、より高いスコアを獲得するか、テキストベースのコーディングを使用するか、どちらかを学生に課します。 Austin は Switch ブロックで Drivetrain コマンドを使用していますが、このアクティビティは Python の「C」ブロックとブール値に相当するものについてさらに学ぶ機会となります。 

ラッパーを変換する


Austin は [If then else] ブロックを長押しまたは右クリックし、「ラッパーとコンテンツを Switch ブロックに変換」を選択します。 これにより、ループとループのコンテンツが単一の Switch ブロックに変換されます。


変換が完了した後のインデントに注意してください。 1 つの Switch ブロック内の複数のコマンドが意図したとおりに機能するには、適切なインデントが必要です。

追加のスイッチブロック

Austin は [Switch Stack] ブロックのみを使用していますが、追加の Switch ブロックも利用できます。 オースティンは、改善されたサンゴ礁清掃プロジェクトを提出する準備ができていますが、ハンター先生と一緒に、次の授業で以下にリストされているような新しい種類のスイッチ ブロックを試す計画を立てています。

スイッチ ブロックは、他のブロックと同じ形状規則に従います。 次の表は、ブロックの形状、意味、および同じタイプのスイッチ ブロックの比較を示しています。

ブロック形状 説明 ブロックの例 スイッチの例
ハットブロック ブロックのスタックを開始し、その下にブロックを接続する形状にします。 教育現場でコーディングの概念とロボットの原理を教えるために設計された、ブロックベースのコーディング ツールと仮想ロボットを紹介する VEXcode VR インターフェースのスクリーンショット。 ブロックベースのコーディング環境を紹介する VEXcode VR インターフェースのスクリーンショット。この環境は、教室環境で仮想ロボットを通じてコーディングの概念を教えるために設計されており、初心者と上級者の両方をサポートします。
ブロックを積み重ねる メインコマンドを実行します。 他のスタック ブロックの上または下に取り付けられるように形作られています。 教室での STEM 教育を強化し、学生と教育者のコーディング概念をサポートするように設計された、仮想ロボットをプログラミングするためのブロックベースのコーディング オプションを示す VEXcode VR インターフェースのスクリーンショット。 ブロックベースのコーディング環境を紹介する VEXcode VR インターフェースのスクリーンショット。この環境は、仮想ロボットを通じてコーディングの概念を教えるために設計されており、教室での使用や STEM 教育に適しています。
ブールブロック 条件を true または false として返し、他のブロックの六角形 (6 面) 入力を持つ任意のブロック内に収まります。 ブロックベースのコーディング環境を紹介する VEXcode VR インターフェースのスクリーンショット。この環境は、仮想ロボットを通じてコーディングの概念を教えるために設計されており、教室での使用や STEM 教育に適しています。 仮想ロボットをプログラミングするためのブロックベースのコーディング環境を紹介する VEXcode VR インターフェースのスクリーンショット。教室でのコーディング概念と問題解決を通じて STEM 教育を強化するように設計されています。
記者ブロック 値を数値形式で報告し、楕円形の入力を使用して他のブロック内に収まるようにします。 ブロックベースのコーディング環境を紹介する VEXcode VR インターフェースのスクリーンショット。この環境は、仮想ロボットを通じてコーディングの概念を教えるために設計されており、教室での使用や STEM 教育に適しています。 仮想ロボットをプログラミングするためのブロックベースのコーディング オプションを紹介する VEXcode VR インターフェースのスクリーンショット。コーディングの概念とロボットの原理を教えるための教育現場での使用法を示しています。
Cブロック ブロックをループするか、条件が真か偽かを確認します。 スタック ブロックを上、下、または内部に取り付けられるように形作られています。 ブロックベースのコーディング環境を紹介する VEXcode VR インターフェースのスクリーンショット。この環境は、仮想ロボットを通じてコーディングの概念を教えるために設計されており、STEM 教育の教室環境での使用に重点を置いています。 仮想ロボットをプログラミングするためのブロックベースのコーディング オプションを紹介する VEXcode VR インターフェースのスクリーンショット。コーディングの概念とロボットの原理を教室で教えるための教育用に設計されています。 仮想ロボットをプログラミングするためのブロックベースのコーディング環境を示す VEXcode VR インターフェースのスクリーンショット。コーディングの概念とロボットの原理を教室で教えるための教育用に設計されています。 ブロックベースのコーディング要素と仮想ロボットを紹介する VEXcode VR インターフェースのスクリーンショット。コーディングの概念とロボットの原理を教えるための教育現場でのプラットフォームの使用法を示しています。

すべてをまとめる

ハンター先生は、オースティンが Switch ブロックでさまざまな Python コマンドの入力をテストするのを観察しながら、Switch によって生徒たちが独自の学習を段階的に進めることができることを理解しました。 彼女のクラスを始める前、生徒たちは皆それぞれ異なるコーディング経験を持っていましたが、VEXcode VR 内の課題により、生徒たちは自分のレベルに合わせてコーディングすることができます。 生徒の中には Blocks のみでコーディングする生徒もいれば、Python のみでコーディングする生徒もいます。また、Austin のように Switch を使用して Python コーディングに移行する生徒もいます。 その後数か月間、オースティンは、Switch の使用から学んだ知識を応用して、ブロックからテキストへの移行をより簡単かつスムーズにし、Python のみでコーディングするようになりました。 

VEXcode VR の Switch Blocks を使用すると、ハンター先生のような教師は、さまざまなコーディング レベルの生徒が同じ課題を完了する間、学習の促進者になることができます。 一方、オースティンのような学生たちは、VEXcode VR の Switch Blocks を使用してブロックからテキストに移行しながら、コーディング アクティビティを解決する新しい方法を試す力を得ています。


1ワイントロップ、デヴィッド、ウリ・ウィレンスキー。 「ブロックベース、テキストベース、ブロック/テキストのハイブリッド方式が初心者のプログラミング実践にどのように影響するか。」  国際児童・コンピュータインタラクションジャーナル 17 (2018): 83-92

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: