【真面目版】基本情報技術者試験に出るプログラミングとオブジェクト指向を、誰でもわかるように解説!

情報セキュリティのポスター #1

情報セキュリティのポスター #2

目次

はじめに

幽灯子/基本情報技術者副専門官

「基本情報技術者試験」は、ITエンジニアを目指す人なら一度は聞いたことがある国家資格です。出題範囲は広いですが、中でも「プログラミング」と「オブジェクト指向」は毎回のように出題される超重要テーマです。

「プログラミングって難しそう…」「オブジェクト指向って何それ?」と感じている方も安心してください。この記事では、ITの専門知識がない方でも理解できるように、できるだけ身近な例えを使いながら丁寧に解説します。


プログラミングとは?「コンピュータへの命令書」

幽灯子/基本情報技術者副専門官

プログラミングとは、コンピュータに「何をどの順番でやってほしいか」を伝える作業のことです。コンピュータは自分で考えることができないので、人間が細かく指示を書いてあげる必要があります。この指示書のことを「プログラム」と呼びます。

たとえば料理に例えると、プログラムはレシピのようなものです。「まず水を沸かす→パスタを入れる→10分茹でる→ソースをかける」という手順をレシピ通りに実行するのが料理人(=コンピュータ)の役割です。

試験に出るプログラミングの基本概念

① 変数と定数

変数とは、データを一時的に入れておく「箱」のようなものです。箱には名前をつけることができ、中身はあとから変更できます。一方、定数は一度決めたら変更できない値です。試験では「変数に値を代入する」「変数の値を参照する」などの問題がよく出ます。

② 条件分岐(if文)

「もし〇〇なら△△する、そうでなければ□□する」という処理です。日常生活で言えば、「もし雨が降っていたら傘を持っていく、晴れていたら持っていかない」という判断と同じです。試験では、条件分岐の結果としてどの処理が実行されるかを問う問題が出ます。

③ 繰り返し処理(ループ)

同じ処理を何度も繰り返す仕組みです。「クラス全員(40人)の点数を合計する」という処理を手作業でやると大変ですが、繰り返し処理を使えば「40回、点数を足し算する」という命令一つで済みます。for文やwhile文がこれにあたります。

④ 配列

複数のデータをまとめて管理できる仕組みです。たとえば「生徒40人の点数」をバラバラの変数40個で管理するより、配列一つにまとめた方がずっと便利です。試験では配列の要素へのアクセス方法や、配列を使ったアルゴリズムの問題がよく出ます。

⑤ 関数(サブルーチン)

よく使う処理をまとめて名前をつけたものです。たとえば「消費税を計算する」という処理を毎回書くのではなく、一度「消費税計算」という関数を作っておけば、何度でも呼び出して使えます。コードの再利用性が高まり、修正も楽になります。


アルゴリズムとは?「問題を解く手順」

幽灯子/基本情報技術者副専門官

アルゴリズムとは、ある問題を解くための「手順・やり方」のことです。同じ問題でも、解き方によって速さや効率が大きく変わります。試験でよく出るアルゴリズムをいくつか紹介します。

ソート(並び替え)アルゴリズム 数値や文字を順番に並べ替える処理です。バブルソート、選択ソート、挿入ソートなどの種類があり、それぞれの動きと特徴が試験に出ます。

探索アルゴリズム データの中から特定の値を探す処理です。線形探索(最初から順番に調べる)と二分探索(半分に絞り込みながら探す)が代表的です。


オブジェクト指向とは?「現実世界をプログラムで表現する考え方」

幽灯子/基本情報技術者副専門官

ここが多くの人にとって最初の壁となる「オブジェクト指向」です。でも、身近な例で考えると意外とシンプルです。

「クラス」と「インスタンス」

オブジェクト指向の核心は「クラス」と「インスタンス」という概念です。

クラスとは「設計図」のようなものです。たとえば「犬」というクラスを考えてみましょう。犬には「名前」「犬種」「年齢」という情報(属性)があり、「吠える」「走る」「食べる」という動作(メソッド)があります。

インスタンスとは、その設計図を使って実際に作られた「個体」です。「ポチ(柴犬・3歳)」は犬クラスから作られた一つのインスタンスです。「マル(トイプードル・5歳)」も同じ犬クラスから作られた別のインスタンスです。

つまり、クラス=犬の設計図、インスタンス=実際の犬一匹一匹というわけです。

オブジェクト指向の三大原則

試験では、オブジェクト指向の三つの重要な性質がよく問われます。

① カプセル化

データ(属性)と、それを操作する処理(メソッド)を一つにまとめて、外部から直接触れないようにする仕組みです。たとえば銀行口座を考えてみましょう。口座の残高(データ)を直接変更できたら困ります。「入金する」「出金する」という決められた方法(メソッド)を通じてのみ残高を変更できるようにする、これがカプセル化です。データを守ることで、プログラムの安全性と信頼性が高まります。

② 継承(インヘリタンス)

既存のクラスの機能を引き継いで、新しいクラスを作る仕組みです。たとえば「動物」クラスには「食べる」「呼吸する」という機能があるとします。「犬」クラスは動物クラスを継承することで、これらの機能をそのまま使いつつ、「吠える」という犬ならではの機能を追加できます。コードの再利用性が高まり、共通する処理を何度も書く手間が省けます。

③ ポリモーフィズム(多態性)

同じ命令に対して、オブジェクトの種類によって異なる動作をする仕組みです。「声を出す」という命令に対して、犬は「ワン!」と鳴き、猫は「ニャー!」と鳴き、鳥は「チュンチュン!」と鳴きます。それぞれのクラスが同じ名前のメソッドを持ちながら、異なる処理を実行できます。これにより、プログラムの柔軟性と拡張性が大幅に向上します。


試験対策のポイントまとめ

幽灯子/基本情報技術者副専門官

基本情報技術者試験のプログラミング・オブジェクト指向の問題は、暗記だけでは乗り越えられません。概念を理解した上で、具体的な場面に当てはめて考える力が求められます。

押さえておくべきポイントは次の通りです。変数・条件分岐・ループ・関数という基本的なプログラムの構造を理解すること、そしてクラス・インスタンス・カプセル化・継承・ポリモーフィズムというオブジェクト指向の三大原則とその用語の意味を覚えることです。また、擬似言語で書かれたプログラムを読んで処理の流れをトレースする練習も欠かせません。


おわりに

幽灯子/基本情報技術者副専門官

プログラミングとオブジェクト指向は、最初は難しく感じるかもしれませんが、身近な例えに置き換えて考えると理解がぐっと深まります。「犬の設計図がクラス」「実際の犬がインスタンス」といった具合に、抽象的な概念を具体的なイメージと結びつけながら学んでいきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITTIのアバター ITTI 運営長

ITTI運営長
調べものと学ぶことが止められなくなり、現在は以下の4ブログを運営中:
・DXブログ(今ここ!)
・CODEブログ
・INFRAブログ
・XRブログ

保有資格:ITパスポート
目標資格:情報処理安全確保支援士(学ぶこと多すぎて道のりは遠いですが、毎日コツコツ進めています…泣)

ブログでは、実務経験と最新技術を掛け合わせて、読者の「わかりにくい」を「わかる!」に変える記事を発信中!
最終目標は、これらの知識を活かして「ドラえもんのような万能AI」を開発すること(AIを副運営長任命が待ち遠しい!)。
DX・CODE・INFRA・XRに興味ある方、気軽にX(@llEqmDGOYZ4258)でDMください。一緒に学びましょう!

IT企業のAIイラスト #1

IT企業のAIイラスト #2

IT企業のAIイラスト #3

コメント

コメントする

CAPTCHA


目次