令和2年度 若年者自立支援事業

プログラミング体験(Scratch)講座

名古屋市青少年交流プラザ(ユースクエア)

※この講座のサイトは小さなお子さんにも使っていただけるよう読み仮名を振ることも検討しましたが、読み仮名を付けると、目が不自由な方など音声読み上げソフトウェアを利用している方には漢字と読み仮名の2度読みになり、非常に聴きづらく意味が分からないものになってしまいます。そのため読み仮名を振ることをやめさせていただきました。小さなお子様にはご兄弟ご姉妹やご両親がご協力していただきますよう宜しくお願い申し上げます。

当サイトのご紹介

当ウェブサイトは主に小中学生のみなさんに、コンピュータ・プログラミングを身近に感じていただくために制作いたしました。

開発環境はアメリカのマサチューセッツ工科大学[MIT・ミット]が作ったScratch(スクラッチ)を使用しています。

Scratchの使い方の紹介編、基礎編、中級編、上級編、活用編と、5段階で順にレベルを上げられるようになっています。

この講座をうまく使ってプログラミングが好きになり、みなさんが大人になったときには多分あたりまえになっている、誰もがプログラミングができる世界に積極的に参加できているといいですね。

プログラミング的思考とは

2020年度から、学校では「プログラミング的思考教育」というものが始まりました。ではプログラミング的思考とはどういうものでしょう。

コンピューターは「偉大なる与太郎」と言われます。「与太郎」というのは落語に出てくる「バカ」の代表の人物です。ではなぜコンピューターは「偉大なるバカ」なのでしょう。

落語の中の与太郎は頭が悪くてみんなにバカにされるのですが、ちゃんと教えてやれば教えられたとおりに作業をします。でも教えなければただのバカですし、間違った教え方をすればそのまま間違った作業をします。一方コンピューターはプログラムというものでやり方を教えてやれば、教えられたとおりに寸分の間違いもなく正確にものすごいスピードで仕事をこなします。しかし、プログラムが無ければただの金属の箱ですし、プログラムが間違っていれば間違っているとおりに間違った結果を出します。与太郎とコンピューターは教えればちゃんとやるけど教えなければ何もできないというところが一緒ですね。だからコンピューターのことを「偉大なる与太郎」と言ったりします。

ではコンピューターに仕事を教えるプログラムとはどんなものでしょう。与太郎には間違いがないようにしっかりと言葉で教えますね。でもコンピューターは「ヘイSiri」とか「Ok Google」とか「アレクサ」とか一部で言葉で仕事が出来るものが出てきましたが、まだまだ私たちの生活すべてに完全に言葉で対応できるものではありません。コンピューターに仕事をさせるにはどうしてもコンピューターに仕事をさせる方法を書いたものが必要です。プログラムとはプログラミング言語と言われるコンピューターに理解できる言葉で仕事のやりかたを書いたものです。そのため人がコンピューターに仕事を覚えさせるためには、人がまずコンピューターに分るプログラミング言語を覚えて教えてやるしか方法がありません。

コンピューター・プログラミングの世界では「行き当たりばったり」とか「適当」とか「おざなり(いいかげん)」ということはあり得ません。プログラムが開始してから終了するまで、考えられ得るすべての動きについて論理的に考えてプログラムが書かれますので、プログラミングの考え方を他の勉強に役立てたり、学年が進んだら実際にプログラミングもやってみようという考え方が「プログラミング的思考」というものです。

ある問題や課題に対して、どうやったら最も効率よく、安全に、正しい結果に到達できるかを、最初からものごとを筋道立てて考え、結論を導くまでの過程を考えることが論理的思考(英語ではLogical thinking[ロジカルシンキング])です。つまり、「プログラミング的思考」とは基本的に「論理的思考」と同じものです。

例えば自分の家から友達と待ち合わせる栄まで電車で行くとしたとき、駅までの道のりの安全性と効率よく行ける道のりを考え、もし電車に乗り遅れたときにはどうするかを考え、栄についてから目的地までの道のりも調べておき、目標とした時間までに間違いなく到着できる方法を全て考えます。さらにリスクというものも考えます。途中事故で電車が遅れたらどうやって友達と連絡するか、家にはどうやって連絡するか、など考えられ得るリスクも上げます。

だから論理的思考には、その過程で必要となるある程度の知識も必要だということですね。

もう一つ簡単な例を上げます。

納豆を食べようとしてタレを入れてかき混ぜたらすごくネバが伸びて中々切れない。こんな時にみなさんなら論理的思考でどう解決しますか?

ネバにはタレの水分が含まれるけどネバ成分の方が強いからネバが切れない。だったら水分をもう少し与えればネバが弱くなって切れるはず。でもハシで持ち上げた状態でネバに水をかけるわけにはいかない。水をかけずに水分を与える簡単な方法は、冬の窓ガラスに息を吹きかけて白く水滴を付かせるように「ハァーーーー」っと息をゆっくり吹きかければ水蒸気がネバに当たって水分を与えられるはず。よし、伸びたネバに息を「ハァーーー」っと吹きかけよう。「おぉ、簡単に切れた。」

これは小学校3年生のときのある日の朝食で実際に私がやったことです。こんな考え方が生活の中でも役立つ論理的思考です。

誰もがコンピューターのエンジニアになる必要はないし 、誰もがそうなってしまっても困ります。論理的思考は勉強でも、生活でも、仕事でも色々なところで役立ちますので、ぜひこういった考え方を身に付けてください。私が子どもの頃は、親に叱られると素直に謝るだけでなく、叱られる理由がある場合は自分の持つ知識を駆使して親にそうなった理由を必ず言っていました。私は親から「お前は理屈っぽいね」とよく言われました。将来コンピューターのエンジニアになりたい人には必須の考え方ですので、他人から「理屈っぽいやつ」と言われたら、「よし目標に近づいているぞ!」と喜んでください。

論理的思考を絵にしよう

論理的思考を絵にすることができます。絵と言っても普通の絵ではなく、フローチャート(流れ図)という図です。

フローチャートを描くには図形と描き方のルールを覚える必要があります。多くの図形があり、1つ1つに使う時の意味があります。

フローチャートで使う図形の意味画像をクリックすると拡大画像が出ます。

図形図名意味・使い方
横長カプセル形端子プログラム、関数などの開始と終了を表す
横長長方形処理値の設定、計算、その他処理を記述する
ひし形条件判定中に条件を記述し左右と下に条件に対する判定結果を記述し処理を分岐させる
横長方形左右両端に縦線定義済み処理他のフローチャートで定義済みの関数名やサブルーチン名を書く
横長方形上端に横線、左端に縦線コンピューター内記憶コンピューターメモリー内に記録された情報
横長方形の下端のみが波線書類・プリンタープリンターで出力する書類など
横長方形の下端のみが波線(複数)書類・プリンター(複数)プリンターで出力する複数の書類など
上端右上がりの横長方形手操作入力キーボード・タッチ画面などからの入力
ドラム缶形ハードディスクコンピューターのハードディスクに記録されたデータ
CRTディスプレイ形ディスプレイ画面への表示
小さい円ページ内結合子(コネクタ)ページ内で離れた場所で線が引きづらい場合に同じ番号のコネクタで継続を表す
ホームベース形ページ間結合子(コネクタ)他ページの場所に流れを継続する場合に同じ番号やアルファベットのコネクタで継続を表す
矢印線処理の流れ上記各図形間を結ぶ線で処理の流れを示す

一つ一つの図形の意味を読んだら次の画像を見てください。これはScratchではなく、人工知能ロボットPepper(ペッパー)にお客様への受付をさせるプログラムの設計書をフローチャートで描いています。この図を見ていただければ上で見た図形の実際の使い方が理解できると思います。では右の図の流れを説明します。

STARTから開始します。

日本語に設定する。

ページ間コネクタ"A"

ページ間コネクタ"B"に結合します。と同時に正面少し上を見ます。

待ち受け画面を表示します。

タブレットの画面タッチを待ちます。

メニュー画面を表示します。と同時に現在の年月日時分秒から時のみを取得します。

時が12時未満だったら、「おはようございます」と言う。

時が12時未満でなかったら再度現在の年月日時分秒から時のみを取得します。

時が17時未満だったら、「こんにちは」と言う。

時が17時未満でなかったら「こんばんは」と言う。

「ご用件は何でしょうか」と言う。

ページ内コネクタ"1"に飛ぶ。

フローチャートの例画像をクリックすると拡大画像が出ます

ページ内コネクタ"1"とメニュー画面表示の両方からシグナルが来たら次に進む。

タブレットの画面タッチを待つ。左上ボタンタッチは1、右上ボタンタッチは2、左下ボタンタッチは3、右下ボタンタッチは4、画面下部50ピクセル範囲をタッチしたら9を次に渡す。

結果を判定し1なら「予約済みのご面談ですね」と言いページ間コネクタ"C"に飛ぶ。2なら「サークルへのご参加ですね」と言いページ間コネクタ"C"に飛ぶ。3なら「その他のお問合せですね」と言いページ間コネクタ"C"に飛ぶ。4なら「未予約でご面談のご希望ですね」と言いページ間コネクタ"C"に飛ぶ。9ならページ間コネクタ"D"「受付アプリを終了します」と言いう。

画面を消す。

終了する。

ページ間コネクタ"B"

(1)現在の年月日時分秒から時のみを取得します。

時が12と等しかったらページ間コネクタ"D"に飛ぶ。時が17と等しかったらページ間コネクタ"D"に飛ぶ。

時が12でも17でもない場合

30秒待つ

(1)の時刻取得に戻る

ページ間コネクタ"C"

「どうぞお掛けください」と言う。と同時に右手でどうぞの仕草をする。

両操作が終わったらページ間コネクタ"A"に飛ぶ。

 

図形の使い方が理解出来たら、例えば、朝起きたときを"START"として学校に着くまでのこととか、学校が終わってから寝るまでのこととかをフローチャートにしてみましょう。

ただやることを四角の図形で縦に並べるだけでなく、判定のひし形を使って、ある時間になったら家を出発するとか、ある曜日のある時間になったら塾にいくとか、みんなが普段何気なくやっていることも、フローチャートにしてみると論理的思考に変わって面白いですよ。そしてフローチャートに慣れたら、基礎編からのプログラムを作る前にフローチャートでプログラムの設計書を描いてみましょう。

このページの一番上に戻る