7歳の子供にプログラミングを教えている話

2020.12.21

はじめに

今年の9月ごろから、7歳(小学2年生)の息子にプログラミングを教え始めました。3か月くらい経ったので勉強内容をまとめます。

因みに息子は2014年4月にこのブログに登場したことがあります。その時はエイプリルフールのネタでしたが、本当にプログラミングの勉強を始めました。この写真に写っているSurface Pro 2にVisual Studio 2019をインストールして勉強しています。

ブログで飯が食えなかったのでアプリ始めました。

準備

まず最初にキーボードを打てなければいけません。アルファベットの大文字は以前勉強したことがあり多少は覚えていたので、ローマ字の勉強から始めました。あとはプログラミング言語はC#を使うつもりだったのでアルファベットの小文字も並行して覚えていきました。小文字は読むだけであればすぐ覚えました。ローマ字はExcelで日記を書いていたら割とすぐに慣れました。PCに関する知識はプログラミングを教えるついでに教えています。

動機

ゲームが好きなのでプログラミングの勉強をやったらNintendo Switchを30分やってもいいことにしています。前にやっていたことをちゃんと覚えていたり、集中できていると思った時は10~20分増やしたりしています。集中して頑張れば早く終わるしゲームいっぱいできるよ、と言ってやる気を出させています。

環境

Visual Studio 2019 でWPFアプリを作っています。言語はC#です。選んだ理由はGUIアプリをドラッグ&ドロップで作れて、とっつきやすいかと思ったからです。クラス名などは全部英語なのですが、コード補完が使えるので完全に覚えてなくてもなんとかなります。私はやったことありませんが、ゲーム好きなので一人でプログラミングするようになったらUnityを勉強してゲーム開発やったらいいかもしれません。

日課

水曜日は習い事をしているのでお休みで、あとは家族でどこかに行った日以外は大体やっています。土日に新しいことをやって平日繰り返して覚える、といったサイクルです。

  • Excelに毎日1行づつ日記を書いています。(5分~10分)
  • アルファベット小文字を読む練習。覚えたのでもう毎日はやってないです。
  • プログラミングの練習。(30分~40分)

3か月でやったこと

3か月でやったことです。全部は覚えてないと思いますので、今後も繰り返し練習します。変数の概念の理解が一番難しかったかと思います。あとクラスやメソッドの定義の仕方を覚えるのも結構時間かかりました。

  • パソコンの使い方
    • 起動、停止。ログイン。
    • インターネットで検索
    • ファイル、フォルダ、ショートカット
    • アプリやウインドウ。
    • マウスの使い方。
      • クリック、ドラッグ、ドロップ、ホイール。
    • コピー、ペースト、戻すなどショートカット。
    • テキストエディタで文字を編集、保存する。
  • Excel
    • 表の作り方。
  • プログラミング
    • 変数(int、string、DateTime)
    • 演算子
    • キャスト
    • 条件分岐
    • ループ
    • クラス(プロパティ、メソッド、コンストラクタ)
    • List
    • GUI(ボタン、ラベル、テキストボックス、コンボボックス)
    • ライブラリ

作ったプログラム

プログラミングの勉強はまずは私が書いて内容を説明し、次から真似してもらいます。私が手伝わなくても一人で作れるようになったら次に課題に進む、といった感じで進めています。今まで作ったのは以下のようなプログラムです。

  • テキストボックスに名前を入れてボタンを押すと「こんにちは。〇〇さん!」と画面のラベルに表示するプログラム
  • 1から1000まで足していったらいくつになるか計算するプログラム。ループの練習です。息子が勝手に1000からどんどん数字を増やしていったらオーバーフローしてマイナスになりました。
  • 1から100まで足していったらいくつになるか、式と答えをコンソールに表示するプログラム。式もプログラムで作成します。
  • 九九の練習プログラム。ランダムに問題を出題しテキストボックスに答えを入力します。正解、不正解の判定ができます。ランダムな数字を生成するところは難しいので私が作りました。
  • ボタンを押したときに選んだコンボボックスの文字をラベルに表示するプログラム。コンボボックスの練習です。
  • テキストボックスに数字を入力し、ボタンを押すと倍の数値をラベルに表示するプログラム。キャストの練習です。
  • 100日後が何年何月何日なのかをラベルに表示するプログラム。DateTimeクラスの練習です。
  • 4歳の弟と生まれた日が何日違うのか計算するプログラム。
  • Humanクラスを定義しインスタンスをコンストラクタで作成して、SelfIntroductionメソッドを呼び出すプログラム。クラス作成の練習です。
  • デスクトップにあるテキストファイルを読んでコンソールに内容を表示するプログラム。インターネットで調べるところからやってもらいました。

よかったこと

学校で先生に「ローマ字読めるの?すごいね。」と褒めてもらったことがあるそうです。英語に興味を持ったのか、テレビを見ている時や外出した時にアルファベットを見ると読もうとしています。Strong Zeroとか読んでました。stringに似ているからですかね。

最後に

目標は小学3年生から夏休みに自由研究があるので、プログラミングを研究して一緒に何か作りたいです。続いていたらまたその頃に記事を書きたいと思います。