2019年1月24日,情報処理技術者試験の試験センターで,基本情報技術者試験における出題を見直しという記事が発表になりました。

なぜかニュースでは,「COBOL廃止!」ばかりが話題になっていますが,こちらは試験業界的にはどちらかというと既定路線で,「やっとなくなった」というのが個人的な感想ではあります。

それよりも,今後に向けて,大きな変更点は以下の3つです。

  1. プログラミング言語として,Pythonが選択できるようになった
  2. 午後のプログラミング(アルゴリズム+言語)の配点合計が,40点→50点になった
  3. プログラミング以外の問題の割合(問題数,配点)が減った

これらのことは,今後の基本情報技術者試験の学習に対して,大きな変化を起こすと考えられます。

プログラミング言語として,Pythonが選択できるようになった

まず,1のプログラミング言語にPythonが加わること,これは時代の流れに沿った,素晴らしい変化です。
先日の2018年秋期の試験で,私(美月)は基本情報技術者試験を受験したのですが,その受験時に,「プログラミング言語に対するアンケート」がいろいろあったので,そろそろ変わるのかな?とは感じていましたが,予想通りではあります。

Pythonは,いろいろなプログラミング言語人気ランキングでも3位前後の上位に入ってきますし,人気の伸び率では,『1月の人気言語ランキング、TIOBE指標伸び率トップはPython』でも挙げられているとおり,トップです。
本屋に行っても出版ラッシュで,大型書店では以前はなかった「Python」専用の棚ができています。

私自身,3年前ぐらいからPythonを教えていて,素晴らしい言語だな,と感じています。
初心者がはじめて学習するときの敷居が低いですし,それでいてできることの幅も広いです。
特にAI関連,機械学習やディープラーニングに関してはライブラリも充実していて,学習するときのスタンダードとも言えます。

ですので,今までも「おすすめのプログラミング言語」を聞かれたときには,「今からやるならPython」というのを即答してきたのですが,情報処理技術者試験の試験対策として見ると,Pythonは選択できないので残念に思っていました。

これから将来に向けて,プログラミング言語を1から学びたい,というときに最もおすすめできるのは,Pythonだと考えています。

残念なのはこの変更が適用されるのは2020年春期,来年です。
それまでは他の言語(表計算やJava,Cなど)で受験しなければならないのが残念なところですが,それでもPythonを学習することは,将来のためには決してムダにならないと考えられます。

午後のプログラミング(アルゴリズム+言語)の配点合計が,40点→50点になった

実は今後,基本情報技術者試験を受験される方にとっては,こちらの方が本当に大きな変化です。
新人研修などで基本情報技術者試験対策を行っていると,午後のアルゴリズムとプログラミングは,他の分野に比べて個人差が非常に大きい分野です。

特に,アルゴリズムについては,できる人とできない人で極端に差が出ます。
カギとなってくるのは,プログラミング的思考で,できる人とできない人で,大きく差が出る部分です。
図で解説「プログラミング的思考」とは』で大枠を解説されていますが,教えていると,この「抽象化」「一般化」「条件分岐」「繰り返し」などの概念の理解は個人差が大きく,人によっては理解に苦労します。

もちろん,「学習してもできない」というわけではなく,1つ1つ丁寧にトレースしたり,プログラミングを行って学習を繰り返すことで,段々考え方を身につけていくことはできます。ですので,学校でじっくり時間をかけて教えるということは,意味があるとは思われますが,1~2か月ですぐできるようになる,という技能ではありません。

そのため,今までの直前期の試験対策講座などで行われていたことは,「アルゴリズムやプログラミングが苦手なら他で取る」「アルゴリズムは最低限の得点を目指す」で,60点を突破するテクニックです。
こちらが,来年以降は通用しなくなってくると考えられます。
企業研修でよくある,4月に入社した新入社員に対して,新人研修で2~3週間試験対策を詰め込んで,4月第3週の試験に合格させる,というのは厳しくなってくるのでは,と感じています。

プログラミング能力を試す試験として基本情報技術者試験を位置づけると,これは望ましい変化です。
これを機に,きちんとプログラミング能力を身につけてから確実に試験に合格する,という流れができればベストです。

ちなみに,Pythonは,アルゴリズムの学習にも最適です。

世界標準MIT教科書 Python言語によるプログラミングイントロダクション第2版: データサイエンスとアプリケーション』でも探索,ソート,マージ,ハッシュ,グラフ最適化問題など,様々なアルゴリズムが出てきますし,アルゴリズムを簡潔に記述するのに向いた言語です。
基本情報技術者試験の午後アルゴリズム問題は,ほぼそのまま記述することが可能です。

実は,試験勉強で考えた時,アルゴリズムとプログラミングの学習は,それほどイコールではありません。
正確には言語によってその近さは異なり,C言語やJavaなどは,アルゴリズムの学習にも向いた言語です。Pythonも,こちらに分類されます。

逆に,COBOLなどはかけ離れていて,COBOLができたからといってアルゴリズムができるようになるということは,あまりありません。多分,COBOLがプログラミング的思考を必要とせず,だれでも記述可能(=プログラミング的思考ができなくても記述可能)な言語だからということが大きいと感じています。

個人的には,プログラミング的思考を身につける上でも,Pythonの学習がおすすめです。

プログラミング以外の問題の割合(問題数,配点)が減った

こちらは,プログラミング以外(ネットワーク,データベース,マネジメントなど)の午後の出題についてで,こちらは相対的に,重要度が下がってきています。
といっても,さりげなく,もともと必須の午後問1「情報セキュリティ」の配点は,12点→20点と,大幅に増えていますので,セキュリティの重要度は増しているとも言えます。

情報セキュリティ+アルゴリズム+Pythonで70点ですので,これだけしっかり学習すれば午後は突破できる,とも考えられます。

また少しPythonに話を戻しますが,Pythonは実は,AI分野だけではなく,様々な分野で使われています。
意外と多いのがセキュリティ分野で,Pythonが活用されることが結構あります。
セキュリティ分野のPython研修,などというニッチな内容の仕事もあったりします。

サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考』という本もあり,ハッキングを行うときの言語としても,Pythonは利用されています。

ネットワークのパケット解析にも使えますし,シスコのルータ設定などにもPythonスクリプトが使えます。

ですので,Pythonを覚えて,それを使って情報セキュリティをはじめとした様々な分野を学習することは,とても楽しく効率的です。
これからのITの学習のお供にPythonは,最適だと考えています。

わく☆すたでは,今後Pythonを中心において,いろいろな楽しく学べる教材をいろいろ提供していく予定です。

AIをはじめ,いろいろな新しい技術が出てきていて,それを学ぶことで大きく可能性が開ける時代が来ています。
時代の流れのビッグウェーブに乗って,楽しく学習していきましょう。