CƠ SỞ THỰC TIỄN Qua thực tế giảng dạy ở trường THPT Yên Định 2, tôi nhận thấy khi học đến chương trình tin học lớp 11 đa số học sinh đều nhận xét bộ môn này khó học; Các
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA
TRƯỜNG THPT YÊN ĐỊNH 2
SÁNG KIẾN KINH NGHIỆM
MỘT SỐ SAI LẦM THƯỜNG GẶP Ở HỌC SINH VÀ BIỆN PHÁP KHẮC PHỤC KHI DẠY TIN HỌC 11
Người thực hiện: Lê Văn Thịnh Đơn vị: Tổ Tin học
Chức vụ: Giáo viên SKKN thuộc môn: Tin học
Trang 2THANH HÓA, NĂM 2013
M C L CỤC LỤC ỤC LỤC
A-ĐẶT VẤN ĐỀ 3
I LỜI NÓI ĐẦU 3
II THỰC TRẠNG CỦA VẤN ĐỀ 4
III MỤC ĐÍCH NGHIÊN CỨU 4
IV NHIỆM VỤ CỦA ĐỀ TÀI 4
V ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 4
VI PHƯƠNG PHÁP NGHIÊN CỨU 5
B-GIẢI QUYẾT VẤN ĐỀ 6
I CƠ SỞ LÍ LUẬN 6
II CƠ SỞ THỰC TIỄN 6
III BIỆN PHÁP GIẢI QUYẾT VẤN ĐỀ 7
1 Khai báo thiếu biến 7
2 Đặt tên không đúng 7
3 Đặt tên biến trùng nhau 8
4 Biến đếm, biến chỉ số là biến kiểu số thực 8
5 Tràn số do không xác định được miền giá trị của biến 9
6 Gán kết quả phép chia cho biến kiểu số nguyên 9
7 Thiếu dấu ngoặc tròn trong biểu thức lôgic 10
8 Thiếu dấu chấm phẩy hoặc đặt dấu chấm phẩy sai vị trí 11
9 Nhầm lẫn giữa phép gán và phép toán quan hệ bằng 11
10 Vòng lặp vô hạn 12
11 Chạy chương trình mà không quan tâm đến kết quả 12
12 Chia cho số 0 13
13 Viết sai các từ khóa 13
IV KIỂM NGHIỆM 14
1 Kết quả nghiên cứu 14
2 Hiệu quả mới 14
C-KẾT LUẬN VÀ ĐỀ XUẤT 16
I BÀI HỌC KINH NGHIỆM 16
II PHẠM VI ÁP DỤNG ĐỀ TÀI 16
Trang 3III KIẾN NGHỊ, ĐỀ XUẤT 17
A-ĐẶT VẤN ĐỀ
I LỜI NÓI ĐẦU
Tin học là một bộ môn khoa học mới, đòi hỏi người học phải có kiến thức
cơ bản về các bộ môn khoa học khác như: toán, lý, hoá, anh văn,… Tin học sử dụng kiến thức của các bộ môn khoa học đó làm công cụ để nghiên cứu Muốn giải quyết được các bài tập tin học không chỉ cần có những kiến thức về các môn học đó mà còn phải có kiến thức cơ bản về tin học
Phương pháp giải một bài toán tin học là một hệ thống các bước có tính ổn định nhằm giúp người học có thể tìm ra thuật giải, biểu diễn được dữ liệu và từ đó tổ chức dữ liệu, viết được chương trình
Môn tin học lớp 11 là một nội dung mới lạ đối với đa số học sinh, có nhiều khái niệm, thuật ngữ, cấu trúc câu lệnh mà học sinh mới được tiếp xúc lần đầu Chính vì vậy mà học sinh dễ mắc lỗi sai khi lập trình Nguyên nhân dẫn đến những lỗi sai là rất nhiều, nhưng có thể kể tới một số nguyên nhân chính sau đây:
+ Thời gian dành cho bộ môn tin học ít;
+ Ít có động cơ trong học tập môn tin học;
+ Ngôn ngữ lập trình có nhiều khái niệm, cú pháp yêu cầu phải nhớ chính xác;
+ Thời gian thực hành còn hạn chế;
Nhằm đáp ứng yêu cầu học tập của học sinh bước đầu làm quen với công việc lập trình, với những trăn trở của bản thân trong nghề dạy học tôi đã nhìn thấy những sai lầm thường gặp ở học sinh khi học môn tin học lớp 11 và tìm ra một số biện pháp khắc phục các sai lầm đó để giúp nâng cao hiệu quả việc dạy-học môn tin dạy-học 11
Xin chân thành cảm ơn các đồng nghiệp trong trường THPT Yên Định 2 đã giúp đỡ, đóng góp ý kiến và động viên tôi để tôi có thể hoàn thành nội dung đề tài này
Trang 4Tôi hy vọng sớm nhận được những ý kiến, những lời nhận xét chân thành từ đồng nghiệp, hội đồng khoa học nhà trường và hội đồng khoa học ngành về nội dung cũng như chất lượng và hình thức trình bày của đề tài để đề tài này của tôi ngày một hoàn thiện hơn
II THỰC TRẠNG CỦA VẤN ĐỀ
Qua thực tế giảng dạy tin học ở trường THPT Yên Định 2, tôi thấy nhiều học sinh lớp 11 mắc phải những sai lầm giống nhau khi học môn tin học 11 Dẫn đến nhiều em khó khăn trong việc tổ chức dữ liệu và viết chương trình Hậu quả là, có không ít học sinh còn tìm cách học thuộc lòng các chương trình mẫu của giáo viên và trong sách mà chưa có khả năng tự mình viết được chương trình hoàn chỉnh cho máy tính giải bài toán Nguyên nhân chính dẫn đến điều đó chủ yếu là do các em chưa nắm vững về cú pháp của ngôn ngữ lập trình Pascal
Từ quá trình giảng dạy ở trường THPT Yên Định 2 và qua nghiên cứu một số tài liệu tham khảo, tôi xin trình bày một kinh nghiệm khi giảng dạy tin học
11 ở trường THPT với đề tài “MỘT SỐ SAI LẦM THƯỜNG GẶP Ở HỌC SINH VÀ BIỆN PHÁP KHẮC PHỤC KHI DẠY TIN HỌC 11” làm sáng kiến kinh nghiệm của mình với mong muốn được đóng góp một phần công sức nhỏ bé của bản thân giúp cho học sinh học tốt hơn môn tin học 11
III MỤC ĐÍCH NGHIÊN CỨU
- Chỉ ra các sai lầm thường gặp ở học sinh khi học môn tin học 11;
- Tìm hiểu các nguyên nhân để tìm ra các biện pháp khắc phục;
- Nhằm nâng cao chất lượng dạy học môn tin học 11;
- Giúp bản thân hoàn thiện hơn kinh nghiệm dạy học
IV NHIỆM VỤ CỦA ĐỀ TÀI
- Chỉ ra các sai lầm mà học sinh thường mắc phải khi học môn tin học 11;
- Đưa ra các biện pháp khắc phục các sai lầm trên;
- Hoàn thiện kinh nghiệm của bản thân khi dạy môn tin học 11
V ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Trang 5- Ngôn ngữ lập trình Pascal;
- Chương trình môn tin học 11;
- Học sinh khối 11 năm học 2010-2011 và khối 11 năm học 2011-2012 tại trường THPT Yên Định 2
VI PHƯƠNG PHÁP NGHIÊN CỨU
- Từ thực tiễn giảng dạy ở trường THPT Yên Định 2;
- Tham khảo các tài liệu sách giáo khoa, sách giáo viên tin học 11, các bài viết và các tư liệu trên mạng Internet, đặc biệt là bài viết và các tài liệu về đổi mới phương pháp dạy học bộ môn tin học;
- Tham khảo các ý kiến của đồng nghiệp;
- Lấy các ý kiến từ phía học sinh;
- Kết hợp vận dụng sáng kiến vào giảng dạy trên lớp;
- Đánh giá, rút kinh nghiệm sau mỗi giờ dạy có vận dụng sáng kiến để có những điều chỉnh hợp lí
Trang 6B-GIẢI QUYẾT VẤN ĐỀ
I CƠ SỞ LÍ LUẬN
Đảng và Nhà nước ta đã nhận thấy được tầm quan trọng của ngành Tin học và đã đưa môn học này vào nhà trường phổ thông như những môn khoa học khác bắt đầu từ năm học 2006-2007
Chỉ thị số 55/2008/CT- BGTĐT ngày 30/9/2008 của Bộ trưởng 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 trong ngành giáo dục giai đoạn 2008-2012
Quyết định 1215/QĐ-BGDĐT năm 2013 về Chương trình hành động của ngành Giáo dục thực hiện Chiến lược phát triển giáo dục Việt Nam 2011-2020, Kết luận 51-KL/TW và Chỉ thị 02/CT-TTg về đổi mới căn bản, toàn diện giáo dục và đào tạo do Bộ trưởng Bộ Giáo dục và Đào tạo ban hành
Trong bối cảnh toàn ngành Giáo dục và Đào tạo đang nỗ lực đổi mới 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
trong hoạt động học tập Điều 24.2 của Luật giáo dục đã nêu rõ: “Phương pháp
giáo dục phổ thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh” Như vậy, chúng ta
có thể thấy định hướng đổi mới phương pháp dạy học đã được khẳng định, không còn là vấn đề tranh luận Cốt lõi của việc đổi mới phương pháp dạy học ở trường phổ thông là giúp học sinh hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động
II CƠ SỞ THỰC TIỄN
Qua thực tế giảng dạy ở trường THPT Yên Định 2, tôi nhận thấy khi học đến chương trình tin học lớp 11 đa số học sinh đều nhận xét bộ môn này khó học;
Các học sinh thường gặp khá nhiều lỗi khi viết một chương trình bằng ngôn ngữ lập trình Pascal;
Tuy nhiên cũng có một lượng không nhỏ học sinh rất yêu thích môn tin học
Trang 7và thích tìm hiểu một số bài toán, dạng toán ngoài phạm vi sách giáo khoa III BIỆN PHÁP GIẢI QUYẾT VẤN ĐỀ
1 Khai báo thiếu biến.
* Sai lầm thường gặp:
Mọi đối tượng trong chương trình Pascal đều phải có tên Ngoài tên dành riêng và tên chuẩn thì các đối tượng khác phải được khai báo trước khi sử dụng
ở phần khai báo của chương trình
Khi viết chương trình nhiều khi học sinh chưa thể xác định được hết các biến cần sử dụng trong chương trình nên thường khai báo thiếu biến
* Biện pháp khắc phục:
Sau khi viết xong mỗi chương trình, yêu cầu học sinh đọc lại chương trình để kiểm tra lại việc khai báo và sử dụng các biến
Trong giờ thực hành có thể sử dụng chương trình dịch của Pascal để kiểm tra việc khai báo biến cho chương trình Nếu nhấn F9 mà có thông báo compile
failed với lỗi Error: Indentifier not found “a” thì có nghĩa là có biến “a” đang
được sử dụng mà chưa khai báo
Học sinh cần bổ sung vào phần khai báo những biến trong chương trình sử dụng mà chưa có trong phần khai báo
2 Đặt tên không đúng.
* Sai lầm thường gặp:
Trong ngôn ngữ lập trình Turbo Pascal, tên là một dãy liên tiếp không quá
127 kí tự bao gồm chữ số, chữ cái hoặc dấu gạch dưới và bắt đầu bằng chữ cái hoặc dấu gạch dưới (Trong Free Pascal thì tên có thể có tới 255 kí tự)
Học sinh thường mắc sai lầm đặt tên không đúng theo quy tắc của ngôn ngữ lập trình Pascal Các em thường đặt tên có dấu cách hay có thêm các kí tự khác, ngoài các kí tự được phép đặt tên trong ngôn ngữ lập trình Pascal
* Biện pháp khắc phục:
Để khắc phục sai lầm này ở học sinh thì giáo viên cần kiểm tra lại thường xuyên và nhắc nhở các em mỗi khi các em mắc phải sai lầm này
Trang 8Đặc biệt, trong giờ thực hành, giáo viên có thể chủ động viết một chương trình có khai báo một tên không đúng quy tắc đặt tên của ngôn ngữ lập trình
Pascal rồi dịch chương trình để chỉ ra lỗi như: Error: Fatal: Syntax error, “;”
expected but “ordinal const” found.
3 Đặt tên biến trùng nhau.
* Sai lầm thường gặp:
Trong một chương viết bằng ngông ngữ lập trình Pascal, mỗi đối tượng có một tên và không phân biệt chữ hoa và chữ thường
Học sinh thường mắc sai lầm khi đặt tên các biến trùng nhau Đặc biệt với những chương trình có sử dụng nhiều biến tham gia, học sinh thường đặt một biến có tên chữ thường, một biến có tên chữ hoa mà không nhớ rằng trong
Pascal không phân biệt chữ hoa và chữ thường (ví dụ: var a, A:integer;)
* Biện pháp khắc phục:
Để khắc phục sai lầm này ở học sinh thì giáo viên cần kiểm tra lại thường xuyên và nhắc nhở các em mỗi khi các em mắc phải sai lầm này Đặc biệt, trong giờ thực hành, giáo viên có thể chủ động viết một chương trình có khai báo một
biến tên “a” và một biến tên “A” rồi dịch chương trình để chỉ ra lỗi Error:
Duplicate indentifier “a”.
4 Biến đếm, biến chỉ số là biến kiểu số thực.
* Sai lầm thường gặp:
Trong ngôn ngữ lập trình Pascal, biến đếm, biến chỉ số trong mảng thường là biến kiểu số nguyên
Học sinh thường nắm cú pháp của câu lệnh trong Pascal không vững, dẫn đến việc các em chỉ nhớ cú pháp câu lệnh mà không nhớ được ý nghĩa của các thành phần trong câu lệnh Hậu quả là các em sử dụng cả biến kiểu số thực làm biến đếm hay biến chỉ số của mảng
* Biện pháp khắc phục:
Để khắc phục sai lầm này ở học sinh, giáo viên yêu cầu học sinh không chỉ nhớ được cú pháp câu lệnh mà phải nắm vững ý nghĩa của từng thành phần trong câu lệnh trong ngôn ngữ lập trình Pascal
Trang 9Ngoài ra, trong giờ thực hành, giáo viên có thể chủ động viết một chương trình có khai báo biến đếm và biến chỉ số của mảng là biến kiểu số thực rồi dịch
chương trình để chỉ ra lỗi Error: Ordinal expression expected và lỗi Error:
Incompatible types: got “Real” exptected “LongInt”.
5 Tràn số do không xác định được miền giá trị của biến.
* Sai lầm thường gặp:
Trong ngôn ngữ lập trình Pascal, mỗi kiểu dữ liệu có một miền giá trị xác định Vì vậy, khi khai báo biến phải xác định được miền giá trị của nó trong chương trình
Học sinh thường chỉ nhớ kiểu dữ liệu mà không nhớ được miền giá trị của các kiểu dữ liệu trong Pascal Đặc biệt là với kiểu số nguyên, học sinh thường khai báo kiểu integer mà không xác định miền giá trị của biến có thể nhận khi thực hiện chương trình Hậu quả là chương trình vẫn dịch và chạy bình thường với bộ dữ liệu nhỏ đưa vào, nhưng khi thực hiện chương trình với những bộ dữ liệu lớn thì chương trình báo lỗi tràn số
* Biện pháp khắc phục:
Để khắc phục được sai lầm này ở học sinh, giáo viên yêu cầu học sinh không chỉ nhớ kiểu dữ liệu mà phải nhớ cả miền giá trị của từng kiểu dữ liệu trong Pascal
Ngoài ra, với mỗi chương trình, giáo viên yêu cầu học sinh xác định giá trị mà biến có thể nhận khi thực hiện chương trình Đặc biệt là với những bài tập cho trước miền giá trị của dữ liệu vào thì giáo viên nên yêu cầu học sinh xác định miền giá trị của dữ liệu ra
6 Gán kết quả phép chia cho biến kiểu số nguyên.
* Sai lầm thường gặp:
Trong ngôn ngữ lập trình Pascal, kết quả thực hiện của phép chia luôn là số thực Vì vậy, ta không thể gán kết quả của phép chia cho biến kiểu số nguyên Học sinh thường nhớ được cú pháp của phép chia trong Pascal mà không để
ý rằng kết quả của phép chia rất có thể là một số thực Hậu quả là các em thường mắc lỗi gán giá trị cho biến kiểu số nguyên bằng giá trị của phép chia
Trang 10* Biện pháp khắc phục:
Để khắc phục sai lầm này ở học sinh, giáo viên yêu cầu học sinh xác định giá trị của phép chia, đồng thời yêu cầu các em nhớ phép chia lấy phần nguyên trong Pascal
Trong các chương trình học sinh viết, mỗi khi học sinh gán kết quả phép chia cho biến kiểu số nguyên thì giáo viên cần chỉ rõ cho học sinh thấy được giá trị của phép chia luôn có thể là một số thực Và nếu có là số nguyên thì trong Pascal cũng không được phép gán kết quả phép toán chia cho biến kiểu số
nguyên mà phải sử dụng phép chia lấy phần nguyên “div”.
Trong giờ thực hành, giáo viên có thể viết chương trình có sử dụng phép gán kết quả phép chia cho biến kiểu số nguyên rồi dịch chương trình để chỉ ra
lỗi Error: Incompatible types: got “Extended” expected “SmallInt”.
7 Thiếu dấu ngoặc tròn trong biểu thức lôgic.
* Sai lầm thường gặp:
Biểu thức lôgic là biến lôgic hoặc hằng lôgic hay các biểu thức quan hệ liên kết với nhau bởi phép toán lôgic
Học sinh thường mắc sai lầm khi viết biểu thức lôgic có các biểu thức quan hệ liên kết với nhau bởi phép toán lôgic nhưng không sử dụng dấu ngoặc tròn cho các biểu thức quan hệ
* Biện pháp khắc phục:
Để khắc phục sai lầm này ở học sinh, giáo viên nên nhấn mạnh việc sử dụng dấu ngoặc tròn cho các biểu thức quan hệ trong biểu thức lôgic
Đồng thời, giáo viên giới thiệu thêm cho học sinh biết độ ưu tiên của các phép toán lôgic cao hơn so với các phép toán quan hệ (phép toán lôgic được thực hiện trước phép toán quan hệ)
Ngoài ra, trong giờ thực hành, giáo viên có thể chủ động viết chương trình có sử dụng biểu thức lôgic mà không sử dụng dấu ngoặc tròn cho biểu thức
quan hệ rồi dịch chương trình để chỉ ra cho học sinh thấy lỗi Error:
Incompatible types: got “Boolean” expected “LongWord”.