Giáo án Khoa học máy tính 11 kết nối Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình

Giáo án Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình sách Tin học 11 - Định hướng Khoa học máy tính kết nối tri thức. Được thiết kế theo công văn 5512, chi tiết, đầy đủ. Giáo án là bản word, có thể tải về và dễ dàng chỉnh sửa. Bộ giáo án có đầy đủ các bài trong học kì 1 + học kì 2 của KHMT 11 KNTT. Kéo xuống dưới để tham khảo chi tiết.

Xem video về mẫu Giáo án Khoa học máy tính 11 kết nối Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình

Các tài liệu bổ trợ khác

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

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

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

BÀI 26: PHƯƠNG PHÁP LÀM MỊN DẦN TRONG THIẾT KẾ CHƯƠNG TRÌNH

  1. MỤC TIÊU:
  2. Kiến thức:

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

  • Biết và giải thích được phương pháp làm mịn dần trong lập trình.
  • Vận dụng được phương pháp làm mịn dần để thiết kế chương trình.
  1. 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 và giải thích được phương pháp làm mịn dần trong lập trình.
  • Vận dụng được phương pháp làm mịn dần để thiết kế chương trình.
  1. 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ụ.
  1. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU
  2. Đố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.
  1. Đố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.

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

  1. HOẠT ĐỘNG KHỞI ĐỘNG
  2. a) Mục tiêu: GV khơi gợi HS suy nghĩ về các bước cần thực hiện giải một bài toán hoặc thuật toán cụ thể.
  3. b) Nội dung: GV tổ chức trả lời câu hỏi ở phần Mở đầu, HS thực hiện nhiệm vụ được giao.
  4. 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.
  5. d) Tổ chức thực hiện:

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

- GV dẫn dắt, đặt vấn đề cho HS: Em đã biết thiết kế một số thuật toán và chương trình: tìm kiếm tuần tự, tìm kiếm nhị phân, sắp xếp chèn, sắp xếp nổi bọt.

- GV đặt câu hỏi trong Khởi động tr.118 SGK, yêu cầu HS thảo luận nhóm 3 - 4 HS suy nghĩ và trả lời:

+ Tất cả các thiết kế chương trình đó có điểm nào chung?

+ Theo em, để thiết kế một thuật toán đúng giải một bài toán cho trước cần trải qua các bước như thế nào? Nêu quan điểm của riêng em và trao đổi với các bạn.

Bước 2: HS thực hiện nhiệm vụ học tập: 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.

Gợi ý:

+ Các thuật toán và chương trình trên đều là các thuật toán cơ bản trong lập trình và giải quyết các vấn đề thông thường. Điểm chung của các bài toán đó là có tính đơn giản và độ phức tạp thấp.

+ Để thiết kế một thuật toán đúng giải một bài toán cho trước cần trải qua các bước:

  1. Xác định bài toán
  2. Tìm cấu trúc dữ liệu biểu diễn thuật toán
  3. Tìm thuật toán
  4. Lập trình
  5. Kiểm thử chương trình
  6. Tối ưu chương trình

- 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 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: Các thuật toán và chương trình được tìm hiểu ở bài trước đều có độ phức tạp thấp, dễ dàng thiết kế. Vậy nếu gặp một bài toán có độ phức tạp cao hơn thì chúng ta cần phải làm như thế nào? Và bài học ngày hôm nay chúng ta sẽ giúp chúng ta giải quyết vấn đề nêu trên, chúng ta cùng vào - Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình.

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

Hoạt động 1: Tìm hiểu về phương pháp thiết kế làm mịn dần

  1. a) Mục tiêu: Thông qua một ví dụ cụ thể của một thuật toán đã biết, HS sẽ làm quen với các bước phân tích thực hiện thuật toán này theo phương pháp làm mịn dần.
  2. b) Nội dung: GV đặt vấn đề, HS hoạt động nhóm tìm hiểu thông tin mục 1 trang 118 - 120 SGK và thực hiện nhiệm vụ được giao.
  3. c) Sản phẩm: Phương pháp thiết kế làm mịn dần.
  4. d) Tổ chức thực hiện:

HOẠT ĐỘNG CỦA GV VÀ HS

SẢN PHẨM DỰ KIẾN

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

- GV chia lớp thành các nhóm, mỗi nhóm 3 - 5 HS.

- GV chiếu lại bài toán sắp xếp chèn:

Bài toán gốc. Cho trước dãy số A: A[0], A[1],..., A[n–1]. Cần tiến hành sắp xếp dãy trên theo thứ tự tăng dần. Kết quả phải nhận được:

A[0] ≤ A[1] ≤  … ≤  A[n-1]

Ví dụ với bộ dữ liệu vào là dãy [2, 1, 7, 10, 4] thì kết quả thu được dãy [1, 2, 4, 7, 10].

- GV yêu cầu các nhóm HS thực hiện Hoạt động 1 tr.118 SGK: Cùng trao đổi, thảo luận các bước thiết kế chương trình theo thuật toán sắp xếp chèn, từ đó đưa ra phương pháp chính khi thiết kế chương trình. Sau mỗi bước thiết kế cần trao đổi và trả lời các câu hỏi sau:

1. Bước này đã thực hiện công việc gì?

2. Kết quả vừa thực hiện với kết quả của bước trước đó khác nhau như thế nào?

- GV yêu cầu các nhóm rút ra kết luận về phương pháp thiết kế làm mịn dần.

- GV yêu cầu HS trả lời câu hỏi củng cố tr.120 SGK:

1. Trong các bước đã thực hiện của bài toán sắp xếp chèn ở trên, bước nào là đơn giản nhất theo nghĩa có thể thực hiện ngay bằng các lệnh lập trình?

2. Nếu bài toán đặt ra là sắp xếp dãy A theo thứ tự giảm dần thì các bước thiết kế như trên có cần thay đổi không? Thay đổi như thế nào?

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à thực hiện nhiệm vụ được giao.

- GV quan sát, hướng dẫn (nếu cầ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.

- HS xung phong trả lời câu hỏi:

*Câu hỏi củng cố tr.120 SGK:

1. Các bước đơn giản nhất của cách thiết kế trên là bước 3 và 5.

+ Bước 3 được thực hiện bằng 1 lệnh: value = A[i].

+ Bước 5 được thực hiện bằng 1 lệnh: A[j+1] = value.

2. Không cần thay đổi gì, chỉ thay đổi một từ trong cách mô tả tại bước 4 như sau: Chuyển các phần tử bên trái A[i] và nhỏ hơn A[i] sang phải.

- 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 mở rộng kiến thức: Phương pháp thiết kế làm mịn dần (stepwise refinement) trong khoa học máy tính còn có tên gọi là phương pháp thiết kế từ trên xuống (top-down design) là một trong những phương pháp thiết kế lâu đời nhất và được coi là phương pháp tổng quát nhất, chung nhất cho cách lập trình cấu trúc. Phương pháp thiết kế top-down này có thể mô tả bằng sơ đồ ý tưởng sau.

- GV chốt kiến thức và gọi phương pháp thiết kế vừa nêu chính là phương pháp thiết kế làm mịn dần.

1. Phương pháp thiết kế làm mịn dần

a) Tìm hiểu bài toán

Bài toán gốc là cho trước dãy A, cần sắp xếp lại dãy này theo thứ tự tăng dần.

b) Thiết kế chương trình giải bài toán

Bước 1. Thiết lập ý tưởng thiết kế ban đầu

- Cần duyệt một lượt từ phần tử thứ hai đến phần tử cuối của dãy sao cho khi kết thúc thì dãy cũng được được sắp xếp xong.

→ Phần chính: một vòng lặp với biến i chạy từ chỉ số 1 đến n – 1.

- Với mỗi giá trị i, cần thực hiện một số thao tác để bổ sung A[i] vào dãy các phần tử đã được sắp xếp A[0], A[1],... A[i-1] sao cho dãy mới thu được từ A[0] đến A[i] được sắp xếp đúng.

⇒ Thuật toán ban đầu có thể được mô tả như sau:

for i in range (1,n):

2      <Đặt A[i] vào đúng vị trí của dãy A[0],A[1}, …, A[i-1]>

- Tại dòng 2 của sơ đồ trên, bài toán được đặt ra là: "Chèn phần tử A[i] vào đúng vị trí của dãy A[0], A[1], …, A[i-1]".

Bước 2. Làm chi tiết hơn, thực hiện việc "Chèn A[i] vào đúng vị trí"

- Vì các phần tử bên trái của A[i] là A[0], A[1],...,A[i-1] đã được sắp xếp đúng nên thao tác "chèn" phần tử A[i] sẽ được thực hiện như sau:

<Lấy phần tử A[i] ra và lần lượt chuyển các phần tử bên trái A[i]  nhưng có giá trị lớn hơn A[i] sang phải. Sau đó đặt A[i] vào vị trí trống>

Theo mô tả trên, việc "Chèn A[i] vào đúng vị trí" có thể thực hiện như sau:

Chèn A[i] vào đúng vị trí

1  Nhấc phần tử A[i] lên.

2  Chuyển các phần tử bên trái A[i] và lớn hơn A[i] sang phải.

3  Chèn A[i] vào vị trí trống.

Các bước tiếp theo sẽ làm mịn hơn, chi tiết hơn thao tác trên.

Bước 3. Nhấc A[i] lên.

Thao tác này sẽ được thực hiện đơn giản bằng việc tạo ra một biến mới value để lưu trữ giá trị A[i].

value = A[i]

Bước 4. Chuyển các phần tử bên trái A[i] và lớn hơn A[i] sang phải.

Thao tác này có thể được thực hiện như sau

- Thiết lập biến j = i – 1 là chỉ số của phần tử ngay bên trái A[i].

- Liên tục so sánh A[j] với value:

nếu A[j] > value thì chuyển A[j] sang phải một vị trí bằng lệnh A[j+1] = A[j] và giảm j = j – 1.

- Quá trình sẽ kết thúc khi đi hết bên trái của dãy hoặc A[j] <= value.

Tất cả công việc này được thể hiện bằng đoạn chương trình sau:

1 j = i – 1

2 while j >= 0 and A[j] > value:

3     A[j+1] = A[j]

4     j = j – 1

Bước 5. Chèn A[i] vào đúng vị trí trống

- Từ bước 4 chúng ta đã biết quá trình chuyển sang phải của các phần tử A[j] sẽ kết thúc khi A[j] <= A[i], do đó vị trí j + 1 chính là vị trí trống cần chèn.

- Việc chèn phần tử A[i] (giá trị được lưu trong value) vào vị trí j + 1 được thực hiện bằng câu lệnh:

A[j+1] = value

Như vậy, ba thao tác đã nêu ở bước 2 trên có thể được thực hiện bằng các câu lệnh chương trình như sau:

Chèn A[i] vào đúng vị trí

1 value A[i]

2 j = i – 1

3 while j >= 0 and A[j] > value:

4        A[j+1] = A[j]

5        j = j – 1

6 A[j+1] = value

c) Chương trình hoàn chỉnh

- Chương trình giải bài toán đặt ra được thiết kế hoàn chỉnh dưới dạng hàm InsertionSort(A).

- Tổng hợp các bước trên chúng ta có chương trình hoàn chỉnh như sau:

1 def InsertionSort(A):

2     n = len(A)

3     for i in range(1,n):

4         value = A[i]

5         j = i-1

6       while j >= 0 and A[j] > value:

7          A[j+1] = A[j]

8          j = j - 1

9       A[j+1] = value

Kết luận:

- Các bước thiết kế sắp xếp chèn được mô tả như sau:

1) Tìm hiểu bài toán

2) Thiết kế chương trình giải bài toán

Bước 1. Thiết lập ý tưởng thiết kế ban đầu.

Bước 2. Làm chi tiết hơn, thực hiện việc "Chèn A[i] vào đúng vị trí".

Bước 3. Nhấc A[i] lên.

Bước 4. Chuyển các phần tử bên trái A[i] và lớn hơn A[i] sang phải.

Bước 5. Chèn A[i] vào đúng vị trí trống.

3) Chương trình hoàn chỉnh

- Phương pháp làm mịn dần trong thiết kế chương trình là quá trình chi tiết hóa từ ý tưởng của các bước trước thành những hành động cụ thể hơn ở các bước sau. Ở bước cuối cùng, các hành động tương ứng với các câu lệnh của ngôn ngữ lập trình để viết chương trình hoàn chỉnh.

Hoạt động 2: Tìm hiểu về thiết kế chương trình bằng phương pháp làm mịn dần

  1. a) Mục tiêu: Giúp HS biết và thực hiện được thiết kế một thuật toán đơn giản bằng phương pháp làm mịn dần.
  2. b) Nội dung: GV nêu nhiệm vụ, HS hoạt động nhóm đọc hiểu thông tin mục 2 trang 120 - 122 SGK và thực hiện nhiệm vụ được giao.
  3. c) Sản phẩm: Thiết kế chương trình bằng phương pháp làm mịn dần.
  4. d) Tổ chức thực hiện:

 

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:

  • Word được soạnChi tiết, rõ ràng, mạch lạc
  • Powerpoint soạn: Hiện đại, đẹp mắt để tạo hứng thú học tập
  • Word và powepoint đồng bộ với nhau

Phí giáo án:

  • Giáo án word: 300k/học kì - 400k/cả năm
  • Giáo án Powerpoint: 400k/học kì - 450k/cả năm
  • Trọn bộ word + PPT: 500k/học kì - 600k/cả năm

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

CÁCH TẢI:

  • Bước 1: Chuyển phí vào STK: 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 khoa học máy tính 11 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

I. GIÁO ÁN WORD KHOA HỌC MÁY TÍNH 11 KẾT NỐI TRI THỨC

GIÁO ÁN WORD CHỦ ĐỀ 1. MÁY TÍNH VÀ XÃ HỘI TRI THỨC

GIÁO ÁN WORD CHỦ ĐỀ 2. TỔ CHỨC LƯU TRỮ, TÌM KIẾM VÀ TRAO ĐỔI THÔNG TIN

GIÁO ÁN WORD CHỦ ĐỀ 3. ĐẠO ĐỨC, PHÁP LUẬT VÀ VĂN HÓA TRONG MÔI TRƯỜNG SỐ

GIÁO ÁN WORD CHỦ ĐỀ 4. GIỚI THIỆU CÁC HỆ CƠ SỞ DỮ LIỆU

GIÁO ÁN WORD CHỦ ĐỀ 5. HƯỚNG NGHIỆP VỚI TIN HỌC

GIÁO ÁN WORD CHỦ ĐỀ 6. KĨ THUẬT LẬP TRÌNH

II. GIÁO ÁN POWERPOINT KHOA HỌC MÁY TÍNH 11 KẾT NỐI TRI THỨC

GIÁO ÁN POWERPOINT CHỦ ĐỀ 1. MÁY TÍNH VÀ XÃ HỘI TRI THỨC

GIÁO ÁN POWERPOINT CHỦ ĐỀ 2. TỔ CHỨC LƯU TRỮ, TÌM KIẾM VÀ TRAO ĐỔI THÔNG TIN

GIÁO ÁN POWERPOINT CHỦ ĐỀ 3. ĐẠO ĐỨC, PHÁP LUẬT VÀ VĂN HÓA TRONG MÔI TRƯỜNG SỐ

GIÁO ÁN POWERPOINT CHỦ ĐỀ 4. GIỚI THIỆU CÁC HỆ CƠ SỞ DỮ LIỆU

GIÁO ÁN POWERPOINT CHỦ ĐỀ 5. HƯỚNG NGHIỆP VỚI TIN HỌC

Giáo án Khoa học máy tính 11 kết nối Bài 16: Công việc quản trị cơ sở dữ liệu

GIÁO ÁN POWERPOINT CHỦ ĐỀ 6. KĨ THUẬT LẬP TRÌNH

III. GIÁO ÁN CHUYÊN ĐỀ KHOA HỌC MÁY TÍNH 11 KẾT NỐI TRI THỨ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