Giáo án chuyên đề Khoa học máy tính 11 kết nối Bài 8: Thực hành thiết kế thuật toán tìm kiếm theo kĩ thuật chia để trị

Giáo án giảng dạy theo sách Chuyên đề học tập Tin học 11 - Định hướng Khoa học máy tính bộ sách kết nối tri thức Bài 8: Thực hành thiết kế thuật toán tìm kiếm theo kĩ thuật chia để trị. Bộ giáo án giúp giáo viên hướng dẫn học sinh mở rộng kiến thức, phát triển năng lực, nâng cao khả năng định hướng nghệ nghiệp cho các em sau này. Thao tác tải về rất đơn giản, tài liệu file word có thể chỉnh sửa dễ dàng, mời quý thầy cô tham khảo bài demo.

Xem toàn bộ: Giáo án chuyên đề Tin học 11 Khoa học máy tính kết nối tri thức đủ cả năm

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

Ngày dạy:…/…/…

 

BÀI 8. THỰC HÀNH THIẾT KẾ THUẬT TOÁN TÌM KIẾM THEO KĨ THUẬT CHIA ĐỂ TRỊ

 

  1. MỤC TIÊU
  2. Về kiến thức

Sau bài học này, HS sẽ:

  • Biết cách thiết kế và viết chương trình giải một số bài toán theo kĩ thuật chia để trị.
  • Thực hành viết chương trình giải một số bài toán theo kĩ thuật chia để trị.
  1. Năng lực

Năng lực chung:

  • Năng lực tự chủ: Biết lựa chọn các nguồn tài liệu học tập phù hợp.
  • Năng lực giải quyết vấn đề và sáng tạo: Xác định và tìm hiểu được các thông tin liên quan đến vấn đề, đề xuất giải pháp giải quyết vấn đề trong bài học.
  • Năng lực giao tiếp và hợp tác: Thực hiện tốt nhiệm vụ trong hoạt động nhóm.

Năng lực tin học:

  • Hình thành, phát triển năng lực giải quyết vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông.
  1. Phẩm chất:
  • Hình thành ý thức 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ụ.
  • Có ý thức vận dụng kiến thức, kĩ năng đã học ở nhà trường vào thực tiễn.
  1. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU
  2. Đối với giáo viên
  • SGK, SGV, Giáo án;
  • Máy tính đã cài đặt Python và máy chiếu;
  • Hình ảnh, sơ đồ minh họa cho các bước thực hiện trên một mẫu dữ liệu đơn giản.
  • Sử dụng phần mềm mô phỏng thuật toán để minh họa thêm trong quá trình giảng dạy.
  1. Đối với học sinh
  • SGK, vở ghi.
  • Điện thoại có cài sẵn phần mềm Python (nếu có).

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

  1. HOẠT ĐỘNG KHỞI ĐỘNG
  2. Mục tiêu:

- HS làm quen với các bài toán sẽ được học thiết kế trong bài.

- Kích thích sự tò mò cho người học.

  1. Nội dung: GV cho các nhóm HS trao đổi câu hỏi Mở đầu.
  2. Sản phẩm học tập: HS dựa vào kiến thức và hiểu biết cá nhân để đưa ra câu trả lời.
  3. Tổ chức thực hiện:

Bước 1: GV chuyển giao nhiệm vụ học tập

- GV đặt câu hỏi yêu cầu HS thảo luận: Cho một dãy số A bất kì. Để xác định một số C cho trước xuất hiện trong dãy A bao nhiêu lần thì làm thế nào?

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

- HS lắng nghe, suy nghĩ và đưa ra câu trả lời.

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

- GV mời HS trả lời câu hỏi.

- Các HS khác nhận xét, nêu ý kiến khác (nếu có).

Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập

- GV nhận xét, đánh giá, tuyên dương câu trả lời của HS.

- GV dẫn dắt vào nội dung bài mới: Hôm nay, chúng ta sẽ vận dụng những kiến thức đã học về thiết kế thuật toán tìm kiếm theo kĩ thuật chia để trị. - Bài 8: Thực hành thiết kế thuật toán tìm kiếm theo kĩ thuật chia để trị.

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

Hoạt động: Thực hành

  1. Mục tiêu: Viết được chương trình thiết kế thuật toán tìm kiếm theo kĩ thuật chia để trị.
  2. Nội dung: GV yêu cầu HS tìm hiểu nhiệm vụ, tìm hiểu yêu cầu và các bước thực hiện.
  3. Sản phẩm học tập: Các chương trình mà HS viết ra.
  4. Tổ chức hoạt động:

HOẠT ĐỘNG CỦA GV - HS

DỰ KIẾN SẢN PHẨM

Bước 1: GV chuyển giao nhiệm vụ học tập

- GV giới thiệu bài toán:

Tìm số lần lặp của một giá trị trên dãy đã sắp xếp.

Cho trước dãy số A đã sắp xếp theo thứ tự tăng dần, cho trước hằng số C. Hãy tìm xem trong dãy trên có bao nhiêu phần tử có giá trị bằng C. Ví dụ, nếu A = [0, 1, 2, 2, 2, 2 ,4 ,5 ,5 ,6], C = 2 thì kết quả cần tìm là 4.

- GV yêu cầu HS thảo luận theo nhóm đôi, trình bày và thực hiện cài đặt phương án giải đầu tiên của bài toán với thuật toán tìm kiếm tuần tự.

- GV gợi ý: Cách giải này sẽ có độ phức tạp thời gian O(n), với n là kích thước dãy đầu vào.

- GV giới thiệu ý tưởng chia để trị của bài toán dựa trên thuật toán tìm kiếm nhị phân.

- GV phân công các nhóm tìm hiểu và trình bày thuật toán.

- GV giải thích nhanh cách tính thời gian của thuật toán này và kết luận: Độ phức tạp thời gian của thuật toán chỉ là O(logn), nhanh hơn hẳn so với cách tìm bằng phương pháp tìm kiếm tuần tự.

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

- HS chia nhóm, thảo luận thực hiện theo các bước SGK.

- GV hướng dẫn, theo dõi, hỗ trợ HS khi cần.

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

- GV mời đại diện một số nhóm trình bày kết quả Nhiệm vụ.

- HS xung phong thực hiện các nhiệm vụ và giải thích.

- GV mời HS nhóm khác nhận xét, bổ sung.

Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập

- GV nhận xét, tổng kết, chuyển sang nội dung luyện tập.

Thực hành

Nhiệm vụ

- Ý tưởng: Trước tiên, nhận xét rằng bài tập này có thể dễ dàng giải bằng phương pháp tìm kiếm tuần tự đã quen biết. Gọi count là số lần xuất hiện của C trong dãy. Thực hiện tìm kiếm tuần tự với C, mỗi lần tìm thấy C, tăng biến count lên 1.

- Chương trình đơn giản như sau:

- Thuật toán trên có một vòng lặp tại dòng 3 thực hiện n lần (n = len(A)), do đó thời gian chạy là O(n).

- Chương trình hoàn chỉnh có thể như sau:

- Lệnh gọi đệ quy của hàm tìm kiếm là:

countNum(A,0,len(A) – 1,C)

Nhận xét:

- Chương trình trên hoàn toàn tương tự thuật toán tìm kiếm nhị phân, điểm khác biệt tại các dòng lệnh từ 6 đến 13 khi xử lí trường hợp A[mid] = C.

- Các dòng 2, 3 là phần cơ sở của đệ quy.

- Việc "chia" được thực hiện tại dòng 5. Các lệnh tiếp theo chính là "trị". Bài toán này khá đơn giản nên sau khi "trị" sẽ thu được luôn kết quả.

- Trong hầu hết các trường hợp việc xử lí tại dòng 6 đến dòng 13 sẽ mất O(1) thời gian. Trong một số trường hợp xấu nhất, ví dụ dãy ban đầu bao gồm toàn các số C thì việc xử lí khi A[mid] = C sẽ mất O(n) thời gian.

  1. HOẠT ĐỘNG LUYỆN TẬP
  2. Mục tiêu: HS vận dụng kiến thức, hoàn thành bài tập phần Luyện tập.
  3. Nội dung: GV giao nhiệm vụ, HS thảo luận.
  4. Sản phẩm học tập: HS thiết kế thuật toán tìm kiếm theo kĩ thuật chia để trị để giải các bài toán.
  5. Tổ chức thực hiện:

Bước 1: GV chuyển giao nhiệm vụ học tập

- GV yêu cầu HS thảo luận nhóm đôi, hoàn thành các bài tập:

Chỉnh sửa nâng cấp chương trình của nhiệm vụ thực hành để đưa ra kết quả là vùng các phần tử có giá trị bằng C của dãy gốc, tức là yêu cầu đưa ra chỉ số đầu, chỉ số cuối và số lượng phần tử của vùng có giá trị bằng C.

Ví dụ nếu A = [0, 1, 2, 2, 2, 2, 4, 5, 5, 6], C = 2, thì kết quả trả lại là 2, 5, 4.

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

- HS thảo luận, viết chương trình giải bài toán.

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

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

- GV đại diện của 1 nhóm lên bảng thực hiện trên máy và chạy thử chương trình.

- HS khác quan sát, nhận xét, sửa bài (nếu có).

Kết quả:

Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập

- GV nhận xét, tuyên dương.

  1. HOẠT ĐỘNG VẬN DỤNG
  2. Mục tiêu: HS vận dụng kiến thức, liên hệ với thực tế để giải quyết vấn đề.
  3. Nội dung: GV tổ chức cho HS làm bài tập phần Vận dụng SGK trang 39.
  4. Sản phẩm học tập: HS viết và chạy thử chương trình.
  5. Tổ chức thực hiện:

Bước 1: GV chuyển giao nhiệm vụ học tập

- GV nêu yêu cầu bài toán:

Bài 1. Cho một dãy số bất kì (chưa được sắp xếp) và một số K, hãy tìm số lần xuất hiện của K trong dãy số trên. Yêu cầu sử dụng phương pháp chia để trị.

Bài 2. Cho một dãy số nguyên được sắp xếp theo thứ tự tăng dần. Hãy thiết kế hàm tìm trong dãy phần tử thứ i có giá trị bằng I (A[i] = i). Phần tử A[i] như vậy được gọi là phần tử cố định.

Bài 3. Cho trước dãy số A đã sắp xếp theo thứ tự tăng dần, cho trước hằng số C. Cần thiết lập hai hàm sau bằng kĩ thuật chia để trị:

– Hàm firstInd(A, left, right, C) sẽ tìm chỉ số của phần tử đầu tiên của dãy A có giá trị bằng C. Nếu không sẽ trả về -1.

– Hàm lastInd(A, left, right, C) sẽ tìm chỉ số của phần tử cuối cùng của dãy A có giá trị bằng C. Nếu không thấy sẽ trả về – 1.

Từ hai hàm đã thiết kế trên, đưa ra một cách giải khác cho bài toán trong nhiệm vụ 1. Lời giải này có độ phức tạp O(logn).

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

- HS thảo luận, viết chương trình giải bài toán.

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

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

- GV đại diện của 1 nhóm lên bảng thực hiện trên máy và chạy thử chương trình.

- HS khác quan sát, nhận xét, sửa bài (nếu có).

Kết quả:

Bài 1. Hàm đệ quy được xây dựng như sau:

 

--------------- Còn tiếp ---------------

 

Trên chỉ là 1 phần của giáo án. Giáo án khi tải về có đầy đủ nội dung của bài. Đủ nội dung của học kì I + học kì II

MỘT VÀI THÔNG TIN

  • Giáo án bản word, dễ dàng chỉnh sửa nếu muốn
  • Font chữ: Time New Roman, trình bày rõ ràng, khoa học.
  • Giáo án có đủ các chuyên đề, đủ cả năm

PHÍ GIÁO ÁN:

  • Phí giáo án: 350k

=> Khi đặt, nhận đủ giáo án cả năm ngay và luôn

CÁCH ĐẶT: 

  • Bước 1: gửi phí vào tk: 10711017 - Chu Văn Trí - Ngân hàng ACB (QR)
  • Bước 2: Nhắn tin tới Zalo Fidutech - nhấn vào đây để thông báo và nhận giáo án

=> Khi đặt, sẽ nhận giáo án ngay và luôn. Tặng kèm phiếu trắc nghiệm + đề kiểm tra ma trận

Xem toàn bộ: Giáo án chuyên đề Tin học 11 Khoa học máy tính kết nối tri thức đủ cả năm

GIÁO ÁN WORD LỚP 11 KẾT NỐI TRI THỨC

 

GIÁO ÁN POWERPOINT LỚP 11 KẾT NỐI TRI THỨC

GIÁO ÁN CHUYÊN ĐỀ LỚP 11 KẾT NỐI TRI THỨC

GIÁO ÁN DẠY THÊM 11 KẾT NỐI TRI THỨC

CÁCH ĐẶT MUA:

Liên hệ Zalo: Fidutech - nhấn vào đây

Xem thêm các bài khác

GIÁO ÁN CHUYÊN ĐỀ 1. THỰC HÀNH THIẾT KẾ THUẬT TOÁN THEO KĨ THUẬT ĐỆ QUY

GIÁO ÁN CHUYÊN ĐỀ 2. THỰC HÀNH THIẾT KẾ THUẬT TOÁN THEO KĨ THUẬT CHIA ĐỂ TRỊ

GIÁO ÁN CHUYÊN ĐỀ 3. THỰC HÀNH THIẾT KẾ THUẬT TOÁN THEO KĨ THUẬT DUYỆT

Chat hỗ trợ
Chat ngay