Sáng kiến kinh nghiệm Tìm hiểu về bài toán và thuật toán trong Tin học 10
Như chúng ta đã biết Tin học là một bộ môn học mới được đưa vào giảng dạy chính thức ở các trường phổ thông. Đối với các em học sinh, có thể nói đây là một hành trang giúp các em vững bước đi tới tương lai_tương lai của thế hệ thời đại công nghệ thông tin bùng nổ. Tuy nhiên, đối với học sinh lớp 10 mới làm quen với chương trình Tin học nên các em còn nhiều bỡ ngỡ. Vì vậy, quá trình dạy và học bộ môn Tin học trong nhà trường gặp nhiều khó khăn. Đây là một môn khoa học mới mang tính trừu tượng nhưng học sinh cũng rất có hứng thú tìm hiểu.
Qua thực tế giảng dạy ở trường và qua trao đổi với đồng nghiệp, tôi nhận thấy rằng trong toàn bộ chương trình Tin học 10 thì bài 4 _”Bài toán và thuật toán” có nội dung hay nhưng khó và khô khan, đặc biệt là việc mô tả các thuật toán để biểu diễn vào máy tính, cho dù đó là bài toán quen thuộc. Cũng là từ việc thăm lớp dự giờ của các đồng nghiệp, với tình hình kết quả học tập của học sinh, cộng với tinh thần say mê nghề nghiệp, tôi muốn chia sẻ một kinh nghiệm nhỏ để giúp chúng ta cùng tham khảo trong quá trình dạy học. Đó là kinh nghiệm phối hợp nhiều phương pháp trong giờ dạy để giúp các em học tốt hơn về “Bài toán và thuật toán” trong sách Tin học 10. Cụ thể tôi muốn nhấn mạnh ở đây là phương pháp dùng giáo án điện tử do giáo viên biên soạn để trình chiếu bài giảng, kết hợp với thuyết trình, vấn đáp và mô phỏng các dẫn chứng cụ thế cho học sinh hiểu bài.
Tôi xin trình bày phương pháp giảng dạy của mình thông qua một số ví dụ về bài giảng cụ thể trong chương trình Tin học lớp 10, đó là bài “Tìm hiểu về bài toán và thuật toán”. Đây được coi là bài học khó trong chương trình sách giáo khoa lớp 10 và có liên quan chặt chẽ đến kiến thức lớp 11 sau này.
1. MỞ ĐẦU - Lí do chọn đề tài Như chúng ta đã biết Tin học là một bộ môn học mới được đưa vào giảng dạy chính thức ở các trường phổ thông. Đối với các em học sinh, có thể nói đây là một hành trang giúp các em vững bước đi tới tương lai_tương lai của thế hệ thời đại công nghệ thông tin bùng nổ. Tuy nhiên, đối với học sinh lớp 10 mới làm quen với chương trình Tin học nên các em còn nhiều bỡ ngỡ. Vì vậy, quá trình dạy và học bộ môn Tin học trong nhà trường gặp nhiều khó khăn. Đây là một môn khoa học mới mang tính trừu tượng nhưng học sinh cũng rất có hứng thú tìm hiểu. Qua thực tế giảng dạy ở trường và qua trao đổi với đồng nghiệp, tôi nhận thấy rằng trong toàn bộ chương trình Tin học 10 thì bài 4 _”Bài toán và thuật toán” có nội dung hay nhưng khó và khô khan, đặc biệt là việc mô tả các thuật toán để biểu diễn vào máy tính, cho dù đó là bài toán quen thuộc. Cũng là từ việc thăm lớp dự giờ của các đồng nghiệp, với tình hình kết quả học tập của học sinh, cộng với tinh thần say mê nghề nghiệp, tôi muốn chia sẻ một kinh nghiệm nhỏ để giúp chúng ta cùng tham khảo trong quá trình dạy học. Đó là kinh nghiệm phối hợp nhiều phương pháp trong giờ dạy để giúp các em học tốt hơn về “Bài toán và thuật toán” trong sách Tin học 10. Cụ thể tôi muốn nhấn mạnh ở đây là phương pháp dùng giáo án điện tử do giáo viên biên soạn để trình chiếu bài giảng, kết hợp với thuyết trình, vấn đáp và mô phỏng các dẫn chứng cụ thế cho học sinh hiểu bài. Tôi xin trình bày phương pháp giảng dạy của mình thông qua một số ví dụ về bài giảng cụ thể trong chương trình Tin học lớp 10, đó là bài “Tìm hiểu về bài toán và thuật toán”. Đây được coi là bài học khó trong chương trình sách giáo khoa lớp 10 và có liên quan chặt chẽ đến kiến thức lớp 11 sau này. - Mục đích nghiên cứu Đề tài được thực hiện nhằm mục đích đưa ra một số kinh nghiệm trong việc phối hợp một số phương pháp trong giờ dạy học để giúp học sinh có cái nhìn trực quan, hiểu và nắm bắt sâu hơn để học tốt hơn về “Bài toán và thuật toán” trong chương trình Tin học lớp 10. Từ đó, qua mỗi phần học, tiết học học sinh thích thú với kiến thức mới, qua đó hiểu được các kiến thức đã học trên lớp, đồng thời giúp các em thấy được tầm quan trọng của vấn đề và việc ứng dụng của kiến thức trước hết là đáp ứng những yêu cầu của môn học, và sau đó là ứng dụng thực tiễn vào đời sống xã hội. - Đối tượng nghiên cứu + Đối tượng nghiên cứu của đề tài là phối hợp một số phương pháp, mô hình trong giờ dạy để tạo sự hứng thú, tích cực cho học sinh giúp lĩnh hội kiến thức một cách tốt nhất để đem lại hiệu quả cao. + Học sinh vận dụng tốt các kiến thức đã học nhằm rèn cho học sinh kỹ năng tư duy, chủ động và sáng tạo + Đối tượng nghiên cứu là học sinh khối 10 của trường PT Nguyễn Mộng Tuân năm học 2016-2017 - Phương pháp nghiên cứu + Tìm, đọc, nghiên cứu các tài liệu đến vấn đề đặt ra để tìm cơ sở khoa học cho đề tài và tìm ra các giải pháp phù hợp với tình hình thực tế khi dạy bài: “Bài toán và thuật toán”, từ đó rút ra kinh nghiệm áp dụng. + Điều tra, đối thoại để tìm hiểu thực trạng của học sinh và tìm ra biện pháp thiết thực để giải quyết thực trạng đó qua trao đổi với đồng nghiệp + Dự giờ, rút kinh nghiệm, học hỏi đồng nghiệp + Kiểm tra, đối chiếu, so sánh qua việc thực hiện phương pháp mới ở một số lớp và không áp dụng ở một số lớp. + Phân tích, tổng hợp kết quả thu được trong thực tế để thấy được hiệu quả của đề tài. + Giúp học sinh nắm vững hai khái niệm then chốt về Bài toán và thuật toán, nắm được các tính chất của thuật toán và cách diễn tả thuật toán bằng hai cách là liệt kê và sơ đồ khối. + Cần rèn luyện cho học sinh kỹ năng liên hệ thực tế, liên hệ với bộ môn toán học và vận dụng kiến thức đó để rút ra kết luận bài học. + Soạn trước bài giảng: “Tìm hiểu về bài toán và thuật toán” trên máy tính bằng phần mềm Powerpoint , cùng với việc kết hợp mô phỏng thuật toán được chạy bằng chương trình Flash Player 7. 2. NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1. Cơ sở lí luận của sáng kiến kinh nghiệm Trước đây phương pháp dạy học của chúng ta đơn thuần chỉ là thuyết trình, vấn đáp trên lớp. Nhưng trong vài năm gần đây các trường phổ thông đó được trang bị phòng học máy tính (Computer) và máy chiếu (Projector) tại các lớp học, vì vậy chúng ta có điều kiện xây dựng “giáo án điện tử” để trình chiếu bài, kết hợp với việc dựng một số mô hình hỗ trợ cho nội dung bài học. “Bài toán và thuật toán” là một bài học khó trong chương trình SGK_Tin học 10 và có liên quan đến kiến thức lớp 11. Để viết được một thuật toán trên một loại ngôn ngữ nào đó thì trước hết yêu cầu học sinh phải nắm được thuật toán của bài toán đó. Như vậy, các em vừa phải biết suy luận giỏi như toán, lại còn phải biết cách trình bày từng bước một cách lôgic. Các em quen với cách áp dụng một quy luật, một công thức mà chưa quen với việc phải thực hiện từng bước lôgic, khoa học sao cho máy tính hiểu. Vì thế, giáo viên cần tích cực tìm tòi, sáng tạo trong bài dạy nhằm tăng thêm phần sinh động, gây hứng thú cho học sinh thì bài học mới đem lại kết quả cao. Từ kinh nghiệm của bản thân, qua trao đổi với tổ, nhóm chuyên môn tôi xin trình bày phương pháp giảng dạy của mình thông qua một ví dụ về một bài giảng cụ thể trong chương trình Tin học 10, đó là bài “Tìm hiểu về bài toán và thuật toán”. 2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm Bài toán và thuật toán là một bài lý thuyết nhưng lại liên quan đến bài tập trong chương trình Tin học 10. Do đó, nếu học sinh hiểu được khái niệm bài toán, thuật toán và phân biệt giữa chúng thì cũng chưa thể hình dung được cách thức làm việc của máy tính. Do đó vẫn đặt ra cho học sinh một câu hỏi: Vậy với một bài toán như thế, chỉ cần đưa ra một thuật toán cho nó thì bằng cách nào mà máy tính có thể cho ta kết quả một cách nhanh chóng và hiệu quả. Đó mới là câu hỏi lớn trong suốt quá trình học của học sinh, nếu giáo viên chưa áp dụng được phương pháp dạy học mới_bằng “giáo án điện tử”, minh họa và mô phỏng qua các hình ảnh. Chính vì thế, học sinh luôn phản ánh với giáo viên rằng bộ môn này khó và trừu tượng. Khi kiểm tra với mức độ đề tương đương trong SGK, các em vẫn cảm thấy mơ hồ và đạt kết quả không cao. Chất lượng kiểm tra sau khi học xong bài “Bài toán và thuật toán” môn Tin 10 ở trường PT Nguyễn Mộng Tuân tương đối thấp. Và nhiều học sinh còn chưa chủ động, chưa có thái độ tích cực xây dựng bài trong “Bài toán và thuật toán”. Bên cạnh đó, cũng có nhiều học sinh cho rằng đây là nội dung khó hiểu và thường gặp khó khăn khi vận dụng các bài đã học để giải quyết các bài toán. 2.3. Giải pháp đã sử dụng để giải quyết vấn đề 2.3.1. Giải pháp cụ thể 2.3.1.1. Giải pháp 1: Khảo sát thực tế Giáo viên đưa ra đề kiểm tra 1 tiết đối với lớp 10A2 (có 45 HS) như sau: Bài 1: Viết thuật toán tìm Max của dãy số gồm N số nguyên từ a1,a2,........aN. Bài 2: Viết thuật toán tìm UCLN của hai số nguyên dương A=25 và B=15 Bài 3: Viết thuật toán sắp xếp bằng tráo đổi để sắp xếp dãy a1,a2aN thành dãy không tăng (tức dãy giảm dần). Kết quả kiểm tra như sau: Điểm Số học sinh Tỉ lệ (%) 3 4 8.88 % 4 8 17.78 % 5 13 28.89 % 6 9 20 % 7 7 15.56 % 8 3 6.67 % 9 1 2.22 % Đối với các em học sinh, hầu như chỉ mới làm được Bài 1, Bài 2, Bài 3 ở việc xác định Input và Output. Còn để hiểu và viết được thuật toán cho bài thì quả là khó khăn với các em. 2.3.1.2. Giải pháp 2: Chuẩn bị - Về phương pháp: + Giáo viên soạn trước bài giảng “Bài toán và thuật toán” trên máy tính được biểu diễn bằng phần mềm trình chiếu Powerpoint. + Sưu tầm được một số mô hình bằng flash hỗ trợ cho việc dạy học. + Kết hợp thêm với phương pháp thuyết trình và vấn đáp, cho một số em lên bảng làm mẫu khi cần biểu diễn thuật toán tìm Max và thuật toán sắp xếp. + Giáo viên nên chuẩn bị thêm một số bài tập để rèn luyện thêm kỹ năng biểu diễn thuật toán cho học sinh. - Về phương tiện dạy học + Giáo viên nên chuẩn bị một máy tính để bàn hoặc máy tính xách tay, một máy chiếu. Nếu có điều kiện thì máy chủ của giáo viên nối với tất cả các máy con của học sinh để tiện quan sát. + Học sinh chuẩn bị sách, vở, bút, thước.. 2.3.2. Các bước thực hiện bài giảng "Tìm hiểu bài toán và thuật toán” 2.3.2.1. Hoạt động 1: Giúp học sinh hiểu rõ khái niệm "Bài toán" trong Tin học (Tài liệu bồi dưỡng giáo viên thực hiện chương trình Tin 10) Giáo viên đặt vấn đề bằng cách đưa ra các ví dụ để học sinh quan sát: - Bài toán 1: Cho dãy số nguyên dương từ a1,a2an. Viết thuật toán tìm giá trị lớn nhất của dãy. - Bài toán 2: Tìm UCLN của hai số nguyên dương A=25 và B=15 - Bài toán 3: Cho dãy số nguyên dương từ a1,a2an. Viết thuật toán sắp xếp bằng tráo đổi để sấp xếp dãy trên thành dãy không tăng (dãy giảm dần) Phát vấn học sinh: Em hãy xác định dữ kiện ban đầu và kết quả của mỗi bài toán sẽ có dạng gì ? (Dạng số, hình ảnh, hay văn bản ?) Học sinh trả lời: Dữ kiện Kết quả Ở bài toán 1 Cho dãy số nguyên dương a1,a2,..an. Giá trị lớn nhất của dãy Ở bài toán 2 M, N là hai số nguyên dương UCLN của hai số nguyên dương Ở bài toán 3 Cho dãy số nguyên dương a1,a2an. Sắp xếp thành dãy không tăng Phát vấn học sinh: Em hãy nhận xét sự giống và khác nhau giữa bài toán trong Tin học và bài toán trong Toán học? Học sinh trả lời: Bài toán trong Toán học yêu cầu chúng ta giải cụ thể để tìm ra kết quả, còn bài toán trong Tin học yêu cầu máy tính giải và đưa ra kết quả cho chúng ta. Giáo viên gợi ý thêm: Khi cô giáo ra một đề toán và yêu cầu chúng ta giải, vậy lúc này đối tượng giải bài toán này là ai? Học sinh sẽ trả lời chính là các em hay nói cách khác chính là Con người. Giáo viên liên hệ từ Con người D Máy tính Từ đây Giáo viên trình chiếu khái niệm Bài toán trong Tin học : Là một việc nào đó mà ta muốn máy tính thực hiện để từ thông tin đầu vào (dữ kiện) máy tính cho ta kết quả mong muốn. Tin học Thông tin đưa vào máy Thông tin muốn lấy từ máy Toán học Giả thiết Kết luận Thuật ngữ Input Output Nh - Những dữ kiện của bài toán được gọi là Input (đầu vào) - Kết quả máy tính trả ra được gọi là Output (đầu ra) Sau đó giáo viên yêu cầu học sinh tìm lại Input và Output của 3 ví dụ trên. Như vậy, khái niệm bài toán không chỉ bó hẹp trong phạm vi môn toán, mà phải được hiểu như là một vấn đề cần giải quyết trong thực tế, để từ những dữ kiện đã cho máy tính tìm ra kết quả cho chúng ta. 2.3.2.2. Hoạt động 2: Giúp học sinh hiểu rõ khái niệm "Thuật toán" trong Tin học + Bước 1: Giáo viên nêu tình huống gợi động cơ: Làm thế nào để từ Input của bài toán, máy tính tìm cho ta Output ? Học sinh trả lời: Ta cần tìm cách giải bài toán và làm cho máy tính hiểu được cách giải đó. Đến đây sẽ có em thắc mắc: Như vậy chúng ta vẫn phải giải bài toán mà có khi còn phức tạp hơn trong Toán học ? Bài toán Input Output Thuật toán Giáo viên giải thích: Nếu như trong Toán học chúng ta phải giải trực tiếp giải từng bài để lấy kết quả, thì ở đây chúng ta chỉ cần tìm cách giải bài toán tổng quát và máy tính sẽ giải cho ta một lớp các bài toán đồng dạng. Ví dụ: Bài toán giải phương trình bậc 2 với 3 hệ số a,b,c bất kỳ, bài toán tìm diện tích tam giác với độ dài 3 cạnh được nhập bất kỳ, bài toán tìm UCLN, bài toán tính chu vi và diện tích hình vuông ..... + Bước 2: Giáo viên đưa ra khái niệm thuật toán và các tính chất của một thuật toán: Khái niệm: “Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy các thao tác ấy, từ thông tin đầu vào (Input) của bài toán ta nhận được kết quả (Output) cần tìm”. + Bước 3: Giới thiệu cho học sinh 2 cách biểu diễn một thuật toán - Cách l: Liệt kê các bước: Chính là dùng ngôn ngữ tự nhiên để diễn tả các bước cần làm khi giải một bài toán bằng máy tính. - Cách 2: Dùng sơ đồ khối. Một số quy ước khi biểu diễn thuật toán bằng sơ đồ khối: (Có thể trình chiếu cho học sinh như sau) Giáo viên nhắc học sinh phải nhớ các quy ước trên để biểu diễn thuật toán được chính xác. 2.3.2.3.Hoạt động 3: Giới thiệu và hướng dẫn học sinh mô tả, biểu diễn thuật toán của một số bài toán điển hình. (Trọng tâm) a. Bài toán 1: Tìm Max của một dãy số gồm N số nguyên a1, a2, a3,, aN. (Tài liệu theo Chuẩn kiến thức và kĩ năng Tin học 10 ). * Ý tưởng: - Khởi tạo Max= a1. Ở đây giáo viên có thể phát vấn học sinh: Vì sao lại khởi tạo Max= a1? Về nguyên tắc có thể dùng bất kì số hạng nào của dãy để khởi tạo cho biến Max. Nhưng như vậy là không hiệu quả vì lúc đó phải khởi tạo biến chỉ số i là 1 (thêm một phép toán tăng i và thêm một phép toán không cần thiết là so sánh giá trị Max với số hạng đã dùng để khởi tạo biến Max). - Duyệt từ đầu dãy đến cuối dãy, sau đó mỗi lần, tùy kết quả so sánh với ai, nếu ai >Max thì gán Max bằng ai, cuối cùng sẽ tìm được Max. Đầu tiên, xét số hạng a2 (i=2), tiếp theo xét số hạng a3 (i=3),cho đến số hạng an. Học sinh cần bắt đầu làm quen dần với cách thay đổi giá trị của biến (trong thuật toán này, mỗi lần duyệt i được gán giá trị mới bằng i+1) Giáo viên nên trình bày thật cặn kẽ, kỹ lưỡng thuật toán này vì nó thể hiện tương đối đủ các khái niệm mà học sinh cần làm quen dần. Sách giáo khoa cũng lấy thuật toán này làm ví dụ minh họa các tính chất của thuật toán. Trên cơ sở đó HS dễ tiếp thu hơn các thuật toán tiếp theo. Trình chiếu thuật toán: (Tài liệu theo Sách giáo khoa Tin học 10). Cách 1: Liệt kê các bước Bước 1: Nhập N và dãy số nguyên a1, a2, a3,, aN. Bước 2: Max ß a1, iß 2. Bước 3: Nếu i > N thì đưa ra giá trị Max rồi kết thúc. Bước 4: 4.1: Nếu ai > Max thì Maxß ai 4.2: iß i+1 rồi quay lại bước 3 Cách 2: Biểu diễn bằng sơ đồ Nhập N và dãy a1,a2.an Max ß a1, iß 2 Đúng Đưa ra Max rồi kết thúc i > N Sai Sai ai > Max Đúng Maxß ai iß i+1 Mô phỏng: Với việc trình chiếu bằng giáo án điện tử, thông qua minh hoạ bằng ví dụ cụ thể thì các em hầu hết đã hiểu rõ về cách viết thuật toán. (Ví dụ như một Slide như sau) Cho biến i chạy từ 2 đến N để so sánh ai với Max, giá trị của Max lần lượt thay đổi theo từng biến chạy i, khi trình chiếu bằng giáo án điện tử học sinh quan sát sẽ hiểu rất rõ giá trị Max tìm được, khi i =12 > N = 11, thì đưa ra Max cuối cùng = 16, thuật toán kết thúc. Hoặc ở đây tôi có thể mô phỏng thuật toán được chạy bằng chương trình Flash Player 7 qua mỗi lần duyệt, đầu tiên so sánh Max với a2. Mô hình được minh họa như sau: Rồi lần lượt so sánh Max với a3, a4, a5 thì sẽ tìm được Max cần tìm b. Bài toán 2: Tìm UCLN của hai số nguyên dương A=25 và B=15 (Tài liệu theo sách giáo viên Tin học 10). * Ý tưởng: Duyệt lần lượt đến khi hai số đó chia hết cho một số lớn nhất. - Trình chiếu và hướng dẫn học sinh 2 cách biểu diễn thuật toán. Cách 1: Liệt kê các bước Bước 1: Nhập hai số nguyên dương A = 25 và B = 15 Bước 2: Nếu A = B thì UCLN của A và B là A or là B rồi kết thúc. Bước 3: Nếu A > B thì A = 25 – 15 rồi quay lại Bước 2 (A = 10) Bước 4: Nếu B > A thi B = 15 – 10 rồi quay lại Bước 2 (B = 5) Bước 4: Nếu A > B thi B = 10 – 5 rồi quay lại Bước 2 (A =5) Bước 5: Xuất UCLN của A = 25 và B = 15 là 5 rồi kết thúc. Cách 2: Biểu diễn bằng sơ đồ khối Nhập A= 25,B=15 Đúng Đưa ra UCLN của A, B rồi (kết thúc) A = B Sai Đúng A > B A = 25 - 15 Sai B = B - A Duyệt lần thứ nhất: A = 25 và B =15 _ A > B; A = A – B (25 -15) _ A = 10 Lần duyệt thứ nhất ta thấy A =10 và B = 15 nên A < B vì thế ta chuyển sang lần duyệt thứ hai Duyệt lần thứ hai: Nhập A= 25, B=15 Đưa ra UCLN của A, B rồi (kết thúc) Đúng A = B Sai Sai A < B A = A - B Đúng B = 15 - 10 Sau lần duyệt lần thứ hai: A = 10 và B =15 _ A < B; B = B – A (15 -10) _ B = 5 Lần duyệt thứ hai ta thấy A =10 và B = 5 nên A < B vì thế ta chuyển sang lần duyệt thứ 3. Duyệt lần thứ ba: Nhập A= 25,B=15 Đưa ra UCLN của A, B rồi (kết thúc) Đúng A = B Sai Đúng A > B A = 10 - 5 Sai B = B - A Sau lần duyệt thứ ba: A = 10 và B =5 _ A > B; A = A – B (10 -5) _ A = 5. Lần duyệt thứ ba ta thấy A =5 và B = 5 nên A = B vậy UCLN của A = 25 và B = 15 là 5. Vậy, sau ba lần duyệt ta tìm ra được UCLN của hai số nguyên dương A = 25 và B = 15 là 5 rồi kết thúc. c. Bài toán 3: Dùng thuật toán sắp xếp bằng tráo đổi để sắp xếp dãy số a1,a2,,aN thành dãy không tăng * Ý tưởng: Duyệt từ đầu dãy đến cuối dãy, nếu gặp một số ai < ai+1 thì đổi chỗ 2 số cho nhau, tức là số đứng trước phải luôn lớn hơn hay bằng số đứng sau. Như vậy ta phải duyệt dãy số nhiều lần, mỗi lần sẽ đưa được ít nhất một số về đúng vị trí của nó. Giáo viên nên giải thích lý do vì sao i được khởi tạo giá trị là 0 trong khi chỉ số của số hạng lại bắt đầu từ 1? (Vì để thuật toán dễ hiểu, ở bước 5 giá trị của i tăng lên 1 nên trên thực tế đúng là số hạng đầu tiên của dãy là a1). Giáo viên lại tiếp tục trình chiếu và hướng dẫn học sinh 2 cách biểu diễn thuật toán. Cách 1: Liệt kê các bước Bước 1: Nhập N, các số hạng a1, a2,........aN; Bước 2: MßN . Bước 3: Nếu M< 2 đưa ra dãy số đã sắp xếp rồi kết thúc; Bước 4: MßM-1, iß0 Bước 5: ißi+1 Bước 6: Nếu i>M quay lại bước 3; Bước 7: Nếu ai < ai+1 thì tráo đổi ai và ai+1 cho nhau Bước 8: Quay lại bước 5. Cách 2: Biểu diễn bằng sơ đồ khối Nhập N và dãy a1,a2,aN MßN Đưa ra A rồi kết thúc Đúng M< 2 Sai MßM-1, iß0 Đúng ißi+1 i>M Sai Đúng ai < ai+1 Tráo đổi ai và ai+1 Sau khi trình chiếu 2 cách biểu diễn thuật toán sắp xếp, giáo viên gọi 7 em học sinh lên đứng trước lớp theo thứ tự ngẫu nhiên để mô phỏng trực tiếp thuật toán sắp xếp. Cần sắp xếp lại sao cho 7 em này đứng theo đúng thứ tự lớn đứng trước, bé đứng sau đúng theo các bước trong thuật toán . Mô phỏng: (Dựa theo tài liệu nghiên cứu và kinh nghiệp của đồng nghiệp ). Lúc đầu 7 em đứng như sau: ( Ta coi mỗi em là một số để tiện theo dõi) 3 5 6 4 1 7 2 Lần duyệt thứ 1: (tính từ trái sang phải số hạng trước nhỏ hơn số hạng sau thì ta đổi chỗ cho nhau). - Em số 3 thấp hơn em số 5 nên ta thực hiện đổi chỗ cho nhau: 3 5 6 4 1 7 2 5 3 6 4 1 7 2 - Em số 3 thấp hơn em số 6 nên ta thực hiện đổi chỗ cho nhau. 5 6 3 4 1 7 2 - Em số 3 thấp hơn em số 4 nên ta thực hiện đổi chỗ cho nhau. 5 6 4 3 1 7 2 - Em số 1 thấp hơn em số 7 nên ta thực hiện đổi chỗ cho nhau. 5 6 4 3 7 1 2 - Em số 1 thấp hơn em số 2 nên ta thực hiện đổi chỗ cho nhau. 5 6 4 3 7 2 1 Vậy sau lần duyệt thứ nhất thì ta sắp xếp được hai em là 1 và 2 đưa về phía cuối dãy. Lần duyệt thứ 2: lại bắt đầu duyệt lại từ trái sang phải nếu số hạng trước lớn hơn số hạng sau ta cũng thực hiện đổi chỗ chúng cho nhau. - Em số 5 thấp hơn em số 6 nên ta thực hiện đổi chỗ cho nhau. 5 6 4 3 7 2 1 6 5 4 3 7 2 1 6 5 4 7 3 2 1 Vậy sau lần duyệt thứ hai ta sắp xếp được ba em là: 1, 2, 3 đưa về phía cuối dãy. Lần duyệt thứ 3: ta cũng bắt đầu duyệt lại từ trái sang phải như sau: - Em số 4 thấp hơn em số 7 nên ta thực hiện đổi chỗ cho nhau. 6 5 4 7 3 2 1 6 5 7 4 3 2 1 Lần duyệt thứ 4: Ta cũng duyệt lại từ trái sang phải, em số 5 thấp hơn em số 7 nên ta thực hiện đỗi chỗ, kết quả như sau: 6 7 5 4 3 2 1 Sau lần duyệt thứ tư ta đã sắp xếp được năm em là: 1, 2, 3, 4, 5 đưa về phía cuối dãy. Lần duyệt thứ 5: Duyệt lại từ trái sang phải, em số 6 thấp hơn em số 7 nên ta thực hiện đổi chỗ cho nhau. 6 7 5 4 3 2 1 - Em thứ 6 thấp hơn em thứ 7 nên ta thực hiện đổi chỗ cho nhau. 7 6 5 4 3 2 1 Vậy sau 5 lần duyệt, kết quả ta được một hàng sắp xếp theo thứ tự không tăng (tức giảm dần) như trên. 2.4. Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo dục, với bản thân, đồng nghiệp và nhà trường Sau một năm vận dụng cách thức phối hợp nhiều phương pháp giúp học sinh học tốt “Bài toán và thuật toán” tôi nhận thấy rằng phần đông học sinh thấy hứng thú, tích cực tham gia ý kiến xây dựng bài, thoải mái, vui vẻ hơn mỗi khi đến tiết, ý thức học tập của các em cũng tốt hơn rất nhiều. Cùng một đối tượng nhưng khi được giáo viên quan tâm, đưa ra nhiều phương pháp và hiệu quả trong giảng dạy thì chất lượng bộ môn được nâng lên rõ rệt. Phần đông học sinh thấy hứng thú trong học tập, thoải mái mỗi lúc đến tiết học. Khi tôi tìm hiểu tâm l
Tài liệu đính kèm:
- sang_kien_kinh_nghiem_tim_hieu_ve_bai_toan_va_thuat_toan_tro.doc
- Bìa_mục lục 2017.doc