こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

アルゴリズムの学習方法

次回の試験で基本情報の試験を受けたいと思っています。
すでに、ネットワーク、オラクル、簿記、JAVAなどの資格は持っているので、それに関する午前の対策は必要ありませんでした。
しかし、アルゴリズムや、擬似言語の問題が頭に入ってきません。

具体的には、流れ図を見ても何をしているのかわからないので、答えを見て流れをなんとなく理解しているといった具合です。
まだ慣れていないという事もあるとは思いますが、何をしていけばよいのかわかりません。

過去の質問にも実際にプログラムを作らないと理解できないという事が書いてあるのですが、これはアルゴリズムの問題が
ほとんどできていない時期に作るべきものなのでしょうか?(最終的には作る予定ではあります)

そこで質問なのですが、

1、順番的にはどのようにこなしていくべきでしょうか?
・アルゴリズムの定石を覚える(交換法などの基礎を整理 数日)
・アルゴリズムの問題を解く(試験問題を解く 1週間)
・CASLで実際にプログラムを作成(文法を覚え簡単なプログラムを作成 2週間)
上記の流れでいくつもりなのですが、これがベストの流れでしょうか?
CASLを先にやっておくべきなのかぁとも思っています・・・


2、午後のアルゴリズム問題はすべて具体的な数値を入れてトレースをして解くのでしょうか?
若しくは頭の中で道筋を立てるだけで、紙に書くようなトレースはしないのでしょうか?

アドバイスよろしくお願いします。

投稿日時 - 2007-04-21 21:31:08

QNo.2939390

困ってます

質問者が選んだベストアンサー

最初から試験問題のアルゴリズムに挑んでみたものの理解できていないということですから,アルゴリズム・擬似言語の入門書できちんと基礎力をつけた方がよいと思います。
参考URLに挙げた大滝みや子氏の書籍など売れているようですし好評価のようです。

>アルゴリズムの定石を覚える(数日)
>アルゴリズムの問題を解く(1週間)
>CASLで実際にプログラムを作成(2週間)

アルゴリズムの個々のテーマについて,定石を覚える→試験問題を解く→CASLプログラム作成,を繰り返して勉強していくということでしょうか?
私はまずアルゴリズムの基礎力を固めることが第一だと思います。試験問題は,入門書レベルがまるまる理解できてから手を出せばよいと思います。
擬似言語の出題をCASL2でプログラミングしてみる必要もありません。CASL2ではアセンブラ言語独特のアルゴリズムが必要になりますので,アルゴリズム一般・擬似言語一般とは毛色が異なります。擬似言語とは別物,として,定評のあるCASL参考書で勉強なさるとよいでしょう。

>午後のアルゴリズム問題はすべて具体的な
>数値を入れてトレースをして解くのでしょうか?
>若しくは頭の中で道筋を立てるだけで、
>紙に書くようなトレースはしないのでしょうか?

私は,何をしているアルゴリズムか分からない,処理の意味が把握できない,そういうときだけは値を当てはめてトレースをします。問題を読んでそれがどんなアルゴリズムか分かったときはトレースはしません。その代わり,配列の様子や添字の位置などそのイメージをイラストで描いて残しておきます。

参考URL:http://www.amazon.co.jp/dp/4897976057/

投稿日時 - 2007-04-22 02:37:26

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

1.
実際に動かさないとイメージは入ってこない、これは多分その通りです。
むしろ、最初の頃にこそ、実際に書いてみるべきじゃないでしょうか。
プログラムでなくても、トランプとかを並べ替えても、紙に書いても、方法はどうでもいいですが…。
(Javaでコード書いてステップトレースが早いかもしれませんけど)

アルゴリズムの問題も解答例/解説を見ると「箱」とか使って、
「どうやって動いているか」を説明していることが多いと思います。
まず、実際に並べ替えてみる。やってみる。動き方を理解する。とりあえずいろいろ弄る。
繰り返してくうちに「理屈/法則性」が分かってくる。

アルゴリズムってのは考え方なので、基本定石は覚えることになるとしても、
本質がわかってないとあまり意味がないというか。

ペーパープログラマでなければ、Javaでコードを書いてれば無意識にやってることだと思いますので、
難しく考えすぎなのではないでしょうか。

ちなみに、基本情報処理技術者の言語問題は選択式のはずで、
Javaの資格(SJCPとかですか?)をお持ちならJavaを選ぶのが有利だと思いますが、
あえてCASLにするのは何か思惑があってですか?
(まぁアセンブリ知ってても損はないですが…組込業界とかですか?)

2.
基本情報くらいだと習熟してる人なら頭でも解ける気がしますが、
普通はメモくらい取りながらとくのじゃないでしょうか。
# その方が多分、安全に早くとけるように思いますし。

投稿日時 - 2007-04-21 22:49:31

あなたにオススメの質問