SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT CHU VĂN AN SÁNG KIẾN KINH NGHIỆM PHÁT TRIỂN NĂNG LỰC TỰ GIẢI QUYẾT VẤN ĐỀ VÀ TƯ DUY SÁNG TẠO CHO HỌC SINH THÔNG QUA HÌNH THỨC XÂY DỰNG SƠ ĐỒ QUA BÀI DẠY “PHƯƠNG PHÁP LÀM MỊN DẦN TRONG THIẾT KẾ CHƯƠNG TRÌNH” Người thực hiện : Nguyễn Thị Huyền Chức vụ : Giáo viên SKKN thuộc lĩnh vực (môn) : Tin học THANH HOÁ NĂM 2025 MỤC LỤC 1. Lý do chọn đề tài. Mục đích nghiên cứu. Đối tượng nghiên cứu.
Phương pháp nghiên cứu. Những điểm mới của sáng kiến kinh nghiệm. NỘI DUNG SÁNG KIẾN KINH NGHIỆM. Cơ sở lý luận của sáng kiến kinh nghiệm.
Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm. Giải pháp đã sử dụng để giải quyết vấn đề. Xây dựng hệ thống câu hỏi cho bài dạy. Thiết kế làm mịn trên các bài toán.
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. KẾT LUẬN VÀ KIẾN NGHỊ. 19 TÀI LIỆU THAM KHẢO DANH MỤC CÁC ĐỀ TÀI SKKN MÀ TÁC GIẢ ĐÃ ĐƯỢC HỘI ĐỒNG SKKN NGÀNH GD HUYỆN, TỈNH VÀ CÁC CẤP CAO HƠN ĐÁNH GIÁ ĐẠT TỪ LOẠI C TRỞ LÊN 1. Lý do chọn đề tài Trong chương trình giáo dục phổ thông từ năm học 2022 - 2023, bộ môn Tin học có rất nhiều điểm mới.
Đặc biệt là việc lựa chọn ngôn ngữ lập trình Python để thay thế cho ngôn ngữ Pascal. Python được biết đến là ngôn ngữ lập trình có cú pháp đơn giản, dễ học. Môi trường lập trình Python sử dụng phổ biến, không phụ thuộc vào hệ điều hành, chạy trên nhiều loại máy tính, điện thoại thông minh, robot giáo dục… Để học tốt lập trình, người học cần phải có tư duy, có khả năng phân tích tổng hợp. Muốn đạt được điều đó, cần phải cung cấp cho học sinh các kiến thức cơ bản, các cấu trúc câu lệnh, các bước thiết kế thuật toán đúng.
Tuy nhiên, sau khi học sinh đã có ý tưởng cho bài toán thì việc viết được một chương trình đúng có thể thực hiện hoàn chỉnh vẫn còn nhiều khó khăn như: không biết chi tiết hóa các bước của thuật toán thành nhưng câu lệnh cụ thể như thế nào. Thứ tự các câu lệnh đã đúng hay chưa. Đã bỏ qua câu lệnh nào không?. Có nhiều cách để giải quyết những khó khăn trên cho học sinh.
Một trong những cách đó là sử dụng phương pháp làm mịn dần trong thiết kế chương trình. Phương pháp thiết kế làm mịn dần sẽ chia bài toán gốc thành các bài toán con, mỗi bài toán con sẽ lại được phân tích và chia thành các bài toán con nhỏ hơn nữa. Quá trình phân rã thành các bài toán con đó sẽ còn tiếp tục cho đến khi nhận được bài toán đủ đơn giản để có thể giải ngay bằng các câu lệnh lập trình. Thế nhưng, khi dạy phương pháp làm mịn dần này, học sinh thường khó hình dung ra các bước chi tiết, bước nào cần chi tiết hóa, trình tự các bước ra sao.
Sau khi chi tiết hóa các bước xong, học sinh lại khó trong việc viết lại chương trình hoàn chình. Do đó, để học sinh hiểu và có thể sử dụng phương pháp làm mịn trong thiết kế chương trình, cần thiết phải có cách hướng dẫn tạo nên hứng thú học tập cho học sinh, từ đó học sinh thấy được việc sử dụng phương pháp này là cần thiết. Đây chính là lý do tôi chọn đề tài: Phát triển năng lực tự giải quyết vấn đề và tư duy sáng tạo cho học sinh thông qua hình thức xây dựng sơ đồ qua bài dạy “Phương pháp làm mịn dần trong thiết kế chương trình” 1. Mục đích nghiên cứu Đưa ra giải pháp giúp học sinh hiểu bài, nắm vững kiến thức, phát triển tư duy để lập trình các bài toán Hình thành cho học sinh một số phẩm chất và năng lực cần thiết đáp ứng được công việc trong thời đại công nghệ 4.0 Nâng cao chất lượng dạy và đổi mới phương pháp dạy học theo hướng “tiếp cận năng lực” cho giáo viên.
Đối tượng nghiên cứu - Thực trạng cơ sở vật chất, giáo viên và học sinh trường THPT Chu Văn An trước khi áp dụng giải pháp 1 2. Thiết kế làm mịn trên các bài toán 2. Bài toán 1 Cho trước dãy A: A[0], A[1], A[2], ………A[n-1]. Cần tiến hành sắp xếp lại dãy A theo thứ tự tăng dần: A[0]≤A[1]≤A[2]≤…….
Tìm hiểu bài toán Ý tưởng ban đầu của thuật toán là: Cần duyệt lần lượt từ phần tử thứ 2 đến phần tử cuối của dãy sao cho khi kết thúc dãy thì dãy cũng được sắp xếp. Như vậy phần chính của thuật toán là một vòng lặp mà biến i chạy từ 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[2],……. Sao cho dãy mới thu được từ A[0] đến A[i] được sắp xếp đúng.
Giáo viên mô phỏng thuật toán theo ý tưởng trên. Duyệt từ phần tử thứ 2: b. Xây dựng sơ đồ * Xác định các bước của thuật toán - Dựa theo ý tưởng của bài toán ta xác nhận được 2 bước như sau: Duyệt từng phần tử trong A, từ A[1] đến A[n-1] Chèn A[i] vào đúng vị trí trong dãy con từ A[0] đến A[i-1] * Làm mịn các bước trong thuật toán Bước 1: Duyệt từng phần tử trong A, từ A[1] đến A[n-1] - Giáo viên: Để duyệt các phần tử trong danh sách chúng ta có câu lệnh duyệt nào? - Học sinh: Xác định được câu lệnh lặp for. - Giáo viên: Hãy xác định chỉ số đầu và chỉ số cuối cho lệnh for trong trường hợp này? 6 Nhiệm vụ 1: Đưa ra câu lệnh tương ứng với thao tác.
Nhiệm vụ 2: Xác định thao tác này chưa thể có câu lệnh phải tiếp tục chi tiết các bước (làm mịn) Nhiệm vụ 3: Xây dựng bước tiếp theo - Giáo viên dựa nhiệm vụ mà học sinh thực hiện được hình hành sơ đồ nhằm ghi nhận quá trình thực hiện làm mịn của học sinh và ghi lại câu lệnh tương ứng với mỗi thao tác cũng chính là kết quả cuối cùng của quá trình làm mịn đó. Quá trình hướng dẫn học sinh giải quyết các nhiệm vụ trên, chỉnh là hình thành sơ đồ cho bài toán có dạng như sau: 4 Chuyển các phần tử bên trái A[i] và lớn hơn A[i] sang phải Do chưa xác định câu lệnh, cần tiếp tục làm mịn - Giáo viên: Nêu ý tưởng gợi ý. Giả sử A[j] là giá trị thỏa mãn điều kiện cần dịch chuyển thì cần đảm 3 điều kiện: ĐK 1: j<i, vậy j=i-1 - Giáo viên: Thao tác cho điều kiện này là Thiết lập biến j=i-1 là chỉ số ngay bên trái của A[i] - Giáo viên: Câu lệnh thiết lập biến j được viết như thế nào? - Học sinh: Câu lệnh: j=i-1 Như vậy bước làm mịn đã thực hiện được ĐK 2: A[j]>A[i] tức là A[j]>value 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í và giảm j - Giáo viên: Nhận thấy điều kiện 2 là quá trình lặp có điều kiện. Khi mà A[j]>value thì sẽ dịch chuyển A[j] sang phải 1 vị trí.
- Giáo viên: Câu lệnh lặp có điều kiện là gì? - Học sinh: Câu lệnh While…. - Giáo viên: Điều kiện lặp là gì? - Học sinh: j>=0 và A[j]>value - Giáo viên: Chuyển A[j] sang phải thực hiện như thế nào? - Học sinh: A[j+1]=A[j] - Giáo viên: Việc giảm j thực hiện bằng câu lệnh nào? - Học sinh: j=j-1 Như vậy bước làm mịn đã thực hiện được 8 - Đảm bảo chương trình được xây dựng đúng theo yêu cầu của bài toán và đáp ứng được các yêu cầu của người dùng. - Chi tiết thiết kế chương trình, bao gồm việc lựa chọn thuật toán, cấu trúc dữ liệu, giao diện người dùng, kiểm tra lỗi, v. - Tiết kiệm thời gian và nguồn lực trong quá trình phát triển chương trình.
Hạn chế - Lập trình là một việc khá khó khăn và trừu tượng đối với học sinh. - Học sinh tiếp cận với máy tính không nhiều. - Cơ sở vật chất nhà trường còn hạn chế, học sinh ít được thực hành do vậy học sinh chỉ học một cách thụ động trên lý thuyết. - Trong thời gian đầu lập trình nhiều học sinh thường viết những đoạn code rất lộn xộn.
- Chương trình viết ra sắp xếp các dòng lệnh thiếu logic và không rõ ràng. Điều này khiến việc sửa lỗi, hiệu chỉnh chương phải tốn nhiều thời gian cũng như việc đọc hiểu chương trình. - Dễ dẫn đến hiểu lầm và sai sót trong quá trình sửa lỗi, chạy chương trình, nâng cấp hay thêm các tính năng khác. Giải pháp đã sử dụng để giải quyết vấn đề 2.
Xây dựng hệ thống câu hỏi cho bài dạy Dựa trên ý tưởng ban đầu giáo viên bắt đầu cùng học sinh xây dựng các bước của thuật toán với các yêu cầu sau: - Dạy bằng Powerpoint để hình thành sơ đồ kết hợp mô phỏng các bước thuật toán trên bảng - Mục đích cuối cùng là tìm ra câu lệnh tương ứng với thao tác trên thuật toán - Lấy học sinh làm trung tâm. Giáo viên đặt các câu hỏi vấn đáp như sau: Bảng 1: Bảng câu hỏi xây dựng cho bài dạy Câu Nội dung hỏi 1 Với ý tưởng bài toán, các em xác thuật toán gồm những bước nào? 2 Câu lệnh mô tả cho bước này là gì? 3 Nếu chưa xác định được câu lệnh thì ta làm như thế nào? 4 Việc làm mịn ở lượt này cần giải quyết các vấn đề gì? Các vấn đề được giải quyết tương ứng với những thao tác cụ thể 5 nào? 6 Câu lệnh của thao tác này là gì? 7 Thao tác này cần chia thành những trường hợp nào? 8 Hình thành sơ đồ tiếp theo như thế nào? 9 Sơ đồ làm mịn cho thao tác này là gì? …. …… - Học sinh phát hiện giải quyết vấn đề với các nhiệm vụ: 3 - Tìm hiểu và áp dụng phương pháp đối với học sinh trường THPT Chu Văn An - Tiến hành dạy thực nghiệm, khảo sát để đánh giá học sinh - Thu thập các dữ liệu, số liệu cụ thể để đánh giá, nhận xét cho kết quả của đề tài. - Phạm vi nghiên cứu: Xây dụng sơ sồ khi dạy bài “Phương pháp làm mịn trong thiết kế chương trình” Tin học 10 (Sách kết nối tri thức theo định hướng khoa học máy tinh) - Khách thể nghiên cứu: Các lớp 11A5, 11A6 Trường THPT Chu Văn An 1.