Khi giảng dạy các bài toán lập trình giáo viên ngoài giảng dạy về lýthuyết thì phần giao bài tập cho học sinh thực hiện là quá trình không thểthiếu để học sinh thực hành và vận dụng các
Tên sáng kiến, lĩnh vực áp dụng
Là tác giả đề nghị xét công nhận sáng kiến:
“ỨNG DỤNG MỘT SỐ KĨ THUẬT KIỂM THỬ PHẦN MỀM TRONG GIẢNG DẠY LẬP TRÌNH CHO HỌC SINH GIỎI MÔN TIN HỌC TRƯỜNG THPT TRẦN HƯNG ĐẠO”
Lĩnh vực áp dụng sáng kiến: Lĩnh vực giáo dục – bộ môn tin học cấp THPT
Nội dung
Hiện nay, trong quá trình dạy học lập trình trong chương trình tin học.
Nhiệm vụ ra đề và chữa bài cho học sinh là công việc thường xuyên và quan trọng Việc kiểm tra, đánh giá và chữa bài giúp phát hiện lỗi trong quá trình học tập, từ đó giúp học sinh nhận ra sai sót và có cơ hội khắc phục, rút kinh nghiệm cho những lần sau.
Khi giảng dạy lập trình, giáo viên không chỉ truyền đạt lý thuyết mà còn cần giao bài tập cho học sinh Quá trình này giúp học sinh thực hành và áp dụng kiến thức đã học vào việc giải quyết các bài toán.
Khi giáo viên ra đề, việc tạo bộ test là rất quan trọng để kiểm tra các chương trình có thể xử lý đúng hay không Hiện nay, việc này chủ yếu dựa vào kinh nghiệm của giáo viên hoặc các chương trình tạo test tự động Tuy nhiên, tài liệu về cách tạo test cho các bài lập trình còn hạn chế và chưa đề cập chi tiết đến phương pháp tạo test hiệu quả.
Việc chữa bài cho học sinh hiện nay giáo viên thường gặp 2 trường hợp chính:
TH1: Bài làm biên dịch có lỗi cú pháp.
Trong TH2, bài làm không có lỗi cú pháp, do đó giáo viên sẽ kiểm tra chương trình thông qua các bài test có sẵn trong đề bài hoặc dựa vào giải thuật của bài toán mà học sinh thực hiện để phát hiện các trường hợp có thể gây ra lỗi Trong khi đó, ở TH1, giáo viên sẽ dựa vào các thông báo lỗi để hỗ trợ học sinh trong quá trình làm bài.
Công việc chữa bài cho học sinh không chỉ dựa vào các công cụ hỗ trợ của chương trình soạn thảo lập trình để phát hiện lỗi cú pháp, mà còn cần chú ý đến các lỗi về cấu trúc dữ liệu và giải thuật Những giáo viên có nhiều kinh nghiệm thường dễ dàng nhận diện và khắc phục các lỗi mà học sinh thường mắc phải.
- Chi tiết của giải pháp cũ
* Đối với trường hợp tạo test cho đề:
Việc tạo các bài kiểm tra hiệu quả để phát hiện lỗi là một vấn đề quan trọng và cần thiết, đặc biệt đối với giáo viên mới ra trường hoặc có ít kinh nghiệm Thông thường, giáo viên dựa vào kinh nghiệm cá nhân để thiết kế các bài kiểm tra, nhưng điều này có thể dẫn đến việc tạo ra các bài kiểm tra không hiệu quả, không phát hiện được lỗi Do đó, việc nâng cao kỹ năng tạo test là rất cần thiết để đảm bảo chất lượng giáo dục.
Việc thiết kế các bài kiểm tra có thể không phản ánh đầy đủ tất cả các tình huống có thể xảy ra trong bài toán Mặc dù số lượng bài kiểm tra có thể lớn, nhưng chúng vẫn có thể không bao quát toàn bộ vấn đề, dẫn đến việc xuất hiện các bài kiểm tra yếu Những người ra đề thiếu kinh nghiệm và trình độ cao thường tạo ra các bài kiểm tra với đầu vào tương tự như mẫu, mà không xem xét các trường hợp đặc biệt có thể xảy ra trong bài toán.
* Đối với trường hợp chữa bài cho học sinh.
Các lỗi cú pháp thường được chương trình dịch thông báo, giúp giáo viên xác định và khắc phục các lỗi cụ thể.
- Đối với các lỗi khi chạy chương trình mới phát sinh thì thường khó hơn, một số lỗi có thể gặp như sau:
Khi học sinh lập trình và kết quả chương trình không nhất quán với output đề bài, giáo viên thường kiểm tra lại bằng hai phương pháp.
Kiểm tra học sinh để xác định xem họ có hiểu đúng về đầu vào và đầu ra hay không Đồng thời, cần xác minh tính chính xác của giải thuật mà học sinh đưa ra; nếu giải thuật đúng, tiếp theo là kiểm tra cách cài đặt thuật toán bằng ngôn ngữ lập trình để phát hiện lỗi.
Khi học sinh viết mã trên phần mềm Free Pascal nhưng không chạy được trên Turbo Pascal, giáo viên cần kiểm tra xem các hàm mà học sinh sử dụng có được hỗ trợ trên Turbo Pascal hay không Ngoài ra, cần xem xét các thông số hệ thống như giới hạn bộ nhớ để đảm bảo mã có thể hoạt động đúng.
Trong trường hợp cùng một giải thuật nhưng sử dụng ngôn ngữ lập trình khác nhau, chương trình có thể chạy thành công trên ngôn ngữ này nhưng không hoạt động trên ngôn ngữ khác Do đó, giáo viên cần kiểm tra lại các khai báo và kiểu dữ liệu mà các ngôn ngữ lập trình hỗ trợ.
Khi chương trình xuất hiện dữ liệu không mong muốn ở đầu ra, giáo viên cần kiểm tra lại mã nguồn để xác định giai đoạn phát sinh dữ liệu dư thừa Việc phát hiện và xử lý lỗi trong những trường hợp này thường phụ thuộc vào trình độ và kinh nghiệm của giáo viên.
+ đối với trường hợp tạo test cho đề, giáo viên có thể tạo ngay được một số test cho bài toán
+ Đối với việc chữa bài thì có thể xác định ngay được lỗi thường nằm ở đâu từ đó có thể tìm nhanh ra lỗi nếu có của chương trình.
Việc kiểm tra chương trình thường dựa vào kinh nghiệm của giáo viên, với những người dạy nhiều có khả năng phát hiện và sửa lỗi tốt hơn Tuy nhiên, điều này dẫn đến tình trạng không đồng đều trong việc phát hiện lỗi: có bài toán được phát hiện sớm, trong khi có bài khác lại bị bỏ sót hoặc phát hiện muộn Giáo viên thường áp dụng các phương pháp khác nhau để phát hiện lỗi trong quá trình giảng dạy.
- Cách 1: Đưa vào các test input khác nhau để kiểm tra bài toán
- Cách 2: Đọc mã nguồn của học sinh để phát hiện ra các lỗi có thể phát sinh khi thực hiện chương trình để tìm ra lỗi.
Nếu test input không bao quát hết các trường hợp của bài toán, hoặc nếu test không chính xác hay dư thừa, thì có thể không phát hiện được lỗi trong bài toán, dẫn đến việc bài toán từ đúng trở thành sai.
Hiệu quả kinh tế xã hội dự kiến đạt được
Sáng kiến này hỗ trợ học sinh và giáo viên phát hiện lỗi sớm, giảm thời gian chấm bài, từ đó giúp giáo viên có cơ hội trang bị thêm kiến thức mới Đồng thời, nó cũng giúp rút ngắn thời gian kiểm tra chương trình, nâng cao trình độ cho cả giáo viên và học sinh.
Tăng cường khả năng học và tự học không chỉ tạo hứng thú cho học sinh mà còn hình thành các năng lực cần thiết theo yêu cầu của xã hội Điều này góp phần tạo ra những học sinh có phẩm chất và năng lực phù hợp với chương trình giáo dục phổ thông mới, từ đó giúp phát triển nguồn nhân lực chất lượng cao, thúc đẩy sự phát triển kinh tế của đất nước.
Áp dụng sáng kiến nâng cao khả năng tự học của giáo viên và học sinh, giúp học sinh chủ động bồi dưỡng kiến thức hiệu quả, trong khi giáo viên cũng liên tục cải thiện kiến thức và phương pháp giảng dạy.
Chương trình tin học THPT hiện nay được coi là trừu tượng và khô khan, đòi hỏi giáo viên phải không ngừng nâng cao kiến thức và cải tiến phương pháp ra đề Việc kiểm tra và hướng dẫn giải bài tập là yếu tố quan trọng giúp học sinh yêu thích môn tin học, giảm bớt sự nhàm chán và khó khăn trong học tập Áp dụng sáng kiến trong giảng dạy cũng giúp giáo viên trình bày nội dung một cách khoa học và hệ thống, tránh việc chữa bài hay ra đề một cách hình thức.
Điều kiện và khả năng áp dụng
Việc áp dụng quy trình kiểm thử phần mềm vào quá trình ra đề và kiểm tra lời giải cho các bài toán lập trình sẽ hỗ trợ giáo viên và học sinh, tạo điều kiện thuận lợi cho việc dạy học theo phương pháp tích cực.
+ Học sinh được trang bị kiến thức một cách tốt nhất để tự giải các bài tập là không khó khăn.
+ Sáng kiến: “Ứng Dụng Một Số Kĩ Thuật Kiểm Thử Phần Mềm Trong
Giảng Dạy Lập Trình Cho Học Sinh Giỏi Môn Tin Học Trường THPT Trần Hưng Đạo” đã được triển khai tại trường THPT Trần Hưng Đạo.
+ Sáng kiến có khả năng áp dụng với đối tượng học sinh từ cấp THCS đến cấp THPT ở các trường thuộc các địa bàn khác nhau.
- Danh sách giáo viên đã tham gia áp dụng sáng kiến lần đầu:
Nội dung công việc hỗ trợ
Trường THPT Trần Hưng Đạo
Thạc Sỹ Công Nghệ Thông Tin
Giảng dạy môn Tin học tại trường THPT là một nhiệm vụ quan trọng, và tôi cam kết rằng mọi thông tin đã nêu là chính xác Tôi hoàn toàn chịu trách nhiệm trước pháp luật về nội dung trong đơn đề nghị này.
Tôi xin chân thành cảm ơn!
XÁC NHẬN CỦA LÃNH ĐẠO ĐƠN VỊ
Ninh Bình, Ngày 28 tháng 04 năm 2022