システム開発入門の第8週目では、先週制作したPythonのミニアプリを紹介する発表会が行われました。
生徒たちはコードを見せるだけでなく、アプリの目的、処理の仕組み、工夫した点を自分の言葉で伝え、クラスメイトの質問や感想を受け取りました。
制作時の流れは、第7週目のミニアプリ制作レポートで確認できます。
コードを説明することも開発の学び
田中先生:「開発の世界では、“書ける”だけじゃなく、“説明できる”こともとても大切です。今日の発表会はその第一歩です。」
先生は、発表する側だけでなく、見る側、聞く側、質問する側にも学びがあると説明しました。
互いの成果を尊重しながらコードを読むことで、自分とは異なる処理の組み立て方や表現に気付けます。
関数は、ひとまとまりの処理に名前を付け、必要なときに呼び出せる形にしたものです。
条件分岐は、入力値や計算結果に応じて、実行する処理を切り替える書き方です。
発表では、次の順序で説明するとコードの流れを追いやすくなります。
- アプリが何をするのかを伝える
- どのような値を受け取るのかを示す
- 関数や条件分岐が何を判断するのかを説明する
- 最後に表示される結果を示す
おみくじアプリとrandom.choice()
最初のチームは、運勢をランダムに表示するおみくじアプリを発表しました。
import random
def draw_fortune():
fortunes = ["大吉", "中吉", "小吉", "凶"]
return random.choice(fortunes)
fortunesは、複数の運勢を一つにまとめたリストです。
random.choice(fortunes)は、そのリストから一つを選び、returnで呼び出し元へ返します。
リストの基礎を振り返る場合は、第5週目のPythonリストの解説も参考になります。
発表では「名前を入力すると」と説明されましたが、掲載された関数は名前を受け取っていません。
このコード片で確認できるのは運勢を選ぶ処理であり、名前の入力や表示は別の処理に含まれている可能性があります。
生徒A:「結果が変わるのが面白い!」
生徒B:「randomの使い方、勉強になった」
性格診断アプリの条件分岐
次のチームは、3つの質問の合計点から結果を返す性格診断アプリを発表しました。
def get_result(score):
if score >= 8:
return "リーダータイプ"
elif score >= 5:
return "協調タイプ"
else:
return "ひとりじっくりタイプ"
scoreは、関数が外から受け取る値です。
このように関数へ渡す値を引数と呼び、コードでは点数に応じて返す診断結果を切り替えています。
関数と引数の関係は、第6週目の関数と引数の授業レポートで詳しく整理しています。
| 点数 | 返す結果 |
|---|---|
| 8点以上 | リーダータイプ |
| 5点以上7点以下 | 協調タイプ |
| 4点以下 | ひとりじっくりタイプ |
掲載コードには質問文や加点の処理は含まれていないため、ここで確認できるのは合計点を診断結果へ変換する部分です。
生徒C:「質問ごとに点数をつけるのが面白い」
生徒D:「工夫されてて、ちょっと本格的だった!」
おすすめ食べ物診断の色による判定
3つ目のチームは、好きな色に応じて食べ物を返す診断アプリを紹介しました。
def suggest_food(color):
if color == "赤":
return "唐揚げ"
elif color == "青":
return "寿司"
else:
return "カレー"
この関数は、colorが「赤」なら唐揚げ、「青」なら寿司、それ以外ならカレーを返します。
発表では「リストを使った」と説明されましたが、掲載コードにあるのはif、elif、elseによる条件分岐です。
全体のプログラムでリストを併用していた可能性はありますが、このコード片だけでは確認できません。
生徒E:「なんかスマホアプリでありそう!」
田中先生:「配色とデータの組み合わせ、上手だね」
3つのミニアプリに共通する処理
発表されたアプリは題材が異なりますが、入力または候補を受け取り、処理を選び、結果を返す流れを持っています。
| アプリ | 値や候補 | 処理 | 結果 |
|---|---|---|---|
| おみくじ | 運勢のリスト | 候補から一つを選ぶ | 大吉などの運勢 |
| 性格診断 | 質問の合計点 | 点数の範囲を判定する | 3種類の診断 |
| 食べ物診断 | 好きな色 | 色の値を判定する | 食べ物の候補 |
表にすると、コードが受け取るもの、判断すること、返すものの対応が見えやすくなります。
質問と振り返りで見えたこと
発表後は、クラス全体で感想を共有しました。
生徒F:「自分では思いつかないコードがあって参考になった」
生徒G:「説明するって、思ってたより難しい。でも伝わった時は気持ちいい!」
コードを説明すると、書いた本人が理解している部分と、まだ言葉にしにくい部分を切り分けやすくなります。
聞く側も、処理の違いを比べたり、掲載コードだけでは分からない部分を質問したりすることで、自分の理解を確かめられます。
田中先生:「発表することで“自分の理解”が深まります。そして、人のコードを見ることで、新しい考え方にも出会えます。今回の発表会は、技術と表現、両方の力を育てる時間でした。」
次週はコードの整理へ
次週は、長くなったプログラムを役割ごとに分けるファイル構成とモジュールの基礎へ進む予定です。
今回の発表で処理を順序立てて説明した経験は、コードをどこで分け、どの役割を持たせるか考える準備になります。
この記事に関連する株式会社greedenの取り組み
ミニアプリを説明する体験は、使う人の目的を整理し、処理をわかりやすく組み立てる開発の基礎につながります。株式会社greedenは、対話を重ねながらアイデアを形にするアプリ開発を支援しています。
