こんにちは!
キッズプログラミング教室「イフキッズアカデミー」
えりちゃん先生です!
※クラス分け
【火1】・・・火曜日16:00〜17:30
【火2】・・・火曜日17:40〜19:10
【木1】・・・木曜日16:00〜17:30
【木2】・・・木曜日17:40〜19:10
【土】・・・土曜日10:00〜11:30
【日】・・・日曜日10:00〜11:30
今回は火曜後半のレッスンを報告します!
生徒さんはJくん(高1)、Hちゃん(中1)でした。
それではレポートスタートです!
まずはプロフェッショナルコースのJくん。
前回に引き続き、Visual Studioで以前作ったプログラムを綺麗にする問題を解いていきます。
え「まずはファイルの読み込みの問題だね。」
J「はい。」
え「どんな感じでやるか想像ついてる??」
J「あー、はい。大丈夫です。」
え「OK!じゃあやってみよう!」
1つ目の課題は比較的コードが少ないこともあり、簡単にきれいにすることができました!
基本的なことはもうばっちりですね!
次の問題はアプリケーションなので、ちょっとコードが多め。
まずは以前自分が書いたものを見て「このコードは何をしているのか?」を思い出していきます。
ざっくり今回のアプリケーションはこんな感じ。
①生徒名と国数英各教科のテストの点が記述されているファイルを読み込む
②3教科の合計を計算して、高い順にデータを並び替える
③並び変わったデータを画面に表示する
プログラムをこの3つに分けて書くときれいにできるはず…!
まずはファイルを読み込む部分をメソッドにして簡潔になるようにしてみましたが、1つ気になるところが。
J「Array.Resize()っていうのがあるんですけど、何してるのかよくわからなくて…。」
え「なるほど。これは配列のサイズを変えることができるやつだね。」
J「あー、サイズを変える…。うーん?」
え「例えばだけど、最初5個の要素が入った配列を用意したとするじゃない?」
J「はい。」
え「それを6個にしたいな~って時にArray.Resize(配列, 6)ってすると6個入れられるようになるんだ。」
J「あーそっか。今回は合計の要素を後から追加したいからこれで入れられる部分を増やしてるのか。」
え「そうだね。そういうこと!」
ちょっと引っかかっていた部分がわかったので、次に並び替えをメソッドにして綺麗にしていきます。
できたということだったので見せてもらうと…少し惜しいコード!
え「これもう少し短くできるな。」
J「えー、そっか…。」
え「変数はね用意しなくても大丈夫かな。用意するとしても1つだけで十分。」
J「んん??えーっと…。」
え「今これ、データが入ってるリストから1行分を変数に入れて、さらにその中の合計点を抜き出して変数に入れて…ってやってるよね。」
J「はい。」
え「でもこれ、1つにまとめることができるんだよね。もし合計点が次の行の合計点より大きかったらっていう条件部分で全部かけるんだ。」
J「あーそっか、なるほど。」
短くできる部分について説明して、コードを修正してもらいました。↓
ここまでできたところで今日はタイムアップ。
並べ替えは繰り返し文が入れ子になるので混乱してしまいがちですが、Jくんは毎回しっかり考えて書いてくれていますね。
次回はあと少しこの問題を修正したら次に行きましょう!
続いてはロジカルコースのHちゃん。
前回に引き続き、修了試験を進めていきます。
え「前回カードの動きができたんだったよね。」
H「はい。」
え「今日はこれを豚のしっぽにするために、ゲームのルール通りに動くようにしていこう。」
H「わかりました。」
まずは豚のしっぽのルールを整理します。
・山場から1枚カードを選ぶ
→もし場にあるカードと同じ色のカードを引いたらセーフ
→もし場にあるカードと違う色のカードを引いたら点数が増える
・点数が高い人が負け
上記ルールでやっていくためにブロックを作ってみます。
え「どういうふうにやるかイメージついてる?」
H「はい。なんとなく。選んだカードを動かすのにメッセージを送っているので、それを活用すればできるかなって思ってます。」
え「なるほど!いいね!じゃあちょっとそれでやってみようか。」
すでに作っているブロックを活用して処理を考えてくれました。
先生はそれを思いつかなかったので素晴らしいです!
試行錯誤しつつ作ってもらったのですが、あまりうまくいかなかった様子。
ちゃんと条件も考えられたのにどうして…といった感じだったので見せてもらいました。
え「なるほど、これってもしかして早すぎてできないのかもしれない。」
H「どういうことですか?」
え「選ばれたカードは動くためにメッセージを受け取るじゃない?例えば…クラブのAだったら16だよね。」
H「はい。」
え「で、16を受け取ったら最前面にして、絵も変えて、それらができたら動くって感じだよね。」
H「はい。」
え「一方違う色だったら~っていうのも同じように16を受け取ってから実行するんだけど…、これだとカードを動かすブロックよりも先に実行されちゃうから上手くいかないんだと思うんだ。」
H「そっか、動かすブロックはメッセージを受け取ってから3つ目にやるけど、違う色かチェックするのは受け取って1つ目のブロックでやってるから早すぎるんですね。」
え「そうそう!だから動いた後にやる必要があるよね。」
H「うーん…メッセージを変えたりしたらいいですか?」
え「そうだね、それがいいと思う!」
ブロックを実行する順番が違うので上手くいかなかったんですね。
ということで修正してくれました。↓
他のカードも同じように修正をして上手くいくかを確認しますが…直したのにうまくいきません。
原因を探っているところで今日はタイムアップ。
何が何に触れているのか?という部分に気が付ければ直りそうだなと先生は考えています。
次回はうまくいかなかったところを修正して完成に一歩近づいていきましょう!
次回のレポートもお楽しみに!
無料体験授業実施中!
毎週火曜日 16:00~17:30、17:40~19:10
毎週木曜日 16:00~17:30、17:40~19:10
毎週土曜日 10:00~11:30、11:40~13:10
※日曜日も臨時で実施していることがあります
お気軽にお問い合わせください
お申し込み・お問い合わせは、こちら。
お電話でも受け付けております。
03-6806-6861
(平日10:00~18:00)
イフキッズLINE@お友だち募集中!
新着授業レポートの通知、無料説明会やイベントの案内など、
耳よりな情報を配信中です。
加えて、お友だち登録されている方には、
イベント参加費の割引、
入会の際の割引、プレゼントなどの特典も!