1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Skkn cấp tỉnh vận dụng bài toán thực tế Để dạy thuật toán tham lam, lùa bò vào chuồng, cửa sổ trượt và quét Đường thẳng tạo hứng thú trong bồi dưỡng học sinh giỏi tại trường thpt dtnt ngọc lặc

44 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Vận dụng bài toán thực tế để dạy thuật toán tham lam, lùa bò vào chuồng, cửa sổ trượt và quét đường thẳng tạo hứng thú trong bồi dưỡng học sinh giỏi tại trường thpt dtnt ngọc lặc
Tác giả Dương Thị Lan
Trường học Trường THPT DTNT Ngọc Lặc
Chuyên ngành Tin học
Thể loại Sáng kiến kinh nghiệm
Năm xuất bản 2025
Thành phố Thanh Hóa
Định dạng
Số trang 44
Dung lượng 2,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1. Mở đầu (4)
    • 1.1 Lý do chọn đề tài (4)
    • 1.2. Mục đích nghiên cứu (4)
    • 1.3. Đối tượng và phạm vi nghiên cứu (4)
    • 1.4. Phương pháp nghiên (4)
  • 2. Nội dung sáng kiến kinh nghệm (5)
    • 2.1. Cơ sở lý luận (5)
      • 2.1.1. Cơ sở lý luận về đổi mới PP dạy học và phát triển năng lực học sinh (5)
      • 2.1.2. Cơ sở lý luận về việc sử dụng bài toán thực tế trong giảng dạy thuật toán (5)
      • 2.1.3. Cơ sở lý luận về đặc điểm học sinh dân tộc và tính đặc thù trong giảng dạy ở trường Dân tộc nội trú (5)
    • 2.2 Thực trạng trước khi áp dụng sáng kiến kinh nghiệm (5)
      • 2.2.1. Về phía học sinh (5)
      • 2.2.2. Về phía giáo viên và phương pháp giảng dạy (6)
    • 2.3 Các các bài toán thực tế và giải pháp đã sử dụng để tạo hứng thú khi dạy các thuật toán trong việc bồi dưỡng học sinh giỏi (6)
      • 2.3.1 Thuật toán tham lam (6)
      • 2.3.2. Thuật toán lùa bò vào chuồng (10)
      • 2.3.3. Thuật toán cửa sổ trượt (Sliding window) (14)
      • 2.3.4. Thuật toán quét đường thẳng (Sweep line) (19)
    • 2.4. Hiệu quả của sáng kiến kinh nghiệm (22)
  • 3. Kết luận và kiến nghị (22)
    • 3.1 Kết luận (22)
    • 3.2 Kiến nghị (23)

Nội dung

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓATRƯỜNG THPT DTNT NGỌC LẶC SÁNG KIẾN KINH NGHIỆM VẬN DỤNG BÀI TOÁN THỰC TẾ ĐỂ DẠY THUẬT TOÁN THAM LAM, LÙA BÒ VÀO CHUỒNG, CỬA SỔ TRƯỢT VÀ QUÉT ĐƯỜNG THẲNG

Nội dung sáng kiến kinh nghệm

Cơ sở lý luận

2.1.1 Cơ sở lý luận về đổi mới PP dạy học và phát triển năng lực học sinh

Theo định hướng đổi mới giáo dục phổ thông, mục tiêu không chỉ là truyền thụ tri thức mà còn phát triển năng lực người học, đặc biệt là tư duy, giải quyết vấn đề và sáng tạo Chương trình giáo dục phổ thông 2018 xác định môn Tin học là một phần quan trọng trong việc hình thành các năng lực như tư duy logic, tư duy thuật toán và sử dụng công nghệ thông tin Do đó, việc đổi mới phương pháp dạy học Tin học, đặc biệt trong bồi dưỡng học sinh năng khiếu, là yêu cầu cần thiết.

Phương pháp dạy học tích cực, đặc biệt là việc áp dụng tình huống thực tiễn, giúp học sinh nhận thức rõ ý nghĩa và ứng dụng của kiến thức, từ đó kích thích hứng thú và động lực học tập Theo lý thuyết “học qua trải nghiệm” của John Dewey, việc tham gia giải quyết các tình huống thực tế mang tính khám phá và sáng tạo sẽ nâng cao hiệu quả học tập của học sinh.

2.1.2 Cơ sở lý luận về việc sử dụng bài toán thực tế trong giảng dạy thuật toán

Thuật toán là lĩnh vực quan trọng trong khoa học máy tính, nhưng thường khó hiểu với học sinh, đặc biệt là các thuật toán trừu tượng như thuật toán tham lam và kỹ thuật cửa sổ trượt Việc áp dụng tình huống thực tế trong giảng dạy giúp học sinh hình dung rõ ràng hơn về vấn đề, đồng thời rèn luyện kỹ năng phân tích, trừu tượng hóa và mô hình hóa, từ đó làm cho việc tiếp cận thuật toán trở nên dễ dàng hơn.

2.1.3 Cơ sở lý luận về đặc điểm học sinh dân tộc và tính đặc thù trong giảng dạy ở trường Dân tộc nội trú

Học sinh Trường THPT Dân tộc nội trú Ngọc Lặc, chủ yếu đến từ vùng sâu, vùng xa, đối mặt với nhiều khó khăn trong học tập và hạn chế trong việc tiếp cận tài liệu nâng cao Dù vậy, các em thể hiện sự cần cù, chịu khó và đặc biệt hứng thú với những bài học thực tế, hình ảnh trực quan và có tính ứng dụng cao.

Việc áp dụng bài toán thực tế trong giảng dạy các thuật toán không chỉ phù hợp với khả năng nhận thức của học sinh mà còn kích thích sự tò mò và đam mê học tập Điều này giúp các em tiếp cận kiến thức một cách thân thiện và gần gũi hơn, tạo nền tảng quan trọng để nâng cao chất lượng bồi dưỡng học sinh năng khiếu, đặc biệt trong bối cảnh còn nhiều hạn chế về cơ sở vật chất và tài liệu học tập.

Thực trạng trước khi áp dụng sáng kiến kinh nghiệm

Nhiều học sinh hiện nay gặp khó khăn trong việc hình dung và triển khai ý tưởng giải thuật, cho thấy tư duy thuật toán của họ còn yếu Họ thường nắm bắt các nguyên lý của thuật toán một cách máy móc, thiếu sự linh hoạt và chưa thực sự hiểu bản chất của vấn đề.

Học sinh thường thiếu hứng thú học tập do các bài toán mang tính trừu tượng và xa rời thực tiễn, dẫn đến việc các em nhanh chán và ít chủ động trong việc tìm hiểu hoặc mở rộng kiến thức ngoài những gì được dạy.

Kỹ năng phân tích và mô hình hóa của học sinh thường yếu kém, dẫn đến lúng túng khi đối mặt với các bài toán lạ Họ gặp khó khăn trong việc phân tích yêu cầu đề bài, xác định đầu vào và đầu ra, và chưa biết cách trừu tượng hóa thành mô hình thuật toán để giải quyết vấn đề.

Chênh lệch trình độ giữa học sinh dân tộc thiểu số và các nhóm khác xuất phát từ việc tiếp cận không đồng đều với các khái niệm thuật toán nâng cao Điều này không chỉ tạo ra khoảng cách trong nhóm học sinh mà còn gây ra tâm lý tự ti ở một số em.

2.2.2.Về phía giáo viên và phương pháp giảng dạy

Phương pháp giảng dạy hiện nay vẫn còn nặng về lý thuyết, với nhiều nội dung thuật toán được trình bày khô khan và mang tính hàn lâm Việc thiếu minh họa cụ thể từ thực tế khiến học sinh gặp khó khăn trong việc hình dung và vận dụng kiến thức.

Tài liệu tham khảo hiện tại chủ yếu dành cho học sinh chuyên hoặc có nền tảng tốt, chưa phù hợp với trình độ và phương pháp học của học sinh dân tộc nội trú Cần có các tài liệu nâng cao được thiết kế đặc biệt cho đối tượng này để hỗ trợ hiệu quả hơn trong quá trình học tập.

Mặc dù có nhiều tình huống thực tế có thể áp dụng vào bài toán thuật toán, nhưng giáo viên vẫn chưa chủ động xây dựng hệ thống bài tập thực tế phù hợp với từng nội dung thuật toán cụ thể trong quá trình giảng dạy.

Các các bài toán thực tế và giải pháp đã sử dụng để tạo hứng thú khi dạy các thuật toán trong việc bồi dưỡng học sinh giỏi

2.3 1.1 Xây dựng ý tưởng của bài toán tham lam qua các ví dụ thực tế

Trong cuộc sống, "tham lam" thường bị coi là một hành động xấu cần loại bỏ Tuy nhiên, trong lĩnh vực tin học, thuật toán tham lam lại mang lại nhiều lợi ích khi giải quyết các bài toán "Tham lam" ở đây có nghĩa là thực hiện công việc với chi phí thấp, thời gian ngắn và không gian tối thiểu, hoặc là phân phối tài nguyên như nước, xăng, tiền một cách hiệu quả để tối đa hóa lợi nhuận.

Nam có n file nhạc với dung lượng a1, a2, an (MB) và cần ghi một số file vào đĩa CD có dung lượng m (MB) Mục tiêu là tìm phương án tối ưu để ghi được nhiều file nhạc nhất có thể lên đĩa.

* Ý tưởng tham lam (HS sẽ nhận diện bài toán để tìm ra yếu tố tham lam)

 Sắp xếp các file nhạc theo thứ tự tăng dần về dung lượng.

 Chọn file có dung lượng nhỏ nhất trước, rồi tiếp tục chọn file tiếp theo nếu tổng dung lượng chưa vượt quá m.

 Lặp lại cho đến khi không thể chọn thêm file nào.

1 1 2 3 4 6 ( 6 file nhạc với dung lượng 17)

Qua 2 ví dụ trên, Giáo viên có thể khái quát ý tưởng bài toán có sử dụng chiến lược tham lam như sau:

Bài toán: Tìm phương án tối ưu khi chọn 1 tập con X từ tập S lớn.

Giả sử chúng ta đã có tập X = {x1, x2, , xk} và cần mở rộng tập này bằng cách tìm xk+1 để bổ sung vào X Việc chọn xk+1 sẽ được thực hiện từ tập S, nhằm đảm bảo rằng phương án tập X tại thời điểm hiện tại là tối ưu, mặc dù chưa chắc đã là tốt nhất cho tương lai.

Chiến lược tham lam là một phương pháp tối ưu hóa, trong đó các lựa chọn tốt nhất cục bộ được đưa ra ở mỗi bước, với hy vọng rằng kết quả cuối cùng sẽ đạt được tối ưu.

Nguyên tắc chung của chiến lược tham lam

Lựa chọn tham lam là phương pháp tối ưu hóa, trong đó tại mỗi bước, ta luôn chọn phương án tốt nhất có thể ở thời điểm đó Tuy nhiên, lựa chọn này cần phải đảm bảo tính khả thi, tức là phải thỏa mãn các điều kiện ràng buộc của bài toán Đặc biệt, các lựa chọn được thực hiện sẽ không bị thay đổi trong các bước tiếp theo, đảm bảo tính ổn định trong quá trình tối ưu hóa cục bộ.

Không quay lui: Giải thuật tham lam không quay lại thay đổi quyết định trước đó.

2.3.1.2 Các dạng bài toán áp dụng chiến lược tham lam điển hình

Bài 1 Bí kíp luyện rồng

Sau khi không còn gì để đố 2 thằng em của mình nữa Tý quay ra chơi điện tử.

Tý rất thích trò chơi điều khiển nhân vật Hiccup chiến đấu với các con rồng để nhận chứng chỉ dũng sĩ dragon Để vượt qua một con rồng, chỉ số chiến đấu của Hiccup phải lớn hơn chỉ số của rồng đó Sau khi chiến thắng, chỉ số chiến đấu của Hiccup sẽ tăng lên một mức nhất định tùy thuộc vào con rồng mà cậu đánh bại.

Tý muốn biết liệu Hiccup có thể nhận được chứng chỉ không? Bạn hãy giúp Tý với.

- Dòng đầu tiên gồm 2 số nguyên s và n, trong đó n là số con rồng Hiccup cần phải vượt qua (1 ≤ n ≤ 10 3 ) và s là chỉ số chiến đấu ban đầu của Hiccup (1 ≤ s ≤ 10 4 ).

Trong đoạn tiếp theo, dòng thứ i sẽ chứa cặp số (x[i], y[i]), trong đó x[i] đại diện cho chỉ số chiến đấu của con rồng thứ i (1 ≤ x[i] ≤ 10^4) và y[i] là mức tăng chỉ số mà Hiccup nhận được nếu đánh bại con rồng đó (0 ≤ y[i] ≤ 10^4).

OUTPUT: In ra “YES” nếu Hiccup nhận được chứng chỉ dũng sĩ dragon.

Trường hợp ngược lại thì:

Dòng 1: ghi ”NO” nếu Hiccup không nhận được chứng chỉ dũng sỹ dragon. Dòng 2: đưa ra số lượng rồng còn lại chưa bị tiêu diệt.

DRAGON.INP DRAGON.OUT DRAGON.INP DRAGON.OUT

Đánh con rồng yếu trước để tăng sức mạnh, sau đó mới đánh con rồng mạnh Nếu đánh rồng mạnh trước mà không đủ sức mạnh, bạn sẽ thua ngay lập tức Việc tiêu diệt rồng yếu trước giúp bạn có đủ sức mạnh để đối phó với những con rồng mạnh hơn sau này.

- Dùng kiểu dữ liệu pair

B1: Sắp xếp các con rồng tăng dần theo sức mạnh.

B3: Nếu (ans = n): YES Ngược lại : NO

- Số lượng con rồng chưa tiêu diệt là n - ans.

Giáo viên hướng dẫn học sinh viết và hoàn thiện mã code, sau đó chấm điểm trên web Một số bài chưa được kiểm tra đầy đủ, giáo viên sẽ hướng dẫn cách debug và sửa lỗi, giúp học sinh nhận ra kết quả bài làm của mình Qua mỗi bài học, học sinh có thể nhận biết được những điểm đúng và sai, từ đó sửa chữa kịp thời, tạo sự hứng thú và phấn khởi trong quá trình học tập.

HS: quan sát được kết quả bài mình làm dù đúng hay sai nên rất hứng thú khơi dậy được niềm đam mê học lập trình

HS: khi chấm trên web còn biết thêm thời gian thực hiện, tài nguyên sử dụng vv

Chương trình viết bằng ngôn ngữ C++: Kết quả chấm trên oj.vnoi.info

Bài 2: Bài tập về nhà Bạn An được thầy giáo giao cho N bài tập về nhà, mỗi bài tập có mức độ khó khác nhau được đánh giá bởi giá trị a[i] Để làm được bài tập thứ i thì bạn An cần phải có kỹ năng lớn hơn hoặc bằng mức độ khó a[i] Mỗi khi làm được bài độ khó là a[i] thì kỹ năng giải bài của cậu được tăng thêm một lượng là a[i] Ban đầu kỹ năng làm bài của bạn An là S.

Hãy cho biết bạn An có thể làm được tối đa bao nhiêu bài tập.

Một số nguyên duy nhất là số lượng bài tập lớn nhất làm được.

3 Ý tưởng: tham lam ở đây là: Bài dễ làm trước, bài khó làm sau:

B1: Sắp xếp tăng dần mức độ khó của các bài tập a1 ≤ a2 ≤ a3 ≤….≤ an

Nếu (S < a[i]): break; ans+ = 1 // tăng số bài đã làm

GV hướng dẫn học sinh viết và hoàn thiện code, sau đó chấm điểm trên web Một số bài chưa được kiểm tra đầy đủ, vì vậy GV sẽ hướng dẫn học sinh debug và sửa lỗi, giúp học sinh nhận thấy kết quả của bài làm.

HS: quan sát được kết quả bài mình làm dù đúng hay sai nên rất hứng thú.

Chương trình minh hoạ bằng ngôn ngữ

Kết quả chấm trên oj.vnoi.info

Bài 3 Khuyến mại Đến ngày giáng sinh và năm mới, rất nhiều cửa hàng có các chương trình khuyến mại để xả hàng cuối năm Hệ thống các siêu thị BigC cũng tiến hành việc này Trong đợt khuyến mại này, một người cứ mua 3 đồ sẽ được giảm giá là giá trị đồ có trị nhỏ nhất.

Ban lãnh đạo yêu cầu bạn phát triển một chương trình để xác định mức giảm giá tối đa mà một khách hàng có thể nhận được khi mua một đơn vị của mỗi loại sản phẩm trong siêu thị.

INPUT: Vào từ file văn bản DISCOUNT.INP

Dòng đầu ghi số N là số mặt hàng trong siêu thị (1 ≤ N ≤ 1.000.000).

Dòng tiếp theo ghi N số nguyên dương a i thể hiện giá của N mặt hàng trong siêu thị Giá trị các mặt hàng 1 ≤ a i ≤ 10 6

OUTPUT :Ghi ra file văn bản DISCOUNT.OUT

Ghi một số duy nhất là mức giảm giá cao nhất mà một khách hàng có thể nhận được khi mua một đơn vị của mỗi loại sản phẩm trong siêu thị.

- Để giảm giá nhiều nhất, ta nên chọn những món đắt tiền nhất trước vì món rẻ nhất trong mỗi nhóm 3 món sẽ quyết định số tiền giảm.

- Sắp xếp giảm dần các món hàng theo giá trị.

- Nhóm 3 sản phẩm 1 lần: Sản phẩm thứ 3 trong mỗi nhóm là món rẻ nhất và sẽ được giảm giá.

- Cộng tổng giá của các sản phẩm được giảm giá.

GV hướng dẫn học sinh viết và hoàn thiện code, sau đó chấm điểm trên web Một số bài chưa được kiểm tra đầy đủ, vì vậy GV sẽ hướng dẫn học sinh debug và sửa lỗi, giúp học sinh nhận thấy kết quả của bài làm.

HS: quan sát được kết quả bài mình làm dù đúng hay sai nên rất hứng thú.

(chương trình mình họa bằng C++ và kết quả chấm trên web ở phụ lục 2 )

2.3.1.3 Bài tập tự luyện : Phụ lục 1

2.3.2 Thuật toán lùa bò vào chuồng

Hiệu quả của sáng kiến kinh nghiệm

Kết quả cụ thể như sau:

Học sinh thể hiện sự hào hứng khi học các bài toán thực tế, giúp cải thiện khả năng phân tích, mô hình hóa và lập trình Sau một thời gian áp dụng, kết quả kiểm tra và đánh giá năng lực tư duy thuật toán tăng từ 10-20% so với lớp không áp dụng sáng kiến, với Đội tuyển HSG lớp 10 là lớp thực nghiệm và Đội tuyển HSG lớp 11 là lớp đối chứng.

SL Rất hứng thú Hứng thú Bình thường

SL TL % SL TL % SL TL %

Bảng 1 trình bày kết quả điều tra mức độ hứng thú học tập của học sinh sau khi áp dụng các thuật toán Kết quả năm học cho thấy học sinh Lê Xuân Đức Anh lớp 10 A1 đã xuất sắc đạt được 2 giải thưởng, bao gồm 1 giải HSG tỉnh và 1 giải Tin học trẻ.

SL Điểm khá giỏi ≥7 Điểm TB Điểm

Ngày đăng: 11/06/2025, 15:24

HÌNH ẢNH LIÊN QUAN

Hình dưới thể hiện bộ test 1. - Skkn cấp tỉnh vận dụng bài toán thực tế Để dạy thuật toán tham lam, lùa bò vào chuồng, cửa sổ trượt và quét Đường thẳng tạo hứng thú trong bồi dưỡng học sinh giỏi tại trường thpt dtnt ngọc lặc
Hình d ưới thể hiện bộ test 1 (Trang 21)
Bảng 1: Bảng điều tra mức độ hứng thú học tập của HS sau khi học cá thuật toán Khi áp dụng sáng kiến này thì kết quả thu được của năm học là có em học sinh Lê Xuân Đức Anh lớp 10 A1 đã đạt 2 giải ( 1 giải HSG tỉnh, 1 giải Tin học trẻ) - Skkn cấp tỉnh vận dụng bài toán thực tế Để dạy thuật toán tham lam, lùa bò vào chuồng, cửa sổ trượt và quét Đường thẳng tạo hứng thú trong bồi dưỡng học sinh giỏi tại trường thpt dtnt ngọc lặc
Bảng 1 Bảng điều tra mức độ hứng thú học tập của HS sau khi học cá thuật toán Khi áp dụng sáng kiến này thì kết quả thu được của năm học là có em học sinh Lê Xuân Đức Anh lớp 10 A1 đã đạt 2 giải ( 1 giải HSG tỉnh, 1 giải Tin học trẻ) (Trang 22)
Hình ảnh lễ hội đua bò huyện Tịnh Biên, Tỉnh An Giang - Skkn cấp tỉnh vận dụng bài toán thực tế Để dạy thuật toán tham lam, lùa bò vào chuồng, cửa sổ trượt và quét Đường thẳng tạo hứng thú trong bồi dưỡng học sinh giỏi tại trường thpt dtnt ngọc lặc
nh ảnh lễ hội đua bò huyện Tịnh Biên, Tỉnh An Giang (Trang 31)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w