[[ProgI/プログラミング演習I]]
SIZE(20){TA橋本のページ(仮)}

このページは,プログラミング演習IのTA橋本のページです.&br;
----
#contents
----
*橋本とは…[#hashiseitai]
-氏名	
--橋本 泰治 [Yasuharu HASHIMOTO]
-e-mail
--hashi[atmark]slis.tsukuba.ac.jp
-所属
--田中研究室 博士前記過程 1年
-居所
--研究棟 2F 共同研究室 A220 (トイレの隣)
-研究分野	
--音響
--信号処理
**アクセス [#j6b16a7f]
正直,一から「プログラミング演習I」の内容を授業時間だけでマスターしようというのは少々困難だと思います。~
当然、自主学習が必要になると思います(特に後半)~
なので、授業時間だけでなくほかの時間にも頑張ってください。~
と、言うだけっていうのもひどいので自分がみられる時間にはできるだけ協力いたします。
主に
-木曜日以外の5時以降
-火曜日一日中

には対応できるかと思います。~
メールくだされば対応します。~
当たり前ですが突然の場合には行けない可能性があります。~
可能な限り事前にお願いします。~
土日も事前に言っておいてくれれば大丈夫ですが…誰も来ないかな?~

*TAとしてのスタンス [#t2624c6b]
そもそもTAとは何か?~
-授業の補佐をする院生等のこと~

授業は「プログラミング演習I」であるから“授業の補佐”をする前に~
「プログラミング演習I」の授業の本質を考える必要がある.

-コンピュータ・プログラミングの基礎を学習する。~
具体的にはプログラミング言語といくつかの基本的なアルゴリズム、処理の流れを習得するプログラミング演習を行う。~
最終的にはプログラムが自分でかけることを目標にする。(シラバス引用)

以上が「プログラミング演習I」の授業概要である。
分からない言葉もあると思うがおいおい分かっていくだろう。
この目標を授業の履修者が達成するためには
-テキスト通りにプログラムを打ち込み結果を提出する。

だけでは勿論達成されない。~
それは、ただ英語の本の文字を写した文章を提出して、~
英語を理解したつもりになるのに近い。~
やらないよりはましかも知れないが、~
それでは意味も分からず,当然自分の手で文章を作ることなど出来ようも無い。~
そもそも、それだけで済むならばTAどころか先生も要らなくなってしまう。~
大変だ。~

では、どうしたら良いのか?
-まず、意味を考える。
-とにかくやってみる。
-再度意味を考える。
-色々ためしてみて理解を深める。

と、いうのが自然な流れかと思う。~
TAなどの力が必要となるのは主に「再度意味を考える」時だ。~
ここまできてどうしてもわからないときはTAに聞こう。~

それまでには聞いてはいけないのか?と、聞かれればそんなことは無いが~
そこまでにできるだけ自分の力で頑張って欲しいとは思う。~
「自分の力」というとずっと席に座って唸っているヒトがいるがそれは違う。~
自分の力でテキストをよく読み、書籍やwebを利用して調べ、手を動かす。
それが大切だ。~
幸い、プログラミングの学習では調べる、試すという作業には困らない。~
授業のテキストはあるし、参考書もある、web上にも多くの情報がある。~
試すには、プログラムを打ち込んで、実行するだけだ。~

COLOR(RED){何もしないうちからわからないのは当たり前!}~
色々と調べて,試してみたけどそれでもわからなければ堂々と聞いて欲しい。~

そうはいっても、~
もう何が分からないのかも分からない!!~
なんてことも勿論ある。~
それはもう仕方ない!とりあえず聞きいてください。~

と、言うのが私のスタンスです。~
なので、質問されたときもできるだけ自分の力で解決してもらうようにします。~
直ぐに質問の答えを提示するようなことはしません。~
その質問の答えを自分の力で理解できるように支援します。~
なので、「説明はいいから!答えは!?」というヒトには向きません。~
むしろ、「答えはいいから!理解したい!」というヒト向きです。~
当たり前ですが後者のほうが大変です。~
でも、同じ時間を授業に費やすなら後者の態度で臨んだほうが得るものはとても大きいでしょう。~

まぁ厳し目に書きましたけど、ナンダカンダで対応します。
質問してくれた方には出来る限りの対応をしようと思うのでよろしくお願いします。

あくまでも私個人のスタンスで他のTAの方や先生方については別だということに注意!

*学習の助け [#s44c56bc]
タイトルの通りになればいいと思います。~
授業では(おそらく)やらないけど理解しておくといいことなど~
主にRubyに限らずプログラミングの一般論について書いていこうと思います。~
間違ってたら指摘をお願いします!
**プログラムとは [#zd307f60]
そもそもプログラムとは何か?と、いうのは誰もが思うことだと思う。~
そこでプログラムとは何かをざっくりと説明する。~

プログラムとは一般に物事の段取りや予定を差す。~
根本的には同様である、~
我々が扱うプログラムとはコンピュータ(一般的にはパソコン)の行うべき段取りのことである。~
(コンピュータだけとは限らないがここではコンピュータとする)~

我々がコンピュータを使うときプログラムがなければ,~
それはただの箱に過ぎない。~
ヒトが乗らない車のようなものだ。~
ヒトが乗らないときそれは車としての機能を果たさない主に金属でできた箱である。~

これを動かすときに必要となるのがプログラムだと思えばいい。~
イメージとしては~
-命令

に近いかも知れない。~
ただし、我々が誰かに命令するように~
-“こんにちわ”と書け!

と、いくら言っても勿論コンピュータはやってくれない。~
理由は二つ。~
-コンピュータには(多くの場合)耳が無い
-仮に聞こえたとして(普通は)言ったことが理解できない

という二つである。~
一つ目は意外と簡単に解決することができる。~
口頭ではなくコンピュータ上のテキストデータ(文章)として与えればいい。~
二つ目を解決するために必要なのが…プログラミング言語である。~

つまり、我々がコンピュータに何かを命令するには~
-キーボードをたたくことができる
-プログラミング言語を理解する

と,いう過程が不可欠である。~
まぁ外国から来た部下に命令すると思えば仕方の無いことだ。~
彼らの自国の言葉で命令をしなくては仕事が進まない。~

***プログラミング言語 [#x00f019c]
折角なので~
この外国から来た部下を例にして行こう。~

早速、残念なお知らせだが、~
彼ら(コンピュータ)の自国の言葉=プログラミング言語~
と、言うわけではない。~
プログラミング言語はあくまでも間に入る翻訳者の共通言語のようなものだ。~
逆に言うと、例え相手の出身国が異なっても翻訳者の共通言語が分かればよいことになる。~
便利でしょ?~

パソコンの世界でもWindowsやLinuxのように出身国が違う方々がいる。~
でも、それぞれの言葉を覚える必要はない。~
プログラミング言語を覚えればそれぞれにあったように訳してくれるのだ。~

まぁとにかくコンピュータに命令して何かして欲しいならプログラミング言語覚えてね!~
っていうことだ。~

さて、プログラミング言語は兎も角,前述の翻訳者には二つのタイプがいる。
-一つ命令するたびに訳して伝えてくれる、インタプリンタさん
-渡された命令文を全部翻訳して渡してくれる、コンパイラさん

だ。~
意識することはほとんど無いと思うがその特徴としては、~
インタプリンタさんを通すと会話のようにコンピュータと接することができる。~
ただし、いちいち訳しては様子を見るので少し遅い。~
コンパイラさんは全部一気に訳して渡してくれるので、~
コンピュータは全部の作業を一気に片付けてくれて早い!~
ただし、間違えたりすると全文を訳しなおす必要がある。~
のように言われている。~
Ruby処理系は通常インタプリタのようですね。~

さて、コンピュータに命令をする為には~
プログラミング言語で書類を書いて翻訳者に渡せばいい~
ということは分かりましたか?~
このときに書き上げる命令書が~
-ソース

と、呼ばれるものである。~
このソース=命令書を発行することで~
我々は遂にコンピュータに命令を送ることができるのです。~

じゃあ、プログラミング言語を覚えれば~
コンピュータは自分の思い通りに動くありがたいものかというと…~
半分正解というところだろうか。

***アルゴリズムとは [#v53d2a50]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS