必須科目ですが、初めてやった時には全く分かりませんでした。。
これは対策が必要だと感じ、色々やった経緯をまとめていきます。
基本勉強方法
全く分からなかったので参考書やYouTubeなどを参考にしながら、たどり着いたのは次の流れです。
- ①ルールを覚える
- ②過去問を読んでトレースを繰り返す
シンプルですが、これが効果があるし、これだけでも私には時間がかかりました。
①ルールを覚える
まず、下の記号と意味、ルールを覚えなくてはなりません。(問題文についてきますが、時間がもったいないので覚えた方がいいです)
ポイントは記号の意味で、 ▲は一度のみ、■は繰り返すです。
②過去問を読んでトレースを繰り返す
よく聞くけどこの「トレース」って言葉よくわかりませんでした。
調べて見ると、「トレースとは、なぞる、追跡するという意味で、エラーなど不具合を生じるプログラムの問題を突き止めるために、命令の実行を順番にたどって各段階の状態・状況を確認する作業」のことらしいです。
1単語、1行ずつ読み解くという意味にとらえました。
具体的なやり方は人によって違うと思いますが、イメージとしては英語を勉強するときに英語と日本語訳を並べて読むような感じだと思います。
例えば下の場合だと「10個の数が入ったIremonという配列の中からnumという数を探す」というような問題文があるので、どこがどう対応するかを追跡します。
ただ、上のルールに出てこない単語でよく出てくる単語が2つあります。この2つは意味を理解しましょう。
- break -> 繰り返しなどの処理から抜け出す
- return -> 値を返す
繰り返し勉強の中で大切なこと
ルールを覚える
上にある記号やルールは覚えたほうが早いです。
プログラムと問題文を読み比べる
問題文とプログラムは必ず一致しています。
分かりにくい問題文に見えても、一つ一つの文章がプログラムの一つ一つのパーツを示しているので、この問題文はプログラムのどこを指しているのかを考えながら読みましょう。
キーワードに注目する
例えば「以上」は≧とか、「一つになるまで繰り返す」は繰り返し(■)の条件部分が1以上とか(n≧1)とか、条件や動きに関わる言葉はプログラムに影響するのでトレース(比較)しやすいですよ。
このほかにも「抽出する」は、選択式(▲)の条件部分のことだったりしますね。
例をプログラムへ当てはめる
必ずと言っていいほど具体例が表示されています。
具体例があれば、変数iに数字を一つずつ増えていくプログラムが実際どのように動いているのかを理解するのを助けてくれます。
プログラムは、入力と出力で出来ているので、具体例はその両方があるので答え合わせが問題の中で出来ます。
答えを文章として読み込む
答えがわからない段階でも、解答の選択肢をさらっと読んでどの回答パターンがあるかを頭の片隅に入れておくと理解が早いです。
1行ずつプログラムを実行する
プログラムは1行1行処理されていくので一つ一つ読めば間違いないです。
i = i + 1の処理を一つずつ増やしたらどうなるかやっていく感じです。
引数の仕様にも注目する
引数が入力用か出力用かで使い方も変わりますし、データ型を見ればどういう形式かも分かりやすいです。
最後にひとつ
私だけかもしれませんが、過去問をしていて、アルゴリズムの問題の中で、1問くらいは解けないのがありましたし、制限時間内ですべて解けたのは少なかったです。
アルゴリズムは全問正解よりは、取れるとことを取るぐらいの気持ちの方がいいかもしれません。
- 基本情報処理試験の参考書ベスト3
- CBT方式〜時計や飲み物などの持ち物や当日の流れについて
- 午前の試験が免除ってどういう仕組み?
- マネジメント系のポイント
- ストラテジ系のポイント
- 基礎理論編のポイント
- システム開発編~DFDとE-R図など
- ネットワーク編の3つのポイント
- ソフトウエア編の5つのポイント(タスク管理、スプーリングなど)
- データベース編の3つのポイント~データベース操作、ロックの粒度、UML
- 午後〜選択問題の選び方
- 午後〜表計算編
- n進数(進法)と10進数の変換について
- ~各プログラミング言語のポイント~
- 午後〜情報セキュリティ編
- 午後〜データ構造及びアルゴリズム編
- 午後〜ソフトウエア設計編
- java学習法