Sáng kiến kinh nghiệm Nâng cao hiệu quả sử dụng cấu trúc lặp thông qua việc tiếp cận, xây dựng từ những bài toán đơn giản, Tin học 10 Cánh diều
Sự phát triển của khoa học công nghệ hiện đại đã đặt giáo dục vào thử thách mới, đó là nhằm đào tạo ra thế hệ tương lai vừa có phẩm chất, vừa phải có năng lực tiếp cận khoa học hiện đại để hội nhập với xu thế chung của xã hội. Do vậy giáo dục phổ thông nước ta đang thực hiện bước chuyển từ chương trình giáo dục tiếp cận nội dung sang tiếp cận năng lực người học, nghĩa là từ chỗ quan tâm đến việc học sinh học được cái gì đến chỗ quan tâm học sinh làm được cái gì qua việc học. Để đảm bảo điều đó, nhất định phải thực hiện thành công việc chuyển từ phương pháp dạy nặng về truyền thụ kiến thức sang dạy cách học, cách vận dụng kiến thức, rèn luyện kĩ năng, hình thành năng lực phẩm chất, đồng thời phải chuyển cách đánh giá kết quả giáo dục từ nặng về kiểm tra trí nhớ sang kiểm tra, đánh giá năng lực vận dụng kiến thức giải quyết vấn đề kịp thời nhằm nâng cao chất lượng của các hoạt động dạy học và giáo dục.
Tin học đối với học sinh là môn khó đặc biệt là chương trình tin 11 vì kiến thức lập trình đối với đa số học sinh là khó tiếp cận. Trong nhiều năm giảng dạy tôi thấy với mỗi giáo viên chúng ta, giảng dạy luôn luôn đặt mục tiêu nâng cao chất lượng giáo dục , năng lực, tri thức, nhận thức cho học sinh. Đặt mục tiêu làm sao để tri thức, trí thức của học sinh được rèn luyện, mài dũa, một cách tốt nhất. Tôi nhận thấy rằng rèn luyện tư duy, kĩ năng lập trình giải bài toán, làm việc sáng tạo là một việc cần thiết, quan trọng để đáp ứng nhu cầu của học sinh và cũng là trách nhiệm của mỗi người giáo viên khi giảng dạy.
Trong chương trình môn học xuất hiện khá nhiều bài toán yêu cầu học sinh biết liên hệ nhiều kiến thức, có những bài toán đòi hỏi tư duy, khả năng lập trình, kết hợp các kiến thức, năng lực ở mức độ cao. Một trong các bài toán đó có rất nhiều bài liên quan đến cấu trúc lặp. Đây là phần quan trọng trong chương trình Tin học 11, đề thi học sinh giỏi tỉnh và có đầy đủ các mức độ từ nhận biết, thông hiểu vận dụng thấp,vận dụng cao; có khá nhiều vấn đề liên quan như cấu trúc rẽ nhánh, cấu trúc lặp, kiểu xâu, chương trình con, đệ quy …
Từ những vấn đề đã nêu trên, tôi thật sự trăn trở làm sao để cỏ thể giúp học sinh giải quyết được các bài toán này một cách nhanh và chính xác; rèn luyện tư duy, nâng cao năng lực cho học sinh, tôi đã liên hệ các kiến thức và mạnh dạn đưa ra đề tài: “Nâng cao hiệu quả sử dụng cấu trúc lặp thông qua việc tiếp cận, xây dựng từ những bài toán đơn giản”.
Tin học đối với học sinh là môn khó đặc biệt là chương trình tin 11 vì kiến thức lập trình đối với đa số học sinh là khó tiếp cận. Trong nhiều năm giảng dạy tôi thấy với mỗi giáo viên chúng ta, giảng dạy luôn luôn đặt mục tiêu nâng cao chất lượng giáo dục , năng lực, tri thức, nhận thức cho học sinh. Đặt mục tiêu làm sao để tri thức, trí thức của học sinh được rèn luyện, mài dũa, một cách tốt nhất. Tôi nhận thấy rằng rèn luyện tư duy, kĩ năng lập trình giải bài toán, làm việc sáng tạo là một việc cần thiết, quan trọng để đáp ứng nhu cầu của học sinh và cũng là trách nhiệm của mỗi người giáo viên khi giảng dạy.
Trong chương trình môn học xuất hiện khá nhiều bài toán yêu cầu học sinh biết liên hệ nhiều kiến thức, có những bài toán đòi hỏi tư duy, khả năng lập trình, kết hợp các kiến thức, năng lực ở mức độ cao. Một trong các bài toán đó có rất nhiều bài liên quan đến cấu trúc lặp. Đây là phần quan trọng trong chương trình Tin học 11, đề thi học sinh giỏi tỉnh và có đầy đủ các mức độ từ nhận biết, thông hiểu vận dụng thấp,vận dụng cao; có khá nhiều vấn đề liên quan như cấu trúc rẽ nhánh, cấu trúc lặp, kiểu xâu, chương trình con, đệ quy …
Từ những vấn đề đã nêu trên, tôi thật sự trăn trở làm sao để cỏ thể giúp học sinh giải quyết được các bài toán này một cách nhanh và chính xác; rèn luyện tư duy, nâng cao năng lực cho học sinh, tôi đã liên hệ các kiến thức và mạnh dạn đưa ra đề tài: “Nâng cao hiệu quả sử dụng cấu trúc lặp thông qua việc tiếp cận, xây dựng từ những bài toán đơn giản”.
Bạn đang xem 20 trang mẫu của tài liệu "Sáng kiến kinh nghiệm Nâng cao hiệu quả sử dụng cấu trúc lặp thông qua việc tiếp cận, xây dựng từ những bài toán đơn giản, Tin học 10 Cánh diều", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
Tóm tắt nội dung tài liệu: Sáng kiến kinh nghiệm Nâng cao hiệu quả sử dụng cấu trúc lặp thông qua việc tiếp cận, xây dựng từ những bài toán đơn giản, Tin học 10 Cánh diều
MỤC LỤC PHẦN 1. ĐẶT VẤN ĐỀ Trang 4 1.1 Lí do chọn đề tài Trang 4 1.2 Đối tượng, phạm vi nghiên cứu Trang 5 1.3 Mục đích đề tài Trang 5 1.4 Nhiệm vụ đề tài Trang 5 1.5 Phương pháp nghiên cứu Trang 5 1.6 Những đóng góp của đề tài Trang 5 PHẦN 2. NỘI DUNG ĐỀ TÀI Trang 5 2.1 Cơ sở lí luận của đề tài Trang 6 2.2 Cơ sở thực tiễn Trang 6 2.3 Cơ sở khoa học Trang 7 2.3.1 Cơ sở khoa học của đề tài Trang 7 2.3.2 Vai trò của đề tài Trang 8 2.4 Giải pháp phát triển tư duy, năng lực học sinh thông qua Trang 9 việc tiếp cận, xây dựng từ những bài toán đơn giản 2.4.1 Định hướng xây dựng đề tài Trang 9 2.4.2 Thiết kế các hoạt động Trang 9 2.4.2.1 Hệ thống lại cấu trúc lặp Trang 9 2.4.2.2 Phát triển, nâng cao khả năng áp dụng cấu trúc Trang 13 lặp với điều kiện biết trước 2.4.2.3 Phát triển, nâng cao khả năng áp dụng cấu trúc Trang 16 lặp với điều kiện chưa biết trước 2.4.3. Tổ chức thực hiện đề tài Trang 21 2.4.3.1 Xây dựng kế hoạch Trang 21 2.4.3.2 Các bước thực hiện cụ thể Trang 23 2.5. Hiệu quả giải pháp Trang 24 2 PHẦN 1. ĐẶT VẤN ĐỀ 1.1. Lí do chọn đề tài Sự phát triển của khoa học công nghệ hiện đại đã đặt giáo dục vào thử thách mới, đó là nhằm đào tạo ra thế hệ tương lai vừa có phẩm chất, vừa phải có năng lực tiếp cận khoa học hiện đại để hội nhập với xu thế chung của xã hội. Do vậy giáo dục phổ thông nước ta đang thực hiện bước chuyển từ chương trình giáo dục tiếp cận nội dung sang tiếp cận năng lực người học, nghĩa là từ chỗ quan tâm đến việc học sinh học được cái gì đến chỗ quan tâm học sinh làm được cái gì qua việc học. Để đảm bảo điều đó, nhất định phải thực hiện thành công việc chuyển từ phương pháp dạy nặng về truyền thụ kiến thức sang dạy cách học, cách vận dụng kiến thức, rèn luyện kĩ năng, hình thành năng lực phẩm chất, đồng thời phải chuyển cách đánh giá kết quả giáo dục từ nặng về kiểm tra trí nhớ sang kiểm tra, đánh giá năng lực vận dụng kiến thức giải quyết vấn đề kịp thời nhằm nâng cao chất lượng của các hoạt động dạy học và giáo dục. Tin học đối với học sinh là môn khó đặc biệt là chương trình tin 11 vì kiến thức lập trình đối với đa số học sinh là khó tiếp cận. Trong nhiều năm giảng dạy tôi thấy với mỗi giáo viên chúng ta, giảng dạy luôn luôn đặt mục tiêu nâng cao chất lượng giáo dục , năng lực, tri thức, nhận thức cho học sinh. Đặt mục tiêu làm sao để tri thức, trí thức của học sinh được rèn luyện, mài dũa, một cách tốt nhất. Tôi nhận thấy rằng rèn luyện tư duy, kĩ năng lập trình giải bài toán, làm việc sáng tạo là một việc cần thiết, quan trọng để đáp ứng nhu cầu của học sinh và cũng là trách nhiệm của mỗi người giáo viên khi giảng dạy. Trong chương trình môn học xuất hiện khá nhiều bài toán yêu cầu học sinh biết liên hệ nhiều kiến thức, có những bài toán đòi hỏi tư duy, khả năng lập trình, kết hợp các kiến thức, năng lực ở mức độ cao. Một trong các bài toán đó có rất nhiều bài liên quan đến cấu trúc lặp. Đây là phần quan trọng trong chương trình Tin học 11, đề thi học sinh giỏi tỉnh và có đầy đủ các mức độ từ nhận biết, thông hiểu vận dụng thấp,vận dụng cao; có khá nhiều vấn đề liên quan như cấu trúc rẽ nhánh, cấu trúc lặp, kiểu xâu, chương trình con, đệ quy Từ những vấn đề đã nêu trên, tôi thật sự trăn trở làm sao để cỏ thể giúp học sinh giải quyết được các bài toán này một cách nhanh và chính xác; rèn luyện tư duy, nâng cao năng lực cho học sinh, tôi đã liên hệ các kiến thức và mạnh dạn đưa ra đề tài: “Nâng cao hiệu quả sử dụng cấu trúc lặp thông qua việc tiếp cận, xây dựng từ những bài toán đơn giản”. 1.2. Đối tượng, phạm vi nghiên cứu 4 chừng như mới mẻ, khả năng suy luận, tư duy sáng tạo của học sinh sẽ bị hạn chế, đặc biệt khi sử dụng các cấu trúc rẽ nhánh, cấu trúc lặp còn mơ hồ, lúng túng. 2.1 Cơ sở lí luận của đề tài 2.1.1. Lí thuyết cần tìm hiểu : - Cấu trúc lặp – Bài 10 – SGK Tin học 11 - Chủ đề F: Bài 8 - Câu lệnh lặp - SGK Tin học 10 – Cánh Diều - Các cấu trúc lặp: +) Lặp với điều kiện biết trước và cấu trúc câu lệnh for: - Dạng lặp tiến - Dạng lặp lùi +) Lặp với điều kiện chưa biết trước và cấu trúc câu lệnh while - Ngôn ngữ lập trình C++/Dev C++ - Ngôn ngữ lập trình Python 2.1.2. Nghiên cứu phương pháp nâng cao hiệu quả sử dụng cấu trúc lặp Định hướng xây dựng cấu trúc lặp cho bài toán - Dùng cấu trúc lặp for - Dùng cấu trúc lặp while - Sử dụng lồng ghép các cấu trúc lặp, 2.2. Cơ sở thực tiễn Thực trạng của việc tổ chức dạy học chủ đề gắn với việc giáo dục ý thức trách nhiệm của học sinh. Để học sinh hứng thú học tập trong việc tự tìm hiểu, sáng tạo, khám phá các bài tập mới, giải quyết các bài toán có sử dụng cấu trúc lặp và hướng tới khả năng lập trình. Phiếu điều tra thực trạng tình hình học sinh đối với việc học và vận dụng cấu trúc lặp(câu lệnh lặp): Rất Rất Bình Không TT Lớp Thích không Ghi chú thích thường thích thích 1 11T1 20% 70% 10% 0 0 6 Đảng và Nhà nước ta đã có những chủ trương chính sách đầu tư, phát triển về ứng dụng công nghệ thông tin – Tin học như chỉ thị số 58-CT/TW của Bộ chính trị về đẩy mạnh ứng dụng và phát triển Công nghệ thông tin, chỉ thi số 29/2001/CT-BGD&ĐT của Bộ GD&ĐT về tăng cường giảng dạy, đào tạo và ứng dụng Công nghệ thông tin. Đặc trưng của môn Tin học là khoa học gắn liên với công nghệ, do vậy dạy học Tin học một mặt trang bị cho học sinh kiến thức khoa học về Tin học, phát triển tư duy thuật toán, rèn luyện kỹ năng giải quyết vấn đề, mặt khác rèn luyện kỹ năng giải quyết vấn đề, kỹ năng thực hành giải bài toán trên máy tính, tạo mọi điều kiện để học sinh được thực hành, nắm bắt và tiếp cận những công nghệ mới của Tin học phục vụ học tập và đời sống. 2.3.2 Vai trò của đề tài Trong dạy học nói chung và dạy học bộ môn Tin học nói riêng, để nâng cao chất lượng dạy học, chúng ta có thể sử dụng kết hợp nhiều hình thức tổ chức, nhiều phương pháp dạy học khác nhau. Trong đó, dạy học bằng phương pháp định hướng tiếp cận, xây dựng từ các bài toán đơn giản nhằm giúp học sinh phát triển tốt về phẩm chất và năng lực: +) Về phẩm chất: Theo định hướng mới, chương trình giáo dục phổ thông hình thành và phát triển cho học sinh những phẩm chất chủ yếu sau: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm. Trong đó khi thông qua phương pháp này giúp học sinh chủ động, tự tìm tòi phát triển các bài toán, cụ thể có thể giúp học sinh: Yêu nước: Thông qua tìm hiểu và chia sẻ trên mạng và các thông tin đại chúng về các di sản văn hóa của người Việt Nam trên khắp mọi miền Tổ quốc giúp bồi đắp thêm tình yêu Tổ quốc, yêu thiên nhiên, bảo vệ cảnh quan, bảo vệ môi trường. Nhân ái: Thông qua hoạt động làm việc nhóm, học sinh học cách cảm thông, chia sẻ, tôn trọng sự khác biệt, biết lắng nghe và tôn trọng ý kiến của người khác. Chăm chỉ: Để hoàn thành nhiệm vụ được giao học sinh phải tự tìm tòi, nghiên cứu tài liệu, tìm giải pháp; từ đó có ý thức đánh giá điểm mạnh, điểm yếu của bản thân, thuận lợi, khó khăn trong học tập để xây dựng kế hoạch học tập; Tích cực tìm tòi và sáng tạo trong học tập; có ý chí vượt qua khó khăn để đạt kết quả tốt trong học tập. Trung thực: Học sinh học được tính trung thực trong quá trình làm việc và báo cáo kết quả, qua sự đánh giá khách quan của giáo viên và các học sinh khác. 8 for (variable_initialization; condition; variable_update) { statements; } Trong đó: Variable initialization (phần khởi tạo biến) Condition (điều kiện lặp/dừng lặp) Variable update (cập nhật biến vòng lặp) Statements (Câu lệnh/dãy câu lệnh) Ý nghĩa của cấu trúc lặp tiến: Biến đếm nhận giá trị từ phần giá trị khởi tạo đến điều kiện lặp; sau mỗi lần nhận 1 giá trị thì thực hiện câu lệnh 1 lần. Ví dụ 1: for (int x = 1; x <= 5; x++) { cout << " ket qua = " << x << endl; } Kết quả thực hiện vòng lặp trên: Giá trị biến x Kết quả thực hiện 1 ket qua =1 2 ket qua =2 3 ket qua =3 4 ket qua =4 5 ket qua =5 - Dạng lặp lùi for (variable_initialization; condition; variable_update) { statements; } Trong đó: Variable initialization (phần khởi tạo biến) Condition (điều kiện lặp/dừng lặp) Variable update (cập nhật biến vòng lặp) Statements (câu lệnh/ dãy câu lệnh) Ý nghĩa của cấu trúc lặp lùi: Biến đếm nhận giá trị từ phần giá trị khởi tạo đến điều kiện lặp; sau mỗi lần nhận 1 giá trị thì thực hiện câu lệnh 1 lần. Ví dụ 2: 10 Ví dụ: Nhập vào In ra 12 YES 13 NO Sản phẩm của em Nguyễn Văn Huy K57A1 – Trường THPT Anh Sơn 1 trong ngôn ngữ lập trình Python s = input() while s.count(' ') != 0: s = s.replace(' ',' ') a = len(s) - 1 if (s[a] == ' '): s = s[0:a] if (s[0] == ' '): s = s[1:] print(s.count(' ') + 1) a = len(s) for i in range (0,a): if s[i] != ' ': print(s[i], end = '') else: print('') + Lặp với điều kiện chưa biết trước và câu lệnh while While(điều kiện) { ; } Ý nghĩa của cấu trúc lặp while: Trong khi điều kiện đúng thì thực hiện câu lệnh, điều kiện sai dừng vòng lặp. Ví dụ 4: int i = 1; while(i <= 5) { cout<<i; i++; // Tang bien i de tranh lap vo han } 12 Đáp án: A Ta có thể đánh giá với 2 bài tập trên ở dạng thông hiểu và vận dụng thấp. Để giải các bài toán như thế này, học sinh chỉ cần nắm vững cấu trúc rẽ nhánh, cấu trúc lặp là có thể hiểu và làm được. Bài tập 4: Cho số nguyên dương N, hày tìm và in ra tất cả các ước của N, các ước cách nhau bởi ký tự trắng. Ta có thể đánh giá bài toán này ở mức độ vận dụng mức thấp. Theo kiểm tra thực tế trên lớp dạy thì có khoảng 50% học sinh làm được. Sản phẩm của bạn Nguyễn Văn Đăng K54T1 – Trường THPT Anh Sơn 1: #include using namespace std; int main() { int N; cin>>N; for (int i=1; i<=N; i++) if(N%i==0) cout<<i<<" "; return 0; } Bài tập 5: Cho đoạn lặp for (int i=1; i<=k; i++) if((k%i==0)&&(i%2==0)) cout<<i<<" "; Nếu nhập k=10 thì kết quả của đoạn lặp như thế nào? A.10 5 2 1 B. 1 2 5 10 C. 10 2 D. 2 10 Đáp án: D + Lặp với điều kiện biết trước trên mảng 1 chiều Ví dụ 6: Cấu trúc nhập dữ liệu cho mảng 1 chiều for (int i=1; i<=k; i++) cin>>a[i]; Bài tập 6: Cho đoạn lặp: for ( int i=1; i<=k; i++) if( i%2==0) cout<<a[i]<<" "; Nếu nhập k=10, dãy a={ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; thì kết qủa của đoạn lặp? A.10 8 6 4 2 B. 9 7 5 3 1 C. 10 9 8 7 6 5 4 3 2 1 D. 10 Đáp án: B 14 2.4.2.3 Phát triển, nâng cao khả năng áp dụng cấu trúc lặp với điều kiện chưa biết trước Bài tâp 9: Tìm ước chung lớn nhất của 2 số nguyên dương x và y Nhận xét bài toán là ở mức vận dụng cao. Học sinh có thể tham khảo Sách giáo khoa sau đó hoàn thiện chương trình. #include using namespace std; int main() { int x,y; cin>>x>>y; while (x!=y) if (x>y) x=x-y; else y=y-x; cout<<x; return 0; } Giáo viên yêu cầu học sinh giải thích vòng lặp while. Mục đích để học sinh nắm bắt được cấu trúc lặp while Ở một hướng khác, yêu cầu học sinh tìm cách viết khác. Chúng ta cũng có thể hướng đến xây dựng theo kiểu lặp đệ quy như sau. Nếu y=0 thì đưa ra uoc =x ngược lại thì tìm uoc(y, x%y) Quá trình này lặp đi lặp lại sẽ nhận được y=0 và uoc=x Sản phẩm của em Đoàn Thị Như – K54T1 – Trường THPT Anh Sơn 1: #include using namespace std; int uc(int x,int y) { if(y==0) return x; else return uc(y,x%y); } int main() { int x,y; cin>>x>>y; cout<<uc(x,y); 16 } Em hãy cho biết nếu tiến hành chạy chương trình thì kết quả của chương trình như thế nào? Vì sao? A. in 1 và lặp vô tận B. 1 C. 10 D. 0 Đáp án: A, vì kiểm tra điều kiện lặp luôn đúng không có điều kiện để dừng vòng lặp while. Bài tập 12: Cho chương trình #include using namespace std; int main() { int i = 1; while (i <=10) { cout<<i<<" "; i++; } return 0; } Em hãy cho biết, kết quả của chương trình trên? A. 1 2 3 4 5 6 7 8 9 10 B. 10 9 8 7 6 5 4 3 2 1 C. 10 D. 1 Đáp án: A Bài tập 13: Cho đoạn chương trình #include using namespace std; int main() { int i = 1; while (i <=10) { cout<<i<<" "; i=i+2; } return 0; } A. 1 2 3 4 5 6 7 8 9 10 B. 1 3 5 7 9 C. 2 4 6 8 10 D. 10 9 8 7 6 5 4 3 2 1 Đáp án: B 18 EEAE thứ 2. Giới hạn: Có 80% số test ứng với ≤ 10 và số cây trên mỗi con đường không quá 100 cây; Có 20% số test không có giới hạn gì thêm. ( Bài tập này trích trong đề thi HSG Tỉnh Nghệ an năm 2021-2022) Với bài tập này ta khẳng định đây là bài ở mức vận dụng cao. Gợi ý giải: chúng ta phải sử dụng 3 vòng lặp lồng nhau: Vòng 1: chạy trên các xâu vào Vòng 2: Chạy trên 1 xâu Vòng 3: Chạy từng đoạn trên xâu để tìm đoạn đường xanh đẹp nhất, bắt đầu chạy từ vị trí trên vòng lặp 2 Sản phẩm của em Đoàn Thị Như – K54T1 – Trường THPT Anh Sơn 1: #include using namespace std; int main() { int n, dem,m=0, j=0,kk; cin>>n; string s[101]; for (j=1; j<=n; j++) cin>>s[j]; for (j=1; j<=n; j++) { kk=s[j].length(); for (int i=0; i<kk; i++) { int k=i;dem=0; while(s[j][i]==s[j][k]) { dem++; k++; } if (dem>m) m=dem; 20 Điểm tối TT Tiêu chí Ghi chú đa 1 Đánh Xây dựng được hệ thông bài toán phù hợp. 20 điểm giá điểm theo nhóm 2 (mọi Thiết kế các dạng bài tập theo 4 mức độ 15 điểm thành viên trong 3 một nhóm có Trình bày được lời giải khoa hoc 10 điểm điểm phần này là 4 Trình bày đẹp, hình vẽ rõ ràng. 5 điểm giống nhau) 5 35 điểm Tích cực, chủ động trong làm việc nhóm Đánh 6 5 điểm giá điểm Thuyết trình lưu loát, rõ ràng. cá nhân 7 Phản biện hợp lý (vận dụng được kiến thức 5 điểm/1 nền trong bài để trả lời chất vấn). câu hỏi. 8 5 điểm/ 1 Đặt câu hỏi chất vấn hợp lý lần trả lời câu hỏi. - Chú ý: + Điểm cuối cùng quy về thành điểm 10, 100 điểm chủ đề tương đương với 10 điểm trong hồ sơ học tập. b. Phiếu đánh giá hoạt động nhóm Phiếu đánh giá hoạt động nhóm được giáo viên sử dụng để đánh giá chung năng lực hợp tác và làm việc nhóm của học sinh PHIẾU ĐÁNH GIÁ HOẠT ĐỘNG NHÓM Điểm/Mức đánh giá TT Tiêu chí 5 4 1 0 (rất tốt) (khá) (trungbình) (yếu) 22
File đính kèm:
- sang_kien_kinh_nghiem_nang_cao_hieu_qua_su_dung_cau_truc_lap.pdf