最新テクノロジ系「アルゴリズムとプログラミング」の用語集

ITパスポートシラバス6対応最新テクノロジ系プログラミングとアルゴリズムの用語集分野別
スポンサーリンク

ITパスポート試験 シラバス6対応 テクノロジ系 アルゴリズムとプログラミング についての出題傾向、学習ポイント、重要な用語を紹介します。

スポンサーリンク

「アルゴリズムとプログラミング」の出題傾向

出題数

4問程度出題される可能性があります。

令和元年~令和3年まで毎回1問程度でしたが、令和4年公開問題では、4問に増えました。

出題傾向

シラバス6で、この項目の新しい用語がたくさん増えました。

これまでの過去問題より、出題数が増える可能性が高いです。

Ver.○.○の表示について
 用語が初めて掲載されたときの、シラバスのバージョンです。
 表示がないのは、Ver.3以前です。

データ構造

実際の問題で、考え方を理解しましょう。

データ構造

データ構造は、データを効率的に管理するための整理方法です。

データの出し入れを簡単にするために、一定の方式で収めたデータのあつまりです。

リスト、キュー、スタック、木構造、2分木などの種類があります。

テクノロジ系アルゴリズムとプログラミング36.データ構造

木構造

木構造は、大量の情報を整理する方法の1つです。

木構造の例(テクノロジ系アルゴリズムとプログラミング36.データ構造)

木構造は、節(node)と枝(エッジ)からできています。

植物に基づいて、階層で一番最初にくる親子を「根」、そして階層が一番最後の親子が「葉」と植物に基づいた呼び方もあります。

木構造の呼び方(テクノロジ系アルゴリズムとプログラミング36.データ構造)
テクノロジ系アルゴリズムとプログラミング36.データ構造

スタック

スタックでは、最後に格納されたデータを最初に取り出します。

スタックについて、次のような問題が出題されています。

【令和元年秋 問62】
下から上へ品物を積み上げて、上にある品物から順に取り出す装置がある。この装置に対する操作は、次の二つに限られる。

PUSH x:品物xを1個積み上げる。
POP : 一番上の品物を1個取り出す。

ITパスポート令和元年秋問62スタック図

最初は何も積まれていない状態から開始して、 a, b, cの順で三つの品物が到着する。一つの装置だけを使った場合、POP操作で取り出される品物の順番としてあり得ないものはどれか。

 ア a, b, c
 イ b, a, c
 ウ c, a, b
 工 c, b, a

正解は、 ウ です。

テクノロジ系アルゴリズムとプログラミング36.データ構造

アルゴリズムとプログラミング

疑似言語の問題を解けるように、まずは用語を覚えましょう。

疑似言語

Ver.6.0
疑似言語は、アルゴリズムを表現するための擬似的なプログラム言語です。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

Ver.6.0
式は、数量の事柄や関係を数学の+、-、=等の記号を用いて表現したものです。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

条件式

Ver.6.0
条件式は、値や式の比較や論理演算を組み合わせた式です。

計算結果は、真(true)または偽(false)となります。

プログラムの分岐の条件などに用いられます。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

演算子

Ver.6.0
演算子は、足し算や掛け算などの計算,、値の大小を比べるときに使われる記号のことです。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

代入

Ver.6.0
代入は、変数に値を入れることです。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

注釈

Ver.6.0
注釈は、プログラムのソースコードの内容の補足・説明・解説をします。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

入出力

Ver.6.0
入力の例として、キーボードによる数字や文字の入力があります。

出力の例としては、コンソール画面への表示があります。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

手続

Ver.6.0
手続は、複数の処理を一つにまとめたものです。

プログラム言語によっては、関数とも呼ばれます。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

関数

Ver.6.0
関数は、ある値(引数)を渡すと、一定の処理がされて結果が返ってくる機能です。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

引数

Ver.6.0
引数は、関数などに受け渡す値です。

関数は、受け渡された値を使って処理を行い、結果となる値を返します。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

戻り値

Ver.6.0
戻り値は、関数などが処理を終了し、呼び出し元に対して渡す値です。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

データ型の用語です。

データ型

Ver.6.0
データ型は、普段、人が使っているデータ(数字,文字など)をパソコンに記録できる値に変換する仕組みです。

整数型、実数型、論理型、文字型などがあります。

各データ型には長所・短所があり、効率的なプログラムを組むためには、使い分ける必要があります。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

整数型

Ver.6.0
整数型は、整数を格納します。

整数型は、2の補数表示を使用すると、8ビットでは-128~127が扱えます。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

実数型

Ver.6.0
実数型は、実数を格納する変数の型です。

小数を表現できます。

また、表現できる数字の範囲が、整数型より広いです。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

論理型

Ver.6.0
論理型は、ブール値(論理値)を格納する変数の型です。

真(true)か偽(false)のどちらかの値が入ります。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

文字型

Ver.6.0
文字型は、文字の値を格納する変数の型です。

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

疑似言語の問題は、実際に問題を読み解く練習が必要です。

次の記事に、疑似言語問題の解き方を説明しました。

探索のアルゴリズムです。

線形探索法データ列の先頭から

2分探索法半分づつ

線形探索法

Ver.6.0
線形探索法は、データ列の先頭から順番にキーと比較していく探索方法です。

線形探索法の説明(テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング)

配列上に不規則に並んだ多数のデータの中から、特定のデータを探し出すのに適したアルゴリズムです。
(ソフト開発 平成19年春午前 問13より)

テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

2分探索法

Ver.6.0
2分探索法は、データをあらかじめ決められた順番(例えば、小さい順、大きい順、五十音順など)にならべておき、探索の対象を半分ずつ狭めながらキーと比較していく探索方法です。

2分探索法の説明(テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング)
テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

整列のアルゴリズムです。

選択ソートデータ中の最小値(もしくは最大値)を求める。

バブルソート隣り合ったデータの比較して入れ替える。

クイックソート適当な基準値を選んで、データを分割する。

選択ソート

Ver.6.0
選択ソートは、データ中の最小値(もしくは最大値)を求め、次にそれを除いた部分の中から最小値を求める。この操作を繰り返していく方法です。
(基本情報 平成30年秋午前 問6より)

選択ソートの説明(テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング)
テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

バブルソート

Ver.6.0
バブルソートは、隣り合ったデータの比較と入替えを繰り返すことによって、小さな値のデータを次第に端の方に移していく方法です。
(基本情報 平成30年秋午前 問6より)

バブルソートの説明(テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング)
テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

クイックソート

Ver.6.0
クイックソートは、適当な基準値を選び、それより小さな値のグループと大きな値のグループにデータを分割する、同様にして、グループの中で基準値を選び、それぞれのグループを分割する。との操作を繰り返していく方法です。
(基本情報 平成30年秋午前 問6より)

クイックソートの説明(テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング)
テクノロジ系アルゴリズムとプログラミング37.アルゴリズムとプログラミング

プログラム言語

特に、プログラミム言語の種類、特徴を覚えようね。

プログラム言語の種類、特徴を覚えましょう。

太字の部分がキーワードです。

C

Ver.6.0
C言語は、UNIXを開発するために設計されたシステム記述向きのプログラミング言語です。

プログラムをすべて機械語に変換してから実行するコンパイラ方式です。

C言語の説明(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

Fortran

Ver.6.0
Fortranは、科学技術計算向けに開発された言語です。
(ITパスポート 平成22年秋 問54より)

Fortrannの説明(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

Java

Ver.6.0
Javaは、コンビュータの機種やOSに依存しないソフトウェアが開発できる、オブジェクト指向型の言語です。
(ITパスポート 平成22年秋 問54より)

Javaの説明(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

C++

Ver.6.0
C++は、C言語を拡張させたオブジェクト指向のプログラミング言語です。

C言語と互換性があるため、C言語と同時に使用することができます。

C++言語の説明(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

Python

Ver.6.0
Pythonは、アプリケーションの開発、人工知能、データ解析など幅広い分野で使用されている言語です。

次の特徴が有ります。

  • 豊富なライブラリ
  • インタプリター言語
  • スクリプト言語
  • オブジェクト指向
Pythonの説明(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

JavaScript

Ver.6.0
JavaScriptは、ブラウザで動作する処理内容を記述するスクリプト言語注)です。
(ITパスポート 平成24年春 問67より)

注)プログラムを書いて実行するのが比較的容易な言語(大雑把な説明)

JavaScriptの説明(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)

次のような、JavaScriptの利用例が試験に出ています。

HTMLだけでは実現できず、JavaScriptを使うことによってブラウザ側で実現可能になること

入力データの検査

(応用情報 平成22年春午前 問7より)

テクノロジ系アルゴリズムとプログラミング38.プログラム言語

R

Ver.6.0
R言語は、統計解析向けのプログラミング言語です。

データの解析からグラフへの出力を行うことに優れ、人工知能(AI)領域においても注目されています。

R言語の説明(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

コーディング標準についての用語です。

コーディング標準の各内容の目的や効果を覚えましょう。

コーディング標準

Ver.6.0
コーディング標準は、ソフトウェア開発に関わるエンジニア,プログラマがコンピュータプログラムのソースコードを記述する際に求められる、コードの書き方や形式に関する決まりです。

(目的)可読性を高めて、一定の品質の担保、保守性の向上、生産性の向上を図る。

テクノロジ系アルゴリズムとプログラミング38.プログラム言語

字下げ(インデンテーション)

Ver.6.0
字下げは、プログラムの階層構造をわかりやすくするために行います。

テクノロジ系アルゴリズムとプログラミング38.プログラム言語

ネストの深さ

Ver.6.0
ネストの深さは、プログラムの階層構造の数のことです。

浅いほうがいいです。

ネストの深さの説明(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

命名規則

Ver.6.0
命名規則は、プログラミングにおいて、変数名など識別名をつける際のルールです。

テクノロジ系アルゴリズムとプログラミング38.プログラム言語

プログラムの構造についての用語です。

プログラム構造

Ver.6.0
プログラム構造は、プログラムの命令が実行される流れを定めたものです。

テクノロジ系アルゴリズムとプログラミング38.プログラム言語

モジュール分割

Ver.6.0
モジュール分割は、プログラムを設計する際に、全体を基準をもとに、いくつかの部品(モジュール)に分割することです。

モジュールは、特定の機能や構造の、扱いやすい大きさのプログラムのことです。

モジュール分割(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

メインルーチン

Ver.6.0
メインルーチンは、プログラムの主な処理・メインの処理をおこないます。

メインルーチンがサブルーチンの呼び出します。

テクノロジ系アルゴリズムとプログラミング38.プログラム言語

サブルーチン

Ver.6.0
サブルーチンは、特定の機能や処理の集合を指し、一般的には「関数」と呼ばれます。

メインの処理から呼び出されて処理を実行します。

サブルーチンは基本的に「引数」「戻り値」と呼ばれる値を持ちます。

メインルーチンとサブルーチンの説明(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

効率のよいプログラミングの方法についての用語です。

ライブラリ

Ver.6.0
ある目的のための、汎用性の高い、複数のプログラムを他のプログラムから呼び出して利用できるように部品化したものです。

他のプログラムに機能を提供するコードの集まりで、ライブラリ単体では動作することはできません。

テクノロジ系アルゴリズムとプログラミング38.プログラム言語

API

Ver.6.0
API(Application Programming Interface)

APIは、アプリケーションの開発者が、他のハードウェアやソフトウェアの提供している機能を利用するためのプログラム上の手続きを定めた規約の集合です。

APIの説明(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)

個々の開発者は規約に従って、自分でプログラムを作らず、機能を「呼び出す」だけで、その機能を利用したアプリケーションを作成することができます。

テクノロジ系アルゴリズムとプログラミング38.プログラム言語

WebAPI

Ver.6.0
WebAPIは、Web上に公開されていて、誰でも無料で使うことが可能なAPIです。

WebAPIの説明(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)

WebAPIによって、次のようなことができます。

  1. 自社Webサイトで他社サイトの機能や情報を利用すること
  2. アプリケーションソフトからWeb上で公開されている機能や情報を利用すること
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

ローコード

Ver.6.0
ローコードとは、従来よりも少ないコード作成量で、アプリケーションやシステムを開発できるツール・手法です。

コードの記述が可能なため、汎用性や拡張性があります。

ローコードのイメージ(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

ノーコード

Ver.6.0
ノーコードは、コードの作成を必要としないで、アプリケーションやシステムを開発できるツール・手法です。

ツールに用意された部品(パーツ)やテンプレートで小さなアプリケーションを開発します。

ノーコードのイメージ(テクノロジ系アルゴリズムとプログラミング38.プログラム言語)
テクノロジ系アルゴリズムとプログラミング38.プログラム言語

その他の言語

プログラミング言語だけでなく、JSONなどのデータ記述言語があることもを覚えておこうね。

データ記述言語

Ver.6.0
データ記述言語は、データの構造を記述するための言語です。

プログラムを作成するための言語ではありません。

テクノロジ系アルゴリズムとプログラミング39.その他の言語

JSON

Ver.6.0
JSON(JavaScript Object Notation)

JSONは、異なるプログラム言語で書かれたプログラム間でのデータのやり取りなどに用いられるデータ記述の仕様です。

JavaScript の言語仕様のうち、オブジェク トの表記法などの一部の仕様を基にして規定したものであって、“名前と値の組みの集まり ”と “値の順序付き リスト”の二 つの構造に基づいてオブジェクトを表現する、データ記述の仕様です。
(応用情報 平成31年春午前 問7より)

テクノロジ系アルゴリズムとプログラミング39.その他の言語

「アルゴリズムとプログラミング」まとめ

これまで、テクノロジ系「アルゴリズムとプログラミング」の最新の用語について、出題傾向、学習ポイント、重要な用語を解説しました。

まとめ

【出題傾向】
4問程度出題される可能性があります。

令和4年公開問題では、4問に増えました。

【学習ポイント】
・データ構造
 →実際の問題で、考え方を理解しましょう。

・アルゴリズムとプログラミング
 →疑似言語の問題を解けるように、まずは用語を覚えましょう。

・プログラム言語
 →特に、プログラミム言語の種類、特徴を覚えましょう。

・その他の言語
 →JSONなどのデータ記述言語があることも覚えましょう。

【重要用語】
シラバス6で、新しい用語がたくさん増えたので、それらの学習が大切です。

ただし、用語の意味の理解だけでは不足です。

疑似問題、フローチャートの問題の解き方を学習しましょう。

以上、テクノロジ系「アルゴリズムとプログラミング」の重要な用語について解説しました。

コメント

タイトルとURLをコピーしました