ITパスポート試験 シラバス6対応 テクノロジ系 アルゴリズムとプログラミング についての出題傾向、学習ポイント、重要な用語を紹介します。
「アルゴリズムとプログラミング」の出題傾向
「アルゴリズムとプログラミング」から、4問程度出題される可能性があります。
平成5年過去(公開)問題では、「アルゴリズムとプログラミング」からは3問でした。
令和4年過去(公開)問題から、出題が増えました。
Ver.○.○の表示について
用語が初めて掲載されたときの、シラバスのバージョンです。
Ver.4.0、Ver.5.0は、シラバスの比較的新しい用語です。
Ver.6.0と同じく要注意用語です。
表示がないのは、Ver.3以前からシラバスにある用語です。
データ構造

実際の問題で、考え方を理解しましょう。
データ構造
データ構造は、データを効率的に管理するための整理方法です。
データの出し入れを簡単にするために、一定の方式で収めたデータのあつまりです。
リスト、キュー、スタック、木構造、2分木などの種類があります。
木構造
木構造は、大量の情報を整理する方法の1つです。

木構造は、節(node)と枝(エッジ)からできています。
植物に基づいて、階層で一番最初にくる親子を「根」、そして階層が一番最後の親子が「葉」と植物に基づいた呼び方もあります。

スタック
スタックでは、最後に格納されたデータを最初に取り出します。
スタックについて、次のような問題が出題されています。
【令和元年秋 問62】
下から上へ品物を積み上げて、上にある品物から順に取り出す装置がある。この装置に対する操作は、次の二つに限られる。
PUSH x:品物xを1個積み上げる。
POP : 一番上の品物を1個取り出す。

最初は何も積まれていない状態から開始して、 a, b, cの順で三つの品物が到着する。一つの装置だけを使った場合、POP操作で取り出される品物の順番としてあり得ないものはどれか。
ア a, b, c
イ b, a, c
ウ c, a, b
工 c, b, a
正解は、 ウ です。
アルゴリズムとプログラミング

疑似言語の問題を解けるように、まずは用語を覚えましょう。
疑似言語
Ver.6.0
疑似言語は、アルゴリズムを表現するための擬似的なプログラム言語です。
式
Ver.6.0
式は、数量の事柄や関係を数学の+、-、=等の記号を用いて表現したものです。
条件式
Ver.6.0
条件式は、値や式の比較や論理演算を組み合わせた式です。
計算結果は、真(true)または偽(false)となります。
プログラムの分岐の条件などに用いられます。
演算子
Ver.6.0
演算子は、足し算や掛け算などの計算,、値の大小を比べるときに使われる記号のことです。
代入
Ver.6.0
代入は、変数に値を入れることです。
注釈
Ver.6.0
注釈は、プログラムのソースコードの内容の補足・説明・解説をします。
入出力
Ver.6.0
入力の例として、キーボードによる数字や文字の入力があります。
出力の例としては、コンソール画面への表示があります。
手続
Ver.6.0
手続は、複数の処理を一つにまとめたものです。
プログラム言語によっては、関数とも呼ばれます。
関数
Ver.6.0
関数は、ある値(引数)を渡すと、一定の処理がされて結果が返ってくる機能です。
引数
Ver.6.0
引数は、関数などに受け渡す値です。
関数は、受け渡された値を使って処理を行い、結果となる値を返します。
戻り値
Ver.6.0
戻り値は、関数などが処理を終了し、呼び出し元に対して渡す値です。
データ型
Ver.6.0
データ型は、普段、人が使っているデータ(数字,文字など)をパソコンに記録できる値に変換する仕組みです。
整数型、実数型、論理型、文字型などがあります。
各データ型には長所・短所があり、効率的なプログラムを組むためには、使い分ける必要があります。
問題をチェック! アルゴ 予想1
整数型
Ver.6.0
整数型は、整数を格納します。
整数型は、2の補数表示を使用すると、8ビットでは-128~127が扱えます。
実数型
Ver.6.0
実数型は、実数を格納する変数の型です。
小数を表現できます。
また、表現できる数字の範囲が、整数型より広いです。
論理型
Ver.6.0
論理型は、ブール値(論理値)を格納する変数の型です。
真(true)か偽(false)のどちらかの値が入ります。
文字型
Ver.6.0
文字型は、文字の値を格納する変数の型です。
次の記事に、疑似言語問題の解き方を説明しました。


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

配列上に不規則に並んだ多数のデータの中から、特定のデータを探し出すのに適したアルゴリズムです。
(ソフト開発 平成19年春午前 問13より)
問題をチェック! アルゴ 予想2
2分探索法
Ver.6.0
2分探索法は、データをあらかじめ決められた順番(例えば、小さい順、大きい順、五十音順など)にならべておき、探索の対象を半分ずつ狭めながらキーと比較していく探索方法です。

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

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

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

プログラム言語

特に、プログラミム言語の種類、特徴を覚えようね。
C
Ver.6.0
C言語は、UNIXを開発するために設計されたシステム記述向きのプログラミング言語です。
プログラムをすべて機械語に変換してから実行するコンパイラ方式です。

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

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

問題をチェック! アルゴ 予想4
C++
Ver.6.0
C++は、C言語を拡張させたオブジェクト指向のプログラミング言語です。
C言語と互換性があるため、C言語と同時に使用することができます。

Python
Ver.6.0
Pythonは、アプリケーションの開発、人工知能、データ解析など幅広い分野で使用されている言語です。
次の特徴が有ります。
- 豊富なライブラリ
- インタプリター言語
- スクリプト言語
- オブジェクト指向

問題をチェック! アルゴ 予想5
JavaScript
Ver.6.0
JavaScriptは、ブラウザで動作する処理内容を記述するスクリプト言語注)です。
(ITパスポート 平成24年春 問67より)
注)プログラムを書いて実行するのが比較的容易な言語(大雑把な説明)

次のような、JavaScriptの利用例が試験に出ています。
HTMLだけでは実現できず、JavaScriptを使うことによってブラウザ側で実現可能になること
入力データの検査
(応用情報 平成22年春午前 問7より)
R
Ver.6.0
R言語は、統計解析向けのプログラミング言語です。
データの解析からグラフへの出力を行うことに優れ、人工知能(AI)領域においても注目されています。

問題をチェック! アルゴ 予想6
アプレット
アプレットは、小さいアプリケーションプログラムを意味し、サーバからダウンロードされ,クライアントであるWebブラウザに組み込まれて実行されるプログラムです。
ソースコード
ソースコードは、人がプログラミング言語でコンピュータへの命令を書いた文書です。
実行形式
シラ外
実行形式は、人間が書いたソースコードを「0」と「1」で表現し、コンピューターがそのまま実行できるようなプログラムの形式です。
コーディング標準
Ver.6.0
コーディング標準は、ソフトウェア開発に関わるエンジニア,プログラマがコンピュータプログラムのソースコードを記述する際に求められる、コードの書き方や形式に関する決まりです。
(目的)可読性を高めて、一定の品質の担保、保守性の向上、生産性の向上を図る。
問題をチェック! アルゴ 予想7
字下げ(インデンテーション)
Ver.6.0
字下げは、プログラムの階層構造をわかりやすくするために行います。
ネストの深さ
Ver.6.0
ネストの深さは、プログラムの階層構造の数のことです。
浅いほうがいいです。

命名規則
Ver.6.0
命名規則は、プログラミングにおいて、変数名など識別名をつける際のルールです。
プログラム構造
Ver.6.0
プログラム構造は、プログラムの命令が実行される流れを定めたものです。
モジュール分割
Ver.6.0
モジュール分割は、プログラムを設計する際に、全体を基準をもとに、いくつかの部品(モジュール)に分割することです。
モジュールは、特定の機能や構造の、扱いやすい大きさのプログラムのことです。

メインルーチン
Ver.6.0
メインルーチンは、プログラムの主な処理・メインの処理をおこないます。
メインルーチンがサブルーチンの呼び出します。
サブルーチン
Ver.6.0
サブルーチンは、特定の機能や処理の集合を指し、一般的には「関数」と呼ばれます。
メインの処理から呼び出されて処理を実行します。
サブルーチンは基本的に「引数」「戻り値」と呼ばれる値を持ちます。

ライブラリ
Ver.6.0
ある目的のための、汎用性の高い、複数のプログラムを他のプログラムから呼び出して利用できるように部品化したものです。
他のプログラムに機能を提供するコードの集まりで、ライブラリ単体では動作することはできません。

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

個々の開発者は規約に従って、自分でプログラムを作らず、機能を「呼び出す」だけで、その機能を利用したアプリケーションを作成することができます。
WebAPI
Ver.6.0
WebAPIは、Web上に公開されていて、誰でも無料で使うことが可能なAPIです。

WebAPIによって、次のようなことができます。
- 自社Webサイトで他社サイトの機能や情報を利用すること
- アプリケーションソフトからWeb上で公開されている機能や情報を利用すること
ローコード
Ver.6.0
ローコードとは、従来よりも少ないコード作成量で、アプリケーションやシステムを開発できるツール・手法です。
コードの記述が可能なため、汎用性や拡張性があります。

ノーコード
Ver.6.0
ノーコードは、コードの作成を必要としないで、アプリケーションやシステムを開発できるツール・手法です。
ツールに用意された部品(パーツ)やテンプレートで小さなアプリケーションを開発します。

その他の言語

プログラミング言語だけでなく、JSONなどのデータ記述言語があることもを覚えておこうね。
データ記述言語
Ver.6.0
データ記述言語は、データの構造を記述するための言語です。
プログラムを作成するための言語ではありません。
JSON
Ver.6.0
JSON(JavaScript Object Notation)
JSONは、異なるプログラム言語で書かれたプログラム間でのデータのやり取りなどに用いられるデータ記述の仕様です。
JavaScript の言語仕様のうち、オブジェク トの表記法などの一部の仕様を基にして規定したものであって、“名前と値の組みの集まり ”と “値の順序付き リスト”の二 つの構造に基づいてオブジェクトを表現する、データ記述の仕様です。
(応用情報 平成31年春午前 問7より)
問題をチェック! R4年 問88
「アルゴリズムとプログラミング」まとめ
これまで、テクノロジ系「アルゴリズムとプログラミング」の最新の用語について、出題傾向、学習ポイント、重要な用語を解説しました。
【出題傾向】
「アルゴリズムとプログラミング」から、4問程度出題される可能性があります。
平成5年過去(公開)問題では、「アルゴリズムとプログラミング」からは3問でした。
令和4年過去(公開)問題から、出題が増えました。
【学習ポイント】
・データ構造
→実際の問題で、考え方を理解しましょう。
・アルゴリズムとプログラミング
→疑似言語の問題を解けるように、まずは用語を覚えましょう。
・プログラム言語
→特に、プログラミム言語の種類、特徴を覚えましょう。
・その他の言語
→JSONなどのデータ記述言語があることも覚えましょう。
【重要用語】
シラバス6で、新しい用語がたくさん増えたので、それらの学習が大切です。
ただし、用語の意味の理解だけでは不足です。
疑似問題、フローチャートの問題の解き方を学習しましょう。
以上、テクノロジ系「アルゴリズムとプログラミング」の重要な用語について解説しました。
コメント