Giáo án Tin học 10 · Toàn bộ sách chính (đồ họa và Python)
Tin họcLớp 10Phần 5. 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 31. Thực hành viết chương trình đơn giản

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

I. Mục tiêu

1. Kiến thức

  • Nêu được ba thành phần của chương trình đơn giản: nhập dữ liệu, xử lí và xuất kết quả, qua ví dụ đếm số chẵn trong danh sách.
  • Giải thích được điều kiện chẵn x % 2 == 0 (số chia hết cho 2), giải thích vì sao 0 và số âm chẵn như -4 đều thoả điều kiện.
  • Viết được chương trình Python hoàn chỉnh đếm số phần tử chẵn trong một danh sách và kiểm tra kết quả với dữ liệu mẫu và danh sách rỗng.
  • Vận dụng được cách đổi chương trình từ đếm sang tính tổng các phần tử chẵn của cùng danh sách.

2. Năng lực

a) Năng lực chung

  • Tự chủ và tự học: Tự tính tay, dự đoán kết quả trước khi chạy chương trình; tự đối chiếu kết quả máy với dự đoán và tự sửa lỗi khi chưa khớp.
  • Giao tiếp và hợp tác: Trao đổi, giải thích lập luận trong nhóm đôi và nhóm 4 người; nhận xét, bổ sung bài làm của bạn bằng lời lẽ lịch sự.
  • Giải quyết vấn đề và sáng tạo: Phân tích yêu cầu, xác định miền đầu vào và các trường hợp biên (danh sách rỗng, số 0, số âm), đề xuất phương án thay thế khi đổi yêu cầu.

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

  • Sử dụng và quản lí các phương tiện công nghệ thông tin và truyền thông: Sử dụng máy tính và phần mềm Python để soạn, chạy và kiểm thử chương trình đúng cách.
  • Giải quyết vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông: Dùng máy tính để kiểm thử các trường hợp dữ liệu, so sánh kết quả với tính tay và sửa chương trình.
  • Ứng dụng công nghệ thông tin và truyền thông trong học và tự học: Tra cứu, thực hành tương tác trên học liệu số NeoEdu để tự kiểm tra kiến thức.
  • Hợp tác trong môi trường số: Phối hợp nhóm 4 người viết và kiểm thử chương trình chung, chia sẻ mã nguồn và kết quả trên máy.

3. Phẩm chất

  • Chăm chỉ: Tự viết và chạy lại chương trình khi kết quả chưa đúng, không bỏ qua các trường hợp kiểm thử.
  • Trung thực: Ghi đúng kết quả thực thi của chương trình, không sao chép mã của nhóm khác mà không hiểu lập luận.

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

1. Giáo viên

  • Máy tính, máy chiếu và bảng trắng để trình bày chương trình mẫu và đáp án.
  • Phần mềm Python (IDLE hoặc Thonny) đã cài sẵn trên máy trình chiếu.
  • Phiếu học tập số 1 và Phiếu học tập số 2 (in sẵn cho từng nhóm).
  • Thang chấm điểm cho bài thực hành viết chương trình.
  • 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/10/informatics/bai-31-thuc-hanh-viet-chuong-trinh-don-gian.

2. Học sinh

  • Máy tính có cài Python (IDLE hoặc Thonny), mỗi nhóm ít nhất một máy.
  • Vở ghi, bút, giấy nháp để tính tay.
  • Thẻ A, B, C, D và thẻ Đúng/Sai (tự làm bằng giấy bìa).

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

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

Đoán trước kết quả bằng tính tay

a) Mục tiêu

Huy động kiến thức về số chẵn và xác định yêu cầu đếm phần tử chẵn trong danh sách trước khi viết mã.

b) Nội dung

GV trình chiếu danh sách a = [3, 8, 0, -4, 7]. HS không chạy máy, tự tính tay và trả lời: Có bao nhiêu số chẵn trong danh sách? Đó là những số nào? Số 0 và số âm -4 có phải là số chẵn không, vì sao?

c) Sản phẩm

Đáp án: có 3 số chẵn là 8, 0 và -4, nên kết quả dự đoán là 3. Vì -4 = 2 × (-2) và 0 = 2 × 0 nên cả số âm chẵn và số 0 đều là số chẵn. Kiến thức HS rút ra: một chương trình hoàn chỉnh bắt đầu từ yêu cầu rõ và miền đầu vào, cần thử bằng tính tay trước khi viết mã.

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 danh sách a = [3, 8, 0, -4, 7] và nêu yêu cầu: đếm số phần tử chẵn, dự đoán kết quả bằng tính tay trong 1 phút, chưa chạy máy.

    Học sinh

    HS đọc đề, suy nghĩ và ghi dự đoán vào giấy nháp.

  2. Giáo viên

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

    GV đi quanh lớp, nhắc HS nhớ lại định nghĩa số chẵn là số chia hết cho 2.

    Học sinh

    HS cá nhân liệt kê các số chẵn và ghi số lượng dự đoán. Có HS có thể ghi nhầm số 0 là không chẵn, GV gợi ý để HS tự sửa.

  3. Giáo viên

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

    GV gọi 2 HS trình bày dự đoán và hỏi: “Vì sao số -4 vẫn được tính là chẵn?”

    Học sinh

    HS trả lời: “Có 3 số chẵn là 8, 0 và -4, nên kết quả là 3.” Trả lời dự kiến cho câu hỏi: “Vì -4 = 2 × (-2) nên chia hết cho 2.”

  4. Giáo viên

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

    GV chốt: Số chẵn là số chia hết cho 2, gồm cả 0 và số âm chẵn. Trước khi viết mã cần xác định rõ yêu cầu, miền đầu vào và thử bằng tính tay. GV dẫn vào bài thực hành.

    Học sinh

    HS ghi nhận và tự đối chiếu dự đoán của mình với kết luận của GV.

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

Ba thành phần nhập, xử lí, xuất của chương trình

a) Mục tiêu

Nêu được ba thành phần nhập, xử lí, xuất của chương trình đếm số chẵn và vai trò của từng thành phần.

b) Nội dung

HS làm việc theo cặp đôi, đọc chương trình mẫu và hoàn thành Phiếu học tập số 1:

  • a = [3, 8, 0, -4, 7]; d = 0
  • for x in a: if x % 2 == 0: d += 1
  • print(d)
    Mỗi dòng được xếp vào một thành phần: nhập, xử lí hay xuất.

c) Sản phẩm

Bảng hoàn thành:

  • Nhập: danh sách a gồm 5 số nguyên 3, 8, 0, -4, 7.
  • Xử lí: khởi tạo d = 0; duyệt từng phần tử x; nếu x chia hết cho 2 thì tăng d lên 1.
  • Xuất: in giá trị d, kết quả 3.
    Kiến thức HS rút ra: chương trình gồm nhập dữ liệu, xử lí và xuất kết quả; bộ đếm d phải được khởi tạo trước khi duyệt.

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

  1. Giáo viên

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

    GV phát Phiếu học tập số 1, chiếu chương trình mẫu và hướng dẫn HS mở trang bài học NeoEdu để đối chiếu.

    Học sinh

    HS nhận phiếu, đọc chương trình mẫu và xác định nhiệm vụ điền bảng.

  2. Giáo viên

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

    GV cho HS làm việc trong 4 phút, theo dõi các cặp còn lúng túng và gợi ý bằng câu hỏi nhỏ.

    Học sinh

    Cặp đôi thảo luận và điền bảng. Trả lời dự kiến cho câu hỏi “Dòng nào là bước nhập dữ liệu?”: “Dòng a = [3, 8, 0, -4, 7].”

  3. Giáo viên

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

    GV mời 1 cặp trình bày bảng, cặp khác bổ sung; hỏi: “Nếu bỏ dòng d = 0 thì chương trình gặp lỗi gì?”

    Học sinh

    HS trình bày: “Thành phần xử lí gồm khởi tạo d = 0, duyệt và tăng khi chẵn.” Trả lời dự kiến: “Sẽ báo lỗi vì d chưa được tạo trước khi d += 1.”

  4. Giáo viên

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

    GV chốt ba thành phần nhập, xử lí, xuất và nhấn mạnh việc thử bằng tính tay trước khi chạy máy.

    Học sinh

    HS ghi bảng hoàn chỉnh vào vở.

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

Điều kiện chẵn và các trường hợp biên

a) Mục tiêu

Giải thích được điều kiện x % 2 == 0 xác định số chẵn, bao gồm số 0 và số âm; dự đoán kết quả với danh sách rỗng.

b) Nội dung

Cặp đôi làm Phiếu học tập số 2: với mỗi giá trị -2, 0, 3, 7, kiểm tra điều kiện x % 2 == 0 và cho biết đó có phải số chẵn không. Sau đó dự đoán kết quả của chương trình khi a = [] (danh sách rỗng).

c) Sản phẩm

Kết quả:

  • -2 % 2 == 0 là đúng, -2 là số chẵn.
  • 0 % 2 == 0 là đúng, 0 là số chẵn.
  • 3 và 7 không thoả điều kiện, không phải số chẵn.
  • Với a = [] không có phần tử nào, bộ đếm giữ nguyên 0, chương trình in 0.
    Kiến thức HS rút ra: điều kiện chẵn là số dư bằng 0 khi chia cho 2; 0 và số âm chẵn đều thoả điều kiện; danh sách rỗng cho kết quả 0.

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

  1. Giáo viên

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

    GV phát Phiếu học tập số 2 và nêu yêu cầu: kiểm tra từng giá trị, sau đó dự đoán trường hợp danh sách rỗng.

    Học sinh

    HS đọc phiếu và chuẩn bị làm việc theo cặp đôi.

  2. Giáo viên

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

    GV quan sát, nhắc HS dùng định nghĩa chia hết cho 2 thay vì đoán theo dấu hoặc vị trí số trong danh sách.

    Học sinh

    Cặp đôi kiểm tra từng giá trị và ghi kết quả. Trả lời dự kiến cho câu hỏi: “-2 có chẵn không?”: “Có, vì -2 = 2 × (-1).”

  3. Giáo viên

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

    GV mời 1 cặp báo cáo; hỏi: “Vì sao không nên xét số chẵn bằng điều kiện x > 0?”

    Học sinh

    HS trả lời: “Vì x > 0 chỉ nói về dấu, không liên quan đến việc chia hết cho 2, nên sẽ loại nhầm số 0 và số âm chẵn.”

  4. Giáo viên

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

    GV chốt điều kiện chẵn x % 2 == 0, lưu ý số 0 là số chẵn và danh sách rỗng cho kết quả 0.

    Học sinh

    HS ghi nhận và điều chỉnh đáp án của mình nếu cần.

Hoạt động 3.1: Luyện tập · 12 phút

Viết và kiểm thử chương trình đếm số chẵn

a) Mục tiêu

Viết được chương trình Python hoàn chỉnh đếm số chẵn, chạy kiểm thử với dữ liệu mẫu và danh sách rỗng.

b) Nội dung

Nhóm 4 người viết chương trình đếm số chẵn trong danh sách 3, 8, 0, -4, 7 trên máy tính (đề bài 8 trong bài học). Nhóm chạy chương trình, ghi kết quả và kiểm thử thêm trường hợp a = [] và trình bày lập luận.

c) Sản phẩm

Chương trình mẫu:

  • a = [3, 8, 0, -4, 7]
  • d = 0
  • for x in a:
  • if x % 2 == 0:
    
  •     d += 1
    
  • print(d)
    Kết quả khi chạy: 3. Với a = [] chương trình in 0.
    Thang chấm GV dùng để đánh giá nhóm: danh sách và bộ đếm khởi tạo 0 (0,2 điểm); duyệt và kiểm tra điều kiện chia hết cho 2 (0,4 điểm); kết quả 3 với ba số 8, 0, -4 (0,3 điểm); danh sách rỗng cho kết quả 0 (0,1 điểm). Chấp nhận phương án tương đương đúng, có lí giả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 đề bài 8, yêu cầu nhóm viết chương trình hoàn chỉnh, chạy với dữ liệu mẫu và thử thêm danh sách rỗng.

    Học sinh

    Nhóm nhận đề, phân công một bạn gõ mã, một bạn kiểm tra điều kiện và một bạn ghi kết quả.

  2. Giáo viên

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

    GV đi quanh các nhóm, không sửa thay HS mà đặt câu hỏi gợi mở: “Biến d cần có giá trị ban đầu là bao nhiêu?”

    Học sinh

    Nhóm viết mã, chạy và đối chiếu với tính tay ở đầu tiết. Trả lời dự kiến: “d phải bằng 0 trước vòng lặp để không bị lỗi và đếm đúng.”

  3. Giáo viên

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

    GV mời 2 nhóm trình bày kết quả khi chạy và giải thích vì sao a = [] cho kết quả 0.

    Học sinh

    Nhóm trình bày: “Kết quả là 3, vì có ba số chẵn 8, 0 và -4.” Trả lời dự kiến: “Với danh sách rỗng, vòng lặp không chạy nên d giữ nguyên 0.”

  4. Giáo viên

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

    GV nhận xét, nhấn mạnh việc kiểm thử với cả dữ liệu thường và dữ liệu biên trước khi kết luận chương trình đúng.

    Học sinh

    HS tự chấm chương trình của nhóm theo thang chấm và sửa lỗi nếu có.

Hoạt động 3.2: Luyện tập · 5 phút

Đọc chương trình và trắc nghiệm nhanh

a) Mục tiêu

Củng cố khả năng đọc hiểu chương trình đếm số chẵn và tự kiểm tra kiến thức qua bài tập tương tác.

b) Nội dung

GV chiếu lần lượt các bài 2 đến 7 trong bài học, HS giơ thẻ A/B/C/D hoặc Đúng/Sai. Bài 2: a = [2, 4, 5]. Bài 3: a = [-2, 0, 3]. Bài 4: a = []. Bài 5: chọn điều kiện đúng để kiểm tra số chẵn trong A. x % 2 == 0; B. x > 0; C. x == 2; D. x / 2 == 0. Bài 6: 0 là số chẵn? Bài 7: sắp xếp các bước giải. HS có thể tự làm thêm trên trang NeoEdu.

c) Sản phẩm

Đáp án:

  • Bài 2: 2 (2 và 4 là số chẵn).
  • Bài 3: 2 (-2 và 0 đều chia hết cho 2).
  • Bài 4: 0 (danh sách rỗng).
  • Bài 5: đáp án A, x % 2 == 0 (số dư bằng 0 khi chia cho 2).
  • Bài 6: Đúng (0 = 2 × 0).
  • Bài 7: Xác định danh sách số nguyên → Khởi tạo bộ đếm 0 → Duyệt và tăng khi chẵn → In số lượng và thử danh sách rỗng.

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ừng câu hỏi và yêu cầu HS giơ thẻ hoặc trả lời nhanh trong 5 phút tổng.

    Học sinh

    HS quan sát đề, giơ thẻ đáp án hoặc ghi vào vở.

  2. Giáo viên

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

    GV ghi nhanh tỉ lệ đúng từng câu để điều chỉnh phần giảng sau.

    Học sinh

    HS suy nghĩ và đưa ra đáp án. Trả lời dự kiến cho bài 3: “Kết quả là 2, vì -2 và 0 đều chia hết cho 2.”

  3. Giáo viên

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

    GV gọi 2 HS giải thích đáp án bài 2 và bài 3, gọi 1 HS sắp xếp lại các bước bài 7.

    Học sinh

    HS giải thích lập luận bằng lời của mình.

  4. Giáo viên

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

    GV chốt đáp án và nhấn mạnh lỗi thường gặp: quên số 0 và nhầm dấu với tính chẵn.

    Học sinh

    HS sửa các câu sai vào vở.

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

Đổi yêu cầu sang tổng các số nhà chẵn

a) Mục tiêu

Vận dụng được cách đổi chương trình từ đếm sang tính tổng các phần tử chẵn trong bối cảnh thực tế.

b) Nội dung

Tình huống: Ban quản lí một dãy phố cần tính tổng các số nhà chẵn để thống kê. Danh sách số nhà là a = [12, 7, 8, 15, 20]. HS sửa chương trình đếm thành chương trình tính tổng các số nhà chẵn, chạy với danh sách mẫu và danh sách rỗng, rồi giải thích cách sửa.

c) Sản phẩm

Chương trình sau khi sửa:

  • a = [12, 7, 8, 15, 20]
  • s = 0
  • for x in a:
  • if x % 2 == 0:
    
  •     s += x
    
  • print(s)
    Kết quả: 40 (12 + 8 + 20 = 40). Với a = [] chương trình in 0.
    Kiến thức HS rút ra: thay bước d += 1 bằng s += x; giữ nguyên cấu trúc nhập – xử lí – xuất và điều kiện chẵn x % 2 == 0.

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

  1. Giáo viên

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

    GV trình bày tình huống thực tế, yêu cầu HS sửa chương trình đếm thành chương trình tính tổng và kiểm thử.

    Học sinh

    HS nhận nhiệm vụ, xác định phần cần thay đổi trong chương trình.

  2. Giáo viên

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

    GV theo dõi các em còn lúng túng, gợi ý: “Bộ đếm cần đổi thành biến tích luỹ tổng, khi gặp số chẵn thì cộng thêm giá trị x.”

    Học sinh

    HS cá nhân sửa mã trên máy trong 4 phút. Trả lời dự kiến: “Thay d += 1 bằng s += x, khởi tạo s = 0.”

  3. Giáo viên

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

    GV mời 2 HS trình bày chương trình đã sửa và kết quả với danh sách mẫu, hỏi thêm: “Kết quả với a = [] là bao nhiêu?”

    Học sinh

    HS trình bày kết quả 40. Trả lời dự kiến: “Danh sách rỗng cho kết quả 0 vì không có số nào được cộng vào s.”

  4. Giáo viên

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

    GV nhận xét, chốt rằng chỉ cần đổi bước tích luỹ và giữ nguyên cấu trúc chương trình, đồng thời yêu cầu HS kiểm thử lại sau mỗi lần sửa.

    Học sinh

    HS ghi chương trình đã sửa vào vở để ôn tập.

Phiếu học tập

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

Chương trình mẫu:

  • a = [3, 8, 0, -4, 7]; d = 0
  • for x in a: if x % 2 == 0: d += 1
  • print(d)

Nhiệm vụ: Hoàn thành bảng sau.

  • Thành phần Nhập: ……………………………………………………
  • Thành phần Xử lí: ………………………………………………… (khởi tạo, duyệt, điều kiện, cập nhật)
  • Thành phần Xuất: ……………………………………………………
  • Kết quả khi chạy chương trình: ……………
  • Nếu bỏ dòng d = 0 thì chương trình gặp lỗi gì? ……………………………………………………

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

Nhiệm vụ 1: Với mỗi giá trị dưới đây, điền “Có” hoặc “Không” vào cột “Là số chẵn?”, đồng thời ghi kết quả của điều kiện x % 2 == 0.

  • x = -2: ……………… (điều kiện: ……………)
  • x = 0: ……………… (điều kiện: ……………)
  • x = 3: ……………… (điều kiện: ……………)
  • x = 7: ……………… (điều kiện: ……………)

Nhiệm vụ 2: Giải thích vì sao không nên xét số chẵn bằng điều kiện x > 0.
……………………………………………………

Nhiệm vụ 3: Dự đoán kết quả khi danh sách a = [] (rỗng): ……………
Giải thích: ……………………………………………………

Hướng dẫn về nhà

  • Viết chương trình Python tính tổng các số chẵn trong danh sách a = [5, -6, 0, 9, 14] và chạy kiểm thử; ghi lại kết quả và nêu lí do (kết quả dự kiến: -6 + 0 + 14 = 8).
  • Kiểm thử chương trình đếm số chẵn với ba trường hợp: danh sách có số âm chẵn, danh sách toàn số lẻ, danh sách rỗng; ghi kết quả dự đoán trước khi chạy và so sánh với kết quả thực tế.
  • Truy cập trang bài học Bài 31 trên NeoEdu (neoedu.vn/learn/10/informatics/bai-31-thuc-hanh-viet-chuong-trinh-don-gian) để làm thêm bài tập tương tác và tự kiểm tra; chuẩn bị câu hỏi cho tiết sau nếu còn chỗ chưa rõ.

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.