Giáo án Tin học 9
Tin họcLớp 9Phần 7. Chủ đề 5. Giải quyết vấn đề với sự trợ giúp của máy tính

Giáo án Bài 16. Thực hành: Lập chương trình máy tính

Kế hoạch bài dạy theo mẫu Công văn 5512/BGDĐT-GDTrH · 2 tiết (90 phút)

I. Mục tiêu

1. Kiến thức

  • Nêu được các bước lập chương trình Scratch tìm số lớn nhất của ba số: hỏi và lưu từng số vào biến, đặt biến kết quả, so sánh và cập nhật, thông báo kết quả.
  • Giải thích được vì sao cần lưu câu trả lời vào biến trước khi hỏi tiếp và vì sao không nên khởi tạo m=0m = 0 khi dữ liệu có thể là số âm.
  • Vận dụng được cấu trúc rẽ nhánh (nếu … thì …) và biến để giải bài toán tìm số lớn nhất trong Scratch.
  • Giải thích được cách kiểm tra dữ liệu vào theo miền giá trị của bài toán (số nguyên, không âm) và cách thử các trường hợp đặc biệt như hai số bằng nhau.
  • Lập được vết kiểm chứng cho hai bộ dữ liệu, đối chiếu với kết quả mong đợi và giải thích được kết quả.

2. Năng lực

a) Năng lực chung

  • Tự chủ và tự học: HS chủ động đọc đề, tự xây dựng thuật toán theo quy trình, tự kiểm tra sản phẩm bằng vết kiểm chứng và điều chỉnh khi kết quả chưa đúng.
  • Giao tiếp và hợp tác: HS làm việc theo cặp đôi, trao đổi, giải thích cách làm và nhận xét sản phẩm của bạn bằng ngôn ngữ toán học và ngôn ngữ lập trình.
  • Giải quyết vấn đề và sáng tạo: HS phân tích yêu cầu, chọn thứ tự so sánh hợp lí, đề xuất cách kiểm tra dữ liệu và áp dụng thuật toán vào bài toán tính tiền công.

b) Năng lực đặc thù

  • NLa: Sử dụng phần mềm Scratch để tạo khối lệnh, biến, khối hỏi – trả lời và chạy thử chương trình đúng yêu cầu.
  • NLc: Vận dụng công nghệ để giải quyết bài toán tìm số lớn nhất và bài toán tính tiền công, kiểm tra điều kiện áp dụng và giải thích kết quả.
  • NLd: Sử dụng học liệu số NeoEdu để xem ví dụ, làm bài tập tương tác và tự kiểm tra kiến thức trong và sau giờ học.
  • NLe: Phối hợp với bạn trong môi trường số khi chia sẻ dự án Scratch, góp ý và đánh giá sản phẩm chung của cặp đôi.

3. Phẩm chất

  • Chăm chỉ: HS kiên trì thử nhiều bộ dữ liệu, sửa lỗi khối lệnh cho đến khi chương trình chạy đúng.
  • Trung thực: HS ghi đúng vết kiểm chứng thực tế của chương trình, không tự ý ghi kết quả khi chưa chạy thử và thừa nhận lỗi của mình.
  • Trách nhiệm: HS bảo quản máy tính, lưu dự án đúng nơi quy định và hoàn thành phần việc được phân công trong nhóm.

II. Thiết bị dạy học và học liệu

1. Giáo viên

  • Máy tính kết nối máy chiếu, phần mềm Scratch (phiên bản trực tuyến hoặc cài đặt).
  • Bảng phụ ghi đề bài, quy trình thực hiện và thang chấm thực hành.
  • Phiếu học tập số 1 và số 2 (in hoặc chiếu).
  • Học liệu số NeoEdu: trang bài học có bài giảng, ví dụ và bài tập tương tác tại neoedu.vn/learn/9/informatics/bai-16-thuc-hanh-lap-chuong-trinh-may-tinh.

2. Học sinh

  • Máy tính đã cài Scratch hoặc truy cập được Scratch trực tuyến, tài khoản lưu dự án.
  • Vở ghi, bút, giấy nháp để ghi vết kiểm chứng.
  • Phiếu học tập số 1 và số 2 (nếu được phát).

III. Tiến trình dạy học

Hoạt động 1: Mở đầu · 8 phút

Xác định nhiệm vụ và miền dữ liệu

a) Mục tiêu

HS hiểu nhiệm vụ tìm số lớn nhất của ba số và nhận ra lỗi khi khởi tạo m=0m = 0 với dữ liệu có số âm.

b) Nội dung

GV nêu tình huống: lớp có ba bạn ghi điểm kiểm tra, cần tìm điểm cao nhất. Sau đó GV đưa bộ số −5-5, −2-2, −8-8 và yêu cầu HS dự đoán kết quả nếu chọn m=0m = 0 làm giá trị khởi đầu.
Câu hỏi GV đặt ra: “Nếu chọn m=0m = 0 ban đầu, chương trình sẽ cho kết quả bao nhiêu với bộ −5-5, −2-2, −8-8? Vì sao?” và “Vậy nên khởi tạo mm bằng giá trị nào để đúng với mọi bộ số?”

c) Sản phẩm

HS nêu được: với m=0m = 0, chương trình in ra 00 là sai vì 00 lớn hơn cả ba số âm. HS rút ra: khởi tạo mm bằng chính số đầu tiên aa thay vì một số cố định; tìm số lớn nhất phải đúng với mọi bộ dữ liệu trong miền bài toán.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chiếu tình huống ba bạn ghi điểm và bộ số −5-5, −2-2, −8-8. GV nêu nhiệm vụ của cả lớp là lập chương trình Scratch tìm số lớn nhất của ba số, không khởi tạo m=0m = 0.

    Học sinh

    HS đọc đề, ghi nhiệm vụ vào vở và chuẩn bị ý kiến dự đoán.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV cho HS suy nghĩ cá nhân khoảng 1 phút, sau đó yêu cầu giơ tay dự đoán.

    Học sinh

    HS suy nghĩ và dự đoán. Trả lời dự kiến: “Kết quả là 00 vì mm ban đầu là 00 và không có số nào lớn hơn 00 để thay đổi.”

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2 đến 3 HS trình bày, ghi nhanh các ý lên bảng và hỏi thêm: “Nếu các số đều dương thì m=0m = 0 có gây lỗi không?”

    Học sinh

    HS trả lời dự kiến: “Nếu các số đều dương thì không lỗi, nhưng với số âm thì lỗi. Vì vậy phải khởi tạo mm bằng số đầu tiên.”

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: khởi tạo mm bằng aa để đảm bảo đúng với mọi bộ số; cần kiểm tra cả trường hợp số âm, số bằng nhau. GV dẫn vào bài học.

    Học sinh

    HS ghi nhận kết luận và xác định mục tiêu của tiết học.

Hoạt động 2.1: Hình thành kiến thức mới · 25 phút

Xây dựng thuật toán tìm số lớn nhất của ba số

a) Mục tiêu

HS xây dựng được chương trình Scratch hỏi – lưu – so sánh – thông báo, giải thích được vai trò của từng biến và cách cập nhật mm.

b) Nội dung

HS làm việc theo cặp đôi tại máy tính, thực hiện theo quy trình: hỏi và lưu aa, bb, cc lần lượt; đặt m=am = a; nếu b>mb > m thì đặt m=bm = b; nếu c>mc > m thì đặt m=cm = c; nói mm.
Câu hỏi GV đặt ra: “Vì sao phải lưu câu trả lời vào biến trước khi hỏi tiếp?” và “Khi xét cc, ta so sánh cc với giá trị nào của mm? Vì sao không so với aa?”
HS điền vết kiểm chứng vào Phiếu học tập số 1 khi chạy thử với bộ 77, 1212, 99.

c) Sản phẩm

Chương trình Scratch gồm các khối: hỏi “Nhập số thứ nhất” và lưu vào aa; hỏi “Nhập số thứ hai” và lưu vào bb; hỏi “Nhập số thứ ba” và lưu vào cc; đặt m=am = a; nếu b>mb > m thì đặt m=bm = b; nếu c>mc > m thì đặt m=cm = c; nói mm.
Vết kiểm chứng bộ 77, 1212, 99: m=7m = 7, sau khi xét bb thì m=12m = 12, xét cc thì vẫn m=12m = 12; kết quả 1212.
HS rút ra: sau mỗi phép so sánh, mm luôn là số lớn nhất trong các số đã xét; cần lưu giá trị trả lời vào biến để không bị ghi đè khi hỏi tiếp.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV hướng dẫn quy trình bằng cách chiếu sơ đồ các bước. GV nêu yêu cầu: xây dựng chương trình theo thứ tự hỏi – lưu – khởi tạo – so sánh – nói kết quả và phát Phiếu học tập số 1.

    Học sinh

    HS đọc quy trình, mở Scratch và nhận phiếu học tập.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV đi quan sát, hỗ trợ nhóm gặp lỗi khối lệnh (ví dụ quên lưu câu trả lời hoặc đặt sai thứ tự so sánh). GV nhắc HS chạy thử từng bước.

    Học sinh

    HS kéo thả khối lệnh, chạy thử bộ 77, 1212, 99 và ghi vết vào phiếu. Trả lời dự kiến: “Khi b=12b = 12 lớn hơn m=7m = 7 thì mm đổi thành 1212; khi c=9c = 9 không lớn hơn 1212 nên mm giữ 1212.”

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời một cặp trình bày khối lệnh và vết kiểm chứng trên máy chiếu, sau đó hỏi: “Nếu bỏ khối lưu bb và chỉ dùng câu trả lời ngay trong phép so sánh thì có ổn không?”

    Học sinh

    HS trình bày và trả lời dự kiến: “Không ổn vì câu trả lời mới sẽ ghi đè giá trị cũ, chương trình không còn giữ được số đã nhập.”

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: mm là biến lưu số lớn nhất đã xét; so sánh bb và cc với mm hiện tại; cần lưu từng câu trả lời vào biến riêng trước khi hỏi tiếp. GV nhắc lưu dự án với tên quy định.

    Học sinh

    HS ghi kiến thức vào vở và lưu dự án.

Hoạt động 2.2: Hình thành kiến thức mới · 15 phút

Kiểm tra dữ liệu vào và thử trường hợp đặc biệt

a) Mục tiêu

HS giải thích được việc kiểm tra dữ liệu vào theo miền bài toán và thử các trường hợp hai số bằng nhau hoặc toàn số âm.

b) Nội dung

GV đặt câu hỏi: “Số lượng học sinh có thể là số nào? Có thể là −3-3 hay 2,52{,}5 không?” và “Nếu người dùng nhập chữ thay vì số thì chương trình nên làm gì?”
Nhóm thử ba bộ dữ liệu: 44, 44, 11; −5-5, −5-5, −5-5; −5-5, −2-2, −8-8 và ghi kết quả vào vở.
GV hướng dẫn: nếu công cụ không có khối kiểm tra số trực tiếp, HS dùng khối so sánh hoặc kiểm tra rỗng theo hướng dẫn của GV; không cho chương trình tiếp tục khi dữ liệu không hợp lệ với miền bài toán.

c) Sản phẩm

Bảng kết quả ba bộ thử: 44, 44, 11 cho 44; −5-5, −5-5, −5-5 cho −5-5; −5-5, −2-2, −8-8 cho −2-2.
Kiến thức rút ra: dữ liệu vào phải thuộc miền bài toán (số lượng là số nguyên không âm trong bài tính tiền công); cần thử cả trường hợp bằng nhau và số âm; chuỗi không phải số phải được nhận diện và báo lỗi theo hướng dẫn, không đưa vào phép tính.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV nêu câu hỏi về miền dữ liệu và yêu cầu nhóm thử ba bộ dữ liệu đặc biệt.

    Học sinh

    HS đọc câu hỏi, thảo luận trong cặp đôi và thử ba bộ dữ liệu trên máy.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV quan sát và gợi ý: “Số giờ làm việc có thể là 2,52{,}5 không? Nếu đề bài yêu cầu số nguyên thì sao?”

    Học sinh

    HS thử chương trình và ghi kết quả. Trả lời dự kiến: “Số giờ phải là số nguyên không âm, nếu nhập −1-1 thì phải báo lỗi.”

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời HS đọc bảng kết quả và hỏi: “Trường hợp 44, 44, 11 có cần khối kiểm tra đặc biệt không?”

    Học sinh

    HS trả lời: “Không cần, vì mm vẫn giữ đúng giá trị 44; các trường hợp bằng nhau vẫn cho kết quả đúng.”

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: luôn kiểm tra dữ liệu theo miền bài toán và thử trường hợp đặc biệt trước khi kết luận chương trình đúng. GV giới thiệu thêm ví dụ trên trang NeoEdu nếu lớp còn thời gian.

    Học sinh

    HS ghi nhận và cập nhật kiến thức.

Hoạt động 3: Luyện tập · 20 phút

Luyện tập trắc nghiệm và kiểm chứng chương trình

a) Mục tiêu

HS vận dụng kiến thức để trả lời đúng các câu hỏi về thuật toán, đánh giá cách làm đúng – sai và tự chấm sản phẩm Scratch theo thang điểm.

b) Nội dung

HS làm nhanh các câu hỏi sau, sau đó chạy thử chương trình theo nhiệm vụ số 7.

  1. Ca 77, 1212, 99 trả về gì?
  2. Ca −5-5, −2-2, −8-8 trả về gì?
  3. Cần lưu câu trả lời vào biến tương ứng trước lần hỏi tiếp. Đúng hay sai?
  4. Lệnh xét cc phải so với gì? A. mm hiện tại; B. Luôn 00; C. Luôn bb dù mm đã giữ giá trị khác; D. Luôn aa mà bỏ kết quả so bb.
  5. Dùng m=0m = 0 đúng với mọi bộ số âm. Đúng hay sai?
  6. Chọn các cách đúng để tìm lớn nhất ba số đã nhập: A. Đặt m=am = a, so bb với mm rồi so cc với mm; B. Đặt m=am = a, so cc với mm rồi so bb với mm; C. Đặt m=0m = 0 rồi chỉ cập nhật nếu gặp số lớn hơn 00; D. Đặt m=am = a rồi ghi đè m=bm = b, m=cm = c không so sánh.
  7. Lập Scratch tìm lớn nhất ba số với ca 77, 1212, 99 và −5-5, −2-2, −8-8, không khởi tạo m=0m = 0; lưu dự án và ghi vết hai ca.

c) Sản phẩm

Đáp án: 1. 1212 (vì 1212 lớn hơn 77 và 99). 2. −2-2 (vì −2-2 là số ít âm nhất). 3. Đúng (giá trị trả lời sẽ thay đổi nếu không lưu). 4. Đáp án A (mm là số lớn nhất của các số đã xét). 5. Sai (sẽ giữ 00, sai). 6. Đáp án A và B (sau mỗi phép so sánh, mm giữ số lớn nhất đã xét; m=0m = 0 sai với số âm; ghi đè không so sánh chỉ giữ số cuối).
Thang chấm câu 7 (tổng 1010 điểm): hỏi và lưu đúng ba biến 0,20{,}2 điểm; khởi tạo và so sánh, cập nhật mm đúng 0,350{,}35 điểm; hai vết 1212 và −2-2 đúng 0,30{,}3 điểm; giải thích không khởi tạo 00 và có kiểm tra dữ liệu 0,150{,}15 điểm. Chấp nhận phương án tương đương đúng, có lí giải và an toàn.
Vết kiểm chứng ca −5-5, −2-2, −8-8: m=−5m = -5, xét bb được m=−2m = -2, xét cc giữ m=−2m = -2; kết quả −2-2. Đây là vết kiểm chứng thuật toán, HS cần tự chạy và ghi lại kết quả thực tế của chương trình mình.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chiếu bảng câu hỏi 1 đến 6 và nêu nhiệm vụ 7 cùng thang chấm. GV nhắc HS trả lời nhanh trước, sau đó làm sản phẩm.

    Học sinh

    HS đọc câu hỏi, ghi đáp án tạm thời vào vở.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV tổ chức trò chơi nhanh: HS giơ thẻ A, B, C, D hoặc Đúng, Sai. Sau đó GV yêu cầu cặp đôi hoàn thiện chương trình và chạy thử hai ca.

    Học sinh

    HS giơ thẻ trả lời câu 1 đến 6. Trả lời dự kiến câu 4: “Đáp án A vì mm đã là số lớn nhất của hai số đầu.” HS chạy thử và ghi vết.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV công bố đáp án, mời một cặp trình bày vết kiểm chứng và đối chiếu thang chấm. GV hỏi: “Nếu kết quả máy ra khác với vết dự kiến, em kiểm tra ở đâu trước?”

    Học sinh

    HS đối chiếu và trả lời dự kiến: “Em kiểm tra thứ tự khối so sánh và khối khởi tạo mm trước.”

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV nhận xét, nhấn mạnh: chương trình phải đúng với mọi bộ dữ liệu trong miền, không chỉ đúng với một ca. GV yêu cầu HS tự chấm theo thang điểm và lưu dự án.

    Học sinh

    HS tự chấm sản phẩm và ghi nhận điểm cần cải thiện.

Hoạt động 4: Vận dụng · 22 phút

Lập chương trình tính tiền công theo giờ

a) Mục tiêu

HS vận dụng biến, phép nhân và kiểm tra dữ liệu để lập chương trình tính tiền công trong tình huống thực tế, giải thích được kết quả và điều kiện áp dụng.

b) Nội dung

Đề bài: chương trình hỏi số giờ hh và đơn giá gg (đồng mỗi giờ), tính tiền T=h⋅gT = h \cdot g. Số giờ phải là số nguyên không âm; nếu nhập không hợp lệ thì báo lỗi, không trả tiền âm.
Thử với h=6h = 6, g=25000g = 25000 và h=−1h = -1 (đơn giá giả định để luyện tập, không phải mức lương thực tế).
HS điền kết quả vào Phiếu học tập số 2.

c) Sản phẩm

Kết quả: với h=6h = 6, g=25000g = 25000 thì T=150000T = 150000 đồng. Với h=−1h = -1 thì chương trình báo lỗi “Số giờ không hợp lệ” và không tính tiền.
Đánh giá: công thức đúng 0,50{,}5 điểm; kiểm tra âm đúng 0,30{,}3 điểm; giới hạn dữ liệu đúng 0,20{,}2 điểm.
Kiến thức rút ra: một chương trình tốt phải kiểm tra điều kiện áp dụng trước khi tính toán; kết quả cần được giải thích theo điều kiện giả định của bài.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV nêu tình huống tính tiền công theo giờ, nhấn mạnh điều kiện số giờ không âm và đơn giá giả định. GV phát Phiếu học tập số 2.

    Học sinh

    HS đọc đề, xác định dữ liệu vào, dữ liệu ra và điều kiện hợp lệ.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV hướng dẫn cặp đôi thêm kiểm tra số giờ trước khi nhân và chạy thử hai trường hợp.

    Học sinh

    HS xây dựng chương trình, chạy thử h=6h = 6, g=25000g = 25000 và h=−1h = -1. Trả lời dự kiến: “Khi h=−1h = -1, em cho chương trình báo lỗi và không thực hiện phép nhân.”

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2 cặp trình bày, hỏi: “Nếu không kiểm tra hh âm thì chương trình cho kết quả gì?”

    Học sinh

    HS trả lời: “Sẽ ra tiền âm −25000-25000, không hợp lý với tình huống thực tế.”

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: kiểm tra dữ liệu theo miền bài toán trước khi tính; giải thích rõ đơn giá là giả định của bài tập. GV giao phần hoàn thiện ở nhà.

    Học sinh

    HS ghi kết luận và lưu dự án.

Phiếu học tập

Phiếu học tập số 1

Nhiệm vụ: Xây dựng chương trình Scratch tìm số lớn nhất của ba số aa, bb, cc (không khởi tạo m=0m = 0).

  • Bước 1: Viết các khối hỏi và lưu aa, bb, cc lần lượt.
  • Bước 2: Đặt m=am = a; xét b>mb > m rồi xét c>mc > m và cập nhật mm.
  • Bước 3: Nói mm.
    Vết kiểm chứng ca 77, 1212, 99 (điền vào):
  • Giá trị ban đầu: m=m = ……
  • Sau khi xét b=12b = 12: m=m = ……
  • Sau khi xét c=9c = 9: m=m = ……
  • Kết quả chương trình nói: ……
    Vết kiểm chứng ca −5-5, −2-2, −8-8 (điền vào):
  • Giá trị ban đầu: m=m = ……
  • Sau khi xét bb: m=m = ……
  • Sau khi xét cc: m=m = ……
  • Kết quả chương trình nói: ……
    Câu hỏi thảo luận:
  • Vì sao phải lưu câu trả lời vào biến trước khi hỏi tiếp?
  • Vì sao không nên dùng m=0m = 0 khi dữ liệu có số âm?

Phiếu học tập số 2

Đề bài: Lập chương trình tính tiền công T=h⋅gT = h \cdot g, trong đó hh là số giờ làm việc, gg là đơn giá (đồng mỗi giờ).
Yêu cầu:

  • Số giờ hh phải là số nguyên không âm.
  • Nếu dữ liệu không hợp lệ, chương trình báo lỗi và không tính tiền.
    Bảng kết quả thử (điền vào):
  • Trường hợp 1: h=6h = 6, g=25000g = 25000 → T=T = …… đồng.
  • Trường hợp 2: h=−1h = -1 → Chương trình báo: ……
    Đánh giá (tự chấm):
  • Công thức và kết quả đúng: …… / 0,50{,}5 điểm.
  • Kiểm tra số giờ âm: …… / 0,30{,}3 điểm.
  • Giới hạn dữ liệu hợp lệ: …… / 0,20{,}2 điểm.
    Câu hỏi suy nghĩ: Nếu không kiểm tra hh âm, chương trình sẽ cho kết quả gì và vì sao điều đó không hợp lý?

Hướng dẫn về nhà

  • Hoàn thiện chương trình tính tiền công: thêm kiểm tra để báo lỗi khi số giờ không phải số nguyên hoặc khi đơn giá không hợp lệ; chạy thử ít nhất ba bộ dữ liệu và ghi vết kiểm chứng vào vở.
  • Viết ngắn gọn (khoảng 5 dòng) giải thích vì sao cần khởi tạo biến lớn nhất bằng số đầu tiên thay vì bằng 00, kèm một ví dụ có số âm.
  • Lưu dự án Scratch đúng tên quy định và nộp cho GV qua hệ thống hoặc thư mục lớp. Tự luyện thêm các bài tập tương tác trên trang NeoEdu của bài 16 để củng cố kiến thức.

Giáo án do NeoEdu soạn với sự hỗ trợ của AI, dựa trên nội dung bài học trên Học liệu. Thầy cô nên đọc lại và điều chỉnh cho phù hợp với học sinh của mình; bản Word để sửa trực tiếp.