プログラミング入門(2017年度前期)
第一回の演習の総評です.現在準備中です.
全般 †
再提出の基準 †
- 必修課題が解けていない場合は再提出としました.
- 任意課題が解けていない場合はその旨をコメントし,任意で再提出できることとしました.
README †
- プログラムを読む人の立場に立ってわかりやすく書きましょう
- 良い例として,どの課題がどのプログラムに対応するかを明記している人がいました.
コーディングスタイル †
- Javaでは,クラス名の先頭は大文字から始め,要素語毎に最初の文字を大文字にするのが一般的です.
(キャメルケースと呼ばれています)
- クラス名はプログラムの内容が感じられるような分かりやすいものにしましょう
- 例えば Ex1 や Saiteisyutu といったクラス名は好ましくありません
- ソースコードが整形されていない例が多く見られました.まずはインデントを揃えることを意識しましょう.下のコードのように,ブロック{ }の中の文やメソッドの宣言は,それぞれ同じ高さのインデントに揃えることが望ましいです.
import objectdraw.*;
import java.awt.*;
public class CrossedLines extends WindowController {
public void onMousePress( Location point ) {
new Line( 40, 40, 60, 60, canvas );
new Line( 60, 40, 60, 40, canvas );
}
public void onMouseRelease( Location point ){
canvas.clear();
}
}
逆に良くない例は,次のような形です.
import objectdraw.*;
import java.awt.*;
public class CrossedLines extends WindowController {
public void onMousePress( Location point ) {
new Line( 40, 40, 60, 60, canvas );
new Line( 60, 40, 60, 40, canvas ); // 同じブロック中の文のインデントが不揃い.
}
public void onMouseRelease( Location point ){
canvas.clear();
} // ブロックを閉じる際は,インデントを戻したい.
}
BlueJでは,文の先頭でTabキーやShift+Tabキーを押すことで楽に整形できる機能や,メニューの Edit → Auto-layout を選択するとファイル全体のインデントを整える機能が付いています.活用してみましょう.BlueJ の機能については Week 06 の資料も参考にして下さい.
- (上級者向け) インデント以外のスタイルについても,自分の中でルールを決めて統一してかけるようになると良いでしょう.このようなルールはスタイルガイドなどと呼ばれ,一般に公開されているものもあるため,それらに従うのが簡単です.
- コーディングスタイルについては Week01 の資料 pp. 49–50 にも説明があります
@Override †
- onMouseXXX のような既存のメソッドの定義を上書きするようなメソッドを定義する場合,@Override アノテーション (注釈) をつけておくとメソッド名の打ち間違いに気づきやすくなります.詳細は Week01 の資料 p. 46 を参照のこと.
1-1 †
- README.TXT に動作説明がないものは再提出になっています.
- 動作説明とはプログラムがどのような動作をするのか(例: 「マウスをクリックすると〜〜〜する」) のことで,プログラムを変更した内容 (例: 「canvas.clear() を何行目に移動した」) ではありません.
1-2 †
1-3 †
- 多くの人が正解していました
- CrossedLines から全く変更を加えずに提出している人は再提出としました
1-4 †
1-5 †
- この課題ではどのような変更を加えたら,どのようなエラーが出るかを README.TXT に記述することを求めており,エラーが発生するプログラムの提出は求めていませんでした.
- エラーが出るプログラムを含めて提出した場合,自動テストでエラーになっていましたが,TA 側で個別に自動テストのエラーを無視して対応しています.
1-6 †
- この課題に取り組んだ多くの人が正解していました.
- 座標の計算に誤りがある人もいました.落ち着いて問題を読み直すと,描画する図形が一意に定まるはずです.
1-7 †
- この課題に取り組んだほとんどの人が正解していました.