Giáo án NLS Tin học 11 KHMT kết nối Bài 19: Bài toán tìm kiếm
Giáo án NLS Tin học 11 (Khoa học máy tính) kết nối tri thức Bài 19: Bài toán tìm kiếm. 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 19: BÀI TOÁN TÌM KIẾM
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 ý nghĩa của bài toán tìm kiếm trên thực tế.
- Biết và thực hiện được chương trình tìm kiếm tuần tự và tìm kiếm nhị phân.
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 ý nghĩa của bài toán tìm kiếm trên thực tế.
- Biết và thực hiện được chương trình tìm kiếm tuần tự và tìm kiếm nhị phân.
- Thực hiện được các chương trình tìm kiếm tuần tự và tìm kiếm nhị phân trên một mảng dữ liệu tuyến tính.
Năng lực số:
- 1.2.NC1a: Phân tích đặc điểm dữ liệu đầu vào (đã sắp xếp hay chưa) để lựa chọn thuật toán tìm kiếm phù hợp tối ưu.
- 6.2.NC1a: Sử dụng Chatbot AI để mô phỏng từng bước chạy của thuật toán (Trace Table) và sinh dữ liệu lớn (Big Data) để kiểm chứng hiệu năng.
- 5.2.NC1a: Hiện thực hóa thuật toán thành mã nguồn Python chạy được.
- 6.1.NC1a: Phát hiện và xử lý các lỗi logic thường gặp trong thuật toán tìm kiếm nhị phân (như vòng lặp vô hạn, tính sai chỉ số mid).
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 giáo viên
- SGK, tài liệu giảng dạy, giáo án PPT.
- Máy tính, 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 học sinh:
- SGK, SBT Tin học 11, vở ghi chép.
- Tài liệu, thiết bị có liên quan đến nội dung bài học.
- Thiết bị di động/máy tính có kết nối Internet (sử dụng theo nhóm).
III. TIẾN TRÌNH DẠY HỌC
A. HOẠT ĐỘNG KHỞI ĐỘNG
a) Mục tiêu: HS làm quen với bài toán tìm kiếm thông qua một trò chơi quen thuộc.
b) Nội dung: GV tổ chức cho HS chơi trò chơi/trả lời câu hỏi ở phần Mở đầu, thông qua trò chơi để giới thiệu bài toán chính sẽ được học trong bài là bài toán tìm kiếm.
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: Giả sử có một bộ thẻ, trên mỗi thẻ in một số bất kì. Các thể được xếp úp mặt xuống bàn theo thứ tự tăng dần của các số ghi trên thẻ. Người chơi mỗi lần chỉ được lật một thẻ để xe giá trị số in trên đó. Nếu giá trị số in trên thẻ lật lên bằng số K cho trước thì trò chơi kết thúc. Bạn An đã chơi bằng cách lật lần lượt từng thẻ từ đầu đến cuối.
- GV đặt câu hỏi yêu cầu HS trả lời: Theo em, An có chắc chắn xác định được thẻ nào in số K không? Em có cách nào xác định được thẻ in số K nhanh hơn An không?
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.
- HS lắng nghe, suy nghĩ câu trả lời.
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 19: Bài toán tìm kiếm
B. HOẠT ĐỘNG HÌNH THÀNH KIẾN THỨC
Hoạt động 1: Tìm hiểu bài toán tìm kiếm trên thực tế
a) Mục tiêu: Giúp HS hiểu được mô hình bài toán tìm kiếm tổng quát, biết được ý nghĩa quan trọng của bài toán tìm kiếm.
b) Nội dung: GV tổ chức cho HS thực hiện nhiệm vụ theo nhóm và tìm hiểu được mô hình bài toán tìm kiếm trong thực tế.
c) Sản phẩm: HS nêu được ý nghĩa của bài toán tìm kiếm.
d) Tổ chức thực hiện:
| HOẠT ĐỘNG CỦA GV VÀ HS | SẢN PHẨM DỰ KIẾN | NLS |
Bước 1: GV chuyển giao nhiệm vụ: - GV chia lớp thành 6 nhóm. - GV yêu cầu HS giao nhiệm vụ cho các nhóm theo Hoạt động 1 trang 89 SGK: Với các bài toán tìm kiếm sau, hãy thảo luận về miền dữ liệu và khả năng các kết quả có thể tìm được của bài toán Nhóm 1,4: Tìm hiểu Bài toán 1. Em cần tìm hình ảnh các cây hoa hồng đẹp trên Internet để đưa vào bài trình Nhóm 2,5: Tìm hiểu Bài toán 2. Em cần tìm một tệp văn bản có tên bai-hoc-1.docx trên máy tính của em những đã lâu rồi chưa sử dụng lại. Nhóm 3,6: Tìm hiểu Bài toán 3. Em cần tìm 5 bạn học sinh có điểm trung bình các bài thi cao nhất trong kì thi Olympic Tin học năm 2020 của thành phố Hà Nội. - GV đặt câu hỏi cho các nhóm và yêu cầu HS trả lời: + Vì sao cần tìm kiếm. + Miền tìm kiếm là gì? Dữ liệu tìm kiếm là gì? + Nghiệm nếu tìm thấy là gì? + Mô tả một kết quả có thể của nghiệm. + Nêu cách tìm kiếm kiểm tra lời giải (nếu có). - Sau khi HS trả lời, GV kết luận về nội dung bài toán tìm kiếm trên thực tế. - 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 90 SGK: Em hãy xác định miền dữ liệu và nghiệm có thể của các bài toán tìm kiếm sau. + Câu 1: Bài toán tìm đường đi từ nhà em đến trường học dựa trên bản đồ số. + Câu 2: Bài toán tìm tất cả các trường trung học phổ thông (tên trường, địa chỉ) ở quận (huyện) em đang cư trú. 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. 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. *Hoạt động 1 trang 90 SGK: Bài toán 1. Miền dữ liệu là tất cả các ảnh có trên các máy tính kết nối mạng Internet. Kết quả là các ảnh hình hoa hồng. Bài toán 2. Miền dữ liệu là các tệp văn bản có trên đĩa cứng máy tính của em. Kết quả là tệp có tên bai-hoc-1.docx. Bài toán 3. Miền dữ liệu là danh sách học sinh vvaf điểm các bài dự thi của kì thi Olympic Tin học thành phố. Kết quả là danh sách 5 bạn có thành tích cao nhất tính theo điểm trung bình. *Câu hỏi củng cố trang 90 SGK: + Câu 1: Miền dữ liệu là tập hợp các vị trí và đường phố, hay nói cách khác là dữ liệu bản đồ số của địa phương nơi em đang sống. Nghiệm có thể là một đường đi từ nhà em đến trường. Thể hiện nghiệm có thể hiện trên bản đồ hoặc dãy các bước đi cụ thể từ nhà em đến trường. + Câu 2: Miền dữ liệu là danh sách tất cả các trường học (thuộc các cấp khác nhau), có thể cả các cơ quan, công ti, văn phòng tại địa phương em đang sống. Nghiệm sẽ là một danh sách các trường Trung học phổ thông trên địa bàn, hoặc có thể là các vị trí được đánh dấu trên bả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. | 1. Bài toán tìm kiếm trên thực tế - Có thể nói tìm kiếm là một trong những bài toán quan trọng nhất của Tin học. Việc thiết kế thuật toán tìm kiếm sẽ phụ thuộc vào cấu trúc của miền dữ liệu cần tìm kiếm và tiêu chí cụ thể của bài toán tìm kiếm. | - 1.2.NC1a: HS xác định được miền dữ liệu (phạm vi tìm kiếm). - 6.1.NC1a: Chuyển đổi các yêu cầu thực tế thành bài toán tin học tổng quát. |
Hoạt động 2: Tìm hiểu tìm kiếm tuần tự
a) Mục tiêu: Giúp HS biết và thực hiện được các bước của thuật toán tìm kiếm tuần tự.
b) Nội dung: GV tổ chức cho HS thực hiện nhiệm vụ theo nhóm và nêu được các bước của thuật toán tìm kiếm tuần tự.
c) Sản phẩm: HS nêu được các bước của thuật toán tìm kiếm tuần tự.
d) Tổ chức thực hiện:
…………………………………………..
…………………………………………..
…………………………………………..
Hoạt động 3: Tìm hiểu tìm kiếm nhị phân
a) Mục tiêu: Giúp HS biết và hiểu được các bước thực hiện của thuật toán tìm kiếm nhị phân.
b) Nội dung: GV tổ chức cho HS thực hiện nhiệm vụ theo nhóm và nêu được các bước của thuật toán tìm kiếm nhị phân.
c) Sản phẩm: HS nêu được các bước của thuật toán tìm kiếm nhị phân.
d) Tổ chức thực hiện:
| HOẠT ĐỘNG CỦA GV VÀ HS | SẢN PHẨM DỰ KIẾN | NLS |
Bước 1: GV chuyển giao nhiệm vụ: - GV yêu cầu các nhóm trả lời câu hỏi dựa theo Hoạt động 3 trang 91 SGK: Cho trước một dãy số đã được sắp xếp theo thứ tự tăng dần. Hãy đọc, quan sát và thảo luận cách làm sau đây để hiểu được thuật toán tìm kiếm nhị phân, biết được tính ưu việt của thuật toán này so với thuật toán tìm kiếm tuần tự trên một dãy các phần tử đã sắp xếp. - GV yêu cầu các nhóm nghiên cứu SGK và trả lời các câu hỏi sau: + Nêu ý tưởng của thuật toán tìm kiếm nhị phân trên dãy các phần tử đã được sắp xếp (tăng dần hoặc giảm dần). + Nêu các bước thực hiện chi tiết của thuật toán. + Vì sao thuật toán này lại nhanh hơn thuật toán tìm kiếm tuần tự đã nêu trong hoạt động 1. + Nêu cách mô tả thuật toán và cài đặt chương trình trên Python. - GV tổ chức cho HS tìm hiểu ví dụ các bước của thuật toán tìm kiếm nhị phân. - Trên cơ sở kiến thức vừa nêu, GV yêu cầu HS khái quát về thuật toán tìm kiếm nhị phân. - GV đặt vấn đề: Với danh sách 10 số, em thấy thuật toán tìm kiếm nhị phân nhanh hơn không đáng kể. Nhưng nếu danh sách là dân số (100 triệu người) thì sao? - Dựa vào ví dụ vừa nêu ở Hoạt động 3, GV yêu cầu HS trả lời câu hỏi củng cố trang 93 SGK: Cho dãy A = [0, 4, 9, 10, 12, 14, 17, 18, 20, 31, 34, 67]. + Câu 1: Với thuật toán tìm kiếm tuần tự, cần duyệt bao nhiêu phần tử để tìm ra phần tử có giá trị bằng 34? + Câu 2: Với thuật toán tìm kiếm nhị phân, cần duyệt bao nhiêu phần tử để tìm ra phần tử có giá trị bằng 34? + Câu 3: Thay vì lần lượt các thẻ từ đầu đến cuối, bạn Minh đã chơi như sau: Đầu tiên Minh lật thẻ ở giữa, sau đó tùy theo số ghi trên thẻ là lớn hơn hay nhỏ hơn số K mà lật tiếp thẻ ở ngay bên trái, hoặc ngay bên phải thẻ ở giữa. Trong trường hợp này, số lần nhiều nhất mà Minh phải lật để tìm ra thẻ in số K là bao nhiêu? 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 nhờ sự hỗ trợ của AI để giải quyết vấn đề: “Hãy so sánh số bước tối đa cần thực hiện của Linear Search và Binary Search khi tìm kiếm trong danh sách có 100.000.000 phần tử. Giải thích bằng toán học đơn giả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 93 SGK: + Câu 1: Thuật toán tìm kiếm tuần tự sẽ phải duyệt qua 11 phần tử để tìm được phần tử bằng 34. + Câu 2: Thuật toán tìm kiếm nhị phân sẽ phải duyệt qua 3 phần tử sau: 14, 20, 34. + Câu 3: Minh phải lật nhiều nhất là - 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. Tìm kiếm nhị phân a) Phân tích bài toán - Bài toán tìm kiếm nhị phân tìm kiếm với dãy số đã được sắp xếp. Khi duyệt một phần tử bất kì của dãy số, em có thể xác định được phần tử cần tìm sẽ nằm ở bên trái hay bên phải phần tử đang duyệt, từ đó quyết định tìm tiếp theo hướng nào mà không cần duyệt tất cả các phần tử của dãy số. b) Thuật toán tìm kiếm nhị phân - Được áp dụng cho các dãy được sắp xếp theo thứ tự xác định. Sau mỗi bước lặp của thuật toán, phạm vi tìm kiếm được thu hẹp dần. Ví dụ với dãy tăng dần, nếu giá trị cần tìm nhỏ hơn giá trị của phần tử ở giữa của dãy thì phạm vi tìm kiếm thu hẹp vào nửa đầu của dãy, ngược lại, phạm vi tìm kiếm là nửa cuối của dãy. Cứ tiếp tục như vậy cho đến khi tìm thấy hoặc phạm vi tìm kiếm bằng rỗng. c) Minh họa các bước của thuật toán tìm kiếm nhị phân Giả sử dãy số đã sắp xếp là A = [1, 3, 4, 7, 8, 9, 10]. Giá trị cần tìm là K = 9. Bước 1. Phạm vi tìm kiếm là các phần tử được in đậm [1, 3, 4, 7, 8, 9, 10] 1 left = 0, right = 6 2 mid = (0 + 6) // 2 = 3 3 A[mid] = A[3] = 7 < K # phần tử cần tìm nằm ở dãy con bên phải Cập nhật chỉ số left = mid + 1 = 3 + 1 = 4 Bước 2. Phạm vi tìm kiếm là các phần tử được in đậm [1, 3, 4, 7, 8, 9, 10] 1 left = 4, right = 6 2 mid = (4 + 6) // 2 = 5 3 A[mid] = A[5] = 9 < K # phần tử cần tìm có chỉ số 5. Kết thúc chương trình. Sơ đồ minh họa
® Thuật toán tìm kiếm nhị phân trên dãy số đã sắp xếp tăng dần có thể như sau, trong đó hàm BinarySearch(A,K) trả lại chỉ số I nếu tìm thấy A[i] = K và trả lại giá trị -1 nếu không tìm thấy K trong dãy A. 1 def BinarySearch(A,K): 2 left = 0 3 right = len(A) – 1 4 while left <= right: 5 mid = (left + right)//2 6 if A[mid] == K: 7 return mid 8 elif A[mid] < K: 9 left = mid + 1 10 else: 11 right = mid – 1 12 return -1 | - 1.2.NC1a: Phân tích đặc điểm dữ liệu; Quản lý chỉ số mảng. - 5.2.NC1a: Viết được hàm BinarySearch sử dụng vòng lặp while thay vì vòng lặp for. - 6.1.NC1a: HS hiểu và vận dụng được chiến lược giải quyết vấn đề bằng cách liên tục chia nhỏ không gian tìm kiếm làm đôi; HS có năng lực so sánh và nhận định sự vượt trội về tốc độ của thuật toán nhị phân so với tuần tự. - 6.2.NC1a: Tra cứu kiến thức chuyên sâu từ trợ lý ảo để hỗ trợ quá trình nhận thức. |
C. HOẠT ĐỘNG LUYỆN TẬP
a) Mục tiêu: HS củng cố kiến thức về bài toán tìm kiếm.
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 trang 93 SGK.
c) Sản phẩm học tập: Gợi ý trả lời câu hỏi về bài toán tìm kiếm.
d) Tổ chức thực hiện:
Bước 1: GV chuyển giao nhiệm vụ:
- GV tổ chức trò chơi trắc nghiệm nhanh trên Quizizz hoặc Kahoot để củng cố toàn bài.
- GV cung cấp mã QR hoặc đường Links cho HS làm Phiếu bài tập, trả lời nhanh một số câu hỏi trắc nghiệm tổng kết bài học.
…………………………………………..
…………………………………………..
…………………………………………..
1.2.NC1a: Tổ chức dữ liệu thành mảng, truy cập vào dữ liệu để lấy thông tin.
6.1.NC1a: Xác định nhu cầu và giải quyết vấn đề kỹ thuật.]
D. 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 93 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 93 SGK.
Bài 1. Cho A là danh sách tên các học sinh trong lớp, viết chương trình tìm kiếm tuần tự để tìm ra các học sinh có tên là Hoàn.
Bài 2. Cho A là danh sách tên các học sinh trong lớp được sắp xếp theo thứ tự bảng chữ cái, viết chương trình tìm kiếm nhị phân để tìm ra các học sinh có tên là Minh.
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.
1 def LinerSearch(A,K):
2 for i in range(len(A)):
3 if A[i] == K:
4 return i
5 return -1
6
7 A = ["Hà", "Bình", "Oanh", "An", "Việt"]
8 ten = input("Nhập tên học sinh cần tìm: ")
9 if LinearSearch(A,ten) >= 0:
10 print("Lớp có bạn",ten)
11 else
12 print("Lớp không có bạn",ten)
Bài 2.
1 def BinarySearch(A,K):
2 left = 0
3 right = len(A) - 1
4 while left <= right:
5 mid = (left + right)//2
6 if A[mid] == K:
7 return mid
8 elif A[mid] < K:
9 left = mid + 1
10 else:
11 right = mid -1
12 return -1
13
14 A = ["An", "Bình", "Hà", "Oanh", "Việt"]
15 ten = input("Nhập tên học sinh cần tìm: ")
16 if BinarySearch(A,ten) >= 0:
17 print("Lớp có bạn",ten)
18 else
19 print("Lớp không có bạn",ten)
Bước 4: Đánh giá kết quả thực hiện
- GV nhận xét, đánh giá, đưa ra một vài ý mà HS còn thiếu, chốt đáp án.
- GV tổng kết tiết học.
[5.2.NC1a: HS viết chương trình máy tính để thực hiện yêu cầu.
1.2.NC1a: Tổ chức dữ liệu thành mảng, truy cập vào dữ liệu để lấy thông tin.
6.1.NC1a: Xác định nhu cầu và giải quyết vấn đề kỹ thuật.]
…………………………………………..
…………………………………………..
…………………………………………..
=> Giáo án Khoa học máy tính 11 kết nối Bài 19: Bài toán tìm kiếm
