Python の出題範囲 (シラバス) が発表されました

error

この記事は基本情報技術者試験の旧制度( 2022 年以前)の記事です。
この記事の題材となっている「 Python 」は現在の試験制度では出題されません。 ご注意くださいませ。

情報処理推進機構( IPA )が 7 月 1 日、先日の午後試験のプログラミング言語の見直し ( COBOL 廃止 / Python 追加) に関連して、 Python のシラバスを公開しました。

基本情報技術者試験( FE )の Python 追加に伴うドキュメント改訂について

令和 2 年度春期試験から実施する FE 午後試験のプログラム言語の選択問題の変更( Python 追加、COBOL 廃止)に関し、Pythonの言語仕様とシラバス(知識・技能の細目)を公開しました。
https://www.jitec.ipa.go.jp/ の新着情報より

この記事では発表された 基本情報技術者試験(レベル2)シラバス をもとに、他言語と比べてみることで、難易度や出題傾向を考えてみました。

プログラミング言語別 目標の違い

まずは試験を通じて、どのような技術と知識を身に着けてほしいのか、シラバスにある 小目標 をプログラミング言語別に比較してみます。

言語 目標
Python
  • Python のプログラムの作成方法の基本を修得し,適用する。
  • オブジェクトの生成方法,操作方法を修得し,適用する。
  • 問題解決のために適した代表的な標準ライブラリ又は外部ライブラリを用いて,効率良くプログラミングを行う方法を修得し,適用する。
  • 数値計算,テキスト処理,データ処理などを行うプログラムの作成方法を修得し,適用する。
  • インタプリタであることの長所と短所を理解して利用する方法を修得し,適用する。
Java
  • Java のプログラムの作成方法の基本を修得し,適用する。
  • 演算処理,制御処理などを行うプログラムの作成方法を修得し,適用する。
  • クラスの宣言方法,クラスをインスタンス化して利用する方法を修得し,適用する。
  • 継承,インタフェースを利用し,効率良くプログラミングを行う方法を修得し,適用する。
  • 例外処理,並列処理などの作成方法を修得し,適用する。
C 言語
  • C のプログラムの作成方法の基本を修得し,適用する。
  • 演算処理,制御処理,文字処理などを行うプログラムの作成方法を修得し,適用する。
  • ライブラリ関数の利用方法を修得し,適用する。
  • ファイル処理を行うプログラムの作成方法を修得し,適用する。

Java では “オブジェクト指向” が問われていることに対して、Python では “インタプリタ” 型言語が問われます。

 

続いて、Python で問題のテーマになりそうなところは、

数値計算,テキスト処理,データ処理など

とあり、この中でも “データ処理” とあるのが、一般的なものなのか、データサイエンスに寄ったところなのかどうかが気になるところです。

次のセクションで、Python の修得項目にどのように記載があるのか、確かめてみましょう。

Python のシラバスに示された知識と技術

Python のプログラミング問題で、具体的にどのような知識と技術が問われるのか、シラバスから転記しました。


  • (仕様) Python 3.7.3

  • (1)Python の基本的なプログラム

    Python の基本的なプログラムを作成する

    修得項目

    インデントによるブロック表現,計算結果の表示,コメントなど


  • (2)演算子を用いた式の表現

    四則演算や論理演算を用いた式を活用し,プログラムを実行モードや対話モードで利用する。

    修得項目

    整数,浮動小数点,式の表現,四則演算子,代入演算子,比較演算子,論理演算子,代入文など


  • (3)要素をもつデータ型

    シーケンスなど,要素をもつデータ型を使ったプログラムを作成する。

    修得項目

    in ,リスト,文字列,タプル,辞書,集合,イテレータ,添字,キー,スライス,リスト内包表記など


  • (4)選択型のプログラム

    条件式を使って条件分岐するプログラムを作成する。

    修得項目

    if 文など


  • (5)反復型のプログラム

    反復型の制御文を使ったプログラムを作成する。

    修得項目

    for 文,while 文など


  • (6)組込み関数

    型,リスト,文字の入出力,ファイル操作などに関する組込み関数の利用場面を理解し,プログラムを作成する。

    修得項目

    int ,float ,str ,list ,range ,enumerate ,zip ,len ,print ,input ,open など


  • (7)関数の定義

    利用者の定義による関数を用いて構造化されたプログラムを作成する。

    修得項目

    def 文,return 文,ジェネレータ,yield 文,ラムダ式,再帰呼出し,デコレータなど


  • (8)クラスとオブジェクト

    クラスを定義し,オブジェクトを生成してプログラムを作成する。

    修得項目

    クラス,オブジェクト,class 文,継承,クラス変数,メソッド,特殊メソッド __init__ など


  • (9)変数及び関数の値の取扱い

    変数間の代入,オブジェクトの変更,関数の値の受渡しに注意し,プログラムを作成する。

    修得項目

    変数のスコープ,変更可能なオブジェクト,コピー,位置引数,キーワード引数,デフォルト引数,オブジェクトとしての関数など


  • (10)ライブラリの活用

    問題解決のために適した代表的な標準ライブラリ又は外部ライブラリを利用し,プログラムを作成する。

    修得項目

    import 文,モジュール,パッケージなど

Java の場合は、これに加えて、”並列処理” があり、さらに “入れ子クラス” など Java 固有の機能が入っています。

 

label 関連記事:

午後問題の歩き方 |
Java プログラミング問題の難易度(1)Java 基本構文

 

それに比べると、Python の場合、並列処理はなく、”高階関数” など固有の機能も出題に含まれておらず (“内包表記” のような固有表現や Java では問われていない “ラムダ式” などはあります) 、比較的、素直に プログラミングの基礎能力のみ が問われそうです。

ただ、先程挙がったデータサイエンス寄りの出題になるかどうかは、関連がありそうな “ライブラリの活用” というところからは判断できません。

label 出展:
基本情報技術者試験 Ver7.0PDF形式

10 回分の Java の出題テーマから考える Python で問われそうなこと

Python の出題テーマはシラバスからは判断できないため、Java を例に過去にどのようなことが問われたのか確認し、推察してみます。

年度 テーマ 分類
H26春 雑誌記事のオンライン購読サイト オブジェクト指向、API
H26秋 可変オブジェクトとその問題点 アルゴリズム、オブジェクト指向
H27春 セキュアプログラミング オブジェクト指向、API
H27秋 ブロックのデータのキャッシュ管理 アルゴリズム、オブジェクト指向、API
H28春 “すべきこと”の管理 アルゴリズム、API
H28秋 電卓プログラム アルゴリズム、API
H29春 電気料金プランの比較 アルゴリズム、オブジェクト指向
H29秋 文字列の整列 オブジェクト指向、API
H30春 表現式を構築するためのライブラリ作成 アルゴリズム、オブジェクト指向
H30秋 書式を表すひな型への置換表の適用による文書の作成 オブジェクト指向、API
H31春 迷路と迷路上を移動する駒 アルゴリズム、API

 

label 出展:

午後問題の歩き方 |
過去問10回分から分析した午後問題の出題傾向 (2019 春期試験 更新)
目次 9 Java の出題傾向(午後 問 11)

 

Java では出展記事にもある通り、 「アルゴリズム」「オブジェクト指向」「 API の使い方」 が出題されています。

ここから推察すると、Python では、


「アルゴリズム」
「インタプリタ型」
「ライブラリの使い方」

になるでしょうか。
( Python において、「オブジェクト指向」はプログラムを読むのに必要だが、設問で問われることはない、と推察しています)

インタプリタ型の出題というと、REPL で対話式に実行するような問題が考えれますね。個人的には、2 ~ 3 ページあるプログラムを読むより,とても読みやすくなりそうで期待大です。

また、「ライブラリの使い方」に Numpy や Pandas などが入ってくると、「ライブラリの使い方」から、より具体的に「データサイエンスの進め方」が問われる、ということになりそうです。

今後の予定

このあと、10 月に サンプル問題 (例題) が発表される予定です。

どのようなライブラリが問題の中に入ってくるのか、とても楽しみですね!!

基本情報技術者試験 受験ナビでは、ひきつづき、アップデート情報をお知らせしてまいります。

 

label 関連タグ
科目A試験は、
免除できます。
独習ゼミで科目A試験を1年間免除して、科目B試験だけに集中しましょう。
免除試験を受けた 74.9% の方が、
科目A免除資格を得ています。
科目A免除試験 最大 2 回の
受験チャンス !
info_outline
科目A免除試験 最大 2 回の
受験チャンス !
詳しく見てみるplay_circle_filled
label これまでの『資格ガイド』の連載一覧 label 著者