Skip to content

Latest commit

 

History

History
90 lines (83 loc) · 6.22 KB

File metadata and controls

90 lines (83 loc) · 6.22 KB

こんなレポートは嫌だ2016

  • 実験結果がないレポート。(指定してることは対応しよう!)
    • 結果掲載せずに考察されても困ります。
  • 考察だけ読むとそれっぽいけど、結果と整合取れてないレポート。(矛盾しないようにしよう!)
  • 色盲テストさせられてる気になるレポート。(背景色と文字色のバランスを考えよう)
  • URLを間違えているレポート。
  • リポジトリ上のコードと、Google共有フォルダ上のコードとが異なってる人。
  • コード
    • グローバル変数やそれに類似する形でフィールド変数使ってるコード。(特別な理由なしに使うな!)
      • クラスが持つべき変数としてフィールド変数を使うのは良い。だけど何か途中結果を保存するための一時的な変数まで、本当にフィールド変数として定義する必要はある?
        • 一時的な用途の変数をフィールド変数として定義してしまうと、他メソッドからも編集されます。それでも問題ないの?
          • 一時的に必要な変数はローカル変数にしよう。
    • インデントがぐちゃぐちゃなコード。(読みづらい!)
      • 先生によってはこれだけで大幅減点する人もいます。読みづらいと合ってるかどうかも判断しづらく、バグが混入されてても気づきにくいし、その逆に誤読して正しいコードを誤ってると見做してしまうこともあります。読みやすいコード(readable code)を意識しよう。人間が読む必要がないなら冗談抜きで機械語書いて下さい。
    • 空行だらけのコード。(読みづらい!)
    • Java言語特有
      • 提出する際にファイル名だけ変更してアップロードされると困る。(public classと同じ名前でファイル名を付ける必要がある)

レポート1

主な減点ポイント

  • 関数化されていない。
  • 出力結果(一致率)が誤っている。
  • 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。

レポート2

主な減点ポイント

  • メソッド化されていない。
  • 出力結果(一致率)が誤っている。
  • 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。

レポート3

主な減点ポイント

  • コンストラクタが仕様を満たしていない。
    • e.g., handやwinCountが初期化されていない。引数を無視してフィールド変数を初期化している。
  • 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。

レポート4

注意点

  • GitHubの「ブラウザで参照する際の通常のURL」と、「Gitでバージョン管理するためのリポジトリURL」とを意識して区別しよう。前者はブラウザでアクセスするためのURL。後者はGitでアクセスするためのURLです。
  • setter/getterのメソッド名を慣習に習おう。
    • フィールド変数 hoge なら、setHoge, getHoge のようにする。
  • commit message は、後から振り返った時の目印となるように書こう。

主な減点ポイント

  • wounded()で、deadフラグをtrueにする際の条件が「hitPoint < 0」になっている。(0ピッタリの時に死亡しない)
    • 當間が用意した例題の時点でのミスなので、減点はしません。気づいて修正・指摘してるレポートGood!
  • 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。

レポート5

主な減点ポイント

  • 例外をキャッチしたいコードが、try-catch構文の中で記述されていない。
  • GitHub上のコードと、共有フォルダに提出してるコードとの不整合。
    • GitHub提出指定してる時は、全てのコードログを commit & push するようにしよう。
    • GitHub提出してる場合、共有フォルダにコード提出する必要はありません。
  • 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。

レポート6

Good例

  • Hero/Enemy共通部分をスーパークラスに実装。
    • e.g., 20%とか30%とか具体的な発生確率はともかく、指定した確率でtrue/false判定するメソッドをスーパークラスに実装。
  • Hero.attack()/Enemy.attack()の細かい共通部分をまとめたメソッドと、異なる部分をまとめたメソッドを用意。
  • その他
    • ユーザ入力して行動選択するように拡張。
    • 「素早さ」を導入。

主な減点ポイント

  • build.gradleがpushされていない。
  • build.gradleはあるが、jarファイルを生成できない。
      • 記述が不足している(タスクjarを記述していない)。
      • 記述とソースファイルの在り処が一致していない。
  • jarファイルは生成できるが、実行できない。
      • jarファイルは生成されるが、mainメソッドが指定されていない(build.gradleに書き忘れている)ために実行できない。
  • ダメージ算出方法がおかしい。
      • Hero.attack を無視して、「damage = Math.random() * 6;」のように攻撃力が直書きされている。
  • 発生確率がおかしい。
      • 「(int)Math.random()*9」した値が3未満の時に会心の一撃。(これは30%だろうか?)
      • 「(int)Math.random()*10」した値が、0の時は回避。1,2の時に会心の一撃。(これは30%だろうか?)
      • 「(int)(Math.random() * 10)」した値が3以下の時に会心の一撃。(これは30%だろうか?)
  • 特定条件下でバグ発生。
    • バグの例
      • 「会心の一撃or痛恨の一撃」&「ダメージ0」の時に回避出力にならない。
  • GitHubリポジトリのコードが古い。
      • Step2までのコードのみ。
  • 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。