12月18日の業務報告

こんばんは、B3の岩井です。

本日の質問と回答です。
========================================
<プログラミング演習II>
Q1. 課題2(木曜)で段落を数えようとしているがうまくいかない。
A1. 一行ずつ読み込んでいましたが、段落を数えるときに前の行と空行の改行二つが連続する部分をさがして段落の変わりめにしようとしていたため、一行ずつではそれができないことを伝えました。そのうえでどうやって段落を数えればいいか一緒に考えました。

Q2. 文字コードを指定したらエラーが出る。
A2. 文字コードを指定するときには「Shift_JIS」と書く必要がありますが、アンダーバーをまちがってハイフンにしていたため、それをなおしたらうまくいきました。

Q3. 課題2(木曜)で単語の数を数えるときに単語1つ1つを要素とした配列をつくればいいのか。
A3. そうすると単語の数や文字数も数えやすくなるのではないかと答えました。

Q4. 課題2(木曜)1文ごとの単語数を数える方法がわからない。
A4. 1文ごとの単語が1つの配列に入っていれば簡単に数えることができそうと伝えました。

Q5. 課題2(木曜)で段落の数を数える方法がわからない。
A5. まったくできていなかったので、プログラムの大枠を一緒に考えました。

Q6. splitメソッドが思ったように動かない。
A6. どのような文字で区切るかという指示を与える部分で使う正規表現の記述が正しくなかったため、そこを指摘しました。

Q7. eachメソッドを使ったときの操作が反映されない。
A7. eachメソッドの繰り返しの中ではじめて宣言された変数は、eachメソッドの外で使うことができなくなると伝えました。こういうことはどんな繰り返しでも起こるので、使う変数はプログラムのはじめに宣言することがおすすめされると伝えました。

Q8. 課題2(木曜)をどう進めていけばいいかわからない。
A8. これからの方針を一緒に考えて、それにはどうすればよいか一緒に考えました。

Q9. 課題2(木曜)で重複した単語が取り除けない。
A9. 一行ずつ読み込んでそれぞれの行で単語1つを要素とする配列を作っていたので、3行目と5行目などで重複する単語が取り除けていませんでした。その配列を全部まとめることができれば重複は取り除けるとアドバイスしました。

<量的調査法>
Q10. レポートをチェックしてほしい。
A10. 帰無仮説・対立仮説・作業仮説の考えが理解できていなかったのでそれについて一緒に考えました。また、χ二乗検定の前提(5未満のセルの割合)について満たせていなかったため、そこをなおす必要があると伝えました。

回答 Q1-Q10:岩井
========================================

怒濤の時期なのですね。
こうして課題2から前日に苦しんでおくと
きっとプログラミング演習Ⅱの最終課題は余裕を持って終わらせることができるのでしょう。

それができれば苦労しないよね。

(文責:岩井)

12月17日の業務報告

こんばんは、B2の榎本です。

本日の質問と回答です。
========================================
<プログラミング演習II>

Q1. 課題2(木曜クラス)で、分散の値だけがテキストに記載されている実行結果例と異なっているが、どこが間違っているのか分からない。
A1. printfメソッドで小数点以下第○位まで表示する指定していたのですが、printfメソッドだと指定した桁以下の値を四捨五入している(あるいは切り上げをしている?)ようで、対処方法が分からなかったため、チェック時にその旨伝えて指示をもらうようにお願いしました。

Q2. 課題2(木曜クラス)で、重複している単語を削除することができない。
A2. 指定されたテキストを1行ずつ読み込み、その1行ごとに重複をチェックしており、テキスト全体での重複がチェックされていなかったため、指摘しました。

Q3. 課題2(木曜クラス)で、段落数を数えるために、1行に空白が2つあるごとにそのことを示す文字を表示させてみたが、そこから段落数を数える方法が分からない。
A3. 段落数を保存する変数を用意し、空白が2つあるごとに文字を表示させている部分でその変数に1ずつ足せばよいのではないかと伝えました。

Q4. 課題2(木曜クラス)で、テキストを読み込む際に、1行目だけある変数に保存し、2行目以降を1行目とは別の変数に保存するように条件文を作ったが、最後の行しか読み込まれない。
A4. 条件の設定に誤りがあったため、指摘しました。

Q5.課題2(木曜クラス)で文章の数を数えたいが、数え方が分からない。
A5.文字列をsplitメソッド分割したものを変数に代入する際、その変数のクラスは何であるかを確認してもらいました。

Q6.課題2(木曜クラス)で、分散の値が解答例と0.01だけ違うが、これはあっているのか。
A6.分散を計算する際に用いる数値が正しいかどうかを確認するよう伝えましたが、その場で確認する手立てがありませんでした。解答例の方が間違っている可能性もありますが、これに関しては演習を担当されている先生に確認をするよう伝えました。

Q7.課題2(木曜クラス)で、単語の数を数えるプログラムを書いたが、答えと数値が異なるが原因が分からない。
A7.正規表現の条件を確認した上で、まず何が余計に数えられているかを判断するために、配列の中身をソートして確認してみるようアドバイスしました。

Q8.ピリオドやエクスクラメーションマークはメタ文字に含まれるか。その場合は正規表現で文字列として認識させたい時、バックスラッシュをつけないといけないのか。
A8.その通りです。いずれもメタ文字に含まれます。

回答 Q1-Q4:鈴木,Q5-Q8:榎本
========================================

質問の内容がほとんど課題2(木曜クラス)ですが、金曜クラスの方は大丈夫でしょうか。
行き詰って解決できそうになければ、ぜひKLCのチューターに相談してみてください。

(文責:榎本)

12月16日の業務報告

こんばんは
B2の野沢です。秋ABのテストが始まりましたね。
つらいですが、頑張って乗り切りましょう!

本日の質問と回答です。
========================================
<知識情報演習I>
Q1. 以前つくったOPACが全学計算機リプレース後、動かなくなってしまった。
A1. ローカルでHTMLファイルを開いていたため、指摘しました。

<プログラミング演習II>
Q2. 課題2(木曜クラス)で、対象のテキストを文ごとに分割して配列に格納したいが、上手くいかない。
A2. 対象のテキストファイルを1行ずつ読み込み処理をしようとしていたのですが、1文が2行以上に渡る場合もあるため、そのことを考慮して処理する必要があると伝えました。

Q3. 課題2(木曜クラス)で、分散を計算する際に、分母である文中の単語数の値が0のため、割ることができない、というエラーが出てしまうが原因が分からない。
A3. 読み込んだ行ごとに処理しており、空行(単語数が0)に対しても分散を求めようとしていたため、エラーとなっていたため、指摘しました。

Q4. 課題2(木曜クラス)で、文ごとに単語数を数える方法が分からない。
A4. まず文ごとに区切り、それぞれの文に対して単語数を数える処理をすればよいのではないかと伝えました。

Q5. 課題2(木曜クラス)で、テキストを読み込んだ後に改行を空白に置換したら、文の最後にも空白が追加されてしまった。
最後の空白はいらないのだが、どのように処理したらいいか。
A5. 改行を空白に置換した後に、正規表現を用いて最後の空白だけ除けばいいと伝えました。

Q6. 課題2(木曜クラス)で、1文あたりの単語数の分散を求めようとしたら、明らかに異なる値が計算されてしまう。
A6. 1文あたりの単語数ではなく、文字数で計算していたので、指摘しました。

Q7. 正規表現をif文で使うときの書き方がよくわからないので解説してほしい。
A7. 教科書の正規表現の章を参照しながら、正規表現と文字列がマッチするかどうか調べるためには「=~」を使う必要がある、など解説しました。

Q8. 課題2(木曜クラス)で、(3)で文章の単語の大きさの平均と分散を出したいが、やり方がわからない。
A8.やりたい処理を確認したところ、配列に対してsizeメソッドを使おうとしていたので、今回は文字列の大きさを求めたいことから「楽しいRuby」で該当するページを確認してもらいました。

Q9. 課題2(木曜クラス)で、文章の単語の大きさの平均と分散の値が解答例と異なってしまう。
A9. splitで分割した文字列を出力して確認してみたところ、文字列としてカウントしては行けない要素も計算に含まれていたので、指摘しました。

回答 Q1-Q7:鈴木, Q8-Q9:野沢
========================================

プログラミング演習の話を少し。
私の場合。例えば、splitメソッドを使いたいとき、splitメソッドはどんなクラスに対して使えるのか。(クラスというのはArrayとかHashとかStringなどなど)
また処理をしたいのはどんなクラスなのかを確認してプログラムを組んでいます。文字列の処理や配列の処理で似ているところがあって混同してしまうことがあるので、扱っているのがどのクラスに属しているのかを意識するといいかもしれません。(確認するメソッドはあります、楽しいRubyかGoogleに聞いてみましょう)

(文責 : 野沢 [twitter: nozawa0301] )

12月13日の業務報告

こんばんは。B3の岩井です。

本日の質問と回答です。
========================================
<プログラミング演習II>
Q1. 一行ずつ読み込んで処理をしようとすると最後まで読み込んだときにエラーが出る。
A1. whileに条件がなく無限ループになっていたため、whileの条件としてline = getsという代入式を与える方法を伝えました。またこれでどうしてうまく行くのかという理由も伝えました。

Q2. 計算に必要な数値がうまく数えられない。ファイルを一行ずつうまく読み込めているかわからない。
A2. whileの条件としてline = getsという代入式を与えてファイルを一行ずつ読み込む方法と理由について伝えました。計算に使う数値は読み込んだ行の中にある鍵になる文字(ピリオドやコンマや空白)などをうまく区切るなどして数えてみるよう伝えました。

Q3. 単語数と文字数がうまく数えられない。
A3. 読み込んだ行をsplitメソッドで区切って配列を作っていましたが、何で区切るかを指定しておらず、把握していなかったためきちんと指定した方がよいと伝えました。また、破壊的/非破壊的メソッドについて伝えたうえで正しく単語数が数えられなかった理由を一緒に考えました。

Q4. うまくファイルを読み込めない。
A4. whileでファイルを一行ずつ読み込む繰り返しを作ったときには、whileの中で処理をしなくてはならないと伝えました。

Q5. プログラムが動かない。
A5. エラーログを見たところ、正規表現に何らかの異常があることが分かりました。正規表現で括弧やクエスチョンマークと言った特殊文字列を用いる時は、その文字列の手前にバックスラッシュを入れないと正しく認識されないと伝えました。

Q6. 課題2(木曜クラス)のプログラムが動かない。
A6. エラーが全てsyntax error(文法間違い)だったので、Meadowの下に行番号が表示されるので、それを参照しながら、スペルミスや誤字脱字を見つけて直すようアドバイスしました。

Q7. 課題2(木曜クラス)のプログラムで1行目にある大統領の名前を表示したい。
A7. 取得した文章の中で特定の列を取得するために必要な、条件分岐や変数のインクリメントを説明しました。

Q8. 課題2(木曜クラス)のプログラムで文字列を分断して配列に格納したいがうまくいかない。
A8. 文字列を分断して配列に格納するsplitメソッドを正しく用いてなかったので、教科書を参照しながらどういうメソッドであるかを確認してもらいました。

回答 Q1-Q4:岩井、Q5-Q8:榎本
========================================

大きなむずかしいプログラムを書くときには
まず読み込んで表示するだけ。次は行の数を数えるだけ。と
ちょっとずつ機能を増やしていきながら正しく動いているか確認をすると
不具合が起こったときにどこが悪いのか分かりやすくなるので
強くおすすめします!

プログラミング演習Ⅱの今回の課題はだいぶむずかしいですが
負けずにがんばってください。
チューターも全力でお手伝いします。

(文責:岩井)

12月12日の業務報告

こんばんは、M1の水上です。

本日の質問と回答です。
========================================
<プログラミング演習II>
Q1. 課題2で、メソッドの引数がない時の処理がうまくいかない。
A1. メソッドの引数がない時は、メソッドの引数を入れる変数に空文字が代入されていると考えてみるようアドバイスしました。

回答 Q1:森川
========================================

4年生は卒業論文の提出まであと少しという時期になってきました。
追い込みのこの時期。体調管理にだけは気をつけてください。

(文責:水上)