Computer programming in4steps

二次レベルでは、コア・コンピュータ・サイエンス(CS)の概念と実践は、一般的に情報技術(IT)キャリア・クラスター内のコースで、career and technical education(CTE)の傘下で教えられています。 しかし、CSの概念と実践は、学者や選択科目にもますます組み込まれています(そして芸術とデザインの影響を受けています)。

規律に関係なく、計算成果物を作成することは、学生がより良い問題解決者になるために一貫して経験すべきコアCSプラクティスの一つです。 計算成果物は、画像、ビデオ、プレゼンテーション、オーディオファイルおよびコンピュータプログラムを含むことができる。

コンピュータプログラミング(CP)における正確で一貫した練習は、学生が学術的およびCSの概念と実践の両方と並行して、カリキュラム間の知識を構 CPは最初から最後までプログラムを書くプロセスであるため、学生はk-3-6コンピュータサイエンスフレームワークに見られる実践3-6の融合で露出を受け

では、どのようにしてCPに学生をうまく従事させることができますか? ここでは、四つの主要なステップでこれを行うことができます方法です。

四つのステップ

ステップ1:問題を特定する

学生がCPに慣れていないとき、私たちは通常、チュートリアルを使用してプログラムとコードを教える それには何も問題はありませんが、私たちはそこにそれらを維持したくありません。

通常、チュートリアルの作成者は、プログラムの問題と解決策の両方をすでに特定しています。 子供たちが学ぶための最良の方法は、自分の問題と解決策を書いて、自分のプログラムを作成することです。 それ以外の場合は、特定の言語で特定の関数をコード化するための学習にもっと焦点を当てますが、これは一般的に丸暗記と変わらず、作業記憶の開発

問題を特定(または定義)することは、学生が完全なプログラムが何をするかの具体的な計画を立てる必要があるため、CPプロセスの最も重要な部分で このプロセスには、既知の入力(または与えられたデータ)と、出力(結果)を介して取得されるものの両方を識別することが含まれます。 CPは単純なプロセスではありませんが、一貫性のある正確な練習は、プログラムに必要な入力、処理、出力の種類の詳細を明確にする上で、時間の経過 学生がプログラミングを始めるには、以下の方法でアプリを構築して共有するためのレッスンのこの素晴らしいイントロを読んでくださいCode.org.

ステップ2:解決策を見つける

ステップ1で特定された問題の解決策を見つけるか計画するには、フローチャートを作成するか、擬似コードを記述します。 経験豊富なプログラマーは、これらの方法のいずれかを使用して、クライアント、教師などにプログラム開発を伝えることができます。

フローチャートは、プログラムの方向の絵的表現を使用し、アクション(入力/出力、プロセスなど)を表す矢印、ボックス、およびその他の記号で構成される問題). 擬似コードは英語に似ており、平易な英語よりも正確に解を伝えるために使用されますが、正式なプログラミング言語では必要とされる細心の注意を払っていません。

ソリューションプロセスにより、プログラマは、プロジェクトのプログラミング言語で使用される実際の構文に従わずに、プログラムの論理フローに焦点を当てることができます。 あなたの学生が自分のコードを計画するのに役立つこの楽しいTechnovationレッスンをチェックしてください。

ステップ3:コードit

多くの場合、コーディングはプログラミングと混同されますが、コーディングはプログラミングプロセスの一部にすぎません。 優れたコーダーは、ソリューション(手順2で説明)から命令を作成し、コンピュータが理解できるようにコードに書き込むことができます。 これは、計算思考からのアルゴリズム設計スキルが遊びに来る場所です。

プログラミング中に常に多くの数学をやっているのではなく、思考プロセスが同じであるため、問題を数学の問題と考えるときに役立ちます。 数学では、目標を達成するために一連のステップで従うアルゴリズム的な命令セットを使用することがよくあります。 そのプロセスは、よく詳細なフローチャートと(特定のプログラミング言語での)コードの両方に例えられます。

コーディングを練習することで、論理的かつ段階的に考える方法を学ぶとき、コーディングは複雑ではないことを理解するのに役立ちます。 簡単なプログラムを書くことによって始められる学生を得ることはコンピュータに指示を与える方法をコンピュータが実際にいかに働き、よいコーダーが不明瞭でないし、ステップをとばしてはいけないことそれらを教える。 彼らはまた、彼らが書いたコードがコンパイラによって実行のために機械語に処理(翻訳)されることを理解するでしょう。

コーディングに慣れていない子供のために、私はビジュアルプログラミング言語(VPL)から始めることをお勧めします。

ここでは、いくつかの人気のあるVPLsです:

  • Scratch,ScratchJr
  • Blockly
  • Ardublock(arduinoのためのブロックプログラミング言語)
  • ROBOLAB(レゴロボティクスのためのプログラミング言語)
  • ROBOTC(VEXロボティクスのためのグラフィカル)
  • LabVIEW(ナショナルインスツルメンツ)

学生がコーディングを始めるにはいくつかの方法がありますが、学校全体が1時間のコードに参加し、STEM/STEAM設計の課題の文脈の中で子供たちにコードを教

ステップ4: Test it

CPでのテストは、プログラムの品質を判断し、バグ(問題)を見つけるために使用される重要なプロセスです。 大学のインターンとして、私は最初にVisual Basicプログラミング言語でActiveXコントロールのテストとデバッグを紹介されました。 テストにはさまざまなレベルがあり、プログラムが動作するかどうかを判断しますが、ソフトウェア開発者が修正するためのバグを見つける作業は、私が毎日使用したプログラムの品質と定期的に更新することの重要性を理解するのに非常に強力でした。

学生に自分の作品を公に提示することを要求することは、高品質のCS作品を議論し、展示するためのテストプロセスの重要性を魅力的にし、彼らに浸透させるための優れた技術です。 繰り返しますが、App Lab(ステップ1)は、子供たちが最初からテストまでCPを学ぶのを助けるための素晴らしい教訓とプロジェクトです。

異なる学年レベルのCP

コンピュータプログラミングは、すべての学年レベルで教えることができます。 ここでは、学習者の様々な年齢やレベルで使用するためのいくつかのツールがあります。

グレード3-8:littleBitsコードキット. コードキットは、電子ビルディングブロックとコーディングチュートリアル付きのアプリが装備されており、学生に設計上の課題や発明の文脈でコーディング、光、音、動きの概念を教えるための優れた足場です。

私がコードキットについて最も強力だと思うのは、ユーザーが基本的なコーディング原則に基づいているのを助けるので、アプリです。 優れたコーダーは、言語やコーディングの経験に関係なく、入力/出力、ループ、関数、変数、ロジックなどの基本を理解する必要があります。 成功は基礎の内部自己支配の開発に常に関連している。 スティーブンR.Covey先生のように、非常に効果的な人々の7つの習慣の著者は、かつて言った、”最初に事を最初に置きなさい。”

このコードキットは、授業計画、学生の配布資料、次世代の科学基準への調整など、教育者が必要とするすべての教育リソースと連携して動作します。 リソースの多くは、2017のlittleBits Lead Educator Cohortによってテストされ、開発されました。

6-8年生:ロボット工学。 子供たちがプログラミングを始めるのはかなり簡単です。 カリキュラムの専門家としての私の以前の役割では、私たちはイントロとしてレゴマインドストームロボットを使用しました。 これらは、私たちが子供たちが重要な概念を理解するのを助けるだけでなく、プログラミング:

  1. 彼らのロボットを構築します。 実質的にすべての子供はこの部分を愛していました。
  2. チュートリアルを探索することで、モーター、センサー、ギア、その他のコンポーネントについて学びました。
  3. プログラミングを学ぶ。 レンガには六つのミッションが組み込まれており、学生はロボットをモーターで動かす方法や、センサーでタッチや動きに応答する方法を見ることができました。 彼らは組み込みプログラムに慣れてきたので、ROBOLABプログラミングブロックを使用して独自のプログラムを作り始めました。
  4. CSとSTEMに接続します。 これは、パターン認識とアルゴリズム設計の両方の概念と実践を大幅に解明するのに役立つことがわかりました。 そしてもちろん、CSとSTEMのレッスンには、コーディング、力と動き、デザインと技術が含まれていました。 また、VEX IQキットは同様の目的に最適であり、学生が参加したさまざまな競争力のあるイベントに基づいて、VEXとLegoの両方を使用しました。

グレード8-12:高度なロボット工学。 すでにVPLを使用してコーディングを練習し、基礎的なプログラミングの原則を持っているか、習得している高校生のために、次のステップは、JavaScript、Python、Pearl、C++ 幸いなことに、VEX EDRのようなロボットをプログラミングすることは、高校生にこの貴重な学習体験のイントロを与えます。 VEX EDRをプログラミングする学生は、ROBOTC Cベースのプログラミング言語を使用することを学び、エンジニアリング設計プロセスを使用して問題を解

私は最近、国際技術工学教育者協会のエンジニアリングデザインコースのトレーニングに参加したときに、VEX EDRのプログラムを学び始めました。 それは私が会ったとティムOltmanと提携していたことがあった—今年のマーサレインコリンズ高校の教師。 彼と仲間の教師シェーンウェアは、様々なVEXロボット競技大会のためのロボットをプログラムするために子供たちを教えるかなりの経験を持っており、ケンタッキー州で数多くの賞を受賞しています。

私はティムに、子供たちをVPLでのプログラミングからVEXのようなCベースのプログラムに移行するときの教師の進め方についての考えを尋ねました。 彼らはあなたが試してみて、失敗を見てみましょう、と彼らはあなたとのプロセスを介して苦労してお楽しみいただけます。 最終的には、彼らはあなたを上回り、教師になります。”

Jorge Valenzuelaは、オールドドミニオン大学の教育コーチであり、大学院の教育アシスタントです。 また、株式会社ライフ-ラーニング-ディファインのリードコーチも務めている。、教育のためのバック研究所の国立教員、国際技術と工学教育者協会(ITEEA)と国立教師効果コーチとリトルビットのためのリード教育者プログラムの一部。 あなたは会話を続けるためにTwitter@JorgeDoesPBLでホルヘと接続することができます。

コメントを残す

メールアドレスが公開されることはありません。