Day 2: 変数と型 - 評価基準

評価の目的

変数の宣言・代入・再代入の理解度と、基本的なデータ型の使い分けを確認します。

---

評価項目

1. 変数の基本(40点)

課題 配点 評価基準
問題1-1: 自己紹介 15点 変数を正しく宣言し、出力できている
問題1-2: 果物計算 15点 整数変数で計算が正しくできている
問題1-3: 値の更新 10点 再代入(=)を正しく使えている

2. データ型(40点)

課題 配点 評価基準
問題2-1: 様々な型 20点 int, float64, string, boolを正しく使用
問題2-2: 整数計算 20点 四則演算と剰余演算が正しい

3. 応用課題(20点)

課題 配点 評価基準
問題3-1: 買い物計算 8点 複数変数を組み合わせて計算
問題3-2: 温度変換 6点 float64を使った計算が正しい
問題3-3: BMI計算 6点 単位変換を含む計算ができている

---

評価の詳細

変数宣言のチェックポイント

// ✓ 正しい短縮宣言
name := "太郎"
age := 25

// ✓ 正しいvar宣言
var height float64 = 175.5

// ✗ 誤り:再宣言
name := "太郎"
name := "花子"  // エラー!

// ✓ 正しい再代入
name := "太郎"
name = "花子"   // OK

確認項目:

  • [ ] :=を使った短縮宣言ができている
  • [ ] =を使った再代入ができている
  • [ ] 変数名が意味のある名前になっている
  • [ ] 型が適切に選択されている

型の使い分けチェック

用途 確認ポイント
`int` 整数 個数、年齢、点数など
`float64` 小数 身長、体重、金額(小数あり)など
`string` 文字列 名前、メッセージなど
`bool` 真偽値 フラグ、条件の結果など

---

合格基準

レベル 点数 説明
優秀 90-100点 すべての課題を完璧にクリア
合格 70-89点 基本課題をクリア
再提出 50-69点 基本的な理解に不備あり
不合格 0-49点 変数の概念が理解できていない

最低合格ライン: 70点以上

---

よくある減点ポイント

1. 宣言と代入の混同(-5〜10点)

// NG: 2回目に:=を使っている
score := 80
score := 90  // エラー

// OK: 2回目は=を使う
score := 80
score = 90   // OK

2. 型の不一致(-5点)

// NG: 文字列と整数を直接連結
age := 25
fmt.Println("年齢は" + age + "歳")  // エラー

// OK: Sprintfを使う
fmt.Printf("年齢は%d歳\n", age)

3. 整数割り算の罠(-3点)

// 整数同士の割り算は小数点以下が切り捨て
result := 10 / 3  // result = 3(3.333...ではない)

// 小数を得たい場合
result := 10.0 / 3.0  // result = 3.333...

---

ピアレビューのポイント

動作確認

  • プログラムがエラーなく実行できるか
  • 出力が期待通りか

コード確認

  • 変数名が適切か(a, xなどは避ける)
  • 型が適切に選択されているか
  • 不要な変数がないか

理解度確認の質問例

  • :==の違いは何ですか?」
  • 「intとfloat64の違いは何ですか?」
  • 「この変数は何を保存していますか?」

---

フィードバック例

良い例

> 「変数の使い方は完璧です。変数名もappleCountのようにわかりやすいですね。次は条件分岐と組み合わせて、より複雑なプログラムに挑戦しましょう。」

改善が必要な例

> 「score := 80の後にscore := 90と書いていますが、2回目はscore = 90(コロンなし)にしてください。:=は新しい変数を宣言するときだけ使います。」