私は情報の免許を持っているわけでもなく、IT関係の民間企業で働いた経験もありませんので、素人がプログラミングを少しかじった程度な訳ですが、昨今プログラミング教育の必要性が叫ばれ、私の勤務校でもプログラミングを学ぶ科目を開設しました。
私の学校は総合学科で、いくつかの「系列」と呼ばれる科目の集まりがあります。私は理科教諭として「科学技術系列」の科目を担当しています。学習指導要領で定められた「物理基礎」や「物理」など、いわゆる教科書がある科目もカリキュラムに配置されていますが、その他にもその系列の目玉となる学校設定科目を設置しています。その一つが「コンピュータサイエンス」という科目です。
2年次の2単位科目として開設しており、コンピュータ(プログラム)を使って、自然科学的な課題を解決する力を身につけることを目的としています。
学校設定科目ですから、教科書はありません。私はこの科目の立ち上げから関わっており、教材として「code.org」というサイトを使うことに決めました。
このサイトではScratchのようにブロックを組み合わせてコーディングすることができます。Scratchと大きくことなるのは、プログラミング的思考から実際のコーディング、そしてコンピュータサイエンスに関わる様々な話題を1つのサイトで提供していることです。学校教育で活用することを前提としているためか、教師に嬉しい機能もたくさんあります。特に優れているのは、Google Classroomと連携し、クラスの生徒の進捗状況を管理することができる点だと思います。
ダッシュボードには、自分のレッスンの進捗が表示されるほか、上の画像のようにクラスルームセクションを追加することができます。セクションを追加すると、Google Classroomに登録したクラスの生徒の進捗状況を確認することができるようになります。
これは「Lists,Loops, and Traversals」というユニット(学習単元)の進捗状況の画面です。レッスンごとに進捗状況が表示され、どのレッスンが終わっていないかが一目瞭然です。
レベルごとに表示すれば、レッスンの中でどのレベルが終了していないのかも分かります。また、この数字一つ一つがボタンになっていて、それを押すと生徒が見ている画面を表示させることができ、どこでつまづいているのかがすぐに分かります。コンピュータサイエンスの授業は数学・理科・工業の先生全員で担当しており、全員が共通のアカウントで管理者としてログインし、このように生徒の進捗を把握しています。
code.orgのこの他の魅力は、豊富なカリキュラムです。小学校低学年からコンピュータに触れ、自然とプログラミングができるように(プログラミング的思考が身につくように)設計されており、予備知識がなくても一人で学習を進めることができます。ただし、多くのカリキュラムが日本語に対応しておらず、英語で進めるには難しいコースもあります。
コンピュータサイエンスの設置を決めた後、年間指導計画と評価について考えました。この授業の目的は「プログラミングができるようになる」ことではなく、3年生で行う「理数探究」の授業に向けて、「コンピュータ(プログラム)を使った課題解決方法を身につける」こととしました。そこで学習内容を次のように決めました。
- 【エクスプレスコース】で「プログラミング的思考」を身につけ、ブロックコーディングに慣れる。
- 【WebLab】で文字コーディングに慣れ、英語に親しむ。
- 【AppLab】と【Computer Science Principles】でプログラミングの基礎を学ぶ。
- 数学的・理科的な課題をコンピュータ(プログラム)を使って解決する手法を学ぶ。
- 自ら課題を見つけ、解決するための方法を考えて実行する。
学習内容を決めたのは良いのですが、何分初めてのことで、一体どれくらい時間がかかるか見当もつきませんでした。間違いなく2単位70時間の授業では全てを扱うことは無理だということは分かっていたので、全てを授業でやるのではなく、「家庭学習」を基本として、学校では「分からないことを質問したり相談したりする時間にする」ということで進めることにしました。かなり乱暴な進め方であることは承知の上で、初年度つまり今年を迎えたわけです。
次回は具体的な授業実践と教師・生徒のつまづきについて書いていこうと思います。
コメント