Giáo án Tin học 8
Tin họcLớp 8Phầ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 15. Gỡ lỗi

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 các bước gỡ lỗi: tái hiện lỗi bằng dữ liệu cụ thể, theo dõi biến từng bước, tìm bước đầu sai, sửa nguyên nhân, thử lại cả ca cũ lẫn ca biên.
  • Giải thích được ba nguyên nhân thường gặp gây lỗi: sai thuật toán, sai điều kiện, ghép hoặc đặt lệnh sai.
  • Phân biệt được lệnh Đặt (ghi đè giá trị) với lệnh Tăng thêm (cộng dồn) và giải thích được vì sao đặt sai lệnh làm mất tổng đã tính.
  • Vận dụng được quy trình gỡ lỗi để sửa chương trình tính tổng 1+2+31+2+3 và kiểm tra kết quả với ca biên 00 lượt và 11 lượt.

2. Năng lực

a) Năng lực chung

  • Tự chủ và tự học: Chủ động tính tay kết quả mong đợi, tự lập vết chạy theo từng lượt và tự đối chiếu với kết quả sau khi sửa.
  • Giao tiếp và hợp tác: Trao đổi cặp đôi để thống nhất vết chạy, trình bày rõ bước sai và cách sửa trước lớp bằng thuật ngữ đúng.
  • Giải quyết vấn đề và sáng tạo: Xác định đúng nguyên nhân lỗi từ vết chạy, đề xuất cách sửa giữ nguyên yêu cầu và kiểm tra bằng nhiều ca thử.

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: Mở, chạy và lưu sản phẩm gỡ lỗi bằng tên rõ nghĩa; kiểm tra lại tệp sau khi mở.
  • Ứng xử phù hợp trong môi trường số: Chỉ dùng dữ liệu giả định hoặc dữ liệu được phép, không thay đầu vào để che lỗi.
  • 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 vết chạy và thử lại trên phần mềm hoặc trên giấy để tìm và sửa lỗi.
  • Ứng dụng công nghệ thông tin và truyền thông trong học và tự học: Tra cứu bài giảng và bài tập tương tác trên trang bài học số để tự ôn tập.
  • Hợp tác trong môi trường số: Chia sẻ tệp sản phẩm và vết chạy trong nhóm, thống nhất cách đặt tên và kiểm tra chéo kết quả.

3. Phẩm chất

  • Chăm chỉ: Theo dõi đủ ba lượt chạy, không bỏ qua bước trung gian khi lập vết chạy.
  • Trách nhiệm: Giữ nguyên yêu cầu của đề bài, sửa đúng nguyên nhân và chịu trách nhiệm kiểm tra lại sản phẩm trước khi nộp.
  • Trung thực: Báo cáo đúng kết quả thử nghiệm, không đổi yêu cầu để coi như đã sửa xong lỗi.

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

1. Giáo viên

  • Máy chiếu hoặc bảng viết để trình chiếu chương trình mẫu s=0s=0, i=1i=1; lặp 33 lần: đặt s=is=i, tăng ii thêm 11; nói ss.
  • Phiếu học tập số 1 và đáp án bài tập để đối chiếu nhanh.
  • Thang chấm 1 điểm cho bài thực hành (vết lỗi, nguyên nhân, sửa, ca biên).
  • 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/8/informatics/bai-15-go-loi (mở trên máy chiếu hoặc giao HS tự luyện sau giờ).

2. Học sinh

  • Vở ghi, bút, giấy nháp để lập vết chạy.
  • Máy tính có kết nối mạng (nếu lớp có điều kiện) để truy cập trang bài học số hoặc phần mềm lập trình mà lớp đang dùng; nếu không, dùng giấy và bảng mã giả.
  • Phiếu học tập số 1 (in hoặc chép vào vở).

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

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

Nhận diện lỗi trong chương trình mẫu

a) Mục tiêu

HS nhận ra chương trình mẫu cho kết quả sai và xác định được mục tiêu cần đạt, từ đó dẫn vào nhiệm vụ gỡ lỗi.

b) Nội dung

GV trình chiếu chương trình: s=0s=0, i=1i=1; lặp 33 lần: đặt s=is=i, tăng ii thêm 11; nói ss. HS trả lời hai câu hỏi: (1) Chương trình này cần tính gì? (2) Kết quả mong đợi là bao nhiêu và chương trình hiện tại nói ra những số nào?

c) Sản phẩm

HS xác định đúng mục tiêu là tổng 1+2+31+2+3 và kết quả mong đợi là 66; nhận ra chương trình hiện tại nói ra 11, 22, 33 nên chưa đúng. Từ đó HS nêu được nhiệm vụ: tìm bước sai và sửa để ra 66.

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 chiếu chương trình mẫu, đọc từng lệnh và nêu câu hỏi: “Chương trình này cần tính gì? Kết quả mong đợi là bao nhiêu? Chạy chương trình thì máy nói ra những số nào?”

    Học sinh

    HS lắng nghe, đọc thầm chương trình và suy nghĩ về câu hỏi.

  2. Giáo viên

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

    GV cho HS làm việc cá nhân khoảng 1 phút, sau đó hỏi nhanh bạn cạnh bàn để thống nhất đáp án.

    Học sinh

    HS tính tay 1+2+31+2+3 và đối chiếu với các số chương trình sẽ nói ra. Dự kiến HS trả lời: “Mục tiêu là 66, nhưng chương trình nói 11, 22, 33 nên sai.”

  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, ghi nhanh lên bảng hai cột: “Kết quả mong đợi” và “Kết quả chương trình”.

    Học sinh

    Đại diện HS trình bày: “Kết quả mong đợi là 66; chương trình ra 11, 22, 33 theo từng lượt.”

  4. Giáo viên

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

    GV chốt: Gỡ lỗi bắt đầu từ việc so sánh kết quả thực tế với kết quả mong đợi đã tính tay. Ghi tên bài: Gỡ lỗi.

    Học sinh

    HS ghi tên bài và nhiệm vụ của tiết học vào vở.

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

Hệ thống hoá quy trình gỡ lỗi qua vết chạy

a) Mục tiêu

HS nêu được các bước gỡ lỗi, phân biệt được lệnh Đặt với lệnh Tăng thêm và giải thích được vì sao chương trình mẫu ra 11, 22, 33.

b) Nội dung

Nhóm cặp đôi hoàn thành Phiếu học tập số 1: lập vết chạy ba lượt của chương trình lỗi, ghi giá trị ss và ii trước và sau mỗi lệnh; xác định bước đầu sai; rồi sắp xếp bốn bước gỡ lỗi theo thứ tự. GV nêu câu hỏi: (1) Lệnh nào làm mất tổng đã tính? (2) Vì sao cần ghi giá trị trước và sau mỗi lệnh? (3) Có cần thay đầu vào để chương trình “ra đúng” không?

c) Sản phẩm

Vết chạy đúng: lượt 1, trước s=0s=0, i=1i=1; sau lệnh đặt s=1s=1, sau tăng i=2i=2; nói 11. Lượt 2, trước s=1s=1, i=2i=2; sau đặt s=2s=2, tăng i=3i=3; nói 22. Lượt 3, trước s=2s=2, i=3i=3; sau đặt s=3s=3, tăng i=4i=4; nói 33. Kết luận: lệnh Đặt s=is=i ghi đè tổng cũ nên kết quả là 33 chứ không phải 66. Quy trình gỡ lỗi: (1) tái hiện lỗi bằng dữ liệu cụ thể; (2) theo dõi biến từng bước; (3) tìm bước đầu sai; (4) sửa nguyên nhân rồi thử lại cả ca cũ và ca biên. Không thay đầu vào để che lỗi.

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 (hoặc chiếu lên màn hình), hướng dẫn cách ghi vết chạy: mỗi lượt ghi giá trị ss, ii trước lệnh và sau lệnh. Nêu câu hỏi trọng tâm: “Lệnh nào ghi đè tổng đã tính?”

    Học sinh

    HS nhận phiếu, đọc hướng dẫn và chuẩn bị giấy nháp để lập vết chạy.

  2. Giáo viên

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

    GV đi quanh lớp, nhắc HS ghi đủ giá trị trước và sau mỗi lệnh, không ghi gộp; gợi ý khi HS chưa thấy chỗ sai: “Sau lượt 1, ss đang bằng bao nhiêu? Lượt 2 lệnh đặt có dùng tổng cũ không?”

    Học sinh

    Cặp đôi lập vết chạy ba lượt, khoanh tròn lệnh đặt s=is=i và trả lời: “Lệnh này gán lại ss bằng ii nên tổng cũ mất đi; sau ba lượt chỉ còn 33.”

  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 vết chạy trên bảng, cả lớp đối chiếu. GV hỏi thêm: “Vì sao gọi là ‘tái hiện’ lỗi?”

    Học sinh

    Đại diện cặp trình bày vết chạy. Dự kiến HS trả lời: “Tái hiện là chạy lại với dữ liệu cụ thể để thấy đúng lỗi; kết quả sai là 11, 22, 33 thay vì 66 ở lượt cuối.”

  4. Giáo viên

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

    GV chốt kiến thức: Lỗi do đặt sai lệnh (đặt thay vì tăng thêm) là lỗi ghép hoặc đặt lệnh sai. Vết chạy phải phân biệt giá trị trước và sau mỗi lệnh. Quy trình gỡ lỗi gồm tái hiện, theo dõi biến, tìm bước sai, sửa nguyên nhân và thử lại cả ca cũ lẫn ca biên. Không đổi đầu vào để che lỗi.

    Học sinh

    HS ghi vào vở bốn bước gỡ lỗi và công thức sửa đúng dự kiến: lệnh tăng thêm là s←s+is \leftarrow s + i.

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

Trắc nghiệm nhanh về nguyên nhân và cách kiểm tra

a) Mục tiêu

HS củng cố khái niệm lỗi logic, vai trò của thử lại và thứ tự các bước gỡ lỗi thông qua các bài tập đã cho.

b) Nội dung

HS làm các câu sau bằng cách giơ thẻ hoặc viết đáp án nhanh: Bài 2: Lệnh gây mất tổng trước đó là gì? A. Đặt s=is=i; B. Tăng ii thêm 11; C. Khởi tạo i=1i=1 trước lặp; D. Nói ss cuối. Bài 3: Sau khi sửa, kết quả ba lượt là gì? A. 33; B. 66; C. 44; D. 00. Bài 4: Chương trình ra số nhưng không đúng vẫn có lỗi logic. Đúng hay sai? Bài 5: Nên đổi yêu cầu thành kết quả đang sai để coi đã sửa. Đúng hay sai? Bài 6: Ghép khái niệm với tác dụng: Tái hiện, Vết biến, Thử lại. Bài 7: Sắp xếp các bước gỡ lỗi theo thứ tự trước–sau.

c) Sản phẩm

Đáp án: Bài 2: A (Đặt ghi đè thay vì cộng dồn). Bài 3: B (1+2+3=61+2+3=6). Bài 4: Đúng (không phải mọi lỗi đều làm dừng chương trình). Bài 5: Sai (phải giữ yêu cầu và sửa nguyên nhân). Bài 6: Tái hiện – tạo lại lỗi với đầu vào cụ thể; Vết biến – ghi giá trị theo bước; Thử lại – kiểm tra sau sửa và ca biên. Bài 7: Tính tay kết quả mong đợi là 66 → theo dõi chương trình lỗi qua ba lượt → xác định đặt s=is=i đang ghi đè tổng → đổi thành tăng ss thêm ii rồi thử lại.

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

  1. Giáo viên

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

    GV đọc lần lượt các câu hỏi bài 2 đến bài 7 trên máy chiếu, yêu cầu HS trả lời nhanh bằng cách giơ thẻ A, B, C, D, Đúng, Sai hoặc viết số thứ tự.

    Học sinh

    HS lắng nghe, chuẩn bị giấy nháp hoặc thẻ đáp án.

  2. Giáo viên

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

    GV để HS suy nghĩ khoảng 2 phút cho các câu 2 đến 5, sau đó cho cặp đôi kiểm tra chéo bài 6 và 7.

    Học sinh

    HS làm bài cá nhân, sau đó trao đổi cặp đôi. Dự kiến HS trả lời bài 7: “Tính tay trước, rồi theo dõi chương trình, rồi xác định lệnh sai, cuối cùng sửa và thử lại.”

  3. Giáo viên

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

    GV công bố đáp án từng câu, hỏi một HS giải thích vì sao chọn đáp án ở câu 4 và câu 5.

    Học sinh

    HS đối chiếu kết quả và giải thích. Dự kiến: “Câu 5 sai vì đổi yêu cầu là làm sai bài toán, không phải sửa lỗi.”

  4. Giáo viên

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

    GV nhấn mạnh: Chương trình không báo lỗi vẫn có thể sai logic; thử lại phải dùng đúng yêu cầu ban đầu.

    Học sinh

    HS sửa lại đáp án sai (nếu có) và ghi chú vào vở.

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

Thực hành sửa chương trình và thử lại ca biên

a) Mục tiêu

HS sửa chương trình lỗi theo đúng quy trình, giải thích được nguyên nhân và kiểm tra lại với ca cũ và ca biên.

b) Nội dung

Bài 8: Sửa chương trình s=0s=0, i=1i=1; lặp 33 lần: đặt s=is=i, tăng ii thêm 11; nói ss, sao cho mục tiêu là tổng 1+2+31+2+3. HS nộp sản phẩm hoặc mô tả đủ thao tác và kết quả, đồng thời thử lại với 00 lượt và 11 lượt. Bài 9: Một bạn đặt s=0s=0 bên trong mỗi lượt rồi tăng ss thêm ii. Hãy tính kết quả ba lượt và nêu cách sửa. Đây là bài thực hành do GV chấm theo thang điểm, HS không tự chấm.

c) Sản phẩm

Bài 8 – Vết lỗi: s=1,2,3s=1,2,3 nên ra 33. Sửa s←s+is \leftarrow s+i cho 1,3,61,3,6 nên ra 66. Ca biên: với 00 lượt, ss vẫn 00; với 11 lượt ra 11. Giữ lệnh khởi tạo s=0s=0 và i=1i=1 ngoài vòng lặp. Thang điểm: vết lỗi 0,30{,}3; nguyên nhân 0,20{,}2; sửa 0,30{,}3; ca biên 0,20{,}2. Bài 9 – Mỗi lượt xoá tổng cũ, kết quả ba lượt là 11, 22, 33 và cuối cùng ra 33. Sửa: đưa s=0s=0 ra trước vòng lặp để chỉ khởi tạo một lần; khi đó kết quả cuối là 66. Thang điểm: giải thích 0,40{,}4; sửa 0,40{,}4; kết quả 0,20{,}2.

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

  1. Giáo viên

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

    GV giao bài 8 và bài 9, nêu rõ yêu cầu: giữ nguyên yêu cầu tính tổng, thử lại với 00 lượt và 11 lượt, lưu sản phẩm bằng tên rõ nghĩa (ví dụ tenhocsinh_tong123_sua).

    Học sinh

    HS nhận đề, chọn cách thực hiện: sửa trên phần mềm lập trình đang dùng hoặc viết mã giả trên giấy.

  2. Giáo viên

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

    GV đi kiểm tra, nhắc HS dùng lệnh Tăng thêm để cộng dồn và kiểm tra ca biên trước khi nộp. GV cũng nhắc không sửa đầu vào để che lỗi.

    Học sinh

    HS sửa lệnh đặt s=is=i thành s←s+is \leftarrow s+i, chạy thử, ghi kết quả và ca biên. Dự kiến HS trả lời: “Sau sửa ra 11, 33, 66; với 00 lượt thì ss vẫn là 00.”

  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 vết chạy đã sửa và cách kiểm tra ca biên; GV ghi điểm theo thang trên bảng.

    Học sinh

    HS trình bày: “Nguyên nhân là lệnh đặt ghi đè tổng; sửa bằng cộng dồn; thử ca biên 00 và 11 lượt cho kết quả đúng.”

  4. Giáo viên

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

    GV nhận xét về nguyên nhân, cách sửa và việc thử lại; nhấn mạnh: giữ lệnh khởi tạo ngoài vòng lặp để không bị đặt lại tổng.

    Học sinh

    HS ghi vào vở: kiểm tra cả ca cũ và ca biên, lưu sản phẩm rồi mở lại để kiểm tra.

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

Vận dụng gỡ lỗi cho một chương trình do em tự viết

a) Mục tiêu

HS vận dụng quy trình gỡ lỗi vào một chương trình thực tế có lỗi điều kiện, tự lập vết chạy và báo cáo cách sửa.

b) Nội dung

HS được giao nhiệm vụ về nhà (có thể bắt đầu trên lớp nếu còn thời gian): tự viết một chương trình đơn giản có ít nhất một lệnh lặp và một lệnh điều kiện, cố tình để một lỗi điều kiện (ví dụ dùng sai dấu so sánh). Sau đó HS tái hiện lỗi với dữ liệu giả định, lập vết chạy, sửa, thử lại với ca cũ và ca biên, rồi viết báo cáo ngắn. Chỉ dùng dữ liệu giả định, không dùng dữ liệu cá nhân của người khác.

c) Sản phẩm

Sản phẩm gồm: (1) mã hoặc mã giả chương trình trước và sau khi sửa; (2) vết chạy ghi giá trị trước và sau mỗi lệnh; (3) đoạn mô tả nguyên nhân lỗi thuộc một trong ba loại: sai thuật toán, sai điều kiện, ghép hoặc đặt lệnh sai; (4) kết quả thử lại với ca cũ và ca biên. Tệp được lưu bằng tên rõ nghĩa và được kiểm tra lại sau khi mở.

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 yêu cầu sản phẩm và tiêu chí chấm như trên; nhắc HS ghi rõ dữ liệu giả định đã dùng.

    Học sinh

    HS ghi yêu cầu vào vở, chọn đề tài chương trình nhỏ của mình.

  2. Giáo viên

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

    GV hướng dẫn HS nếu gặp khó khăn khi lập vết chạy, gợi ý dùng bảng ba cột: lượt, giá trị trước lệnh, giá trị sau lệnh.

    Học sinh

    HS thực hiện trên máy hoặc giấy. Dự kiến HS trả lời khi tự kiểm tra: “Lỗi do dùng sai dấu so sánh nên chương trình dừng sớm hoặc lặp thừa; sau sửa, ca biên vẫn chạy đúng.”

  3. Giáo viên

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

    GV yêu cầu HS nộp sản phẩm đúng hạn và chọn 2 bài để trình bày trên lớp ở tiết sau.

    Học sinh

    HS nộp sản phẩm và chuẩn bị báo cáo ngắn về nguyên nhân và cách sửa.

  4. Giáo viên

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

    GV nhận xét chung và chốt: gỡ lỗi là quy trình lặp lại gồm tái hiện, theo dõi biến, sửa nguyên nhân và thử lại; không che lỗi bằng cách đổi đầu vào.

    Học sinh

    HS tự đánh giá sản phẩm theo tiêu chí và ghi một điều cần cải thiện.

Phiếu học tập

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

Chương trình lỗi: s=0s=0, i=1i=1; lặp 33 lần: đặt s=is=i, tăng ii thêm 11; nói ss.
Nhiệm vụ 1: Lập vết chạy ba lượt, ghi giá trị trước và sau mỗi lệnh.

  • Lượt 1: trước ss = ?, ii = ?; sau lệnh đặt ss = ?; sau lệnh tăng ii = ?; nói ?
  • Lượt 2: trước ss = ?, ii = ?; sau lệnh đặt ss = ?; sau lệnh tăng ii = ?; nói ?
  • Lượt 3: trước ss = ?, ii = ?; sau lệnh đặt ss = ?; sau lệnh tăng ii = ?; nói ?
    Nhiệm vụ 2: Lệnh nào ghi đè tổng đã tính? Vì sao kết quả cuối là ?, trong khi mục tiêu là 66?
    Nhiệm vụ 3: Sắp xếp bốn bước gỡ lỗi theo thứ tự: tái hiện lỗi; theo dõi biến từng bước; sửa nguyên nhân và thử lại; tìm bước đầu sai.
    Nhiệm vụ 4: Viết lại lệnh sửa đúng và ghi kết quả ba lượt sau khi sửa.

Hướng dẫn về nhà

  • Hoàn thiện sản phẩm vận dụng: tự viết một chương trình nhỏ có lệnh lặp và lệnh điều kiện, cố tình để một lỗi, rồi gỡ lỗi theo đúng bốn bước.
  • Lập vết chạy cho mỗi lượt, ghi giá trị trước và sau từng lệnh; ghi chú rõ dữ liệu giả định đã dùng.
  • Thử lại chương trình đã sửa với ca cũ và ca biên, ghi kết quả vào bảng ngắn trong báo cáo.
  • Lưu tệp bằng tên rõ nghĩa (ví dụ tenhocsinh_gowloi_lop8), mở lại để kiểm tra trước khi nộp.
  • Ôn lại bài tập trắc nghiệm trên trang bài học số NeoEdu: neoedu.vn/learn/8/informatics/bai-15-go-loi, tự chấm và ghi lại câu sai để hỏi GV ở tiết sau.

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.