日常の出来事を「プログラミング思考」でとらえる
目次
1. 抽象:共通のイメージ
「私は散歩をしていて犬を見かけました。」
- この時点では「犬」という抽象的なカテゴリが語られています。
- プログラミングでいえば、class Dog のように型やクラスの定義に近いものです。
- 読み手の脳内では、自分の知っている「犬」のイメージが再生されますが、それは人によって異なります。
2. 具体:属性(プロパティ)
犬が白い・小型・柴犬・首輪をしている…
- ここで初めて「データ(属性)」が付与され、抽象だったものが具体化されていきます。
- プログラミング的には Dog dog = new Dog(“柴犬", “白", “小型", true); といったインスタンス生成。
3. 動作:振る舞い(メソッド)
犬が飛び跳ねている・寝そべっている・吠えている…
- これはオブジェクトの振る舞いにあたります。
- クラスに定義されたメソッド(Jump(), Sleep(), Bark())が呼ばれている状態です。
dog.Jump();
なぜこの視点が大事か?
日常の体験や言葉の理解は、情報の欠如を想像力で補っています。
しかしプログラムは、人間のように勝手に想像してはくれません。
- 抽象化は「共通点をまとめる力」
- 具体化は「使えるデータとして表現する力」
- 動作の記述は「振る舞いを制御する力」
これらを意識することで、コードはただの文字列から「動作する世界のモデル」として見えてきます。

最後に:日常とプログラミングのつながり
「犬を見た」という出来事も、プログラム的に分解すれば、
- 主語(誰が)→ 私(User)
- 動詞(何をした)→ 見た(See())
- 目的語(何を)→ 犬(Dogクラスのインスタンス)
といった形になります。
これを意識することで、抽象→具体→行動という「モノの考え方」を身につけることができます。
このような考え方を授業や資料に取り入れると、「プログラミングは難しい言語」ではなく、「世界を記述する手段」として自然に捉えやすくなるでしょうか。
サンプルコードで考えてみる
以下に、あなたの「散歩中に犬を見かけた」という話をベースに、抽象 → 具体 → 行動の流れを、やさしいC#のコードで示します。
🐾 1. 抽象的な「犬」の定義(クラス)
// 「犬」とはどんな存在か(共通の型)
public class Dog
{
public string Name;
public string Color;
public string Size;
public string Breed;
public bool HasCollar;
// 「犬」ができること(行動)
public void Bark()
{
Console.WriteLine($"{Name}がワンワンと吠えました!");
}
public void Jump()
{
Console.WriteLine($"{Name}が元気にジャンプしました!");
}
}
🏡 2. 具体的な「犬」の登場(インスタンス)
// 散歩中に出会った犬を作ってみよう
Dog dog = new Dog();
dog.Name = "ポチ";
dog.Color = "白";
dog.Size = "小型";
dog.Breed = "柴犬";
dog.HasCollar = true;
🕺 3. 見た・行動した(メソッドの実行)
Console.WriteLine("私は散歩をしていて犬を見かけました。");
// 属性を表示してみよう
Console.WriteLine($"それは{dog.Color}色の{dog.Breed}で、{dog.Size}サイズです。");
// 行動をさせてみよう
dog.Bark();
dog.Jump();
🧠 解説まとめ
項目 | 説明 | プログラム的視点 |
---|---|---|
抽象 | class Dog | 共通の性質を定義 |
具体 | new Dog() | 情報を持った実体(オブジェクト) |
行動 | dog.Bark() dog.Jump() | メソッドで振る舞いを表現 |
このように、日常をコードに置き換えることで、プログラムは「難しい命令文の羅列」ではなく、「現実世界をモデル化する手段」として見えてきます。
ディスカッション
コメント一覧
まだ、コメントがありません