スポンサーリンク

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)

2018年8月20日

「Hour of Codeのコンピュータサイエンスコース (15-25 時間)の入門編をやっていますが、ヒントや解答が知りたいです。」
この記事は、そんな方へ向けて書いています。
そこで前回に続いて「コンピュータサイエンスコース入門」上級[HourofCode]【中編】(レッスン9からレッスン13まで)をやってみました。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)

コンピュータサイエンスコース (15-25 時間)の入門編

「コンピュータサイエンス」とは、コンピュータの考え方と、動き方を勉強することです。
Hour of Code は、「なぜコンピュータサイエンスなのですか?」の問いに対し、「すべての 生徒にコンピュータサイエンスを学ぶ機会があるべきです。それは、問題解決能力、論理的思考、創造性を育むことを助けます。早くから始める事により、生徒は 21 世紀のキャリアで成功するための基礎を獲得します。」と答えています。
この入門編の20時間コースではコンピューターサイエンスの核となる部分やプログラミングの概念について紹介しています。
全年齢を対象としており、楽しくプログラミングを学ぶことができます。

さぁ、コンピュータサイエンスコース 入門編でプログラミングをはじめよう。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)1

レッスン9は農家の場面です。
プログラミングで農夫を助けてあげてください。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)2

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)3

こちらはレッスン9-5の画面です。
ループ(繰り返し)や条件文(もし~なら)のブロックも入ってきましたね。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)4

レッスン11はアーティスト3です。
三角形や四角形などの幾何学模様を描いていきます。
吹き出しにあるようにブロックは種類別で「操作」や「色」にマウスを持っていくと、中身がプルダウン表示されます。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)5

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)6

クリアすると幾何学模様をtwitterやfacebookで共有できるのも前回同様です。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)7

ループや条件文だけでなくカウンタやアルゴリズムが出てくるようです。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)8

一番てこずった問題です。
レッスン11-7。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)9

レッスン11ー7
正方形が2つあるようにもみえます。
間違えると、ランプが黄色に点灯します。
ランプをクリックすると、「ヒントがほしいですか?」と聞かれますので「はい」をクリックすると使うブロックを一つ教えてくれます。
よーく見ると、正方形ではなく、渦巻き状になっていると気づくことができました。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)10

こちらがレッスン11ー7の正解(解答)です。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)11

これがレッスン11ー9の正解(解答)です。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)12

レッスン11ー9が分かれば、レッスン11-10はできますよね。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)13

レッスン13からは農家ステージ2になりました。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)14

こちらがレッスン13-1の正解(解答)です。
ループの中に条件文があって、その条件文の中に2つの条件文が入っていますね。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)15

レッスン13ー2では、新しく「5回穴を埋める」という名前の関数ブロックができていますので、これを使ってみましょう。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)16

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)17

レッスン13-4
これまではできた関数ブロックを使っていましてが、今度は自分で関数ブロックを定義します。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)18

レッスン13-5
今度はシャベル6回分土を片付けるブロック関数を作ります。
もうブロック関数の作り方は覚えましたよね?

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)19

レッスン13-6
できた関数ブロックを2つ使いこなしてみましょう。
上のワークスペースの13/11ブロックという表示をみると、最小限のブロック数が11で2オーバーしていることが分かります。
1個目の条件文(もし~なら)を削ればいいのではないでしょうか?

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)20

レッスン13-7
今度は「実行したとき」の下がねずみ色になっていて動かせません。
そこで、「うしにぶつからないようにつちをかたづけよう」という名のブロック関数を下で組み立てることにします。
これが13-7の正解(解答)です。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)21

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)22

13-8と9の間には動画ありました。
出演しているのはMicrosoftのビルゲイツさんです。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)23

できているブロック関数がどこか抜けているようです。
補足してあげてください。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)24

クリアしたものの、もっと少ないコードでもクリアできるみたいです。
コードが分かるようになれば、コードを表示させることで最小限のコードの解答がみられるから理解もすすみますね。

「コンピュータサイエンスコース入門」上級[HourofCode]でプログラミング【中編】(レッスン9-13)25

レッスン13-10最終問題。
クリアできたものの、5つも余分なコードだったみたいです。

HourofCodeには習熟具合に応じてほかにも様々なレベルのプログラミング学習ゲームが掲載されていますよ。

最初は誰だって初心者です。
やりながら順番に覚えていきましょう。
さぁ、プログラミングをはじめましょう。