2020年度 春期試験 の Python は狙い目だ!


2022-11-28 更新

error

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

2019 年 7 月 1 日に、IPA(情報処理推進機構)の Web ページで、基本情報技術者試験のシラバス(出題内容を詳細に示した資料)の最新版である Ver.7.0 が公開され、その中で Python の知識の範囲が示されました。 このシラバスは、 2020 年度 春期試験から適用 されます。

 

午後試験のプログラミング言語で Python の選択を検討している人は、要チェックです。

プログラミング言語として Python がわかれば OK

Python に関するシラバスの内容は、それほど多くないので、以下に全文を掲載します。ざっと、目を通してください。

    (4) Python の知識と技術

    小目標

  • Python のプログラムの作成方法の基本を修得し,適用する。
  • オブジェクトの生成方法,操作方法を修得し,適用する。
  • 問題解決のために適した代表的な標準ライブラリ又は外部ライブラリを用いて,効率良くプログラミングを行う方法を修得し,適用する。
  • 数値計算,テキスト処理,データ処理などを行うプログラムの作成方法を修得し,適用する。
  • インタプリタであることの長所と短所を理解して利用する方法を修得し,適用する。

  • (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 文,モジュール,パッケージなど

Python の活用分野には、機械学習、スクレイピング、Web サービス、Android アプリ、組み込みアプリなどがありますが、シラバスには、これらの言葉は一切出てきません。

 

つまり、必要とされる知識は、 Python の活用ではなく、プログラミング言語としての Python です。

「人工知能関連の難しい問題が出るのかな?」と心配していた人は、どうぞ安心してください。

 

プログラミング言語として Python がわかれば OK というのは、決して不思議なことではありません。午後試験で選択できる他のプログラミング言語も、同様だからです。

 

たとえば、 C 言語の問題では、C ならではの UNIX 関連の システムコール の知識は要求されません。
Java の問題では、 Java ならではの Servlet や JSP の知識は要求されません。

どちらも、プログラミング言語として C 言語や Java がわかれば OK という問題が出題されています。これは、 Python でも同様のはずです。

Python の入門書レベルの言語構文がわかればOK

Python の言語構文が、どの程度わかっていればよいのでしょう。

シラバスの内容を見ると、 Python の入門書レベルの言語構文がわかればOKだとわかります。

たとえば、以下は、 「 Python の絵本 Python を楽しく学ぶ 9 つの扉(株式会社アンク著、翔泳社刊)」という初心者向けの入門書の目次です。

章タイトル
Python の勉強をはじめる前に
第 1 章 基本的なプログラム
第 2 章 計算の演算子
第 3 章 リスト
第 4 章 制御文
第 5 章 関数
第 6 章 文字列
第 7 章 ファイルと例外処理
第 8 章 クラスとオブジェクト
付録

この目次に、シラバスに示された項目 (1) ~ (10) を割り当てると、以下のようになります。

初心者向けの入門書で、十分に出題範囲を網羅できることがわかります。

これも、決して不思議なことではありません。 C 言語や Java の出題範囲も、同様だからです。

章タイトル シラバスの項目
Python の勉強をはじめる前に
第 1 章 基本的なプログラム (1)
第 2 章 計算の演算子 (2)
第 3 章 リスト (3)
第 4 章 制御文 (4) (5)
第 5 章 関数 (6) (7) (9)
第 6 章 文字列 (3)
第 7 章 ファイルと例外処理 (10)
第 8 章 クラスとオブジェクト (8) (9)
付録

ただし、言語構文がわかるだけでは、問題を解くことはできないでしょう。

問題のテーマは、プログラムに示されたアルゴリズムを読み取ることだからです。これは、 C 言語の問題と同様です。

さらに、 Python は、 Java と同様にオブジェクト指向プログラミングができる言語なので、プログラムに示されたオブジェクト指向の概念を読み取ることも必要になります。

シラバスの冒頭の【小目標】に

「数値計算、テキスト処理、データ処理などを行うプログラム」や
「オブジェクトの作成方法」

とあるので、 C 言語や Java の問題と同様のテーマが、 Python でも出題されると予測されます。

    (4) Python の知識と技術

    小目標

  • Python のプログラムの作成方法の基本を修得し,適用する。
  • オブジェクトの生成方法,操作方法を修得し,適用する。
  • 問題解決のために適した代表的な標準ライブラリ又は外部ライブラリを用いて,効率良くプログラミングを行う方法を修得し,適用する。
  • 数値計算,テキスト処理,データ処理などを行うプログラムの作成方法を修得し,適用する。
  • インタプリタであることの長所と短所を理解して利用する方法を修得し,適用する。

ライブラリは仕様書が掲載されるはずなので暗記する必要なし

【小目標】にも、シラバスの項目 (10) にも、ライブラリ(再利用可能なプログラムの部品群)という言葉が示されています。

Python には、膨大な数のライブラリが用意されています。どのライブラリが出題されるのでしょうか。

    (4) Python の知識と技術

    小目標

  • Python のプログラムの作成方法の基本を修得し,適用する。
  • オブジェクトの生成方法,操作方法を修得し,適用する。
  • 問題解決のために適した代表的な標準ライブラリ又は外部ライブラリを用いて,効率良くプログラミングを行う方法を修得し,適用する。
  • 数値計算,テキスト処理,データ処理などを行うプログラムの作成方法を修得し,適用する。
  • インタプリタであることの長所と短所を理解して利用する方法を修得し,適用する。

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

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

    修得項目

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

これは、実際の問題が出題されるまで何ともいえませんが、組み込み関数(いつでも利用できる関数)の種類は覚えておきましょう。

以下は、 Python の主な組み込み関数です。ここでは、引数を省略して、関数の名前だけを示しています。

Python の主な組み込み関数

(1)標準入出力

input() キーボードから入力する
print() 画面に出力する

(2)データの変換

bin() 2進数文字列に変換する
chr() 文字に変換する
float() 浮動小数点数に変換する
format() 書式指定した表現に変換する
hex() 16進数文字列に変換する
int() 整数に変換する
ord() 文字コードに変換する
str() 文字列に変換する

(3)数学関連

abs() 絶対値を返す
pow() べき乗を返す
round() 丸めた値を返す

(4)リストの操作

filter() リストから条件を満たす値を抽出する
len() リストの要素数を得る
max() リストの最大値を得る
min() リストの最小値を得る
reversed() リストを逆順にする
sorted() リストをソートする
sum() リストの合計値を得る

(5)その他

isinstance() 指定したクラスのインスタンスかどうかを判定する
type() インスタンスの型を得る

「ええっ、こんなに覚えられないよ!」と思うかもしれませんが、心配ご無用です。

C 言語でも Java でも、問題のプログラムの中で使用しているライブラリの説明は、問題用紙の末尾に掲載されてきました。 これは、Python でも同様のはずです。

 

組み込み関数の種類にざっと目を通して「へえ、こんなものがあるんだ」と思っていただければ OK です。暗記する必要はありません。

初めて出題される 2020 年度春期試験の問題は簡単なはず

これまでに実施された過去の試験を振り返ってみると、新しいプログラミング言語が追加されたときの最初の問題は、問題のボリュームも少なく、内容もとても簡単なもの でした。

 

これは、せっかく新しいプログラミング言語を追加したのですから、多くの受験者に選択してほしい、ということなのでしょう。

たとえば、2009 年度 春期試験から新たに 表計算 が追加されましたが、そのときの問題のボリュームは、わずか4ページであり、使用されている関数は、IF() 、照合合計() 、切上げ() の3つだけで、さらにマクロの問題なし、という、とっても簡単な内容でした。

これによって、「 表計算 は、簡単だ!」というウワサが広がり、その後の試験で 表計算 を選択する人が一気に増えました。これは、きっと Python でも同様のはずです。

 

Python が初めて出題される 2020 年度 春期試験の問題は、とっても簡単なはず ですから、大いに狙い目です。

 

ただし、2 回目以降( 2020 年度 秋期試験以降)は、急に難しくなる可能性がある ので注意してください。

表計算 も、2 回目( 2009 年度秋期試験)では、ボリュームが 7ページ に増え、使用されている関数も多く なりました。

さらに、2011 年度 秋期試験からは、マクロが追加され、現在の問題の形式になりました。これも、 Python でも同様のはずです。

Python を選択するなら、2020 年度春期試験が狙い目ですが、それ以降は、徐々に難しくなるはずです。

 

プログラミング言語が苦手なので、 表計算 で受験をするという人が多くいます。

ただし、現状の 表計算 の問題は、決して簡単ではありません。

午後問題の歩き方 |
表計算も簡単ではなくプログラミング問題(1)基礎知識

 

それなら、もう 1 つの選択肢として、 Python を検討してはいかがでしょう。

今から Python の入門書を購入して学習を始めれば、2020 年度 春期試験には十分に間に合います。

2019 年 10 月 28 日に、IPA から Python のサンプル問題が公開されたので、以下の記事も要チェックです!

「基本情報 の Python ってどんな感じ?」こんな感じです!|午後問題の歩き方

難しくはないがレベルが高い Python のサンプル問題を解説

Python のサンプル問題が公開されました

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