基本情報はコツを知らないと難しい試験です。
周りがラクラク合格しているのに、私はあとちょっとで合格点に届かない・・・なんて落ち込んでいませんか?
基本情報技術者試験はSEやプログラマーの登竜門です。
会社から合格するように言われて渋々受ける人もいれば、就活に備えて取得しておこうと思っている学生もいるでしょう。
渋々受けさせられたり、なんとなく勉強を始めた方は共通してあることをやっていません。
プログラミングです。
基本情報の午後問題で合格したければプログラミングをやりましょう!
午後試験はプログラミングをやろう
午後試験は問8のアルゴリズムが必修です。また問9~13のプログラムの問題をどれか1つ解答する必要があります。
テキストを読んだり過去問をひたすら解く方法では乗り切れません。なぜならアルゴリズムには「動くイメージ」が大事だからです。
あなたは動くイメージができていない
あなたはアルゴリズムを脳内で動かせますか?
この変数に0が入って、あの変数から3が入ってループして・・・
解答を見ながら変数に数字を入れていって「なるほどなー」と思ったとします。しかしそれだけでは実際の問題は解けません。あなたが理解しているのはバラバラな要素だからです。
アルゴリズムを解くには一連の流れをイメージして、空白を補完しなければならないのです。
とは言っても難しいので例を出します。
こんな動作を脳内でイメージしてください。
・ある物体Aの横に立つ
・物体Aに跨る
・右足を物体Aの要素a1に乗せる
・右足を押す
・左足を物体Aの要素a2に乗せる
以下、手で物体Aの要素bを握るまで繰り返す
・左足に力を入れる
・右足に力を入れる
・手で物体Aの要素cを調整してバランス取る
・身体で物体Aのバランスを取る
想像できましたか? ごめんなさい、あえて意味が分からないように書きました!
もうひとつだけイメージしてください。こっちは簡単です。
目を瞑って、あなたが自転車に乗って直進するのをイメージしてください。
想像できましたか? 簡単ですよね。
実は1つ目のよく分からない文章は自転車に乗るアルゴリズムです。
物体A = 自転車
物体Aの要素a1 = 右のペダル
物体Aの要素a2 = 左のペダル
物体Aの要素b = ブレーキ
物体Aの要素c = ハンドル
です。
それを踏まえてもう一回見てみましょう。
・自転車の横に立つ
・自転車に跨る
・右足を右のペダルに乗せる
・右足を押す
・左足を左のペダルに乗せる
以下、手でブレーキを握るまで繰り返す
・左足に力を入れる
・右足に力を入れる
・手でハンドルを調整してバランス取る
・身体で自転車のバランスを取る
自転車に乗って漕いでるなーっというイメージが付きましたか?
あんな謎の文章でも、先に自転車に乗るイメージができていれば簡単です。
これが「動くイメージ」です。
アルゴリズムがスラスラ解ける人は、1つ目の謎文章の時点で自転車の動きを想像しながら解いているのです。
対してあなたは、バラバラな要素を理解するだけでイメージができません。
・ある物体Aの横に立つ
・[ a ]に跨る
・右足を物体Aの要素a1に乗せる
・右足を押す
・左足を物体Aの要素a2に乗せる
以下、手で物体Aの要素bを握るまで繰り返す
・[ b ]に力を入れる
・右足に力を入れる
・手で物体Aの要素cを調整してバランス取る
・身体で物体Aのバランスを取る
こんな穴埋め問題が出たら、いつもならお手上げでしょう。
でも今回は違います。自転車の「動くイメージ」ができていれば簡単に解けます。
あなたは自転車に乗れるから自転車の動くイメージが想像できました。
しかし人生で一度も自転車に乗ったことのない人は動くイメージを作れるでしょうか? かなり難しいと思います。
アルゴリズムも同じです。一度もアルゴリズムを動かしたことがなければ「動くイメージ」を作れません。
プログラミングはアルゴリズムの「動くイメージ」を簡単に作れる優秀なツールなのです。
じゃあ言語は何がいいの?
「そこまで言うのならプログラミングするかー」と思ってぶち当たるのは言語の多さです。
プログラミング言語は沢山あって、初心者は何をやればいいのかさっぱり分かりません。さらに「仕事で使いやすい言語」と「基本情報で使いやすい言語」は全然違います。
僕はVBAかC言語をオススメします。
Excel VBA
言わすもしれた表計算のマクロ。「表計算は簡単だよ」という触れ込みで選択している人は多いはずです。
しかし侮ってはいけません。Excelだし楽勝! と挑んで撃沈した仲間を沢山見てきました。
表計算は簡単な部類です。しかし、過去問を解いて本を読んでも「動くイメージ」は掴めません。必ず自分でプログラミングをしてください。
表計算や基本情報の過去問で探すより、VBAの入門書を探した方が良いでしょう。
こちらの本は本当の初心者向けに書かれていて分かりやすそうです。
Webで無料で学びたいならドットインストールもオススメです。
C言語
C言語はちょっと古い言語で、不朽の名作みたいなポジションです。
最新の言語のように気の利いた機能がない代わりにシンプルです。
基本情報に出てくるプログラムもシンプルで、入門書レベルの知識があれば理解出来ます。
C言語の書き方はJavaやC#など、ほとんどの言語に受け継がれています。今後もプログラミングをやっていきたいなら覚えておいて損はないでしょう。
僕が初めて覚えたのもC言語でした。お世話になったのは「苦しんで覚えるC言語」というサイトです。苦しんで~なんて言っていますが非常に分かりやすいです。
本にもなっていますね。
C言語は今後も仕事や趣味でプログラムを組む人にオススメです。
「そんなにしないかなー」という人は無難にVBAを選択しましょう。
必ずコードを書くべし
VBAにしろC言語にしろ、必ず自分でコードを書いてください。
自転車の「動くイメージ」は自転車に乗れるから分かるのです。自転車に乗っている人を眺めているだけでは身につきません。
同様にコードを書かずに眺めているだけではダメです。自分で作ってみて、初めてアルゴリズムの「動くイメージ」が想像できます。
テキストの例題をそのまま真似るのもよし、練習問題もできるだけ多く書きましょう。
テキストを一周したら基本情報の過去問にあるプログラムコードを自分で書いてみましょう。書いたコードの数字を変えたり、順番を変えて、結果がどう変わるのか試してください。
それは自転車を右足だけで漕いでみる、ハンドルを思いっきり振ってみるのと同じです。どうやったら自転車は転ぶのかを学ぶことで、ちゃんと進むにはどうすればいいのかも理解できます。
それができたら問8のアルゴリズムもプログラミングしてみましょう。コードの丸写しじゃないのでちょっと難しいです。
これが書けるのは、アルゴリズムの「動くイメージ」を汲み取って、新たにプログラミングできるということです。
なんとなく「動くイメージ」が掴めているはずです。
一度「動くイメージ」が分かったなら後は練習あるのみです。
次の試験では、アルゴリズムもプログラム問題も強力な得点源になっているはずです。
まとめ
・基本情報の午後試験には「動くイメージ」が重要です。
・「動くイメージ」を得るためにプログラミングを習いましょう。
・VBAかC言語がオススメです。入門書やネットの知識で十分です。
・プログラミングはテキストを見るだけでなく必ず自分で書きましょう。
・過去問のプログラムやアルゴリズムを書いて動かしてみましょう。「動くイメージ」はそうやって身につけられます。
いかがでしたか? 午後試験に受かるにはプログラミングをやろう! という話でした。
自転車に乗れるように、アルゴリズムのイメージも必ず掴めます。沢山練習して脳に刻み込んでいきましょう。
・VBA
Web(無料):ドットインストール
テキスト: 入門者のExcel VBA
・C言語
Web(無料):「苦しんで覚えるC言語」
テキスト:苦しんで覚えるC言語
ちなみに午前試験ならキタミ式がめっちゃ分かりやすかったのでオススメです。
ここまでお読みくださりありがとうございました。
コメント
情報処理の勉強してます。参考になりました。TACの解説より理解しやすいです。ありがとー