- 実験結果がないレポート。(指定してることは対応しよう!)
- 結果掲載せずに考察されても困ります。
- 考察だけ読むとそれっぽいけど、結果と整合取れてないレポート。(矛盾しないようにしよう!)
- 色盲テストさせられてる気になるレポート。(背景色と文字色のバランスを考えよう)
- URLを間違えているレポート。
- リポジトリ上のコードと、Google共有フォルダ上のコードとが異なってる人。
- コード
- グローバル変数やそれに類似する形でフィールド変数使ってるコード。(特別な理由なしに使うな!)
- クラスが持つべき変数としてフィールド変数を使うのは良い。だけど何か途中結果を保存するための一時的な変数まで、本当にフィールド変数として定義する必要はある?
- 一時的な用途の変数をフィールド変数として定義してしまうと、他メソッドからも編集されます。それでも問題ないの?
- 一時的に必要な変数はローカル変数にしよう。
- 一時的な用途の変数をフィールド変数として定義してしまうと、他メソッドからも編集されます。それでも問題ないの?
- クラスが持つべき変数としてフィールド変数を使うのは良い。だけど何か途中結果を保存するための一時的な変数まで、本当にフィールド変数として定義する必要はある?
- インデントがぐちゃぐちゃなコード。(読みづらい!)
- 先生によってはこれだけで大幅減点する人もいます。読みづらいと合ってるかどうかも判断しづらく、バグが混入されてても気づきにくいし、その逆に誤読して正しいコードを誤ってると見做してしまうこともあります。読みやすいコード(readable code)を意識しよう。人間が読む必要がないなら冗談抜きで機械語書いて下さい。
- 空行だらけのコード。(読みづらい!)
- Java言語特有
- 提出する際にファイル名だけ変更してアップロードされると困る。(public classと同じ名前でファイル名を付ける必要がある)
- グローバル変数やそれに類似する形でフィールド変数使ってるコード。(特別な理由なしに使うな!)
- 関数化されていない。
- 出力結果(一致率)が誤っている。
- 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。
- メソッド化されていない。
- 出力結果(一致率)が誤っている。
- 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。
- コンストラクタが仕様を満たしていない。
- e.g., handやwinCountが初期化されていない。引数を無視してフィールド変数を初期化している。
- 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。
- GitHubの「ブラウザで参照する際の通常のURL」と、「Gitでバージョン管理するためのリポジトリURL」とを意識して区別しよう。前者はブラウザでアクセスするためのURL。後者はGitでアクセスするためのURLです。
- setter/getterのメソッド名を慣習に習おう。
- フィールド変数 hoge なら、setHoge, getHoge のようにする。
- commit message は、後から振り返った時の目印となるように書こう。
- 参考: (gitにおけるコミットログ/メッセージ例文集100)[http://anond.hatelabo.jp/20160725092419]
- wounded()で、deadフラグをtrueにする際の条件が「hitPoint < 0」になっている。(0ピッタリの時に死亡しない)
- 當間が用意した例題の時点でのミスなので、減点はしません。気づいて修正・指摘してるレポートGood!
- 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。
- 例外をキャッチしたいコードが、try-catch構文の中で記述されていない。
- GitHub上のコードと、共有フォルダに提出してるコードとの不整合。
- GitHub提出指定してる時は、全てのコードログを commit & push するようにしよう。
- GitHub提出してる場合、共有フォルダにコード提出する必要はありません。
- 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。
- 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までのコードのみ。
- 例
- 考察が薄い(≒過程説明・コード解説・気づき等の考察が少ない)。