<全般的な事項> レポート内で質問している人が複数見かけられましたが,できれば授業時間帯に質問してください. 授業時間帯であれば,多くの人と質問と回答を共有できますし, 私の作業として似たような回答を複数回書く労力を減らすこともできますので. 個人個人へのコメントは簡潔に書くために「である」調や体言止めになっています. <授業(説明)の進め方について> ・プログラムの解説を、初心者にも理解できるように気をつけて頂けると助かります。 ・初心者として、授業は集中して聞き、メモなどをしっかり取ろうと思っています. ・授業中に次週提出のレポートを作成しながら説明を聞いているとわかりやすく、 早く済むのかもしれないが説明をきちんと集中して聞いていないとわからなくなってしまいそうだ。 ・教科書の内容に興味をとても持ったため, 家などでどんどん先にプログラムをやってしまって, その際に理解してしまっています。 ・プログラムを打ち込むのが課題であると思っていたすでに出来た状態で講義に のぞんだため, レポートを書くだけで済んだ。 20分程度かかった。 ↓ 説明が早すぎてわかりにくいところがあれば,すかさず止めて質問してください. 私も説明は同じことを2回くらい繰り返しながら進めていくつもりです. なおプログラムの入力は予習ないし復習の時間帯に実施し,説明の間は聞くことに専念して重要なポイントはメモしてください. 説明を聞く前に一度プログラムを見ておくと良いでしょう. 予習する(授業の前にプログラムを入力しておくだけで違うと思います)ことを勧めます. ・コードを理解する時間が足りなくて授業中は意味もわからず写経するだけになってしまったので、 もう少しコードの説明に時間が 欲しいと思った。 ・コードの解説をしっかり行っていくのかそれよりも演習 の時間を多くとるのかによって 予習や復習のやり方も決まってくるので、どちらなのか授業の方針 がわかるとよいと思った。 ↓ コードの解説にはある程度時間をかける予定.ということもあり, 例題コードの入力は授業の前に済ませておく(予習しておく)と良いだろう. ・(コメントのページだと思うが…)ソースコードを書いておく上では便利なのかもしれないが、 ただの文章を<pre> </pre>で挟む意味はあるのでしょうか。 ↓ 質問にHTMLタグやタグに近いものが埋め込まれていることがあったり(この質問自体も回避はできないがタグが入っている), 書式が重要なものがあったりするので,<pre>を使っています. ・教科書に載っているプログラムを全てITC-LMSに載せてほしい. ↓ プログラミングは自分でやってみて始めてわかる部分が多く,プログラムの入力は(できれば事前に)自分でやってください. ・「情報科学を履修していた者なら、オブジェクト指向の応用なのである程度理解は簡単」という旨の説明があったが、 オブジェクト指向については最後の講義で軽く触れた程度であり、あまり分からないというのが正直なところである。 ・「情報科学」の講義ですが、Rubyのオブジェクト指向にまでつっこんだ話をするの は2009年度以前の話で、 2010年度からはアルゴリズムの話に注力しているという風 に理解していた ↓ 言葉による説明だけでオブジェクトを理解しようとすると,やや難しい. 授業ではオブジェクトと継承を,かなり多用するので使っているうちに徐々に理解できるようになるのではないかと期待している. <システムの使い方> ・そもそもMacの使い方からよく分からず時々どうしたら元の画面に戻れるのか分からないときがある。 ・Emacsの使い方がいまいち分からないので、もう少し詳しく説明してほしい。 ・全体的にもう少し説明を詳しくしてほしい(Macでのhtmlの編集方法など) ・cat -n で行番号を出力したかったが、結局できなかった。 ↓ システムの利用法については「情報」「情報システム利用入門」などで勉強してください. ・Emacs のショートカット操作を教えていただけるとありがたい。 ↓ Emacs のショートカットはメニュの脇に出てくる C-x や M-x など.C- は Control,M- は ESC に相当する. Emacsのショートカットはターミナル内のシェル(bash)のショートカットと似ているので,覚えると便利であろう. HWBも参考になるでしょう. ・GoogleChrome, Firefoxでは画像がうまく表示されなかった。 safariではうまく表示された。原因が分かりません。 ↓ おそらくグラブで tiff 形式のファイルを作ったためではないでしょうか? なお,説明が足りないために,適切なアドバイスができないことがあります. この場合では,画像ファイルの種類や表示されない状況の説明が欲しいところです. <初回の課題について> ・(コマンドの)スペースの前までがメッセージとして認識されるようだったが、詳しいことはよく わからなかった。 ・クラス名のあとにスペースがないと、“”に関係なく Hello をメッセージとして 認識できなかった ↓ コマンドの引数の各単語(スペースで区切られている)が分割して配列に納められるためです, そのため,最初の単語のみがメッセージとして表示されます. ・実行結果 を見る限り、文字列のアンカーポイントが左下にあるように思えるが、 文字列の中 央をクロスの交点と合わせたりはできないのだろうか。 ・交点に現れることを座標を与える以外の 方法でできたらいいなと思った。 ・文字列の長さを取得してそれを考慮に入れることで、より見栄えの良いものになるかもしれない。 ↓ ふと思いついたことを調べてみることが重要です. ちなみに,文字列の位置を制御するにはFontMatricsクラスを使って画面上での文字列の大きさを調べる必要があります. ・最初,Hello, world!! と表示させようとしたが, 「!!」の代わりにターミナルで前に入力したコマンドが入力(「表示」の間違いだろう)されてしまった. ↓ ターミナル内で動いているシェルの機能のせい.興味のある人は bash と ! について調べてみると良いでしょう. ・3つのウィンドウが出てきた(上の画像は 3 つが少しずつずれているが、 実行直後はす べて1ヶ所に重なっていた)が、一つを消すとすべて消えてしまう。 ↓ コンストラクタの中で説明を飛ばした5行と関連しているので,もう少し先の授業を聞いてから考えてください. ・今回の課題については課題で何が求められているのかいささか不明瞭に感じた。 ・考察は何を書いたら良いのかよく分からない。 ・考察を書くのに時間がかかった。 ・可能なら ば自分が本当に理解しているのか試すことができるような課題を出してほしい。 ・授業中に課題ができてしまう場合があるので、シーファイブの提出場所を早めに 作っていただくと助かります ↓ 今回はレポートの作成方法を試すことが主眼でした.したがって,考察と言っても難しかったかも知れませんが, 自分の考え方をまとめてみてください. 言い換えると,プログラムを理解/実行する際に,考えたことを書いて欲しいということです. プログラムを自分で書き変えて実行した経緯を書いている人などもいます. ・変えられそうな設定は変えて遊んでみた。 ↓ プログラムに工夫をした場合には,そのプログラム(部分)や結果をレポートに載せてください. <課題レポートの作成に関して> ・しかし、HTML の書き方を知らず、大変な目にあった。 ・プログラムを打つよりもhtmlからレポートを作る方が大変だったような気がします。 ・レポートの作成に手間取った。 ・入力ミスがいくつかあったので、それを修正する時間と、 このレポートを書く時間がそれなりにかかった。 ・レポートの提出方法の理解に時間がかかった。 ↓ レポートのPDFファイル作成は,必ずしもHTMLを利用しなくても構いません. ただし,大体のフォーマットはそろえてください. ・HTML フォーマットの「□課題?.? - ?.?節 例 ?: ?」というところは今回はどのように埋めるのが正解だったのでしょうか ↓ レポート作成の説明が駆け足になってしまったが,授業で説明したときには, 「□課題1.1 - 1.3節 例1: ×線の表示」と書いたと思います. 課題番号については,区別がつけば良いでしょう.例題プログラムの名称は教科書に沿って書けば良いでしょう. ・htmlのファイルにソースコード を移したときに行番号を振る方法がわからなかった。 ↓ レポートの例の中に書いてある cat というコマンドを使うことで,行番号をつけられるので, その結果を htmlファイルにコピーすれば良いはずです. ・cat-nはできませんでした..command not foundと出てしまいます. ↓ cat -n でなく cat-n としたのでは? cat の後に空白が必要です. <コード化方式について> ・サンプルファイルがUnicodeになっているといちいち文字化けするのが面倒だった ・レポートのフォーマットが文字化けしていてエンコードに手間取りました。 課題提出の方法で、「htmlを書き換える」の意味がわからずあれこれ苦労しました。 ↓ mi や emacs でコード化方式を変えることは簡単にできると思います.好きなコード化方式で構いません. <Javaプログラミングについて> ・Javaによるプログラミング経験がほとんどないため、専門用語には四苦八苦してい ます。 ・javaの本を買って、予習して授業に望んだので、解説を聞くときにはあまり苦労しな かった。 だが、もう少し、javaの解説があってもよいと思った。 ・java ははじめてなので、あまり意味がわかっていません。授業で解説 してくれなかったらただの打ち込みに終始していた気がします。 何事も習うより慣れろ、なので進んでいこうとは思いますが、解説を しっかりしてくださるとありがたいです。 ・専門的な用語に対してもう少し説明を加えていただきたいです。 ・コンストラクタという言葉が、javaの初心者向け教科書に載っておらずわからなかったので、教えてほしい。 ・実際にプログラムを書きながら覚える方が好きなので、Java についての講義はむしろ退屈に 感じられます。 ・説明は、用語の説明が丁寧なのでrubyもきちんと理解していたか 怪しかった私でもわかりやすかったです。 ・冬学期に情報科学を受けた人が多いと思うので、rubyとjavaとの違いを少し授業で触れてほしい。 ↓ 「情報科学(Ruby)」程度を前提として,説明を心がける予定です. ただし,Java言語の詳細に踏み込んで行くと,Javaプログラミングの授業になってしまうので,適当なところで切り上げることになると思います. Java言語について勉強したい人は,授業のページで挙げた参考書などを見てください. プログラミング言語に少し慣れた人は,言語仕様書やAPI仕様書などを読めば良いでしょう. ・自分でも致命的だと思うが、オブジェクト・クラス・メゾッドなどの概念がいまいちよく分からず、 プログラミング全体の流れがいまいちパッと理解できていない。 ・java が難しく一回目の授業からついていけてません。 できれば僕のような初学 者にも簡単にわかるように説明してほしいです。 ・「extends」(継承というらしい?)の概念がよく分からず、CrossLine をどういった点で継承してい るのか分からない。 ・public,private,protected という修飾(?)の使い分けが分からない。 ・クラスやコンストラクタなどの概念は情報科学ではやっていない ・(クラス、コンストラクタ、メソッドとはなにか、など)から教えていただけるととても助かります。 ・私のクラスの情報科学の授業ではクラスを作ってオブジェクト指向のプログラミングを、 というところまでは扱われなかった(せいぜいメソッドを複数作るところまで)ので、 コンストラクタなど用語や仕組みの確認 を授業でしてもらいたいです。 ↓ 「情報科学入門」の第8章にクラスやメソッド,親クラスの継承などの概念は説明されています. コンストラクタという言葉はありませんが,Rubyのinitializeメソッドだと思えば良いでしょう. 習うより慣れろという言い方もありますが,今後,毎回出てくるので徐々に慣れていくとは思います. 実際にプログラミングすることで少しずつ分かるとは思いますが, Javaプログラミングに関する参考書で勉強した方が良いかもしれません. ・Crosslineという、もともとないはずのものをクラスとして利用できるのは、 同じ フォルダにさっき作ったCrossline.javaをコンパイルしてできたCrossline.classという ファイルがあるからだろうか。 ↓ Javaの仮想マシンは「クラス名」クラスの情報を,クラス名.class というファイルから得ようとします. ・うまく実行できなかった、コンパイルさえできなかった。 打ち込みに時間がかかり、見直しに時間がかかり、しかもうまくいかず結局どこを直せばいいかわからなかった ・クラスファイルが見つからないエラー ↓ エラーの状況が分からなければ,ヒントを授けることもできません. 状況をきちんと説明するとともに,エラーメッセージを示して,自分なりの解釈を書くようにしてください. ・ターミナルからの引数が massage に代入されるというのはどの部分から指定されているのか分からない。 ↓ これは授業で説明したはずだが,わからなければ演習時間にでも質問してください. ・String[] と書いたときの[]が何を表すのかがいまいち 分かりませんでした。 ↓ String(文字列)型の配列,であることを意味しています. ・「f.addWindowListener(new WindowAdapter() { ... }」が何を行っているのかよく分からない。 ↓ 「もう少し後の授業で説明する」と授業で説明したはずです. ・CrossLineをコンパイルすると、CrossLine.classのほかに、CrossLine$1.classまで生成 される原因がわからず、 消してしまうと、CrossLines.javaが実行できなかった。理由がいまでもわからない。 ・CrossLine.javaをコンパイル したときにCrossLine.classだけでなく、CrossLine$1.classというファイルができまし た。 てっきりEmacsなどの実行中に出てくるような一時ファイルかなにかだと思って 消したのですが必要なものでした。 このファイルが何のためのファイルなのかの説 明が欲しいです。 ・あとで調べて分かったのですが、javaのソースをコンパイルした時にできた CrossLine$1.classというファイルを 一緒に入れておかないとエラーが起きて実行出来 なくなるということが分かりました。 ↓ Javaでは無名クラス(名前のないクラス)は,javaファイル名に「$n」をつけた名前のclassファイルに書き出されます. なお,無名クラスについては,第4章で説明する予定です. ・paintメソッドはどこで呼びだされているんですか。 ・ただ、不思議なのは、paint()関数の呼び出しをしていないのにその中身を書いている ということです。 ↓ 授業で「main メソッドと同じように…」と説明した記憶があるのですが,Javaの仮想マシンが呼び出しています. より具体的には,Canvas の含まれるウィンドウが開かれるときなどのタイミングで paintメソッドは起動されます. <自宅環境について> ・自宅環境(Windows)では、javaファイルをコンパイルする際にコメント部分をエラーとして認識してしまった。 コメント部分をカットすることで解決したが、何故そうなってしまったのかが不明のままである。 ↓ 文字コードの問題と考えられます.ECCSの標準は UTF-8 であるが,自宅のPCはそれ以外(おそらくShiftJIS)なのだと想像されます.