情報Ⅰ ポイント整理(15)
情報Ⅰ ポイント整理(15)
この連載では、現在高校で使用されている「情報Ⅰ」の教材をもとに、重要なポイントを整理し、5分程度で読める内容にまとめています。
ITの基礎知識として身につけておきたい内容を幅広く取り上げるとともに、大学入学共通テストで出題されやすいポイントについても分かりやすく解説します。テスト対策にもぜひご活用ください。
第15回目 プログラミング
今回は、情報Iポイント整理の最終回です。プログラミングについてお話したいと思います。
高校のプログラミング教育は学校によってかなり差があります。教科書だけ使って基本知識をとりあえず知ってもらう学校もありますし、外部のプログラミング講師を招いて本格的な開発を教える学校もあります。しかし、共通テストの問題からみると、ある程度プログラミングを実践しないと、共通テストの問題を解くにはちょっと難しいかもしれません。
いま、多くの生徒が民間のプログラミング塾に通ってプログラミングを学んでいます。ゲーム制作やアプリ制作が流行りになっています。そこでプログラミング的思考や開発手法を学んでいます。今回のプログラミングについての説明は、あくまでも「情報I」に登場した内容を整理するものなので、知識の部分が多いかもしれません。
アルゴリズムとは
アルゴリズムは、ある処理を行うために、コンピュータに指定した計算手順、処理手順のことです。アルゴリズムは簡単に言うと、解決したい問題を解くための手順です。
人間なら、「まずこれ、次これ、次これ、最後これ」などの手順を頭の中で考えてから処理を行います。人間のこの手順のことを、プログラミングのアルゴリズムといいます。
アルゴリズムを説明するとき、よく使われている表現方法があります。
①フローチャート:
1つの処理を図や線、矢印などを使って視覚的に流れを表します。後ほど出てくる条件分岐や繰り返しなどを活用し、流れをわかりやすく表現することができます。
②アクティビティ図:
フローチャートと同じく処理の流れを視覚的に表しますが、並列処理を表現できるのが特徴です。
③状態遷移図:
時間の経過や人為的操作などによって、ある状態から別の状態へ変わることを表します。例えば、電源がONの状態からOFFの状態になるなど。
アルゴリズムの構造
アルゴリズムの構造は以下の3つです。
- 順次
- 条件分岐
- 繰り返し
この3つの構造は課題を解決するための基盤となっています。この3つの構造の組み合わせで、プログラムを書いています。
①順次:
命令の順番通りに1つ1つの命令が実行されることです。
②条件分岐:
条件によって行う異なる処理を行うことです。
例えば、ある条件が成立したとき、特定の処理を行いますが、その条件が不成立となったときには、別の処理を行います。
③繰り返し:
同じ処理を何度も行うことです。人間は繰り返し作業が実は苦手です。間違いやすいです。でもコンピューターに繰り返しの命令を渡せば、間違いなく正確に実行してくれます。
上記の3つの構造は、文部科学省が提案した「プログラミング的思考」の本質にもなっています。ゲームやアプリを作る時、ロボットを動かす時、この3つの構造は必ず使われます。
プログラミングとは
プログラムとは、前項で説明したアルゴリズムを、コンピューターが理解できる言語で記述したものです。
「プログラミング」と聞くと、コードを書く作業だけを思い浮かべるかもしれません。しかし、実際のプログラミングには、主に次の3つの作業があります。
①設計:
いきなりコーディングを始めるのではなく、まずは設計を行います。これは主にSE(システムエンジニア)が担当する仕事です。
②コーディング:
設計内容をもとに、プログラマーがコードを書きます。
③テスト:
コーディングが終わったら、プログラムが正しく動作するかを確認するためにテストを行います。
実際の開発現場では、コーディングとテストを並行して行うことも多くあります。
プログラミングの重要な基本概念
①変数:
データを保存する場所です。
変数にはデータ型があります。保存されるデータの種類を表します。例えば、文字、整数、小数など。
②配列:
大量のデータをまとめて保存する場所です。
変数の特徴として、1つの変数に1つのデータしか保存できません。しかし、大量のデータを処理しなければならない場合、大量の変数を作るのが大変なので、その場合、配列を用意すれば、簡単に保存したり、削除したり、並び替えしたり、できます。
③制御文の条件分岐:
条件によって異なる処理を行います。
④制御文の繰り返し:
同じ処理を何度も行います。
⑤関数:
関数とは、複数の処理をひとまとまりにしたものです。関数は組み込み関数と自作関数があります。
組み込み関数は事前にプログラミング言語が用意してくれた関数のことです。
自作関数は自分の処理に合わせて自分で作った関数のことです。
関数はプログラミング初心者にとってちょっと難しい概念です。また、関数の処理に必要なデータを渡す場合は引数を使います。そして関数の処理が終わってその処理結果を渡す場合は戻り値を使います。これらを使い慣れるには実際のプログラムを書かないとなかなか理解しにくいです。
※以前書いた<a>「高校「情報I」からみるプログラミングの考え方⑥」</a>をご参考ください。
プログラムを書くには、それ以外の概念や用語がありますが、まず、この5つの概念をしっかり習得する必要があります。
共通テストでは、擬似言語を使いますので、実際にどのプログラミング言語を勉強しても、共通テストでは疑似言語を使うのでそんなに違いがありません。
ただし、疑似言語の文法の書き方にある程度慣れたほうがいいです。
※以前書いた 「大学共通テスト『情報』に使う疑似言語のまとめ」 をぜひご参考ください。
最後に。「情報I」の教科書では「探索」と「整列」のアルゴリズムを紹介しています。
しかし、実際の共通テストの問題を見ると、より幅広いアルゴリズムが出題されます。そのため、「探索」と「整列」はアルゴリズムの一例として学んでください。
共通テストの対策としては、もっとたくさんの問題を解く練習が必要です。
※「探索」に関する以下の記事を参考にしてください。
高校「情報I」からみるプログラミングの考え方 ②
高校「情報I」からみるプログラミングの考え方 ③
高校「情報I」のポイント整理は今回ですべて終わりました。
高校の教科書とは言え、たくさんの情報の基礎知識がありました。しかし、AI時代に必要な情報は進化しながら増え続けています。そう遠くない将来、プログラミングの技術はWordやExcelと同じ、誰もができる一般的な技術になると思います。そのために、私たちは勉強し続ける心を持つことが重要となります。
