スッキリわかるPython入門

基本情報技術者試験のPythonてどうなの?

アレ足音が聞こえてきましたね

あけましておめでとうございます(いまさら)。スッキリわかるPython入門の国本です。正月も終わり、そろそろIT企業の内定者の方や既に働いている方が、ソワソワしはじめたり、あきらめはじめたりしているのではないでしょうか。そう「基本情報技術者試験(FE)」の春試験が近づいてきましたね。

今年の春試験は、午後の言語問題に「Python」が加わったことが特に話題になっています。「スッキリわかるPython入門読んだし、ちょっくらPythonで受験するか」という方もいらっしゃると思いますので触れてみたいと思います。

どんな内容?

FE試験を主催しているIPAのサイトでシラバスが公開されています(PythonはP12~P13)。残念ながら、スッキリわかるPython入門で扱っていない範囲があります。もし、受験を考えてる方は「クラスの定義」、「ラムダ式」、「リスト内包表記」は追加で勉強しておいた方がいいかと思います。

どんな問題?

これまたIPAのサイトでサンプルが公開されています。
問題自体は時間をかけたら解ける素直なものでしたが、以下の2点がきになりました。

  1. 数学の知識が必要
    サンプルでは、三角関数(サイン、コサイン)の知識が必要となる問題がありました。サンプル問題の中で三角関数に関する補足説明はないことから、数学の知識がある程度必要となると思われます。言語の問題で数学の知識がないと解けないというのはこれまでは殆どなかったので注意が必要です。

    問題はどの程度の数学の知識が必要となるかですが、基本情報処理試験のシラバスでは「応用数学」の知識が必要となっています(P2~P3)。その中に今回のサンプルで登場した三角関数も含まれていることから、シラバスに含まれる応用数学の知識は備えておいた方がいいかと思います。特に「統計」はPythonがよく利用される分野なので優先的に学習しておいた方がいいかもしれません。

  2. 外部ライブラリを利用
    シラバスで明記されているように、標準以外のライブラリが問題内で使用されます。サンプルではMatplotlibでしたが、NumPy、Pandasなどの著名なライブラリが登場する可能性があります。ただし、サンプル内ではMatplotlibに関しては補足説明がされているので、深い知識までは要求していないと思われます。

どんなテーマ?

サンプル問題のテーマはインタプリタの作成ということで、あまりPythonぽくないテーマでした。表現はちょっと良くないかもしれませんが、基本情報技術者試験らしい堅めな感じです。統計などのPythonが頻繁に利用される分野の問題が出題されるかと思っていたのですが、ちょっと意表をつかれた感じです。

でも実はこのサンプル問題、平成16年秋試験のC言語の問題(問10)ととてもよく似ているんですね。(描画処理命令列をスタックに入れるとこも同じ)
その問題を、標準ライブラリ(Mathのsin関数、cos関数)や外部ライブラリ(Matplotlib)をつかったりして、Pythonらしくシンプルで効率的な書き方に変えたという感じになっています。

サンプルなので過去問題の焼き直しになったのか、それとも本番もそのような堅めのテーマになるのかは正直わからないところですが、コードの書き方としてはPythonらしさを出してくるのは間違い無いと思います。ですので、上に挙げた「ラムダ式」「リスト内包表記」といったPythonらしい文法は、特にチェックしておいたほうがいいでしょう。

Python経験者の方は、サンプル問題のようなテーマのプログラムに取り組んだ経験が無い方が多いと思いますので「経験あるから余裕だぜ!」と油断しない方がいいでしょう。擬似言語の過去問題をPythonで書き直すといった対策をやってみてもいいと思います。

で、結局おすすめなの?

「初めての実施は簡単になりやすい」という噂がありますが、あくまでも噂なので、あまり頼り過ぎるのは良くないかと思います。出題者もレベルを模索しながら問題を作っていくと思うので、当面は出題パターンは固まらないと思われます。

ですので、「今回の試験は絶対合格しないといけない。さもないと・・。」といった感じで、生活や人生が懸かっている方は、Pythonに賭けるのはお勧めしません。そのような方は、出題パターンが安定しているC言語がお勧めです。

参考)過去10年分析! 基本情報(FE) 午後C言語対策のポイント

それ以外の方は、チャレンジしてみる価値はあると思います。その場合、上に挙げた注意点を気を付けて準備に臨んでください。

-スッキリわかるPython入門
-