Để góp phần cho ngành Công nghệ thông tin có ảnh hưởng mạnh mẽ như vậy, thì việc lựa chọn ngôn ngữ lập trình trong các lĩnh vực mũi nhọn như Trí tuệ nhân tạo AI, học máy Machine Learning
Trang 1MỤC LỤC
Trang
1 Mở đầu 1
1.1 Lý do chọn đề tài 1
1.2 Mục đích nghiên cứu 1
1.3.Đối tượng nghiên cứu của đề tài 2
1.4.Phương pháp nghiên cứu 2
2 Nội dung nghiên cứu 2
2.1 Cơ sở lý luận 2
2.2 Thực trạng của vấn đề trước khi áp dụng đề tài 2
2.3.Các giải pháp giải quyết vấn đề 3
2.3.1.Phương pháp sử dụng các thư viện tối ưu 3
2.3.2 Phương pháp sử dụng các cấu trúc dữ liệu hiệu quả….… ……… …6
2.3.3 Phương pháp tối ưu hóa các vòng lặp……… …13
2.3.4 Phương pháp sử dụng NumPy hoặc Pandas cho dữ liệu Numpy/DataFrame………16
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 ……… 19
2.4.1 Đối với hoạt động giáo dục……… …19
2.4.2 Đối với giáo viên……….……19
2.4.3 Đối với học sinh……… 19
2.4.4 Đối với trường THPT Tĩnh Gia 3……… 19
3 Kết luận 20
3.1 Kết luận… ……… ………20
3.2 Kiến nghị 20
TÀI LIỆU THAM KHẢO 21
Trang 21 Mở Đầu
1.1 Lí do chọn đề tài
Cuộc cách mạng công nghệ 4.0 đã và đang làm thay đổi mọi lĩnh vực khoa học
và đời sống Các ngành nghề dựa vào thành quả của lĩnh vực công nghệ cao như Công nghệ Nano, Công nghệ Sinh học và đặc biệt là Công nghệ Thông tin ngày càng phát triển vượt bậc cả về lượng lẫn về chất Để góp phần cho ngành Công nghệ thông tin có ảnh hưởng mạnh mẽ như vậy, thì việc lựa chọn ngôn ngữ lập trình trong các lĩnh vực mũi nhọn như Trí tuệ nhân tạo (AI), học máy (Machine Learning), khai phá
dữ liệu (Data Mining), học sâu (Deep Learning) trở nên vô cùng quan trọng và cần thiết Một trong những ngôn ngữ đáp ứng được hầu hết các tiêu chí của tất cả nhà lập trình khó tính nhất đó chính là ngôn ngữ lập trình Python
Ngôn ngữ lập trình Python có nhiều ưu điểm nổi trội như dễ nhớ, dễ viết, khả năng xử lí số liệu lớn, phức tạp rất tốt, thư viện có nhiều hàm, đáp ứng được nhiều kiểu dữ liệu mới của Machine Learning, AI, Data Mining, Deep Learning Ngày nay, máy tính có khả năng tự học mà không cần phải lập trình một cách rõ ràng Ngành Khoa học máy tính hiện có nhiều ứng dụng sâu rộng vào cuộc sống hằng ngày như đ ánh cờ, nhận diện khuôn mặt, chẩn đoán y khoa, phát hiện thẻ tín dụng giả, dự đoán kết quả trận đấu, nhận diện giọng nói, phân loại các chuẩn DNA, tóm tắt văn bản, trả lời tự động,… Chính vì thế, ngôn ngữ lập trình Python giờ đã trở thành một yếu tố không thể thiếu khi nhắc đến AI, Machine Learning, Data Mining, Deep Learning và ngược lại
Ngôn ngữ lập trình Python vừa đáp ứng được yêu cầu của các bài toán lập trình
cổ điển trước đây và các bài toán lập trình mới Tuy nhiên, các tài liệu về lập trình Python ở nước ta còn thiếu Đó là rào cản lớn cho những người muốn sử dụng ngôn ngữ này trong lập trình Ngoài ra, Trong chương trình giáo dục phổ thông 2018 thì ngôn ngữ lập trình pascal không được đưa vào dạy học thay vào đó là ngôn ngữ lập trình Python
Qua việc bồi dưỡng học sinh tin học ở trường THPT Tĩnh Gia 3, bản thân tôi nhận thấy Python là một ngôn ngữ lập trình có cú pháp chặt chẽ, đơn giản dễ hiểu và
có nhiều công cụ hỗ trợ Nhưng tốc độ chạy chương trình chậm hơn rất nhiều so với ngôn ngữ lập trình khác như: C, C++, Pascal Do đó, tôi quyết định viết sáng kiến kinh nghiệm: “ Một số phương pháp tối ưu hóa mã nguồn Python giúp cải thiện
hiệu suất chương trình và giảm tải tài nguyên” Trong đề tài này, tôi chủ yếu tập
trung khai thác những hạn chế của ngôn ngữ Python và trên cơ sở đó tìm ra các giải pháp mới giúp học sinh trong quá trình học cũng như trong các cuộc thi tin học trẻ, thi học sinh giỏi tỉnh, cải thiện tốc độ xử lý chương trình
1.2 Mục đích nghiên cứu
- Đề tài nêu ra các định hướng giúp học sinh có thể tiếp cận một số cách tối ưu hóa mã nguồn để tăng tốc độ xử lý chương trình
- Giúp học sinh tiếp cận ngôn ngữ lập trình Python sớm và tốt hơn
- Từ đó bồi dưỡng học sinh năng lực giải quyết vấn đề trong giải toán Tin học, đồng thời rèn luyện và nâng cao kĩ năng lập trình cho các em Đặc biệt là học sinh tham gia dự thi học sinh giỏi cấp tỉnh THCS, THPT hoặc thi vào các trường chuyên
1.3 Đối tượng nghiên cứu.
- Độ phức tạp thuật toán và giải pháp lựa chọn các thư viện và thuật toán tối ưu để
Trang 3cải thiện hiệu suất chương trình và giảm tải tài nguyên trong các dạng bài toán quen thuộc trên ngôn ngữ lập trình Python
- Phương pháp bồi dưỡng năng lực giải quyết vấn đề cho học sinh
1.4 Phương pháp nghiên cứu
- Phương pháp thống kê, phân tích - tổng hợp, so sánh - đối chiếu
- Phương pháp nghiên cứu lý luận: Sưu tầm, đọc tài liệu tham khảo, nghiên cứu các văn bản liên quan đến các vấn đề của đề tài này
- Phương pháp nghiên cứu thực tiễn: Quan sát, điều tra - khảo sát, thực nghiệm sư phạm, tổng kết kinh nghiệm, tham vấn chuyên gia
2 Nội dung sáng kiến
2.1 Cơ sở lý luận
Trong quá trình ôn luyện cho học sinh phải dạy khá nhiều về các phương pháp tối
ưu thuật toán như: phương pháp tham lam, chia để trị (sắp xếp nhanh, chặt nhị phân…), quay lui, quy hoạch động, Z Algorithm, KMP… Nhưng nếu không biết kết hợp với những kỹ thuật khác, không biết cách tổ chức dữ liệu, những phương pháp này xét về phương diện độc lập sẽ không đạt được sự tối ưu cao nhất và không có ý nghĩa
Các phương pháp được giới thiệu trong sáng kiến đều là những phương pháp rất
cơ bản, đơn giản và rất dễ tiếp cận đồng thời đem lại một hiệu quả rất đáng kể trong việc giảm độ phức tạp thuật toán, tiến tới một thuật toán tối ưu nhất và quan trọng nhất
là giúp chương trình viết bằng ngôn ngữ Python chạy nhanh hơn một cách đáng kể
2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
Tại trường THPT Tĩnh Gia 3 khó khăn lớn nhất của bộ môn Tin học đó là đang thiếu máy vi tính phục vụ cho việc dạy và học Hiện tại, trường bố trí 2 phòng máy tính, mỗi phòng có 20 máy tính Nhưng số máy hoạt động tương đối ổn định chỉ tầm trong 10-15 máy Cũng do thiếu máy nên nhóm Tin học khá “đau đầu” khi xếp lịch học để các tiết thực hành tin học không bị chồng chéo, trùng lặp giữa các lớp Trước mắt, các giáo viên chỉ còn cách bố trí 2-3 em học trên một máy vi tính, hoặc một lớp chia thành hai nhóm mới có đủ máy để học Hơn nữa đặc thù của môn Tin học là liên quan đến máy tính Sau mỗi bài học các em cần được thực hành để hiểu rõ kiến thức
và nâng cao kĩ năng Đặc biệt đối với môn tin thì “Học đi đôi với hành” là cực kì cần thiết và quan trọng Có học lí thuyết nhiều đến đâu, giỏi đến đâu nhưng không có máy tính để thực hành thì việc học chưa thực sự đạt hiệu quả
- Đối với học sinh, một khó khăn nữa trở thành rào cản là có rất nhiều em không thạo
vi tính Các em lóng ngóng mãi mới vào được các chương trình cơ bản Hóa ra, lâu nay bộ môn tin học trong trường học được dạy theo kiểu “cưỡi ngựa xem hoa” Lý do, đây chỉ là môn tự chọn và là môn phụ nên học sinh học chỉ để… đối phó Học sinh chưa nhận thức được tầm quan trọng của việc học lập trình nên chưa có sự say mê, hứng thú trong việc học Các em không biết học từ đâu vì thế giới tin học quá đa dạng,
mà nhìn công cụ nào cũng thấy lạ lẫm Không chỉ với tin học, việc học rất dễ gây cảm giác nhàm chán Bởi vậy, nản và bỏ cuộc là điều thường thấy nếu học sinh không xác định được mục tiêu rõ ràng Chưa kể học đi học lại mà không có hiệu quả, học sinh sẽ bắt đầu có suy nghĩ tiêu cực về khả năng của bản thân
2.3 Các giải pháp thực hiện
2 3.1 Phương pháp sử dụng các thư viện tối ưu.
Trang 4Python có nhi u th vi n đề ư ệ ược vi t b ng C, nh NumPy và Pandas, choế ằ ư phép th c hi n các phép toán s h c và x lý d li u nhanh chóng S d ng cácự ệ ố ọ ử ữ ệ ử ụ
th vi n này có th giúp tăng t c đ chư ệ ể ố ộ ương trình
Thay vì t vi t mã t đ u, s d ng các th vi n đã đự ế ừ ầ ử ụ ư ệ ượ ố ưc t i u hóa b ng Cằ
nh NumPy cho các phép toán s h c và Pandas cho x lý d li u.ư ố ọ ử ữ ệ
2.3.1.1 Th vi n NumPy: ư ệ
NumPy là m t th vi n quan tr ng cho x lý m ng và ma tr n trongộ ư ệ ọ ử ả ậ Python Nó cung c p các phép toán m ng hi u su t cao và giúp t i u hóa x lýấ ả ệ ấ ố ư ử
d li u s h c.ữ ệ ố ọ
3 Kết luận, kiến nghị
3.1 Kết luận
Giáo dục cần đổi mới để thực hiện những mục tiêu đáp ứng những yêu cầu của xã hội như tinh thần của Nghị quyết 29-NQ/TW đã chỉ rõ Là một giáo viên Tin học, với trình độ chuyên môn ngành CNTT, thông qua thực tiễn hoạt động giáo dục cũng như điều kiện thực tiễn, tôi đã nghiên cứu xây dựng đề tài tại đơn vị từ đầu năm học
2024-2025 đến nay Tôi xin trân trọng gửi lời cảm ơn đến đội ngũ giáo viên và học sinh Trường THPT Tĩnh Gia 3 với tinh thần phối hợp, tinh thần cầu thị cùng tiến bộ
3.2 Kiến nghị đề xuất:
Sở giáo dục và đào tạo Thanh Hóa cần tăng cường đào tạo và bồi dưỡng giáo viên đáp ứng yêu cầu dạy học hiện đại nhất: Như có khả năng ứng dụng CNTT vào dạy học, có khả năng sử dụng các phương tiện dạy học hiện đại, và quan trọng hơn cả
là năng lực tự học, tự nghiên cứu khoa học Giúp giáo viên không bị tụt hậu so với thời đại
Các tổ chuyên môn cần có sự trao đổi, phối hợp nhiều hơn và thiết thực hơn trong việc lựa chọn ngôn ngữ lập trình, đổi mới phương pháp dạy học, hình thức dạy học đa dạng
Do thời gian cũng như năng lực cá nhân còn hạn chế, nên đề tài còn có một số thiếu sót, xây dựng các nội dung, phương pháp và cách thức mới chỉ đáp ứng được yêu cầu cơ bản của đề tài đưa ra Chính vì vậy rất mong nhận được những lời góp ý, nhận xét từ Ban Giám khảo, các bạn đồng nghiệp để phát huy những mặt mạnh, điều chỉnh, khắc phục những thiếu sót cho đề tài được hoàn thiện hơn
Tuy các giải pháp đưa ra chưa thật sự đầy đủ nhưng bước đầu đã có hiệu quả thiết thực góp phần đổi mới phương pháp dạy học và bồi dưỡng giáo viên cho chương trình giáo dục phổ thông 2018 bắt đầu từ năm học 2024 – 2025 này
Rất mong hội đồng khoa học đóng góp ý kiến để những nội dung mà tôi đã trình bày được đầy đủ hơn, hoàn thiện hơn
Tôi xin chân thành cảm ơn!
XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ Thanh Hóa, ngày 26 tháng 5 năm 2025
Tôi xin cam đoan đây là SKKN của mình viết, không sao chép nội dung của người
khác
(Ký và ghi rõ họ tên)
Trang 5Hoàng Thị Hảo
Trang 6TÀI LIỆU THAM KHẢO
1. Phan Xuân Vọng – Nguyễn Quốc Anh_Đường vào lập trình Python
2. Lê Minh Hoàng _ Chuyên đề tin
3. Đỗ Xuân Lôi _ Cấu trúc dữ liệu và giải thuật
4. Nguyễn Thanh Thủy _ Ngôn ngữ lập trình C
5