Giáo án NLS Tin học 11 KHMT kết nối Bài 23: Kiểm thử và đánh giá chương trình

Giáo án NLS Tin học 11 (Khoa học máy tính) kết nối tri thức Bài 23: Kiểm thử và đánh giá chương trình. Với năng lực số được tích hợp, tiết học sẽ giúp học sinh làm quen và ứng dụng công nghệ, tin học. KHBD này là file word, tải về dễ dàng. Là mẫu giáo án mới nhất năm 2026 để giáo viên dạy tốt môn Tin học 11.

Xem: => Giáo án tích hợp NLS Tin học 11 Khoa học máy tính Kết nối tri thức

Ngày soạn: .../.../...

Ngày dạy: .../.../...

BÀI 23: KIỂM THỬ VÀ ĐÁNH GIÁ CHƯƠNG TRÌNH

I. MỤC TIÊU

1. Kiến thức

Học xong bài này, HS đạt các yêu cầu sau:

  • Biết được vai trò của kiểm thử làm tăng độ tin cậy của chương trình nhưng chưa chứng minh được tính đúng của chương trình.
  • Biết được các tiêu chí đánh giá hiệu quả và tính đúng của chương trình.

2. Năng lực 

Năng lực chung:

  • Tự chủ và tự học: biết lắng nghe, tự giác học tập và hoàn thành nhiệm vụ; tích cực tham gia các hoạt động học tập trong lớp.
  • Giao tiếp và hợp tác: có thói quen trao đổi, giúp đỡ nhau trong học tập; biết cùng nhau hoàn thành nhiệm vụ học tập theo sự hướng dẫn của GV.
  • Giải quyết vấn đề và sáng tạo: ứng dụng các kiến thức đã học vào thực tế, phát triển khả năng giải quyết vấn đề có tính tích hợp liên môn giữa Tin học với các môn học khác.

Năng lực riêng: 

  • Biết được vai trò của kiểm thử làm tăng độ tin cậy của chương trình nhưng chưa chứng minh được tính đúng của chương trình.
  • Biết được các tiêu chí đánh giá hiệu quả và tính đúng của chương trình.
  • Thực hiện được lập trình tính thời gian chạy của chương trình.

Năng lực số:

  • 6.2.NC1a: Sử dụng được các công cụ AI tạo sinh (ChatGPT, Copilot) để sinh các bộ dữ liệu kiểm thử (Test cases) bao quát các trường hợp biên, trường hợp ngoại lệ và đề xuất giải pháp tối ưu hóa mã nguồn.
  • 3.4.NC1a: Viết được chương trình kiểm thử tự động đơn giản hoặc sử dụng thư viện đo thời gian (như time trong Python) để đánh giá hiệu năng thuật toán.
  • 2.3.NC1b: Phân tích và lựa chọn được các bộ dữ liệu mẫu đại diện để đánh giá tính đúng đắn của chương trình một cách khách quan.

3. Phẩm chất

  • Trách nhiệm, tính cẩn thận khi làm việc nhóm, phẩm chất làm việc chăm chỉ, chuyên cần để hoàn thành một nhiệm vụ.

II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU 

1. Đối với GV 

  • SGK, tài liệu giảng dạy, giáo án PPT.
  • Phòng thực hành máy tính kết nối Internet.
  • Máy chiếu.
  • Video AI tạo bằng công cụ AI được dùng để khởi động bài học.

2. Đối với HS 

  • SGK, SBT Tin học 11, vở ghi chép.

III. TIẾN TRÌNH DẠY HỌC

1. HOẠT ĐỘNG KHỞI ĐỘNG 

a) Mục tiêu: GV khơi gợi sự tò mò của HS đến việc đánh giá tính tối ưu, hiệu quả của chương trình.

b) Nội dung: GV tổ chức trả lời câu hỏi ở phần Mở đầu, thông qua đó làm quen với kiểm thử và đánh giá chương trình.

c) Sản phẩm: Dựa vào kiến thức của bản thân, HS thực hiện yêu cầu GV đưa ra. 

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

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

- GV yêu cầu xem video AI được thiết kế để phục vụ bài dạy và trả lời câu hỏi xuất hiện trong video đó.

- GV dẫn dắt, đặt vấn đề cho HS: Trong các bài trước em đã học cách thiết kế thuật toán cho một số bài toán như bài toán tìm kiếm, bài toán sắp xếp và thiết lập chương trình thực hiện thuật toán đó. Một bài toán có thể có nhiều thuật toán khác nhau và do đó có thể có nhiều chương trình khác nhau cùng giải quyết một bài toán.

- GV đặt câu hỏi yêu cầu HS trả lời:

+ Làm thế nào để biết trong các thuật toán giải cùng một bài toán thì thuật toán nào là tốt nhất?

+ Có những tiêu chí nào để đánh giá tính "tối ưu" của một thuật toán?

Bước 2: HS thực hiện nhiệm vụ học tập:

- HS xem video và suy nghĩ câu trả lời.

- GV hướng dẫn, hỗ trợ HS (nếu cần thiết).

Bước 3: Báo cáo kết quả hoạt động, thảo luận: 

- GV gọi đại diện một số HS trả lời.

- HS khác nhận xét, bổ sung.

Bước 4: Đánh giá kết quả thực hiện:

- GV nhận xét, đánh giá và kết luận.

[6.1.NC1a: HS sử dụng công cụ AI hoặc sản phẩm số do GV cung cấp để tiếp nhận thông tin, trả lời câu hỏi đơn giản.

2.1.NC1a: HS thực hiện các tương tác cơ bản với học liệu số (xem video, trả lời câu hỏi trên môi trường số).

1.1.NC1a: HS tiếp cận, khai thác được thông tin từ nguồn học liệu số dưới sự hướng dẫn của GV.]

- GV nhận xét câu trả lời của HS. Trên cơ sở đó, GV dẫn dắt HS vào bài học mới: Bài 23: Kiểm thử và đánh giá chương trình.

2. HOẠT ĐỘNG HÌNH THÀNH KIẾN THỨC

Hoạt động 1: Tìm hiểu vai trò của kiểm thử chương trình

a) Mục tiêu: Giúp HS hiểu được các phương pháp kiểm thử đã học ở lớp 10 không chứng minh tính đúng của thuật toán hay chương trình, mà chỉ có thể làm tăng độ tin cậy của chương trình. Sử dụng được công cụ số để tìm hiểu kiến thức.

b) Nội dung: GV tổ chức cho HS thực hiện theo các hoạt động trong SGK và nêu được ý nghĩa của kiểm thử chương trình.

c) Sản phẩm: HS nêu được ý nghĩa của kiểm thử chương trình.

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

HOẠT ĐỘNG CỦA GV VÀ HSSẢN PHẨM DỰ KIẾNNLS

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

- GV đặt vấn đề theo Hoạt động 1 trang 106 SGK: Ở lớp 10, em đã học một số phương pháp kiểm thử chương trình. Em hãy thảo luận với các bạn về các phương pháp kiểm thử sau, nêu ý nghĩa của chúng trong việc đánh giá độ tin cậy và chứng minh tính đúng của chương trình:

1. Tạo các bộ dữ liệu kiểm thử (test) để kiểm tra dữ liệu đầu ra có chính xác hay không.

2. Thiết lập điểm dừng hoặc cho chương trình chạy theo từng lệnh để kiểm tra và tìm ra lỗi (bug) của chương trình.

3. Thực hiện in dữ liệu trung gian trong quá trình kiểm thử để tìm ra lỗi của chương trình (nếu có).

- Trên cơ sở kiến thức vừa nêu, GV yêu cầu HS nêu ý nghĩa của kiểm thử chương trình.

- GV đưa ra một đoạn code Python tính tổng đơn giản nhưng tiềm ẩn lỗi (ví dụ: chia cho 0 hoặc sai công thức với số âm). Sau đó yêu cầu HS không chạy code, hãy đọc, đoán lỗi và nhờ AI “review code”.

- Dựa vào ví dụ vừa nêu ở Hoạt động 1, GV yêu cầu HS trả lời câu hỏi củng cố trang 107 SGK:

+ Câu 1: Giả sử em thiết lập chương trình giải bài toán nào đó. Em đã kiểm thử với 10 bộ dữ liệu và tất cả các kết quả đều đúng. Khi đó có thể kết luận chương trình đó đúng hay chưa?

+ Câu 2: Giả sử một chương trình kiểm thử với 10 bộ dữ liệu cho kết quả 9 lần, 1 lần sai. Chương trình đó là sai hay đúng?

Bước 2: HS thực hiện nhiệm vụ học tập: 

- HS thảo luận nhóm, đọc SGK và trả lời câu hỏi.

- HS sao chép đoạn mã mẫu vào Chatbot AI và nhập lệnh: “Hãy đóng vai một Tester (Kiểm thử viên), phân tích đoạn code sau và chỉ ra các lỗi tiềm ẩn (lỗi logic, lỗi biên) mà lập trình viên có thể đã bỏ qua.”

Bước 3: Báo cáo kết quả hoạt động, thảo luận: 

- Đại diện nhóm HS trình bày.

- HS đọc kết quả phân tích của AI và thảo luận về tầm quan trọng của việc phát hiện lỗi sớm.

*Câu hỏi củng cố trang 107 SGK:

+ Câu 1: Chưa thể kết luận chương trình đó đúng hay sai.

+ Câu 2: Có thể kết luận ngay chương trình đó là sai.

- Các nhóm khác nhận xét, bổ sung cho nhóm bạn.

Bước 4: Đánh giá kết quả thực hiện: 

- GV nhận xét, đánh giá kết quả thảo luận của HS.

1. Vai trò của kiểm thử chương trình

- Kiểm thử sẽ giúp tăng độ tin cậy của chương trình nhưng chưa chứng minh được tính đúng của thuật toán và chương trình.

- Một thuật toán đúng chỉ có thể được chứng minh là đúng bằng các công cụ toán học (và khoa học máy tính), còn kiểm thử bằng các bộ test sẽ không được coi là phương pháp chứng minh tính đúng của thuật toán, mà chỉ là biện pháp làm tăng độ tin cậy của chương trình.

6.2.NC1a: Sử dụng phần mềm hỗ trợ (AI) để rà soát, kiểm tra và phát hiện lỗi (Debugging) trong giải pháp kỹ thuật.

Hoạt động 2: Tìm hiểu cách kiểm tra tính đúng của chương trình

a) Mục tiêu: Giúp HS biết được các cách có thể sử dụng để chứng minh tính đúng của thuật toán và chương trình.

b) Nội dung: GV tổ chức cho HS thực hiện theo các hoạt động trong SGK và nêu được cách kiểm tra tính đúng của chương trình.

c) Sản phẩm: HS nêu các cách có thể sử dụng để chứng minh tính đúng của thuật toán và chương trình.

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

…………………………………………..

…………………………………………..

…………………………………………..
 

Hoạt động 3: Tìm hiểu những tiêu chí đánh giá tính hiệu quả của chương trình

a) Mục tiêu:

- Giúp HS biết và hiểu được hai tiêu chí quan trọng nhất để đánh giá hiệu quả thuật toán và chương trình là thời gian chạy T(n) và không gian bộ nhớ sử dụng S(n).

- Sử dụng được công cụ số để tìm hiểu kiến thức.

b) Nội dung: GV tổ chức cho HS thực hiện theo các hoạt động trong SGK và nêu được các tiêu chí đánh giá tính hiệu quả của chương trình.

c) Sản phẩm: HS nêu được hai tiêu chí quan trọng nhất để đánh giá hiệu quả thuật toán và chương trình.

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

HOẠT ĐỘNG CỦA GV VÀ HSSẢN PHẨM DỰ KIẾNNLS

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

- GV đặt về đề dựa vào nội dung Hoạt động 3 trang 108 SGK: Thảo luận về các tiêu chí đánh giá tính hiệu quả của thuật toán hay chương trình giải một bài toán.

1. Tiêu chí quan trọng nhất là thời gian chạy chương trình phải nhanh, không cần quan tâm đến không gian bộ nhớ sử dụng của chương trình.

2. Tiêu chí tiết kiệm bộ nhớ là quan trọng nhất, sau đó mới đến thời gian chạy chương trình.

3. Các tiêu chí 1 và 2 không quan trọng mà quan trọng là chương trình được viết một cách đơn giản, rõ ràng, dễ hiểu và áp dụng.

- GV yêu cầu các nhóm thảo luận, nghiên cứu SGK để tìm hiểu về đánh giá hiệu quả chương trình và trả lời câu hỏi:

+ Hiệu quả hay tính tối ưu của chương trình được xem xét trên cơ sở nào? 

- GV yêu cầu các nhóm thực hiện đoạn chương trình tính thời gian chạy cụ thể của chương trình mô tả thuật toán chèn theo SGK.

- GV chú ý: Thời gian chạy và không gian tính toán của thuật toán được kí hiệu là T(n) và S(n), trong đó n là kích thước đầu vào của bài toán. Nếu đầu vào là 1 dãy thì n là độ dài dãy đã cho.

- Trên cơ sở kiến thức vừa nêu, GV yêu cầu HS rút ra những tiêu chí đánh giá tính hiệu quả của chương trình.

- GV đặt vấn đề: Hãy viết hai đoạn code cùng giải bài toán “Tính tổng từ 1 đến n”.

+ Code A: Dùng vòng lặp for (Độ phức tạp O(n)).

+ Code B: Dùng công thức n*(n+1)/2 (Độ phức tạp O(1)).

Sau đó yêu cầu các nhóm sử dụng AI để phân tích hiệu quả thuật toán.

- Dựa vào nội dung vừa nêu, GV yêu cầu HS trả lời câu hỏi củng cố trang 110 SGK:

+ Hai tiêu chí đánh giá độ phức tạp tính toán quan trọng nhất là gì?

Bước 2: HS thực hiện nhiệm vụ học tập: 

- HS thảo luận nhóm, đọc SGK và trả lời câu hỏi.

- HS copy hai đoạn code vào Chatbot và nhập lệnh: “So sánh độ phức tạp thuật toán (Time Complexity) của 2 đoạn code này và giải thích tại sao đoạn 2 chạy nhanh hơn khi n rất lớn?”

Bước 3: Báo cáo kết quả hoạt động, thảo luận: 

- Đại diện nhóm HS trình bày.

*Câu hỏi củng cố trang 110 SGK:

+ Hai tiêu chí đánh giá chính độ phức tạp thuật toán là thời gian T(n) và không gian bộ nhớ S(n).

- Các nhóm khác nhận xét, bổ sung cho nhóm bạn.

Bước 4: Đánh giá kết quả thực hiện: 

- GV nhận xét, đánh giá kết quả thảo luận của HS.

- GV tổng kết kiến thức và yêu cầu HS ghi chép vào vở.

3. Đánh giá hiệu quả chương trình

- Tính hiệu quả của chương trình/thuật toán được xem xét trên cơ sở đánh giá độ phức tạp tính toán. Hai loại độ phức tạp tính toán phổ biến nhất đó là:

+ Độ phức tạp thời gian được xác định là thời gian thực hiện chương trình/thuật toán.

+ Độ phức tạp không gian được xác định là tài nguyên của máy tính trong đó có phần bộ nhớ được sử dụng để thực hiện chương trình.

- Ngoài ra để đánh giá hiệu quả chương trình đôi khi người ta còn quan tâm tới các tiêu chí như tính dễ hiểu, rõ ràng, ngắn gọn, dễ bảo trì, dễ cài đặt,…của chương trình.

- Độ phức tạp tính toán quan trọng nhất là độ phức tạp thời gian có liên quan trực tiếp tới các câu lệnh được thực hiện trong chương trình/thuật toán.

- 3.4.NC1a: Vận dụng kỹ năng lập trình để kiểm thử và tinh chỉnh chương trình dựa trên kết quả thực nghiệm.

- 6.2.NC1a: Sử dụng AI để giải thích các khái niệm trừu tượng (Độ phức tạp thuật toán) thông qua ví dụ cụ thể.

3. HOẠT ĐỘNG LUYỆN TẬP

a) Mục tiêu: HS củng cố kiến thức về kiểm thử và đánh giá chương trình.

b) Nội dung: HS trả lời câu hỏi trắc nghiệm và hoàn thành bài tập phần Luyện tập SGK trang 103.

c) Sản phẩm học tập: HS trả lời câu hỏi về kiểm thử và đánh giá chương trình.

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

…………………………………………..

…………………………………………..

…………………………………………..
 

4. HOẠT ĐỘNG VẬN DỤNG

a) Mục tiêu: HS thực hiện làm bài tập Vận dụng để nắm vững kiến thức.

b) Nội dung: HS vận dụng kiến thức đã học và hiểu biết của bản thân để làm bài tập Vận dụng trang 110 SGK.

c) Sản phẩm: Câu trả lời nội dung Vận dụng.

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

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

- GV yêu cầu HS hoàn thành bài tập phần Vận dụng trang 110 SGK.

Bài 1. Cho dãy các số A = [3, 1, 0, 10, 13, 16, 9, 7, 11].

a) Viết chương trình mô tả thuật toán tìm kiếm phần tử C = 9 của dãy trên. Tính thời gian chính xác thực hiện công việc tìm kiếm này.

b) Giả sử dãy A ở trên đã được sắp xếp theo thứ tự tăng dần: A = [0, 1, 3, 5, 7, 9, 10, 11, 13, 16]. Viết chương trình tìm kiếm phần tử C = 9 theo thuật toán tìm kiếm nhị phân. Tính thời gian thực hiện thuật toán. So sánh với kết quả tìm kiếm ở câu a.

Bài 2. Viết ba chương trình mô phỏng các thuật toán sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt mà em đã biết. Cho biết thời gian thực hiện các chương trình trên với bộ dữ liệu đầu vào là dãy A = [3, 1, 0, 10, 13, 16, 9, 7, 5, 11].

Bước 2: HS thực hiện nhiệm vụ học tập

- HS tự tìm hiểu, đưa ra ý kiến.

- GV điều hành, quan sát, hỗ trợ.

Bước 3: Báo cáo kết quả hoạt động, thảo luận

- HS trình bày kết quả.

Kết quả:

Bài 1: Chương trình tính thời gian thực tế của thuật toán tìm kiếm tuần tự trên cùng  một dãy có thể như sau:

1        from time import perf_counter

2        def LinearSearch(A,K):

3                 for i in range(len(A)):

4                           if A[i] == K:

5                                    return i

6                 return -1

7        deft BinarySearch(A,K):

8                 left = 0

9                 right = len(A) – 1

10               while left <= right:

11                         mid = (left + right)//2

12                         if A[mid] == K:

13                                  return mid

14                         elif A[mid] < K:

15                                  left = mid + 1

16                         else:

17                                  right = mid – 1

18               return -1

19

20      A = [3, 1, 0, 10, 13, 16, 9, 7, 5, 11]

21      K = 9

22      t1 = perf_counter()

23      LinearSearch(A,K)

24      t2 = perf_counter()

25      print("Tìm kiếm tuần tự:", round(t2-t1,50))

26      B = sorted(A)

27      t1 = perf_counter()

28      BinarySearch(B,K)

29      t2 = perf_counter()

30      print("Tìm kiếm nhị phân:", round(t2-t1,50))

Bài 2: Chương trình gộp tính thời gian thực tế cho ba thuật toán sắp xếp chèn, sắp xếp chọn, sắp xếp nổi bọt như sau:

…………………………………………..

…………………………………………..

…………………………………………..
 

=> Giáo án Khoa học máy tính 11 kết nối Bài 23: Kiểm thử và đánh giá chương trình

Thông tin tải tài liệu:

Phía trên chỉ là 1 phần, tài liệu khi tải sẽ có đầy đủ. Xem và tải: Giáo án tích hợp NLS Tin học 11 Khoa học máy tính Kết nối tri thức cả năm - Tại đây

Tài liệu khác

Tài liệu của bạn

Tài liệu mới cập nhật

Tài liệu môn khác

Chat hỗ trợ
Chat ngay