Soạn mới giáo án Khoa học máy tính 11 cánh diều Chủ đề F(CS) Bài 5: Đánh giá thuật toán

Soạn mới Giáo án khoa học máy tính 11 cánh diều bài Đánh giá thuật toán. Đây là bài soạn mới nhất theo mẫu công văn 5512. Giáo án soạn chi tiết, đầy đủ, trình bày khoa học. Tài liệu có bản word tải về. Hi vọng đây sẽ là tài liệu hữu ích để thầy cô tham khảo và nâng cao chất lượng giảng dạy. Mời thầy cô và các bạn kéo xuống tham khảo

Cùng hệ thống với: Kenhgiaovien.com - tech12h.com - Zalo hỗ trợ: Fidutech - nhấn vào đây

Rõ nét về file powerpoint trình chiếu. => Xem thêm

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

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

BÀI 5. ĐÁNH GIÁ THUẬT TOÁN

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

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

  • Trình bày được sơ lược khái niệm độ phức tạp thời gian của thuật toán. Nêu được ví dụ minh họa.
  • Biết được kí pháp O lớn và các bậc độ phức tạp thời gian.
  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 tin họ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.
  • Ứng dụng công nghệ thông tin và truyền thông trong học và tự học.
  • Khả năng tư duy logic và mô hình hóa.
  1. Phẩm chất
  • Hình thành ý thức trách nhiệm, tính cẩn thận, chăm chỉ trong học tập và công việc.
  • 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 và máy chiếu;
  • Tài liệu hướng dẫn sử dụng máy tính (tivi, điện thoại,...) (nếu có).
  1. Đối với học sinh: SGK, SBT, vở ghi.

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

  1. HOẠT ĐỘNG KHỞI ĐỘNG
  2. Mục tiêu: Tạo tâm thế vui vẻ, hứng khởi cho HS trước khi vào bài học mới; kích thích sự tò mò cho người học.
  3. Nội dung: GV cho HS liên hệ thực tế, dùng những hiểu biết của bản thân để trả lời câu hỏi.
  4. Sản phẩm học tập: Câu trả lời của HS theo ý kiến cá nhân.
  5. 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: Theo em, một thuật toán như thế nào thì được xem là chạy nhanh/chạy chậm?

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 dựa trên những hiểu biết của bản thân

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

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

- GV ghi nhận tất cả các câu trả lời của HS.

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á, dẫn dắt vào nội dung bài mới: Thời gian chạy chương trình phụ thuộc vào yếu tố nào? Chúng ta hãy cùng vào  - Bài 5. Đánh giá thuật toán.

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

Hoạt động 1: Các khái niệm cơ bản

  1. Mục tiêu: Biết được các khái niệm cơ bản.
  2. Nội dung: GV giao nhiệm vụ, HS đọc hiểu thông tin mục 1 SGK trang 107; thực hiện các nhiệm vụ GV giao.
  3. Sản phẩm học tập: Các khái niệm cơ bản.
  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 yêu cầu đọc hiểu thông tin mục 1 trang 107 SGK, thảo luận cặp đôi trả lời các câu hỏi sau:

1. Thế nào được gọi là một thuật toán “tốt”?

2. Tính hiệu quả của thuật toán dựa trên những tiêu chí nào?

3. (Câu hỏi 1 - Tự kiểm tra tr.112) Tại sao không thể đánh giá thuật toán qua chương trình cài đặt thuật toán?

4. Dựa vào kiến thức đã học ở bài 2, hãy cho biết vì sao thời gian thực hiện các phép toán là tuyến tính? Cho ví dụ.

- GV lưu ý HS: Trong hai tiêu chí đánh giá tính hiệu quả của thuật toán thì tiết kiệm thời gian được quan tâm hàng đầu và bài học này chỉ tập trung vào ước lượng độ phức tạp thời gian thuật toán.

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

- HS đọc và tìm hiểu thông tin mục 1 SGK trang 101 - 102, thực hiện các nhiệm vụ được giao.

- 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ả thảo luận.

- 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 kết quả thảo luận của HS, thái độ làm việc của HS trong nhóm.

- GV kết luận và yêu cầu HS ghi chép đầy đủ vào vở.

1. Các khái niệm cơ bản

- Trong tin học, các thuật toán được đánh giá và so sánh dựa trên tính hiệu quả.

- Hiệu quả thuật toán được đánh giá theo cả hai tiêu chí: tiết kiệm thời gian và tiết kiệm không gian nhớ.

Ước lượng thời gian thực thi chương trình hiệu quả của thuật toán

- Các ngôn ngữ lập trình có lệnh cho phép bấm giờ tính thời gian chạy thực thi chương trình.

Ví dụ: Python có lệnh time()...

- Cách tính giờ chạy thực thi chương trình cụ thể không áp dụng được khi muốn so sánh hiệu quả để lựa chọn thuật toán vì các vấn đề sau đây:

+ Phải lập trình và chạy thử chương trình của tất cả các thuật toán cần so sánh.

+ Thời gian đo được phụ thuộc vào nhiều yếu tố không liên quan tới thuật toán: phần cứng máy tính, ngôn ngữ lập trình, chương trình dịch, kĩ năng lập trình của người viết.

+ Không khả thi nếu muốn chọn cách tính thời gian thực thi trung bình.

Kích thước đầu vào

- Thời gian thực thi thuật toán phụ thuộc kích thước đầu vào, được đại diện bằng một số tự nhiên n.

Ví dụ:

+ Dữ liệu đầu vào là dãy gồm 10 số → thời gian chạy mất 1s.

+ Dữ liệu đầu vào là dãy gồm 1000 số → thời gian chạy mất 10s.

 

 

Hoạt động 2: Độ phức tạp thời gian của thuật toán

  1. Mục tiêu: Trình bày được sơ lược khái niệm độ phức tạp thời gian của thuật toán. Nêu được ví dụ minh họa.
  2. Nội dung: GV giao nhiệm vụ, HS đọc hiểu thông tin mục 2 SGK trang 108; thực hiện các nhiệm vụ GV giao.
  3. Sản phẩm học tập: Độ phức tạp thời gian của thuật toán.
  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 yêu cầu HS đọc hiểu mục 2 tr.108 SGK, thảo luận cặp đôi trả lời các câu hỏi:

1. Thế nào là độ phức tạp thời gian của thuật toán?

2. Vì sao khó đếm chính xác con số ước lượng thời gian thực hiện các chương trình thuật toán để xử lí một lượng dữ liệu đầu vào có độ lớn n?

3. Phép toán sơ cấp là gì? Cho ví dụ.

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

- HS đọc hiểu thông tin mục 2 SGK trang 108 và thực hiện nhiệm vụ.

- GV theo dõi, hỗ trợ HS trong quá trình học tập.

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

- HS giơ tay trả lời câu hỏi.

- Câu hỏi thảo luận 2: Khó đếm chính xác con số ước lượng vì:

+ Bộ xử lí thực hiện các phép toán bit, khó có thể xác định tương ứng số các phép toán bit với mỗi phép toán mà chúng ta vẫn biết như các phép toán số học (cộng, trừ, nhân, chia), các phép so sánh…

+ Ngay cả khi tính đếm số phép toán theo nghĩa thông thường với con người thì thế nào là một phép toán cũng không dễ thống nhất. Ví dụ: Phép khai căn, phép lũy thừa… là một hay nhiều phép toán số học.

- Các HS còn lại nhận xét, bổ sung (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 kết quả trả lời của HS.

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

2. Độ phức tạp thời gian của thuật toán

- Độ phức tạp thời gian của thuật toán là kết quả ước lượng thời gian thực hiện các chương trình cài đặt thuật toán để xử lí một lượng dữ liệu đầu vào có độ lớn n.

Phép toán sơ cấp

- Phép toán sơ cấp là phép toán có thời gian thực hiện không lớn hơn một hằng số nào đó, không phụ thuộc n (n là kích thước dữ liệu đầu vào).

Ví dụ: Những trường hợp được coi là phép toán sơ cấp:

+ Phép toán số học, phép so sánh… với các toán hạng là giá trị cụ thể.

+ Các hàm toán học với đầu vào là giá trị cụ thể không phụ thuộc n.

Chú ý: Phép lặp, phép lựa chọn không phải là phép toán sơ cấp.

 

Hoạt động 3: Ví dụ về độ phức tạp thời gian hằng số và độ phức tạp thời gian tuyến tính

  1. Mục tiêu: Nêu được ví dụ minh họa về độ phức tạp thời gian của thuật toán.
  2. Nội dung: GV giao nhiệm vụ, HS đọc hiểu thông tin mục 3 SGK trang 108 – 109; thực hiện các nhiệm vụ GV giao.
  3. Sản phẩm học tập: Ví dụ về độ phức tạp thời gian hằng số và độ phức tạp thời gian tuyến tính.
  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 yêu cầu HS dựa vào kiến thức đã học ở Bài 1 và Bài 2, nhắc lại khả năng truy cập ngẫu nhiên, thời gian thực hiện là hằng số, thời gian thực hiện là tuyến tính.

- GV yêu cầu HS đọc hiểu thông tin mục 3 tr.108 - 109 thảo luận cặp đôi trả lời câu hỏi Hoạt động:

Cho bài toán tính tổng dãy số: S = 1 + 2 + … + n. Hãy cho biết cách giải nào tốt hơn trong hai cách giải sau đây:

Cách 1: Tính cộng dồn dần từng số.

Cách 2: Vì dãy số là cấp số cộng nên có thể dùng công thức tính tổng cấp số cộng S = .

- Trên cơ sở đó, GV yêu cầu HS trình bày về độ phức tạp thời gian hằng số, độ phức tạp thời gian tuyến tính.

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

- HS đọc và tìm hiểu SGK trang 108 - 109, thực hiện các nhiệm vụ được giao.

- 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ả thảo luận.

- 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 kết quả thảo luận của HS, thái độ làm việc của HS trong nhóm.

- GV kết luận và yêu cầu HS ghi chép đầy đủ vào vở.

3. Ví dụ về độ phức tạp thời gian hằng số và độ phức tạp thời gian tuyến tính

Độ phức tạp thời gian hằng số

- Thuật toán có độ phức tạp thời gian hằng số khi mà số phép toán cần thực hiện không phụ thuộc kích thước n của dữ liệu đầu vào.

Ví dụ: Cách giải thứ hai của bài toán trong Hoạt động:

    s1 = n + 1

    s2 = n*s1

    s3 = s2/2

→ T(n) = 3.

Độ phức tạp thời gian tuyến tính

- Thuật toán có độ phức tạp thời gian tuyến tính nếu số phép toán cần thực hiện là hàm tuyến tính của n (n là kích thước dữ liệu đầu vào).

Ví dụ: Cách giải thứ nhất của bài toán trong Hoạt động:

while i <= n:

  tong = tong + i

  i = i + 1

→ T(n) = n – 1.

 

Hoạt động 4: Kí pháp và các bậc độ phức tạp thời gian

  1. Mục tiêu: Biết được kí pháp O lớn và các bậc độ phức tạp thời gian.
  2. Nội dung: GV giao nhiệm vụ, HS đọc hiểu thông tin mục 4 SGK trang 109 – 110; thực hiện các nhiệm vụ GV giao.
  3. Sản phẩm học tập: Kí pháp O lớn và các bậc độ phức tạp thời gian.
  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

Nhiệm vụ 1. Cách ước lượng làm già thêm

- GV đặt vấn đề: Xét thuật toán tìm số lớn nhất trong dãy số:

+ Đầu tiên, tạm gán max = a0; đọc giá trị tiếp theo, so sánh với max và gán lại nếu cần.

+ Khi phần tử đầu dãy a0  có giá trị lớn nhất thì số lần phải gán lại giá trị max = ai bằng 0 → Số phép toán ít nhất Trường hợp thuật lợi nhất.

+ Khi dãy số ban đầu là dãy tăng chặt, mọi số đều khác nhau, thì số lần gán max = ai bằng n → Số phép toán nhiều nhất Trường hợp bất lợi nhất.

+ Trường hợp ngẫu nhiên → Số phép toán cần thực hiện ở mức trung bình.

Tuy nhiên, không dễ tìm được ước lượng trung bình này, nên người ta chọn cách dễ làm hơn đó là ước lượng làm già thêm.

- GV yêu cầu HS đọc hiểu phần Cách ước lượng làm già thêm tr.109 để trả lời câu hỏi: Thế nào là cách ước lượng làm già thêm?

- GV bổ sung: Cách ước lượng đặc trưng này phân biệt O lớn với các kí hiệu khác cũng dùng trong thuật toán: o, Ω, ω, θ. Từ nội dung này, GV dẫn dắt sang nhiệm vụ tiếp theo.

Nhiệm vụ 2. Kí pháp O lớn

- Kí pháp O lớn là khái niệm khó, bản chất là dùng để biểu diễn các vô cùng lớn trong toán cao cấp, nên GV giới thiệu có thể diễn đạt đơn giản hơn để không phải dẫn dắt đến khái niệm vô cùng lớn: Kí hiệu O lớn dùng để đánh giá và phân loại độ phức tạp thời gian của thuật toán khi kích thước đầu vào của bài toán tăng lên vô cùng.

- GV yêu cầu HS đọc SGK tr.110 trả lời câu hỏi: Cho biết O lớn được sử dụng như thế nào trong thuật toán.

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

- HS đọc và tìm hiểu SGK trang 109 - 110, thực hiện nhiệm vụ được giao.

- 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

- HS giơ tay trả lời câu hỏi.

- 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 câu trả lời của HS.

- GV kết luận và yêu cầu HS ghi chép đầy đủ vào vở.

4. Kí pháp và các bậc độ phức tạp thời gian

Cách ước lượng làm già thêm

- Số phép toán cần thiết để thực hiện thuật toán không chỉ phụ thuộc kích thước n của dữ liệu đầu vào mà còn phụ thuộc vào việc may mắn gặp trường hợp dễ, ít việc phải làm hay không may gặp trường hợp khó, nhiều việc phải làm hơn.

- Ước lượng làm già thêm là cách ước lượng đảm bảo rằng trong thực tế sẽ không có trường hợp nào vượt quá ước lượng đã đưa ra.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Kí pháp O lớn

- Nếu phép toán sơ cấp cần thực hiện không vượt quá một hằng số C, không phụ thuộc n → Độ phức tạp thời gian là hằng số T(n) = O(1).

- Nếu phép toán sơ cấp cần thực hiện không vượt quá một hàm số tuyến tính của n, T(n) ≤ C1n + C2 (C1, C2 là hằng số) → Độ phức tạp thời gian là tuyến tính T(n) = O(n).

- Một số công thức liên quan:

Công thức 1: Áp dụng cho hai cấu trúc điều khiển được thực hiện tuần tự.

Nếu f1(n) = O(g1(n)) f2(n) = O(g2(n))

thì f1(n) + f2(n) = O(max(g1(n), g2(n)).

Công thức 2: Áp dụng cho hai cấu trúc điều khiển lồng nhau.

Nếu f1(n) = O(g1(n)) f2(n) = O(g2(n))

thì f1(n) × f2(n) = O(g1(n)× g2(n)).

 

 

Hoạt động 5: Các quy tắc khi ước lượng thời gian thực hiện thuật toán

  1. Mục tiêu: Nêu được các quy tắc khi ước lượng thời gian thực hiện thuật toán.
  2. Nội dung: GV giao nhiệm vụ, HS đọc hiểu thông tin mục 5 SGK trang 110 – 111; thực hiện các nhiệm vụ GV giao.
  3. Sản phẩm học tập: Các quy tắc khi ước lượng thời gian thực hiện thuật toán.
  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 yêu cầu HS đọc mục 5 tr.110 - 111 SGK: Trình bày các quy tắc khi ước lượng thời gian thực hiện thuật toán.

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

- HS đọc và tìm hiểu SGK trang 110 - 111, thực hiện các nhiệm vụ được giao.

- 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

- HS giơ tay trả lời câu hỏi.

- 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 câu trả lời của HS.

- GV kết luận và yêu cầu HS ghi chép đầy đủ vào vở.

3. Các quy tắc khi ước lượng thời gian thực hiện thuật toán

Quy tắc chung

- Khi tính đếm số phép toán cần thực hiện, các quy tắc ước lượng cho phép bỏ bớt những phần có bậc lớn thấp hơn, chỉ giữ lại những phần có bậc lớn cao nhất và các hằng số nhân C đều coi là 1.

- Mô tả thuật toán chỉ sử dụng ba cấu trúc: cấu trúc tuần tự, cấu trúc rẽ nhánh, cấu trúc lặp.

- Lồng bên trong các cấu trúc rẽ nhánh và cấu trúc lặp lại là các dãy phép toán tuần tự khác → Cần ước lượng số phép toán từ bên trong trở ra ngoài.

Lời gọi hàm

- Hàm bên trong chương trình thực chất là một chương trình con, thực hiện một thuật toán cụ thể.

- Ước lượng độ phức tạp thời gian của một lời gọi hàm được chia làm hai trường hợp:

+ Lời gọi các hàm toán học sơ cấp, các hàm thư viện… với đầu vào là các giá trị cụ thể không phụ thuộc nT(n) = O(1).

+ Lời gọi hàm trong các trường hợp còn lại sẽ được ước lượng độ phức tạp như với một thuật toán.

Cấu trúc tuần tự và quy tắc lấy max

- Cấu trúc tuần tự là một dãy gồm C phép toán; C là số xác định, không phụ thuộc n.

+ Nếu tất cả C phép toán là sơ cấp → độ phức tạp thời gian là T(n) = O(1).

+ Trái lại, thời gian thực hiện bằng ước lượng lớn nhất trong số các ước lượng của phép toán có trong dãy.

Cấu trúc rẽ nhánh và quy tắc lấy max

- Khi thực thi một cấu trúc rẽ nhánh sẽ phải kiểm tra điều kiện và thực hiện một trong số các nhánh.

- Việc kiểm tra điều kiện là tính giá trị biểu thức logic gồm biểu thức số học và một phép so sánh → T(n) = O(1).

- Độ phức tạp thời gian của cấu trúc rẽ nhánh là độ phức tạp lớn nhất trong các độ phức tạp thời gian của các nhánh.

Ví dụ:

Cấu trúc vòng lặp và quy tắc nhân

- Khi thực hiện một cấu trúc vòng lặp sẽ phải kiểm tra điều kiện và thực hiện hiện thân vòng lặp.

- Thân vòng lặp là một cấu trúc tuần tự các phép toán.

- Thời gian thực hiện cấu trúc vòng lặp được tính bằng số lần lặp nhân với tổng thời gian kiểm tra điều kiện lặp và thời gian thực hiện thân vòng lặp.

Ví dụ:

Soạn mới giáo án Khoa học máy tính 11 cánh diều Chủ đề F(CS) Bài 5: Đánh giá thuật toán

TẢI GIÁO ÁN WORD BẢN ĐẦY ĐỦ:

  • Font chữ: Time New Roman, trình bày rõ ràng, khoa học.
  • Giáo án tải về là giáo án bản word, dễ dàng chỉnh sửa nếu muốn
  • Tất cả các bài đều soạn đầy đủ nội dung và theo đúng mẫu ở trên

THỜI GIAN BÀN GIAO GIÁO ÁN:

  • Nhận đủ cả năm ngay và luôn

PHÍ GIÁO ÁN:

  • Phí giáo án: 300k/kì - 350k/cả năm

=> Tặng kèm nhiều tài liệu tham khảo khi mua giáo án:

  • Đề thi 
  • Trắc nghiệm

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

Từ khóa tìm kiếm: giáo án khoa học máy tính 11 cánh diều mới, soạn giáo án khoa học máy tính 11 cánh diều bài Đánh giá thuật toán, giáo án khoa học máy tính 11 cánh diều

Soạn giáo án khoa học máy tính 11 cánh diều


Đia chỉ: Tòa nhà TH Office, 90 Khuất Duy Tiến, Thanh Xuân, Hà Nội
Điện thoại hỗ trợ: Fidutech - click vào đây
Chúng tôi trên Yotube
Cùng hệ thống: baivan.net - Kenhgiaovien.com - tech12h.com

Chat hỗ trợ
Chat ngay