太子プログラミングクラブ2-6~脳内コンパイルをしてみよう~
2025年3月28日は、太子プログラミングクラブ「初級コース第2期」の6回目を実施しました。
前回示した三大制御構造を使って書いたPythonコードを、実際に動かすのではなく頭の中で動かしてみます。
タイピング練習
はじめはタイピング練習から。タイピング練習で使うツールは、いつものです。
- 無料タイピング
https://manabi.benesse.ne.jp/gakushu/typing/ - 寿司打
https://sushida.net
タイピングの練習はひたすら自分との戦いです。自転車に乗るのと同じ、身体感覚をつかむまでひたすら練習あるのみです。
第2期もちょうど折り返し、タイピングは中だるみの時期かなあと感じています。一発カンフル剤を打ちたいところです。
アルゴロジックを解いていこう
タイピングが終わったら、アルゴロジックを解いていきます。
メンバーのほとんどがジュニア問題からチャレンジ問題に進んでいます。チャレンジ問題は、単に試行錯誤で解いていくと大変時間がかかります。そこで、考え方を示すわけです。
たとえば、同じ軌跡のくりかえしにするため、「軌跡の形をくりかえしになるところを見つける」ということです。
アルゴロジックが良くできていると感じるのは、この「くりかえしを見つける考え方」をゲームで身に付けさせる点です。実際のプログラミングでも重要な考え方ですし、もっと大きな観点でいうと、社会人になって仕事をするときにくりかえしを省くのは大変役立ちます。これは、わたしの実感込みです。
アルゴロジックをまじめに解けば、さまざまな分野に応用のできる力が身につきます!
脳内コンパイルしてみよう
アルゴロジックが終わったところで、一旦休憩をはさんで脳内コンパイルに挑戦です。
脳内コンパイルとは、プログラムコードをコンピューターに入力して動かすのではなく、紙に書かれたコードを読みながら頭の中で考えて動きを想像することです。厳密に言うと、Pythonはインタプリタ言語ですのでコンパイルはしませんが、通称ということでツッコミは受け付けておりません。
題材は、前回の資料の発展です。矢印がくるくる回るだけのプログラムです。
メンバーは思い思いに解いていきます。中には、下の写真のように一行ずつ日本語に変換して考えているメンバーもいました。
これを見て、目頭と胸が熱くなりました。というのは、わたしも学生時代に同じように一行ずつ日本語を書いて学習した思い出があるからです。わたしから指示をしたわけではなく、メンバー自ら一行ずつ日本語を書いていたのに、わたしも苦労した過去を重ねたのでした。
この写真のメンバーは、今回の課題には苦労していたようです。しかし、今の苦労は血となり肉となり将来結実します! がんばれ!
プログラムの仕様は日本語で指示されます
ところで、気になったのは「ずっと回り続ける」という答えのところを「ずっと90度回る」と回答するメンバーがほとんどだったということです。おそらくプログラムを直訳した後者でも間違いではありません。が、しかし、「ずっと90度回る」という表現を日常で使いますか?
日常的に使う自然な日本語がよりよい正解です。
今回は「プログラムコード→日本語」の変換をしました。ただ、多くの場合「日本語→プログラムコード」への変換をします。
気づいてほしいのは、自然な日本語で仕様が与えられるということです。プログラミングは、自然な日本語をコンピューターに伝わる言葉に変換するということです。このクセをつかんでほしいのです。
スネークゲームは今回で終わり
残った時間で、スネークゲームの写経をします。時間内に、最後までできあがったメンバーはわずかでした。でも、次回は次のテーマに進みます。
ところで、家でプログラムを書いていたメンバーが、「美しいコードじゃない」と言い出したとか。ニヤリ顔がおさまりません。