intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Sáng kiến kinh nghiệm THPT: Một số biện pháp giúp học sinh THPT miền núi Nghệ An đam mê và học tốt lập trình Python

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:50

49
lượt xem
27
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mục đích nghiên cứu sáng kiến nhằm đưa ra một số giải pháp để học sinh miền núi yêu thích lập trình Python. Từ đó 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 để giải quyết 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 những công việc trong thời đại công nghệ 4.0.

Chủ đề:
Lưu

Nội dung Text: Sáng kiến kinh nghiệm THPT: Một số biện pháp giúp học sinh THPT miền núi Nghệ An đam mê và học tốt lập trình Python

  1. SÁNG KIẾN KINH NGHIỆM Đề tài MỘT SỐ BIỆN PHÁP GIÚP HỌC SINH THPT MIỀN NÚI NGHỆ AN ĐAM MÊ VÀ HỌC TỐT LẬP TRÌNH PYTHON LĨNH VỰC: TIN HỌC
  2. S SỞ GIÁO DỤC & ĐÀO TẠO NGHỆ AN TRƯỜNG THPT KỲ SƠN Đề tài MỘT SỐ BIỆN PHÁP GIÚP HỌC SINH THPT MIỀN NÚI NGHỆ AN ĐAM MÊ VÀ HỌC TỐT LẬP TRÌNH PYTHON LĨNH VỰC: TIN HỌC Nhóm tác giả: 1. Nguyễn Thị Nhung 2. Lê Văn Dũng Năm thực hiện: 2022 - 2023 Điện thoại: 0978.909.379 – 0987.022.383 Kỳ Sơn, tháng 2 năm 2023
  3. MỤC LỤC Mục Nội dung Trang PHẦN I. ĐẶT VẤN ĐỀ 1 1 Lý do chọn đề tài 1 2 Mục đích nghiên cứu 1 3 Đối tượng và phạm vi nghiên cứu 2 3.1 Đối tượng nghiên cứu 2 3.2 Phạm vi nghiên cứu 2 4 Phương pháp nghiên cứu 2 5 Tính mới của đề tài 2 PHẦN II. NỘI DUNG NGHIÊN CỨU 3 1 Cơ sở lý luận 3 1.1 Khái niệm về ngôn ngữ Python 3 1.2 Những ưu điểm và hạn chế của Python 3 1.3 Ứng dụng thực tế của ngôn ngữ Python 4 1.4 Vì sao chọn Python là NNLT dạy học trong nhà trường phổ 4 thông 2 Cơ sở thực tiễn 5 2.1 Thực trạng về hiểu biết, nhận thức và mức độ yêu thích về NNLT 5 Python của học sinh ở trường THPT Kỳ Sơn 2.2 Những thuận lợi và khó khăn khi dạy học ngôn ngữ lập trình 7 Python. 3 Giải pháp 8 3.1 Biện pháp 1: Gợi động cơ học lập trình Python cho học sinh 8 3.2 Biện pháp 2: Áp dụng phương pháp lớp học đảo ngược 16 3.3 Biện pháp 3: Xây dựng hệ thống các bài tập dạng nhận biết, 20 thông hiểu và vận dụng 3.4 Biện pháp 4: Tận dụng tối đa các giờ thực hành 22 3.5 Biện pháp 5: Tạo sự chú ý và hứng thú trong giờ học lập trình 25 4 Kết quả đạt được 29
  4. 4.1 Khảo sát tính cấp thiết và tính khả thi của các giải pháp đề 29 xuất 4.2 Kháo sát học sinh 35 PHẦN III. KẾT LUẬN 37 1 Ý nghĩa 37 2 Kinh nghiệm và đề xuất 37 TÀI LIỆU THAM KHẢO 39 PHỤ LỤC 40
  5. DANH MỤC CHỮ CÁI VIẾT TẮT TT Từ viết tắt Từ đầy đủ 1 GD&ĐT Giáo dục và Đào tạo 2 GV Giáo viên 3 học sinh Học sinh 4 NNLT Ngôn ngữ lập trình 5 SGK Sách giáo khoa 6 THPT Trung học phổ thông 7 THCS Trung học cơ sở 8 GDPT Giáo dục phổ thông
  6. PHẦN I. ĐẶT VẤN ĐỀ 1. LÝ DO CHỌN ĐỀ TÀI Trong năm học 2022 – 2023, sách giáo khoa theo chương trình đổi mới giáo dục phổ thông 2018 đã đưa vào giảng dạy ở lớp 10 của bậc THPT. Trong chương trình giáo dục phổ thông mới, bộ môn Tin học có rất nhiều điểm mới. Trong đó, Bộ GD&ĐT đã lựa chọn giảng dạy các ngôn ngữ lập trình có tính cập nhật, hiện đại, thông dụng vào thực tế cuộc sống như C, Python,…để thay thế cho ngôn ngữ Pascal. Python là ngôn ngữ lập trình mới được đưa vào chương trình phổ thông bắt đầu ở Tin học lớp 10, được biết đến là ngôn ngữ lập trình đơn giản, dễ học, sử dụng phổ biến bởi các lập trình viên để tạo ra các phần mềm, ứng dụng như xây dựng robot, thực hiện trích xuất dữ liệu từ trang web, phát triển game với Pygame,…có rất nhiều công việc liên quan đến lập trình Python tăng lên ngày càng nhiều theo từng năm. Vì thế cơ hội việc làm của nghề nghiệp này rất lớn. Ngoài ra, mức lương lập trình viên Python cũng là một trong những điểm đáng chú ý được rất nhiều bạn trẻ quan tâm. Tuy nhiên, muốn học tốt lập trình thì người học cần phải có tư duy, có khả năng phân tích và tổng hợp mà ở lứa tuổi học sinh lớp 10, đặc biệt học sinh miền núi đa số các em đều yếu kém thì khả năng đó của các em càng rất hạn chế nên gây không ít khó khăn cho học sinh khi học lập trình. Mặt khác, chương trình thiết kế phần Python trong Tin học 10 được xây dựng theo tính kế thừa về tư duy thuật toán và lập trình ở cấp học THCS. Trong khi đó, đa số học sinh lớp 10 trường THPT Kỳ Sơn của năm học 2022 - 2023 chưa được tiếp cận về môn Tin học ở cấp THCS. Cho nên việc dạy lập trình cho học sinh khóa học này càng gặp nhiều khó khăn hơn. Vậy, làm thế nào truyền đạt kiến thức, các biện pháp nào để học sinh miền núi đam mê và học tốt lập trình Python khi mà tư duy lập trình của các em đa số rất yếu, điều đó luôn là sự trăn trở của nhóm chúng tôi đã được đề cập vào các năm học trước. Chính vì lí do trên, chúng tôi đã chọn đề tài “Một số biện pháp giúp học sinh THPT miền núi Nghệ An đam mê và học tốt lập trình Python” để góp phần nâng cao chất lượng dạy môn Tin học nói chung và giảng dạy ngôn ngữ lập trình Python nói riêng. 2. MỤC ĐÍCH NGHIÊN CỨU - Đưa ra một số giải pháp để học sinh miền núi yêu thích lập trình Python. Từ đó 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 để giải quyết 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 những 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. - Giúp giáo viên Tin học có cái nhìn tổng quát để lựa chọn những phương pháp phù hợp khi dạy lập trình Python cho đối tượng học sinh miền núi. 1
  7. 3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 3.1. Đối tượng nghiên cứu - Đưa ra các thực trạng về cơ sở vật chất, giáo viên, học lập trình Python của học sinh trường THPT Kỳ Sơn trước khi áp dụng các giải pháp. - Tìm hiểu và áp dụng các phương pháp giảng dạy một cách khoa học, linh động và phù hợp với đối tượng học sinh miền núi. - Tiến hành dạy thực nghiệm, khảo sát để đánh giá chất lượng học sinh. - Thu thập các dữ liệu, số liệu cụ thể để đánh giá nhận xét kết quả của đề tài. 3.2. Phạm vi nghiên cứu Phạm vi nghiên cứu: Các biện pháp giúp học sinh THPT miền núi đam mê và học tốt lập trình Python - Tin học 10 (sách kết nối tri thức với cuộc sống) Khách thể nghiên cứu: Các lớp 10A1, 10A3, 10C1, 10C3, 10C4, 10C7- Trường THPT Kỳ Sơn. 4. PHƯƠNG PHÁP NGHIÊN CỨU - Phương pháp phân tích, tổng hợp. - Phương pháp điều tra, khảo sát. - Phương pháp thực nghiệm. 5. TÍNH MỚI CỦA ĐỀ TÀI - Giải pháp để học sinh yêu thích và học tốt lập trình Python. - Đề tài nghiên cứu dựa trên đối tượng học sinh miền núi đa số chưa được tiếp cận về thuật toán và lập trình ở cấp THCS. - Góp phần nâng cao chất lượng dạy học môn Tin học nói chung, phần lập trình Python nói riêng. Từ đó thu hẹp khoảng cách chất lượng môn Tin học giữa miền núi và vùng đồng bằng. 2
  8. PHẦN II. NỘI DUNG NGHIÊN CỨU 1. CƠ SỞ LÝ LUẬN 1.1. Khái niệm về ngôn ngữ Python Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ, thuận tiện cho người mới học lập trình. Python là ngôn ngữ mã nguồn mở, có thể chạy trên hầu hết các hệ điều hành, bao gồm Windows, Linux, MacOS, Android và iOS. Python được sử dụng rộng rãi trong nhiều lĩnh vực, bao gồm khoa học dữ liệu, máy học, trí tuệ nhân tạo, lập trình web, ứng dụng di động, game, hệ thống viễn thông và nhiều lĩnh vực khác. 1.2. Những ưu điểm và hạn chế của Python Python là một ngôn ngữ lập trình phổ biến, có nhiều ưu điểm và hạn chế như sau: a. Ưu điểm - Python có cú pháp đơn giản và dễ đọc, dễ học cho người mới bắt đầu giúp cho lập trình viên tập trung vào việc giải quyết vấn đề hơn là tìm hiểu cú pháp. - Python là ngôn ngữ đa năng, có thể sử dụng để phát triển nhiều loại ứng dụng khác nhau, bao gồm lập trình web, khoa học dữ liệu, trí tuệ nhân tạo, game và hệ thống viễn thông. - Python có thư viện đồ sộ và mạnh mẽ, bao gồm cả thư viện chuẩn và thư viện bên thứ ba, giúp cho việc phát triển các ứng dụng nhanh hơn và dễ dàng hơn. - Python có thể chạy trên nhiều nền tảng khác nhau bao gồm Windows, Linux, macOS, Android và iOS. - Python có thể được mở rộng với các module bên thứ ba, cho phép các lập trình viên tạo ra các tính năng mới một cách dễ dàng. b. Hạn chế Tốc độ chậm hơn các ngôn ngữ lập trình khác như C hoặc C++ vì Python là ngôn ngữ thông dịch và được quản lý bởi Garbage Collector. - Vì Python là ngôn ngữ thông dịch, nó dễ bị lỗi hơn các ngôn ngữ biên dịch. Một số lỗi có thể được phát hiện sau khi chương trình đã được triển khai. - Python không được sử dụng phổ biến trong các ứng dụng cần tính bảo mật cao vì nó không được tối ưu hóa cho hiệu suất và an ninh. Tuy nhiên, với sự phát triển của các thư viện và công cụ hỗ trợ, các hạn chế này đã được giảm thiểu đáng kể và Python vẫn là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay. 3
  9. 1.3. Ứng dụng thực tế của ngôn ngữ Python - Lập trình ứng dụng web Có thể tạo web app có khả năng mở rộng (scalable) được bằng cách sử dụng framework và CMS (Hệ thống quản trị nội dung) được tích hợp trong Python. Vài nền tảng phổ biến để tạo web app là: Django, Flask, Pyramid, Plone, Django CMS. Các trang như Mozilla, Reddit, Instagram và PBS đều được viết bằng ngôn ngữ này. - Ngôn ngữ dễ học để khởi đầu đào tạo lập trình Python được nhiều công ty, trường học sử dụng để dạy lập trình cho trẻ em và những người mới lần đầu học lập trình. Bên cạnh những tính năng và khả năng tuyệt vời thì cú pháp đơn giản và dễ sử dụng của nó là lý do chính cho việc này. - Khoa học và số liệu ứng dụng Python đang trở thành con cưng của nhiều nhà khoa học dữ liệu chỉ vì bộ sưu tập thư viện của nó được thiết kế để phân tích thống kê và phân tích số liệu Có nhiều thư viện trong Python cho khoa học và tính toán số liệu, như SciPy và NumPy, được sử dụng cho những mục đích chung chung trong tính toán. Và có những thư viện cụ thể như: EarthPy cho khoa học trái đất, AstroPy cho Thiên văn học,… Ngoài ra, nó còn được sử dụng nhiều trong machine learning, khai thác dữ liệu và deep learning. - Trí tuệ nhân tạo và học máy Khi chúng ta nói về những dự án AI / ML, các công cụ và công nghệ được sử dụng cũng như bộ kỹ năng cần thiết hoàn toàn khác với quá trình phát triển các dự án phần mềm thông thường. Các ứng dụng AI / ML yêu cầu ngôn ngữ ổn định, bảo mật, linh hoạt và được trang bị các công cụ có thể xử lý các yêu cầu riêng biệt khác nhau. Python có tất cả những phẩm chất này và do đó, nó đã trở thành một trong những ngôn ngữ được các chuyên gia phát triển AI/ML ưa chuộng nhất. Tính đơn giản, tính nhất quán, tính độc lập của nền tảng, bộ sưu tập thư viện tài nguyên và cộng đồng hỗ trợ mạnh mẽ của Python khiến nó trở thành công cụ hoàn hảo để phát triển các ứng dụng AI và ML. - Phân tích dữ liệu Khi nói đến khoa học dữ liệu, thống kê, phân tích, Machine Learning, Python là một trong những ngôn ngữ phù hợp nhất cho yêu cầu cũng như mục tiêu trong việc phân tích dữ liệu. 1.4. Vì sao chọn Python là NNLT dạy học trong nhà trường phổ thông Python được chọn là ngôn ngữ lập trình dạy học trong nhà trường phổ thông vì những lý do sau: 4
  10. - Python có cú pháp đơn giản và dễ đọc, dễ học cho người mới bắt đầu giúp cho giáo viên và học sinh tập trung vào việc giải quyết vấn đề hơn là tìm hiểu cú pháp. - Python không đòi hỏi phần cứng mạnh mẽ, phần mềm đắt tiền hoặc kiến thức toán học phức tạp để bắt đầu lập trình. Nó có thể được sử dụng để giảng dạy các khái niệm lập trình cơ bản và trung bình. - Python có thư viện đồ sộ và mạnh mẽ, bao gồm cả thư viện chuẩn và thư viện bên thứ ba, giúp cho giáo viên và học sinh có thể phát triển các ứng dụng nhanh hơn và dễ dàng hơn. - Python là ngôn ngữ đa năng, có thể sử dụng để phát triển nhiều loại ứng dụng khác nhau, bao gồm lập trình web, khoa học dữ liệu, trí tuệ nhân tạo, game và hệ thống viễn thông giúp cho giáo viên và học sinh có thể áp dụng kiến thức của Python vào nhiều lĩnh vực khác nhau. Với những ưu điểm trên, Python đã trở thành một ngôn ngữ lập trình phổ biến trong giáo dục, được sử dụng để giảng dạy lập trình từ cấp độ phổ thông cho đến đại học và hơn nữa. 2. CƠ SỞ THỰC TIỄN 2.1. Thực trạng về hiểu biết, nhận thức và mức độ yêu thích về NNLT Python của học sinh ở trường THPT Kỳ Sơn Chúng tôi đã thực hiện khảo sát với tổng số 260 học sinh các lớp sẽ tác động của sáng kiến gồm: 10A1, 10A3, 10C1, 10C3, 10C4, 10C7 – Trường THPT Kỳ Sơn bằng các câu hỏi trắc nghiệm với 2 nội dung khảo sát: Khảo sát 1: Thực hiện ở tuần 14 khảo sát về sự hiểu biết và nhận thức của học sinh về NNLT Python trước khi các em tìm hiều về chủ đề 5: “Giải quyết vấn đề với sự trợ giúp của máy tính” A. Phương pháp khảo sát Xây dựng các câu hỏi điều tra hiểu biết và nhận thức. B. Nội dung CÂU HỎI ĐIỀU TRA Câu 1: Bạn đã nghe nói về ngôn ngữ lập trình Python chưa? a. Có b. Không Câu 2: Bạn đã từng học lập trình Python hay ngôn ngữ nào khác chưa? a. Có b. Không 5
  11. Câu 3: Bạn có biết một số ứng dụng của NNLT Python trong cuộc sống không? a. Có b. Không Câu 4: Bạn có nghĩ rằng việc học lập trình Python sẽ giúp ích cho việc học và công việc của bạn trong tương lai không? a. Có b. Không Câu 5: Bạn có muốn học lập trình Python không? a. Có b. Không C. Kết quả Được thể hiện trên biểu đồ sau: 300 250 200 150 100 50 0 Câu 1 Câu 2 Câu 3 Câu 4 Câu 5 CÓ KHÔNG D. Nhận xét Qua kết quả điều tra thể hiện trên biểu đồ thì chúng ta nhận thấy tỉ lệ học sinh hiểu biết và nhận thức về NNLT Python còn quá ít, học sinh hầu như chưa được tiếp xúc với lập trình từ cấp dưới nhưng bên cạnh đó nhiều em vẫn muốn tìm hiểu về ngôn ngữ này ở môn Tin học 10. Khảo sát 2: Thực hiện ở tuần 17 để đánh giá mức độ yêu thích lập trình Python của học sinh sau khi đã được làm quen với NNLT Python. Kết quả được thê hiện trong bảng sau: Rất thích Thích Học được Không thích SL  SL  SL  SL  11 4.2 24 9.2 112 43.1 113 43.5 6
  12. Qua bảng đánh giá mức độ yêu thích lập trình cho thấy đa số học sinh chưa thực sự yêu thích lập trình Python, học sinh rất thích và thích tỉ lệ còn rất nhỏ. Điều đó sẽ dẫn đến kết quả học tập chắc chắn sẽ không cao có hai nguyên nhân chính dẫn đến thực trạng trên: Một là, các em cảm thấy môn học quá khó và hoàn cảnh tác động, chưa quyết tâm, kiên trì và chưa quan tâm thực sự đến học tập. Hai là, phương pháp dạy học của giáo viên chưa tác động tích cực đến sự hứng thú, đam mê học lập trình cho học sinh. 2.2. Những thuận lợi và khó khăn khi dạy học ngôn ngữ lập trình Python. a. Thuận lợi Giáo viên đã được đào tạo, tập huấn để có thể đáp ứng yêu cầu dạy và học môn Tin học trong nhà trường phổ thông theo chương trình đổi mới 2018. Môn Tin học là môn học tự chọn nên học sinh tiếp thu kiến thức một cách thoải mái, không bị gò ép trong thi cử. Chương trình GDPT 2018 của Tin học 10 có sự thay đổi theo hướng học sinh được thực hành nhiều hơn đó là yếu tố giúp học sinh nắm vững kiến thức lý thuyết hơn sau mỗi tiết thực hành. Bên cạnh yếu tố đội ngũ giáo viên thì cơ sở vật chất là một điều kiện nòng cốt để thực hiện thành công chương trình giáo dục phổ thông thi trong năm học 2022 – 2023 trường THPT Kỳ Sơn đã được tập đoàn Trung Nam Group tài trợ cơ sở vật chất, với trang thiết bị hiện đại nhất, phòng máy tính đầy đủ cho mỗi học sinh/1 máy, phòng học thực hành có thêm một tivi chiếu rất thuận tiện cho giáo viên thực hiện phương pháp dạy học theo hướng phát huy tính tích cực, chủ động của học sinh đáp ứng yêu cầu theo GDPT 2018. b. Khó khăn Đa số giáo viên Tin học chưa được tiếp cận và tập huấn về ngôn ngữ lập trình Python. Mặt khác tài liệu tham khảo về ngôn ngữ Python còn chưa phổ biến nên gây khó khăn cho giáo viên khi tự học, tự tìm hiểu. Đối với giáo viên việc trao đổi, chia sẻ, học hỏi kinh nghiệm gặp nhiều khó khăn do hầu hết đều quen với tư duy ngôn ngữ lập trình Pascal. Môn Tin học bậc THPT là một môn tự chọn nên một số học sinh còn xem nhẹ môn học, coi đó là môn phụ, không có thái độ học tập tích cực, không chịu suy nghĩ và động não khi làm bài tập. Ngoài ra, lập trình đòi hòi hỏi tư duy cao thì với đối tượng học sinh miền núi của trường THPT Kỳ Sơn khi mà điểm đầu vào thuộc thấp nhất trong tỉnh thì đó là một khó khăn và thách thức rất lớn cho giáo viên Tin học là làm thế nào học sinh yêu thích và học tốt với phần lập trình Python? Học sinh lớp 10 năm học 2022 – 2023 của trường THPT Kỳ Sơn đa số các em chưa được tiếp xúc với môn Tin học ở cấp THCS nên dẫn đến những khái niệm cơ 7
  13. bản về thuật toán các em chưa được tìm hiểu nên gây khó khăn cho giáo viên trong truyền đạt kiến thức ở phần lập trình. Đối với trường THCS trên địa bàn huyện có đủ điều kiện để học môn Tin học thì các em đã được tiếp xúc với lập trình nhưng chủ yếu học Pascal nên Python là ngôn ngữ còn khá mới lạ đối với học sinh. Chính vì điều đó dẫn đến việc sử dụng các câu lệnh còn sai cú pháp và mục đích khi tư duy của các em còn quen thuộc với NNLT Pascal. 3. GIẢI PHÁP Để giải quyết những tồn tại và khó khăn trên, chúng tôi đã nghiên cứu và tìm hiểu để chia sẻ những kinh nghiệm và giải pháp giúp học sinh học tốt lập trình Python, biết vận dụng kiến thức của mình vào cuộc sống, hoàn thiện và thành thạo các thao tác khi tương tác với phần mềm Python, linh hoạt khi sử dụng các câu lệnh để giải quyết bài toán một cách chính xác và khoa học. 3.1. Biện pháp 1: Gợi động cơ học lập trình Python cho học sinh Động cơ học tập là yếu tố định hướng, thúc đẩy hoạt động học tập, nó phản ánh đối tượng có khả năng thỏa mãn nhu cầu chiếm lĩnh tri thức của người học. Động cơ tồn tại ở hai dạng: + Động cơ bên trong: Liên quan đến việc hoàn thành nhiệm vụ vì niềm vui, sở thích trong học tập,… + Động cơ bên ngoài: được hình thành không phải do hứng thú của bản thân trong việc học mà do được khen thưởng, tránh bị phạt,… Khi nhu cầu học tập của người học chưa cao thì giáo viên cần phải khai thác và phát huy các thành tố của quá trình dạy học, khơi dậy tính tích cực của người học, chuyển hoá dần động cơ bên ngoài thành động cơ bên trong của người học. a. Gợi động cơ mở đầu: Đối với môn Tin học, đặc biệt với lập trình thì việc gợi động cơ mở đầu là rất cần thiết. Có thể gợi động cơ mở đầu xuất phát từ thực tế hoặc nội bộ môn Tin học. Việc xuất phát từ thực tế không những có tác dụng gợi động cơ mà sẽ dễ dàng cho học sinh hứng thú hơn khi các em thấy được ứng dụng thực tiễn của lập trình Python. Tuy nhiên, không phải bài nào chúng ta cũng có thể gợi động cơ từ xuất phát thực tế cho nên cần gợi động cơ từ nội bộ Tin học. Ví dụ 1: Khi dạy về câu lệnh lặp for Để mô tả cấu trúc lặp for, ta sử dụng cấu trúc sau: For in range(n): Trước khi đưa ra cấu trúc câu lệnh for, giáo viên gợi động cơ mở đầu cho học sinh bằng cách lấy ví dụ sau: 8
  14. “Nhập vào 10 số nguyên bất kỳ. In ra màn hình bình phương của các số đã nhập.” GV: Yêu cầu học sinh sử dụng các kiến thức đã học viết chương trình cho bài toán trên. HS: Dựa vào những kiến thức đã học, học sinh có thể sẽ viết chương trình như sau: x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) GV: Yêu cầu các em nhận xét chương trình mà bạn đã viết. HS: Chương trình dài, nhiều câu lệnh lặp đi lặp lại,… GV: Để thực hiện được yêu cầu trên, ta phải nhập 10 số nguyên, mỗi lần nhập ta in ra màn hình bình phương của số vừa nhập. Như vậy, ta cần bao nhiêu câu lệnh nhập và bao nhiêu câu lệnh in ra màn hình? HS: 10 câu lệnh nhập và 10 câu lệnh in ra màn hình bình phương của số đó. 9
  15. GV: Như vậy, ta phải viết lặp đi lặp lại 10 câu lệnh. Nếu bài toán yêu cầu nhập vào 100 số nguyên và in ra màn hình bình phương của các số đã nhập thì ta cần bao nhiêu câu lệnh nhập và in ra màn hình.? HS: 100 câu lệnh. GV: Vậy để xóa bỏ sự hạn chế này, ta chỉ cần sử dụng câu lệnh lặp với số lần biết trước for, giáo viên chiếu lên nội dung chương trình để từ đó đưa ra được cấu trúc của câu lệnh lặp: Lặp 10 lần: for i in range(10): x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) Lặp 100 lần: for i in range(100): x=int(input(“nhập vào số nguyên bất kỳ”)) print(x*x) Ví dụ 2: Khi dạy về câu lệnh lặp while Để mô tả cấu trúc lặp while, ta sử dụng cấu trúc sau: While : Trước khi đưa đến cấu trúc trên thì ta có thể gợi động cơ mở đầu bằng cách xuất phát từ thực tế. GV: Chiếu bảng sau: Cột A Cột B Vận động viên chạy nhiều vòng xung Vận động viên chạy 20 vòng xung quanh sân vận động trong thời gian 2 quanh sân vận động tiếng Em làm các bài tập về nhà đến giờ ăn Em làm 5 bài tập giáo viên giao về nhà cơm thì nghỉ Em xách các xô nước giúp mẹ cho đến Em đi lấy 15 xô nước giúp mẹ khi đầy thùng nước GV: Yêu cầu học sinh dựa vào bảng trên trả lời những câu hỏi sau: - Đối với mỗi hàng trong cột A và cột B, em hãy cho biết công việc lặp đi lại là gì?, điều kiện để dừng công việc là gì? 10
  16. - Số lần thực hiện việc lặp giữa 2 cột A và cột B có gì khác nhau? HS: Khác nhau: Cột A biết được số lần thực hiện công việc còn cột B chưa biết được số lần thực hiện, chỉ biết điều kiện để dừng công việc. Cột A Cột B Công việc: Chạy quanh sân vận động Công việc: Chạy quanh sân vận động Điều kiện dừng: 20 vòng Điều kiện dừng: Chạy được 2 giờ Công việc: Làm bài tập Công việc: Làm bài tập Điều kiện dừng: 5 bài Điều kiện dừng: Đến giờ ăn cơm Công việc: Lấy nước Công việc: Lấy nước Điều kiện dừng: 15 xô Điều kiện dừng: Nước đầy thùng GV: Từ câu trả lời giáo viên nhận xét bài làm của học sinh. Từ đó dẫn dắt vào nội dung chính của bài học về câu lệnh while. b. Gợi động cơ trung gian. Gợi động cơ trung gian là gợi động cơ cho những bước trung gian hoặc cho những hoạt động tiến hành trong những bước đó để đạt được mục tiêu. Gợi động cơ trung gian có ý nghĩa to lớn đối với sự phát triển năng lực độc lập giải quyết vấn đề. Gợi động cơ trung gian thường được vận dụng khi một bài toán có nhiều hoạt động, phức tạp mà học sinh không thể độc lập giải quyết được. Sau đây là những cách để gợi động cơ trung gian: - Hướng đích cho học sinh. - Quy lạ về quen. - Xét tính tương tự. - Khái quát hóa. *Hướng đích cho học sinh: Hướng đích cho học sinh là hướng vào những mục tiêu đề ra, vào hiệu quả dự kiến của những hoạt động của học sinh nhằm đạt được mục tiêu đó. Hướng đích là làm sao cho đối với tất cả những gì học sinh nói và làm, các em đều biết rằng những cái đó nhằm mục tiêu gì trong quá trình tìm hiểu và mô tả con đường đi đến đích, luôn biết hướng tới những quyết định và hoạt động của mình vào mục đích đã đặt ra. Ví dụ: Khi hướng dẫn học sinh viết chương trình nhập vào số tự nhiên n, rồi nhập học và tên của n học sinh. Sau đó in ra danh sách tên học sinh theo hai cột, cột 1 là tên, cột 2 là họ đệm. 11
  17. Để học sinh làm bài tập này thì giáo viên sẽ xây dựng hệ thống các câu hỏi nhằm hướng đích cho học sinh: - Bài toán đã cho cái gì và yêu cầu làm gì? - Để thực hiện yêu cầu trên, ta cần có gì? - Danh sách học sinh là kiểu dữ liệu gì? - Số học sinh cần nhập vào bao nhiêu? - Lệnh nào trong Python có thể tách tên và họ đệm? - Sau khi tách tên và họ đệm riêng thì ta lưu dữ liệu vào đâu? Nhờ vào gợi động cơ, học sinh có thể chia nhỏ bài toán để dễ hiểu và xử lý hơn. Từ đó, học sinh có thể dễ dàng viết chương trình hoàn chỉnh của bài toán. *Quy lạ về quen: Trong nhiều bài học khi đưa ra một vấn đề cần giải quyết hay một dạng bài tập mới nếu học sinh chưa biết hướng giải quyết thì ta sẽ hướng học sinh đến những nội dung chính đã học để học sinh có thể vận dụng vào giải quyết vấn đề mới đó. Gợi động cơ trung gian với các quy lạ về quen là một yếu tố quan trọng vì khi đưa ra vấn đề nào đó dựa trên cơ sở của kiến thức đã học để học sinh có suy nghĩ logic và cuối cùng là đưa ra được vấn đề mới này về dạng quen thuộc để học sinh nhận dạng. Khi đó kiến thức mới này sẽ được học sinh tiếp thu một cách dễ dàng. Ví dụ: Khi học sinh đã biết tìm ước chung lớn nhất của 2 số thì khi ta xây dựng tìm ước chung lớn nhất của 3 số thì ta có thể gợi ý cho học sinh sử dụng kiến thức về hàm trong Python để viết chương trình tìm ước chung lớn nhất của 2 số, sau đó có gọi hàm tìm ước chung lớn nhất của 2 số. Sau đó gọi hàm thêm 1 lần nữa để để tìm ước chung lớn nhất của số thứ 3 và ước chung lớn nhất đã tìm được của 2 số kia. Kết quả gọi hàm lần thứ 2 chính là ước chung lớn nhất của 3 số. Chương trình có thể được viết như sau: def ucln(M, N): while M != N: if M > N: M=M-N else: N=N-M return N a = int(input("nhập số nguyên a: ")) b = int(input("nhập số nguyên b: ")) c = int(input("nhập số nguyên c: ")) ucln_ab = ucln(a, b) ucln_abc= ucln(ucln_ab, c) print("ước chung lớn nhất của 3 số đó là:", ucln_abc) 12
  18. * Xét tính tương tự: Khi học xong vòng lặp for, giáo viên có thể đưa ra một số bài tập để học sinh rèn luyện. Từ bài tập này, giáo viên có thể đưa ra dạng bài tập tương tự Ví dụ: Khi học sinh viết được chương trình tính và đưa ra màn hình n! Đoạn chương trình tính n! : n= int(input(“nhập giá trị n”) gt=1 for i in range (1,n+1): gt = gt*i print("n! =”, gt) Thì tương tự ta yêu cầu học sinh: “Viết chương trình tính và đưa ra màn hình an ”. Đoạn chương trình tính an : n= int(input(“nhập giá trị n”)) a= int(input(“nhập giá trị a”)) tich =1 for i in range(1,n+1): tich = tich*a print("kết quả là”, tich) * Khái quát hóa: Ví dụ 1: Xuất phát từ bài toán: “Viết chương trình nhập 2 số nguyên a, b khác nhau từ bàn phím và in ra màn hình số lớn nhất trong 2 số đó”. Học sinh đã biết cách viết chương trình như sau: a=int(input(“nhập a:”)) b=int(input(“nhập b:”)) if a > b: print(“số lớn nhất là:”, a) else: print(“số lớn nhất là:”, b) Tiếp theo giáo viên yêu cầu học sinh viết chương trình in ra màn hình số lớn nhất trong 3 số a, b, c khác nhau nhập từ bàn phím. Để giải bài toán trên giáo viên hướng dẫn học sinh như sau: - Ta sử dụng thêm biến Max để lưu số lớn nhất. 13
  19. - Ban đầu Max gán bằng a. - Sử dụng lệnh if dạng thiếu để kiểm tra 2 số còn lại. Nếu số nào lớn hơn thì biến Max nhận giá trị số đó. Đoạn chương trình: Max = a if b > Max: Max = b if c> Max: Max = c print(“số lớn nhất là:”, Max) Sau khi thực hiện được chương trình tìm số lớn nhất trong 3 số. Khái quát: Yêu cầu học sinh viết chương trình nhập dãy gồm N số nguyên A1, A2,.., An và in ra màn hình số lớn nhất trong dãy A1, A2,.., An Để thực hiện bài toán trên, giáo viên hướng dẫn học sinh cách làm: - Sử dụng kiểu danh sách để lưu dãy gồm N số nguyên: A1, A2,…, An. - Áp dụng cách làm tương tự như đối với 3 số: + Ban đầu gán Max = A1; + Dùng vòng lặp For để duyệt các phần tử còn lại từ A2 đến An. + Thực hiện phép so sánh: Max với A[i]. Nếu A[i] > Max thì Max nhận giá trị A[i]. + Kết thúc vòng lặp, ta tìm được số lớn nhất. Từ những gợi ý của giáo viên, học sinh có thể dễ hiểu hơn và hoàn thành được chương trình Đoạn chương trình như sau: Max=A[0] for i in range(1, n): if A[i] > Max: Max=A[i] print(“số lớn nhất là:”, Max) Ví dụ 2: Viết chương trình đếm xem có bao nhiêu số lẻ trong phạm vi từ 10 đến 100. Học sinh đã biết cách viết chương trình như sau: dem=0 14
  20. for i in range( 10,101): if i % 2 != 0: dem = dem+1 print(“có” ,dem, “số lẻ trong phạm vi từ 10 đến 100”) Sau đó, yêu cầu học sinh viết chương trình đếm có bao nhiêu số lẻ trong phạm vi từ n đến m (n < m), với n, m là 2 số nguyên nhập từ bàn phím. Để làm bài này, ta phải nhập n và m, sau đó dùng vòng lặp for để kiểm tra tất cả các số từ n đến m có số nào không chia hết cho 2 thì tăng đếm lên 1 đơn vị. n=int(input(“nhập n=”)) m=int(input(“nhập m=”)) dem = 0 for i in range( n, m+1): if i % 2 != 0: dem=dem+1 print(“có”,dem, “số lẻ trong phạm vi từ” ,n, “đến” ,m) c. Gợi động cơ kết thúc. Nhiều khi ngay từ đầu hay trong khi giải quyết vấn đề, ta chưa thể làm rõ tại sao lại học nội dung này, tại sao thực hiện hoạt động kia? Những câu hỏi này phải về sau mới được giải đáp trọn vẹn qua một số ví dụ hoặc bài tập cụ thể. Như vậy, ta đã gợi động cơ kết thúc, nhấn mạnh hiệu quả của nội dung hoặc hoạt động đó với việc giải quyết vấn đề đặt ra. Cũng như gợi động cơ mở đầu và gợi động cơ trung gian, gợi động cơ kết thúc cũng có tác dụng phát huy tính tích cực, chủ động, sáng tạo, tự giác trong hoạt động học tập. Ví dụ 1: Sau khi học xong bài câu lệnh lặp for, giáo viên đưa ra bài toán: Viết chương trình in ra màn hình 5 dòng chữ “Xin chào”. Với bài toán này giáo viên chiếu lên 2 cách viết chương trình như sau: C1: Ta sử dụng 5 câu lệnh: print(“Xin chào”) Chương trình như sau: print(“Xin chào”) print(“Xin chào”) print(“Xin chào”) print(“Xin chào”) print(“Xin chào”) 15
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2