ここから本文です

大学に入ってからプログラミングの授業が始まったのですが、最近ついていけません

akikaze6898さん

2007/12/221:29:18

大学に入ってからプログラミングの授業が始まったのですが、最近ついていけません

どんどん未提出のレポートがたまっていきます。
理系の大学に進んだのはいいんですが、どうも自分は頭が文系みたいです。
たまにプログラミングの問題を解いてると自分のだめっぷりに涙が出てきます。

プログラミングの学習するコツはなんでしょうか?
いきなりif文でつまづき、そのまま芋づる式にwhile、forと行き、関数・配列に入ったらK.Oです。


ホントに友人のプログラミング作成は不思議でしょうがありません、どうしてああも簡単にプログラムが組めるのか・・・・・・・

閲覧数:
45,233
回答数:
7
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

ibeam_jpさん

2007/12/323:01:03

まず, あなたはだめな学生ではありません. それは以下のことにより証明できます.

自分がついていけていないと感じている
未提出のレポート課題そのものをここに書いて解決しようとしていない, 自分で学習していこうとしている
プログラミング言語のキーワードを身につけようとしている
そして一番大事なこと, 他人が簡単にプログラムを書いていると感じている

そしてあなたが感じた感情は優秀なプログラマはほぼ皆感じたことのある感情です. プログラミングを学習する最も効率のよいコツ, それをあなたは手にしています. それは自分のセンスで劣等感を感じることです. はっきり言うと, あなたのクラスの誰よりもあなたはプログラムを使いこなせる可能性を秘めた人間の一人です.

プログラムが得意な人の中で必ずしも理系が優位なわけではありません. 言語によっては文系のセンスが生かせます. ポインタやら関数なんかの難しい話を振り回してくる友人たちはプログラムを理解していないと考えていいです. 混乱する話は新しいことをやれば必ず付きまとってきます. まず二つのことを試してください.

1. 担当教官に, 自分が授業についていけていないことを打ち明けること. その際, ただ自分が駄目だから付いていけないというのではなく, いろいろ分からない事が多いので, もう少し自分なりに取り組む時間を与えてほしいと言って, 理解を得てください. 特に忙しい先生でなければ, どこが分からないか相談に乗ってくれたり, 良い参考書を勧めてくれるでしょう. 先生との距離を縮めることは現状ではプログラミングという得体の知れないものと距離を縮める最も効果的な方法です.

2. 周りの友人の中で同じ課題に対し, もっとも短くプログラムコードを書いている友人が書いたコードを2,3 枚 印刷してもらってください. それは新しい課題ではなく, 古めの課題の中で, パッと見て動作が分からないものがベストです. これをもらうときの言い訳は, もう提出期日が迫っているから, とか, おれ全然分かんないからお前のを参考にしたい とか言ったらいいでしょう. 穴埋めに何かおごるとか, ノート貸すとかして信頼関係を得るといいでしょう.

印刷されたコードを手にしたら, すぐにあなたの端末でそのプログラムを一字一句変えずに打ち込んでください. 結局コピーするのかと思われるでしょうが, そうではありません. 分からないなりに, 自分の手で打つことで, プログラムの中の働きがあなたの手に入ります. 打ち終わったら実行して, 結果を見てください. 友人と同じ結果を出せたら, 今度はプログラムの中の変数を書き換えてみてください. i -> iiにするとか、そんなところからで結構です. 徐々に, プログラムはあなたのものになっていきます. どの変数が, どんな役割をしているかがわかってきます.

これらが終わったら, 一度端末を離れて, フローチャートを考えてください. どういう繰り返し処理(for文, while文), 条件分岐(if switch文など)わかる範囲で, 記号なんか関係なく紙に書いてみるといいです. そうすると, 端末で実行していた処理が実は非常に単純だったことがわかってくると思います. そしたら, 変数などをそのメモ書きに書き写し, これまで作成していたプログラムコードを閉じましょう. そして, 新規にプログラムソースファイルを作成し始め, メモにある変数を参考にプログラムをまた1から書きましょう. ここでは最初のうちは友人のプログラムと全く一緒でも問題ないと思います. 友人があなたを泥棒呼ばわりしても, 気にしないでください.

他人のコードをそのまま見ることで身につけるという方法は, ズルのように見えて, 本当はもっとも効果的なプログラム初期の学習方法です. 大体の大学のプログラムの授業は情報処理室のような場所で集団で受講すると思います. 授業中, 大学のカリキュラムに合わせて大学の先生は大体の学生ができているのを確認して, 授業を進めていきます. このとき, 今プログラムが書けている友人はここで先生が書いたプログラムを参考にプログラムが書けるようになった, もしくは自分がそれ以前に書いたことのあるプログラムを参考にプログラムが書けている そのどちらかの状態です.

対してあなたは先生が書いたプログラムをそこでは十分参考にできずに, 次々と課題が先に進んで行ってしまった. ただそれだけの状態です. なので他人のコードを見る機会をもう一度与えてやることで, リカバーできるのです. それに最も適しているのは, あなたがこれまで体験してきた授業の断片的な記憶に最も素直に対応する課題プログラムのコードです. 先生から正解のコードを入手するのはあなたを正しく評価するのを難しくしますが, 正解に近い友人のコードを参照する分にはそこまで問題が多いものではありません.

質問した人からのコメント

2007/12/4 20:08:43

降参 みなさん、たくさんの回答ありがとうございました。
こういう場合投票に掛けるのも一つの方法かと思いましたが、自分のために回答してくださったと思うので、やはり自分の考えでベストアンサーを決めました。
これからたくさんの苦難の道のりが自分には待ってると思いますが、ここにあるたくさんの回答を生かしてがんばりたいと思います。

ベストアンサー以外の回答

1〜5件/6件中

並び替え:回答日時の
新しい順
|古い順

kubo33sさん

2007/12/318:59:07

かのExcelを開発したのは経済学部の学生だった、ことは、プログラミングが文系・理系はあまり関係ないことの証左だと思います。
美しいプログラムコードは詩に通ずるように感じることがあります。

プログラム言語は、まさに「言語」です。
文系のセンスと(チョッピリ数学的な)論理思考の習慣があれば、怖れるに足りません。

自然言語を習得したときのように、教科書のプログラムコードをマネすることから初めて、自己表現に応用すればよいのです。
基本的な語彙(キーワード)と文法さえ習得すれば、それの組み合わせで結構複雑な表現(処理)が出来るようになります。

再び、自然言語を例に取れば、3歳児でも自分の要求を表現できます。
プログラム言語の語彙・文法は、自然言語に比べれば僅かなモノです。
怖れることはありません。

uri_pikaさん

2007/12/310:08:22

自分は子供の頃にNECの8ビットマシンを持っていました。
当時はBASICとマシン語が言語としてありました。
「よし、勉強するぞ!」と思って取り組んで・・・

挫折しましたw


そんな自分もプログラマとして働いていました(すでに過去形なのが悲しいですがw)

当時との違いは(歳というのもありますが)「書かれていることが正解、それ以外は不正解」と当時考えていたのではないかと思います。「どっちでもいいって、じゃぁ、どっちなの?」って。
forにしても
for(i = 0; i < 11; i++)とfor(i = 0; i <= 10; i++)とfor(i = 0; i >= 0; i--)は記述の意味としては違いますが、動作としては同じです。
これがwihileだと
while(1){
(中の処理省略)
i++;
if(i>10){
break;
}
これも同じ動作をします。

書かれているものをそのまま覚えようとするのではなく、その記述の意味を考えながらプログラムを読むとわかるようになるのではないか、と思います。
学校の課題だと、通常はforを使うような場面でもwhileを使わせたりとあまり実用的ではない部分があったりするとは思いますが、記述の意味がわかれば理解できると思います。
関数にしても「絶対にここからここまでを関数にしなくてはいけないの?」というふうに思ってはいませんか?
求められている課題内容をクリアしていれば記述方法なんて十人十色でいいのです。
(このあたりが読みにくいプログラム・読みやすいプログラムという話題になってきます)

そろそろテスト時期にもなるでしょうし、レポートやプログラムばかりに時間をかけてられなくなるような頃でしょうけど、休みも近いので、こういうことを念頭において勉強してみてはどうですか?

あと、先生と友達はフル活用しましょう。

oakjyahさん

2007/12/303:16:35

入試問題に情報の科目を入れない大学を恨みましょう!
必要な学力を測らずに何の試験なのかと。

> 自分のだめっぷりに涙が出てきます。

あなたは正直ないい人ですね。
後ろを振り返っても仕方がないので,前向きに答えますと,

プログラミングの学習は,見栄を捨てて,簡単な言語で,自分の好きなプログラムを作るのが一番です。
一度プログラムの仕組みがわかってしまうと,かつてわからなかった言語でもわかるものです。

いいプログラミング言語と,いい題材に出会うことが大切です。

はっきり言って,大学で学ぶことが多いC言語やアルゴリズムは,プログラミング全体から見れば面白くない部類です。
それで「面白くない・分からない」と感じたとしても,それは正常な反応です。(好きな人,ごめんなさい)

かつてBASICやLogoといった優れた初心者用言語がありましたが,最近は使える環境が無くなってきました。
お薦めできるものがないのが,現在の問題だと思います。

一応中学生でも組めるという,ドリトルという言語を紹介します。
http://dolittle.eplang.jp

2007/12/300:03:13

上達するには、良い本、サイトに出合う事です。

どうでしょうか?
http://www9.plala.or.jp/sgwr-t/

2007/12/300:02:03

知恵袋で訊かないで、その講義を担当している教授とか講師に相談すべきです。
そうすると、1:1で対話的に相談・解決できるし、
大学とは悩むところではなくて、学生があらゆる手段で勉強するところですよ。

で、プログラミング演習というのは、目標(人生でも良いし、とりあえず就職ということでもよい)
に対してどうなのか?それが必要なら、就職する前になんとか解決する必要があります。

まず、大学の先生には、どこをどう理解できないのか伝えましょう。
紙に書いて説明するとか。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。