Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
1,16 MB
Nội dung
Đề tài: “RÈN LUYỆN KỸ NĂNG LẬP TRÌNH VỚI CHỦ ĐỀ XÂU KÝ TỰ CHO HỌC SINH KHÁ GIỎI TRONG NGƠN NGỮ LẬP TRÌNH C++ VÀ PYTHON” MỤC LỤC NỘI DUNG Trang Phần - ĐẶT VẤN ĐỀ: I - Lý chọn đề tài II – Điểm đề tài Phần - NỘI DUNG I – CƠ SỞ LÝ LUẬN Vai trị việc rèn luyện kỹ lập trình cho học sinh giỏi Sự cần thiết dạy học cho học sinh giỏi ngôn ngữ lập trình C++ Python Tầm quan trọng chủ đề Xâu ký tự dạy học lập trình II – THỰC TRẠNG VẤN ĐỀ Thực trạng dạy học ngơn ngữ lập trình C++, Python trường THPT Thực trạng dạy học ngôn ngữ lập trình C++, Python trường chúng tơi Thực trạng dạy học chủ đề xâu liệu cho đối tượng học sinh giỏi III – GIẢI QUYẾT VẤN ĐỀ – Một số đặc tính kiến thức xâu liệu NNLT C++ Python 1.1 Một số đặc tính khác Xâu C++ Xâu Python 1.2 Tóm tắt số thao tác xử lý xâu C++ 1.3 Tóm tắt số thao tác xử lý xâu Python 10 – Rèn luyện kỹ lập trình với chủ đề Kiểu xâu 11 2.1 Ôn luyện kỹ sử dụng thao tác xử lý xâu qua số toán 11 2.2 Rèn luyện kỹ giải số dạng tập phổ biến xâu ký tự 19 2.2.1 Dạng tập yêu cầu biến đổi xâu 19 2.2.2 Dạng tập có yêu cầu duyệt xử lý xâu 23 2.2.3 Dạng tập có yêu cầu xử lý số lớn 27 - Một số tập mở rộng nâng cao 31 - Hiệu sáng kiến 42 Phần PHẦN KẾT LUẬN 43 I - Kết luận chung 43 II – Ý nghĩa đề tài 43 III - Khả ứng dụng, mở rộng đề tài 44 IV - Đề xuất 44 DANH MỤC CÁC CHỮ VIẾT TẮT TRONG SÁNG KIẾN Nội dung Viết tắt Giáo dục phổ thông GDPT Phát triển lực PTNL Trung học phổ thông THPT Giáo viên GV Học sinh HS Ngôn ngữ lập trình NNLT Ngơn ngữ lập trình C++ C++ Ngơn ngữ lập trình Python Python Phần ĐẶT VẤN ĐỀ I LÝ DO CHỌN ĐỀ TÀI Giáo dục phổ thông nước ta thực bước chuyển từ chương trình giáo dục tiếp cận nội dung sang chương trình giáo dục “định hướng lực” Trong chương trình giáo dục phổ thơng mới, mơn Tin học có nhiều điểm mới, Bộ GD-ĐT ban hành hướng dẫn điều chỉnh nội dung dạy học, cho phép khuyến khích sở giáo dục dần loại bỏ ngơn ngữ lập trình Pascal lựa chọn giảng dạy ngơn ngữ lập trình có tính cập nhật, đại, thông dụng C++, Python… Hưởng ứng thực nhiệm vụ đổi ngành trường triển khai dạy học ngơn ngữ lập trình C++ cho toàn học sinh khối 11 thay Pascal hoạt động nhóm chun mơn chúng tơi tổ chức nghiên cứu ngôn ngữ Python, tổ chức Câu lạc Tin học tập hợp học sinh yêu thích, đam mê Tin học bước đầu triển khai cho học sinh có sân chơi bổ ích, lành mạnh, thu hút học sinh giỏi tham gia học tập, chia sẻ lẫn nhằm khơi dậy niểm đam mê tin học học sinh, đồng thời nâng cao lực chuyên môn giáo viên, trang bị kiến thức, nghiệp vụ sẵn sàng thực tốt nhiệm vụ đổi góp phần tới đạt mục tiêu chung ngành Là giáo viên môn Tin học, bên cạch việc dạy học kiến thức phổ thơng tin học việc bồi dưỡng học sinh giỏi quan trọng; trách nhiệm người giáo viên Tin học tổ chức hoạt động học tập cho học sinh để phát triển hệ thống lực mà học sinh phổ thông cần phải có Khi giảng dạy tơi thường phân tích điểm ưu, nhược ngơn ngữ lập trình để em có nhìn tổng quan, bao qt số ngơn ngữ lập trình C++, Python để gieo niềm đam mê định hướng học sinh có lực vào đội ngũ nhân lực CNTT chất lượng cao đất nước Qua dạy học, nhận thấy chủ đề “Xâu ký tự” nội dung quan trọng việc tiếp cận ngôn ngữ lập trình bậc cao, xử lý xâu ký tự yêu cầu thường gặp việc xây dựng phần mềm ứng dụng thực tiễn, việc dạy học chủ để số trường THPT gặp nhiều khó khăn, hiệu chưa cao Với niềm đam mê chun mơn, ham học hỏi tơi ln tìm tịi nghiên cứu tơi có giải pháp tốt nhằm đem lại hiệu cao công tác bồi dưỡng học sinh giỏi đạt kết mong đợi Tôi xin chia sẻ sáng kiến chủ đề “Rèn luyện kỹ lập trình với chủ đề xâu ký tự cho học sinh giỏi ngơn ngữ lập trình C++ Python” với mong muốn đưa giải pháp nhằm nâng cao hiệu bồi dưỡng học sinh giỏi giúp giáo viên có thêm số cách thức để ơn luyện phù hợp Qua đó, tơi mong muốn giáo viên Tin học ln có ý thức tìm tịi, nghiên cứu nâng cao trình độ, lực chun mơn, thực tốt công đổi ngành II ĐIỂM MỚI CỦA ĐỀ TÀI - Hiện Python ngôn ngữ lập trình sử dụng rộng rãi để tạo ứng dụng Trí tuệ nhân tạo (AI), phân tích liệu lớn (Big data), học máy (machine learning) Trong chương trình GDPT 2018, python lựa chọn phù hợp để giảng dạy cho học sinh THPT câu lệnh đơn giản ngắn gọn, dễ viết, dễ tiếp cận Với lý trên, trường triển khai dạy học ngôn ngữ lập trình C++ song song với ngơn ngữ lập trình Python cho học sinh giỏi thông qua số hoạt động học tập Sinh hoạt Câu lạc Tin học, bồi dưỡng học sinh giỏi nghiên cứu khoa học kỹ thuật - Sáng kiến đón đầu giúp giáo viên chuẩn bị kiến thức chun mơn nghiệp vụ để triển khai chương trình chương trình GDPT 2018 cách hiệu - Sáng kiến xây dựng toán thành hệ thống theo trình tự logic có đặt phương pháp quy trình giải tốn, giúp học sinh dễ dàng tiếp cận với nội dung rèn luyện tư thuật toán - Sáng kiến chọn lọc hệ thống tập thích hợp, xếp cách logic, hợp lí từ dễ đến khó nhằm giúp học sinh củng cố kiến thức, rèn luyện kỹ phát triển tư biết áp dụng Tin học vào thực tiễn - Thông qua việc hướng dẫn giải toán giáo viên rèn luyện kỹ lựa chọn thuật toán cho học sinh cách định hướng, uốn nắn, trau chuốt lời giải tập, qua góp phần tạo niềm tin hứng thú học tập Phần NỘI DUNG I - CƠ SỞ LÝ LUẬN: Vai trò việc rèn luyện kỹ lập trình cho học sinh giỏi Trong thời công nghệ 4.0, ngành công nghệ thông tin (CNTT) nói chung Tin học nói riêng phát triển cách mạnh mẽ Mọi ngành nghề, lĩnh vực hay hoạt động xã hội đại cần tới góp mặt CNTT, đâu ứng dụng CNTT vơ quan trọng Vì vậy, nhu cầu nguồn nhân lực CNTT lớn tiếp tục tăng vọt năm tiếp theo, việc nâng cao chất lượng nguồn nhân lực CNTT để đáp ứng yêu cầu phát triển hội nhập kinh tế quốc tế đất nước nhiệm vụ cấp thiết Là giáo viên môn Tin học, bên cạch việc dạy học kiến thức phổ thông tin học ứng dụng việc dạy học lập trình quan trọng; trách nhiệm người giáo viên Tin học giúp học sinh hiểu hoạt động máy tính, am hiểu khoa học kỹ thuật, góp phần định hướng học sinh có lực đam mê Tin học vào đội ngũ nhân lực CNTT chất lượng cao đất nước Sự cần thiết dạy học cho học sinh giỏi ngơn ngữ lập trình C++ Python Ngơn ngữ lập trình C++ Python ngơn ngữ lập trình phù hợp cho việc dạy học trường phổ thông, sử dụng kỳ thi học sinh giỏi tỉnh Nghệ An vừa qua; hai ngôn ngữ sử dụng phổ biến việc thiết kế, xây dựng phần mềm ứng dụng thực tiễn có ưu riêng định Ngơn ngữ lập trình C++ phù hợp để rèn luyện cho học sinh hiểu sâu thuật tốn phân tích, đánh giá xác hiệu suất thuật tốn Trong lập trình thi đấu chương trình trung học phổ thơng, ngơn ngữ C++ ngơn ngữ lựa chọn hàng đầu Ngơn ngữ lập trình Python đơn giản giúp học sinh dễ học, dễ viết việc thực thi chương trình chậm khơng phù hợp với lập trình thi đấu giai đoạn lại phù hợp với định hướng giáo dục Stem môn Tin học (Sở GD&ĐT Nghệ An có cơng văn số 1677/SGD&ĐTGDTrH ngày 26/8/2020 hướng dẫn thực giáo dục STEM trường trung học từ năm học 2020-2021) Việc dạy học cho đối tượng học sinh giỏi ngôn ngữ giúp em thấy đa dạng phong phú lĩnh vực lập trình; giúp em có nhìn tổng qt, tồn diện hơn; biết ưu, nhược điểm ngơn ngữ từ kích thích tìm tòi, khám phá thúc đẩy niềm đam mê say sưa với Tin học; giúp em có định hướng nghề nghiệp sớm phấn đấu để đạt mục tiêu Tầm quan trọng chủ đề Xâu ký tự dạy học lập trình Chủ đề “Xâu liệu” nội dung quan trọng việc tiếp cận ngơn ngữ lập trình bậc cao yêu cầu thường gặp xây dựng phần mềm ứng dụng thực tiễn Trong việc dạy học lập trình, giáo dục Stem, bồi dưỡng học sinh giỏi trường phổ thông, chủ đề Xâu liệu nội dung trọng tâm Học sinh cần nắm thao tác xử lý xâu, có kỹ tốt việc phân tích tốn lựa chọn phương pháp phù hợp để có chương trình tốt độ sáng sủa thuật toán lẫn thời gian thực chương trình Để đạt điều đó, giáo viên cần lựa chọn ví dụ, tập đảm bảo tính mục đích, tính khả thi, tính hiệu quả; tốn đưa chứa đựng mâu thuẫn cần giải quyết, gợi cho học sinh nhiều hướng suy nghĩ, nhiều cách giải vấn đề Thiết kế trình tự thực tốn xem sở quan trọng việc truyền tải kiến thức kỹ năng, cần ý vận dụng linh hoạt cho trường hợp cụ thể để đạt mục đích dạy học II - THỰC TRẠNG VẤN ĐỀ Thực trạng dạy học ngôn ngữ lập trình C++, Python trường THPT Ngơn ngữ lập trình C++, Python ngơn ngữ định hướng dạy học chương trình GDPT 2018 khuyến khích triển khai dạy học giai đoạn chuyển tiếp việc thực cịn có số khó khăn định: + SGK hành dùng ngôn ngữ lập trình Pascal để minh họa nên học sinh khơng có sách phù hợp để làm tài liệu học tập Việc tìm kiếm tài liệu dạy học phù hợp trình độ học sinh vất vả + Đố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 hầu hết đội ngũ giáo viên quen với ngơn ngữ lập trình Pascal, chưa mạnh dạn chuyển sang dạy ngơn ngữ khác có tính ưu việt + Kiến thức lập trình khơng nằm nội dung thi THPT quốc gia nên hầu hết học sinh khơng coi trọng, học làm tập học sinh yêu thích, đam mê đầu tư thời gian cho việc học lập trình Vì lượng giáo viên đam mê chuyên môn, đầu tư thời gian trăn trở nghiên cứu cải tiến cách dạy, cách học không nhiều + Thời lượng dành cho dạy học ngơn ngữ lập trình 1,5 tiết/tuần, để mơ tả thuật tốn giải tốn máy tính để hiểu rõ ràng áp dụng thành thạo ngơn ngữ lập trình Thêm vào đó, sở vật chất chưa đáp ứng nhu cầu học tập nên việc triển khai dạy học giúp học sinh hiểu q trình giải tốn máy tính, để tất học sinh tự giải hồn chỉnh khó Thực trạng dạy học ngơn ngữ lập trình C++, Python trường Từ năm học 2018 - 2019 tham dự lớp tập huấn sở GD & ĐT Nghệ An tổ chức lập trình ngơn ngữ lập trình C++ Năm học 2019 – 2020 tiếp tục tham dự tập huấn khuyến khích triển khai dạy học ngôn ngữ C++ thay Pascal Hào hứng thực nhiệm vụ đổi ngành, mạnh dạn đưa C++ vào dạy học số lớp Đến năm học 2020 – 2021, trường chúng tơi triển khai cho tồn học sinh khối 11 chương trình khóa Trong năm học 2019-2020, chúng tơi tập hợp học sinh có học lực giỏi, u thích lập trình, truyền cảm hứng cho em, thành lập Câu lạc Tin học Bước đầu tổ chức cho em học tập, trao đổi lập trình ngơn ngữ lập trình C++, Scratch Python Đối với em học sinh lớp 10 tham gia cho làm quen với ngơn ngữ lập trình Scratch để kích thích hứng thú giúp em làm quen với tư máy tính, sau chúng tơi cho tiếp cận dần với ngơn ngữ lập trình C++ Python Trong q trình triển khai thực chúng tơi gặp nhiều khó khăn vướng mắc kiến thức chuyên môn lẫn nghiệp vụ sư phạm Với yêu nghề, nhiệt huyết với học sinh, không ngừng tìm tịi, nghiên cứu trau dồi kiến thức đồng thời tích cực kết bạn với đồng nghiệp miền tổ quốc để giao lưu, học hỏi nâng cao trình độ Qua q trình tơi có sáng kiến đem áp dụng mang lại kết khả quan, đúc rút thành kinh nghiệm đáng chia sẻ Thực trạng dạy học chủ đề xâu liệu cho đối tượng học sinh giỏi + Chủ đề Xâu liệu C++, Python có hệ thống khái niệm, câu lệnh, hàm xử lý đa dạng phong phú mà tài liệu tham khảo lại ỏi Nên việc tìm tịi tài liệu, tập phù hợp với trình độ học sinh gặp nhiều khó khăn, việc tổng hợp tập đề thi thành dạng tập phục vụ giảng dạy nhiều thời gian Đặc biệt giáo viên tham gia bồi dưỡng cịn vất vả nhiều + Qua dạy học chủ đề Xâu liệu năm trước, khảo sát cấp độ nhận thức học sinh cho kết sau: Đa số học sinh đạt mức độ biết hiểu, vận dụng khơng đến 50% học sinh Trong học sinh giỏi yêu cầu cao viết chương trình số tốn đơn giản; liên hệ kiến thức xâu với tình thực tiễn vận dụng liệu kiểu xâu vào giải toán ứng dụng cụ thể Lo lắng trước thực tế đó, tơi đầu tư thời gian, khơng ngừng học hỏi, nghiên cứu xây dựng nội dung, lựa chọn phương pháp, kỹ thuật phù hợp để kích thích đam mê, hứng thú giúp học sinh hình thành kiến thức phát triển kỹ năng, lực lập trình cách tốt Kết kỳ thi HSG năm gần đây, học sinh đạt kết đáng tự hào III – GIẢI PHÁP – MỘT SỐ ĐẶC TÍNH VỀ XÂU VÀ HỆ THỐNG KIẾN THỨC CỐT LÕI 1.1 Một số đặc tính khác Xâu C++ Python Xâu C++ Xâu Python - Là chuỗi ký tự bảng mã ASCII - Python hỗ trợ hoàn toàn cho bảng mã Unicode - Tên kiểu liệu: string - Tên kiểu liệu: str - Các ký tự xâu đặt cặp - Các ký tự xâu đặt cặp nháy đơn kép Xâu nhiều nháy kép dòng đặt cặp nháy đơn nháy kép - Các ký tự xâu đánh số - Các ký tự xâu đánh số từ trước sau 0; không từ trước sau đảo chiều âm từ sau trước -1 đánh số ngược - Khai báo: Để sử dụng cần khai báo - Khai báo: Trong Python không cần khai báo, để tạo biến xâu ta cần gán biến xâu: string ; xâu cho biến - Trong C++ thực thao - Trong Python, xâu bất biến, thực thao tác làm thay đổi tác làm thay đổi giá trị xâu giá trị xâu - Trong C++ có kiểu liệu ký tự: char - Có thể thực xóa, chèn ký tự theo số - Python khơng có kiểu liệu ký tự, ký tự thuộc kiểu xâu - Không thể thực xóa, chèn ký tự theo số cho phép truy xuất ký thự theo số - Không cho phép thực phép nhân - Cho phép thực phép nhân xâu xâu với số nguyên với số nguyên 1.2 Tóm tắt số thao tác xử lý xâu C++ * Một số thao tác với xâu C++ - Phép ghép nối xâu: + - Phép so sánh: >, >=,