Sáng kiến kinh nghiệm Rèn kỹ năng lập trình Pascal cho học sinh Lớp 8
Trong quá trình giảng dạy và hướng dẫn học sinh viết chương trình hầu hết giáo viên thường để học sinh tự tìm và sữa chữa lỗi sai. Các lỗi sai được SGK Tin học 8 đưa ra, tuy nhiên nếu làm theo cách mà các giáo viên thường dùng sẽ tạo cho học sinh tính thụ động. Chỉ khi nào lên thực hành trên máy tính thì học sinh mới tìm ra lỗi sai và sửa. Hiện nay các trường THCS trên địa bàn trường nào có điều kiện thì cũng chỉ xây dựng được 1 phòng máy để học sinh thực hành như vậy học sinh sẽ không được thực hành viết chương trình trên máy tính thường xuyên dẫn đến các lỗi sai cơ bản học sinh vẫn mắc phải. Để khắc phục vấn đề này cũng như giúp học sinh chủ động tìm lỗi sai và sửa khi viết chương trình tôi đã mạnh dạn áp dụng phương pháp “Rèn kỹ năng lập trình Pascal cho học sinh lớp 8” trong chương trình Tin học 8.
Qua các năm giảng dạy, tôi nhận thấy bộ môn Tin học là một bộ môn mới ở trường THCS, các trường THCS trên địa bàn hầu như coi Tin học chỉ là môn học tự chọn và chưa được quan tâm đến vì nhiều lí do khách quan.
Trong dạy học môn tin, tôi nhận thấy nếu có phương pháp tốt sẽ rất dễ gây hứng thú cho học sinh vì học sinh luôn muốn học những điều mới lạ, học sinh rất thích làm quen và khám phá máy tính, có thể nhận thấy đây là một điều kiện thuận lợi cho giáo viên. Tuy nhiên với chương trình tin học đòi hỏi sự linh hoạt rất cao của các giáo viên, sử nhạy bén, tư duy có sự quan sát và sáng tạo và kỹ năng sử dụng máy tính của học sinh để giải quết vấn đề, vì vậy đòi hỏi phải tìm ra phương pháp giảng dạy để học sinh dễ hiểu, dễ dàng tìm được sự móc nối giữa các kiến thức, kỹ năng thực hành, như học sinh ở trường THCS mà từ khi thành lập tới nay chưa có một đề tài nào nghiên cứu về vấn đề này.
Tóm tắt nội dung tài liệu: Sáng kiến kinh nghiệm Rèn kỹ năng lập trình Pascal cho học sinh Lớp 8

“.”, “:=”, “=”, “ ’ ”, + Học sinh viết chương trình mà quên không xuống dòng dẫn đến dòng quá dài. + Khai báo quá nhiều biến. + Đặt tên biến, tên chương trình, tên tệp không đúng theo quy định của ngôn ngữ lập trình. + Giữa các biến được viết cách nhay bằng dấu “,” + Trong một câu lệnh nếu số lệnh >=2 thì phải được đặt trong cặp từ khoá Begin End;(Câu lệnh ghép). + Học sinh khai báo kiểu dữ liệu một đường nhưng khi viết chương trình thì dùng kiểu dữ liệu khác dẫn đến sai kiểu. . - Để tránh những lỗi sai cho học sinh khi viết chương trình tôi dùng phương pháp sau: Ví dụ 2: Đề bài: Viết chương trình in ra màn hình dòng chữ: “Lop 8A truong THCS” - Chương trình sau Giáo viên chiếu lên bảng: Progam vi du1; Uses crt Begin; Clrscr; Writeln( lop 8A truong THCS’); Realn End; Nếu dạy trên bục giảng: + Chia lớp học thành các nhóm (mỗi bàn học sinh ngồi là một nhóm) để thảo luận + Đưa ví dụ lên bảng yêu cầu học sinh viết chương trình. Khi học sinh viết xong yêu cầu các nhóm kiểm tra và sửa các lỗi của nhóm vừa lên bảng thực hiện. + Giáo viên đưa chương trình viết lên bảng qua bảng phụ, chương trình này nên viết sai các lỗi cú pháp, sau đó yêu cầu các nhóm thảo luận và sửa chữa rồi cho điểm nhóm nào sửa chữa đúng nhất để tạo hứng thú cho học sinh trong quá trình học. + Giáo viên đưa chương trình đúng lên bảng để các nhóm xem và ghi bài. - Giáo viên yêu cầu học sinh thảo luận theo nhóm tìm ra lỗi trong chương trình trên Các lỗi sai trong chương trình trên là: Từ khoá Progam sai đúng là: Program(mã lỗi: 36). Tên chương trình vi du1 là sai vì tên chương trình được đặt theo quy tắc đặt tên của ngôn ngữ lập trình nên không được chứa dấu cách (mã lỗi: 85). Sau Uses crt phải có dấu ;(mã lỗi 85). Sau từ khóa Begin không có dấu “;”(mã lỗi: 85). Thủ tục Realn sai, phải là Readln(mã lỗi: 3). End; sai phải là End.(End. là từ khóa để kết thúc chương trình) (mã lỗi: 94). Qua ví dụ trên học sinh sẽ không mắc vào các lỗi cơ bản đã nêu và biết cách sửa lại chương trình trên lại cho đúng là: Program vidu2; Uses crt; Begin Clrscr; Writeln(‘ lop 8A truong THCS’); Readln End. Nếu dạy trên phòng máy: + Giáo viên chép bài tập lên bảng, yêu cầu học sinh thực hiện bài tập đó trên máy. + Sau khi học sinh thực hiện xong ấn phím F9 để kiểm tra lỗi, căn cứ vào mã lỗi báo dưới dạng: Error mã lỗi: Lỗi mắc phải đối chiếu vào bảng mã lỗi (phần PHỤ LỤC) để sửa lỗi. b. Những lỗi sai cơ bản trong câu lệnh rẽ nhánh và lặp - Đối với trường hợp này học sinh hay mắc phải các lỗi: + Thiếu từ khoá then hoặc do, downto,to,.. + Điều kiện trong câu lệnh rẽ nhánh là biểu thức lôgic. + Trong một câu lệnh nếu số lệnh >=2 thì phải được đặt trong cặp từ khoá Begin End;(Câu lệnh ghép). + Trước từ khoá Else không có dấu “;”. + Giá trị đầu luôn luôn nhỏ hơn hoặc bằng giá trị cuối trong câu lệnh lặp và là những hằng số. + Trong câu lệnh lặp While do phải có lệnh làm thay đổi giá trị biến đếm. + Điều kiện trong câu lệnh Whlie do là một biểu thức Logic. + Phải khai báo biến đếm trong chương trình. Ví dụ 3: Đề bài: Viết chương trình giải và biện luận số nghiệm của phương trình ax + b =0 (a#0). - Nếu dạy trên bục giảng: - Giáo viên yêu cầu học sinh thảo luận theo nhóm và sau đó gọi một nhóm lên thực hiện. đây là chương trình mà một nhóm viết lên bảng: Program vidu3; Uses crt; Var a: real; b:read; Begin Clrscr; Write(‘ nhap a,b); readln(a,b); If a 0 then Writeln(‘phuong trinh co nghiem la:,’ –b:a); If (a=0) and (b=0) then Writeln(‘Phuong trinh vo so nghiem’); Else Writeln(‘Phuong trinh vo nghiem’); Readln End. Sau khi nhóm trên viết xong giáo viên yêu cầu các nhóm còn lại phát hiện lỗi sai và sửa chương trình trên cho đúng. Các lỗi sai trong chương trình trên là: Không có kiểu dữ liệu nào là Read mà chỉ là Real(mã lỗi: 21). Câu thông báo trên màn hình được đặt trong dấu ‘’(mã lỗi :8). Cụ thể: Write(‘ nhap a,b); sửa lại là Write(‘ nhap a,b’); Biểu thức toán học b:a sai phải sửa lại là b/a Các kết quả được viết cách nhau bàng dấu “,”(mã lỗi :26). Writeln(‘phuong trinh co nghiem la:,’ –b/a); sai Sửa lại là: Writeln(‘phuong trinh co nghiem la:’, –b/a); Trước lệnh Else không có dấu “;”(mã lỗi: 113). Nếu dạy trên phòng phực hành: Sau khi gõ chương trình xong học sinh ấn phím F9 để kiểm tra lỗi, căn cứ vào mã lỗi báo dưới dạng: Error mã lỗi: Lỗi mắc phải đối chiếu vào bảng mã lỗi (phần PHỤ LỤC) để sửa lỗi. c. Những lỗi sai cơ bản trong kiểu dữ liệu có cấu trúc : - Đối với trường hợp này học sinh hay mắc phải các lỗi: + Khi khai báo học sinh viết sai từ khoá. + Trong khai báo mảng thì chỉ số đầu và chỉ số cuối là hai chỉ số hoàn toàn xác định. + Độ rộng tối đa của xâu là xác định, nhỏ hơn 255. + Hằng xâu được đặt trong cặp dấu “ ‘ .’ ”. Ví dụ 4: Đề bài: Cho dãy A gồm n số nguyên dương a1,a2,..an. Tìm giá trị nhỏ nhất của dãy, đưa ra vị trí của số đó. Nếu dạy trên bục giảng: Giáo viên đưa chương trình đã chuẩn bị lên bảng phụ sau khi các nhóm đã thảo luận và yêu cầu học sinh thực hiện chỉnh sửa lại chương trình cho đúng. Chương trình: Program Vidu3; Uses crt; Const nmax:=50; Var A:Aray[1..nmax] 0f Integer; N,I,csmin:byte; Min: integer; Begin Clrscr; Write(‘Nhap n:’); readln(n); For i:= 1 to n do Begin Write(‘nhap A[‘I’]’); readln(A[i]); End; Min:=A[1];,csmin:=1; For i:=2 to n do If A[i]<min then Begin Min:=A[i]; Csmin:=I; End; Writeln(‘ gia tri nho nhat la:’,min:3,’Tai vi tri:’,csmin:2); Readln End. Đối với bài toán này học sinh dễ dàng phát hiện ra các lỗi sau: Khai báo hằng sai: const nmax:=50; phải sửa lại là const nmax=50; Khai báo mảng sai từ khóa khai báo mảng là Array chứ không phải là Aray. Câu lệnh Write(‘nhap A[‘I’]:’); không xuất hiện đúng theo ý tưởng của người viết phải sửa lại là Write(‘nhap A[‘,I,’]:’); Với phương pháp dạy giáo viên vừa kết hợp bài giảng vừa kết hợp cả thao tác kiểm tra lỗi và học sinh tự nhận biết lỗi khi viết chương trình. Sau mỗi tiết học học sinh sẽ biết được những lỗi mà mình mắc phải khi viết chương trình để rút kinh nghiệm cho lần sau. Nếu dạy trên phòng máy: Sau khi gõ chương trình xong học sinh thực hiện chương trình. Căn cứ vào mã lỗi báo dưới dạng: Error mã lỗi: Lỗi mắc phải đối chiếu vào bảng mã lỗi (phần PHỤ LỤC) để sửa lỗi. d. Những lỗi sai cơ bản trong Tệp và thao tác với tệp, chương trình con - Đối với trường hợp này học sinh hay mắc phải các lỗi: + Không khai báo biến tệp + Không mở tệp để đọc hay ghi nhưng vẫn thao tác đọc ghi tệp + Đường dẫn tới tệp không đúng hoặc chưa có. + Mở quá nhiều tệp. + Không gán tên cho tệp. + Mở tệp nhưng không đóng tệp lại. + Không phân biệt được hàm và thủ tục + Viết sai từ khoá hàm và thủ tục + Trong hàm không có lệnh trả về giá trị cho hàm. + Gán giá trị của biến cho thủ tục. Ví dụ 4: Cho tệp SN.INP chứa: Hàng 1: n Hàng 2 chứa dãy a1,,an Viết chương trình đưa ra các số nguyên tố. Kết quả lưu vào tệp SN.OUT SN.INP SN.OUT 10 7 3 9 6 5 14 16 15 11 13 3 7 5 11 13 Nếu trên bục giảng: Giáo viên yêu cầu học sinh thảo luận theo nhóm làm bài tập trên. Sau đó gọi một nhóm lên bảng thực hiện. Chương trình mà nhóm đó thực hiện như sau: Program Vidu4; Uses crt; Const INP=’SN.INP’; OUT=’SN.OUT’; Var A: Array[1 .. 100 ] of Byte; n,i: Byte; f1,f2:text; Function NT(M:byte); Var S: Word; Begin S:=0; NT:=false; For i:=1 to M div2 do If M mod i = 0 Then S:=S+I; If S=0 then NT:= True Else NT:=False; End. Begin Clrscr; Assign(f1,INP); Reset(f1); Assign(f2,OUT); Rewrite(f2); Readln(f1,n); For i:= 1 to n do Begin Read(f2,A[i]); If NT(A[i]) then Write(f2,A[i] ); End; End. Sau khi học sinh viết xong chương trình lên bảng Giáo viên yêu cầu các nhóm kiểm tra và sửa lại chương trình trên. Các lỗi sai là: Khai báo hàm Function NT(M:Byte); sai sửa lại là Function NT(M:Byte): Boolean; Kết thúc chương trình con là End; không phải là End. Kết thúc chương trình phải đóng tệp lại. Nếu trên phòng máy: Sau khi gõ chương trình xong học sinh thực hiện chương trình. Căn cứ vào mã lỗi báo dưới dạng: Error mã lỗi: Lỗi mắc phải đối chiếu vào bảng mã lỗi (phần PHỤ LỤC) để sửa lỗi. 3. Giải pháp 3: Kỹ năng sửa lỗi ngữ nghĩa - Trong quá trình dạy học sinh viết chương trình tôi đã phát hiện ra một số lỗi nghữ nghĩa mà học sinh thường gặp phải như sau: + Khai báo kiểu dữ liệu không chuẩn( Khai báo đúng nhưng tốn nhiều bộ nhớ và không sát với yêu cầu của bài toán). Ví dụ 5: Đề bài: Cho dãy A gồm n số nguyên dương a1,a2,..an. Tìm giá trị nhỏ nhất của dãy, đưa ra vị trí của số đó. Học sinh viết khai báo như sau: Const nmax=50; Var A:Array[1..nmax] 0f Integer; N,i,min,csmin:integer; Bài toán cho ta là dãy số nguyên dương nhưng học sinh khai báo là Integer có nghĩa là khi nhập giá trị cho phần tử mảng vẫn thõa mãn điều này sai với yêu cầu của bài toán. N,i, csmin <=nmax nên ta khai báo kiểu dữ liệu là Byte. Sửa lại là: Const nmax=50; Var A:Array[1..nmax] 0f word; N,i,csmin:byte; Min: word; Vậy để khai báo biến cho đúng với yêu cầu của bài toán thì yêu cầu học sinh phải nắm được các kiểu dữ liệu chuẩn, phạm vi giá trị, bộ nhớ, để áp dụng vào từng bài toán cho hợp lý. + Học sinh không biết sử dụng câu lệnh ghép. Nếu số lệnh lớn hơn hoặc bằng 2 trong một câu lệnh thì phải dùng câu lệnh ghép. + Học sinh không phân biệt được trong trường hợp nào thì dùng lặp For .. Do trường hợp nào dùng câu lệnh While Do Nều trong bài toán xác định được số lần lặp thì dùng For Do. Nếu trong bài toán mà số lần lặp phải dựa vào điều kiện thì dùng While Do. Khuyến khích học sinh dùng câu lệnh While do . + Học sinh không phân biệt được hàm và thủ tục khác nhau như thế nào, cách sử dụng ra sao. Ví dụ: Yêu cầu in ra xâu st sau khi đã xoá 3 ký tự tại vị trí số 5 của xâu st. Học sinh viết: ST1:= delete(st,5,3); Đối với trường hợp này giáo viên nhắc lại các chú ý sau: Hàm Trả về giá trị qua tên của nó. Thủ tục không trả về giá trị. Trong quá trình viết chương trình con phải có một lệnh trả về giá trị cho hàm qua tên của nó. Để học sinh hiểu rõ hơn giáo viên dùng bảng các hàm và thủ tục xử lý trong xâu giải thích cho học sinh. CHƯƠNG 3 : KIỂM CHỨNG CÁC GIẢI PHÁP ĐÃ TRIỂN KHAI Qua một thời gian thực hiện ứng dụng phương pháp “Rèn kỹ năng lập trình Pascal cho học sinh lớp 8” trong chương trình Tin học 8 tôi nhận thấy: - Việc ứng dụng giúp giáo viên truyền thụ kiến thức cho học sinh một cách tích cực và trực quan, tiết kiệm thời gian trong tiết dạy lí thuyết từ đó học sinh có thời gian thực hành nhiều hơn và trong quá trình thực hành học sinh nhớ kiến thức lâu hơn. - Đối với học sinh tôi nhận thấy học sinh học tập tích cực hơn, hào hứng hơn, chú ý hơn, tham gia xây dựng bài sôi nổi hơn. Đặc biệt các em ghi nhớ kiến thức lâu hơn, chất lượng đi lên rõ rệt. Sau khi áp dụng phương pháp trên vào các tiết dạy thể hiện chất lượng được nâng cao với kết quả học lực năm học 2019-2020 đạt được như sau: *Kết quả học lực thay đổi sau khi áp dụng đề tài : Tổng số Giỏi Khá TB Yếu Kém SL % SL % SL % SL % SL % 2019-2020 68 17 25.0 26 38.1 25 36.8 0 0 0 Qua thời gian nghiên cứu đề tài trong năm học bằng nhiều phương pháp khác nhau, qua dự giờ đồng nghiệp và dạy thực nghiệm. Tôi đã tìm ra một số kinh nghiệm áp dụng vào trong giảng dạy và thu được những kết quả nhất định. Trong giờ học các em chú ý hơn, tích cực hơn, đã kích thích được khả năng tư duy sáng tạo, tự tin của các em, các em nắm bài một cách chủ động không máy móc. Kết quả số học sinh khá, giỏi tăng lên, số học sinh trung bình, yếu giảm đi rõ rệt. PHẦN III: KẾT LUẬN Những vấn đề quan trọng của sáng kiến Kinh nghiệm thực tiễn dạy học và kết quả nghiên cứu thực nghiệm cho thấy để nâng cao chất lượng dạy học cần có các điều kiện sau: Tạo không khí học tập tích cực, giáo viên phải tạo ra mỗi giờ học là một niềm vui niềm say mê trong học tập của học sinh. Giáo viên luôn tạo ra những thách thức vừa sức, tổ chức những họat động tự lực của học sinh trong từng tiết học. Qua mỗi lần thử nghiệm nên có một thời gian nhìn nhận đánh giá kết quả và rút kinh nghiệm cho lần sau, biết cách khai thác trí lực của học sinh theo hướng tích cực, chủ động thì việc tiếp thu kiến thức, rèn luyện lỹ năng của học sinh sẽ trở nên thuận lợi và có kết quả hơn. Bên cạnh đó giáo viên phải biết vận dụng các kiến thức trong bài dạy vào các họat động thực tế có liên quan và giải thích cụ thể từ đó các em có nhu cầu tìm hiểu về môn học. Hiệu quả của sáng kiến Dạy học là một nghệ thuật. Sử dụng tốt phương pháp dạy học nâng cao chất lượng tin học 8 ở trường THCS là con đường tốt nhất để đạt được mục đích yêu cầu tiết dạy trong đó phương tiện dùng công cụ trực quan đặc biệt có hiệu quả tốt giúp người học hiểu và nắm chắc thông tin cần thiết. Việc sử dụng dụng Phương pháp Rèn kỹ năng lập trình Pascal cho học sinh lớp 8 vào quá trình dạy học là cần thiết đối với mỗi giáo viên vì nó mang lại hiệu suất, hiệu quả của giáo dục cao. Qua một thời gian nghiên cứu đề tài bằng nhiều phương pháp khác nhau, qua dự giờ của các đồng nghiệp, qua dạy thực nghiệm, đối chứng, tôi đã tìm ra được một số kinh nghiệm áp dụng vào trong giảng dạy và thu được những kết quả nhất định, trong giờ học các em đã chú ý hơn, tích cực hơn, đã kích thích phát huy được khả năng tư duy, tính tích cực của các em, các em nắm bài một cách chủ động không máy móc. Từ tiết học chưa ứng dụng đề tài thì gần 50% học sinh không hiểu bài còn mơ hồ, nay ứng dụng đề tài thì đa số học sinh hiểu bài, thích học, hoạt động học tập tích cực và không còn học sinh yếu kém. Do vậy, kết quả học tập cuối năm số học sinh khá giỏi tăng lên 35%, đặc biệt khắc phục được số học sinh yếu kém, học sinh yếu kém từ 44% nay không còn học sinh yếu kém nào. Bảng kết quả học lực lớp 8 đạt được trước khi áp dụng đề tài (năm học 2018-2019) và sau khi áp dung đề tài năm học (2019-2020) Thời điểm Tổng số Giỏi Khá TB Yếu Kém SL % SL % SL % SL % SL % 2018-2019 70 7 14.0 20 28.5 20 28.5 13 18.5 10 14.0 2019-2020 68 17 25.0 26 38.1 25 36.8 0 0 0 0 Tóm lại, việc áp dụng đề tài này đã góp phần một cách tích cực nâng cao chất lượng học tập bộ môn Tin học của học sinh. 3. Kiến nghị Ban giám hiệu, tổ, nhóm: - Cần phải bố trí được tối thiểu phòng máy đủ mỗi học sinh một máy tính để học sinh có điều kiện thực hành trên máy tính. Làm cho tiết học trở nên hiệu quả hơn. - Tổ chức các cuộc thi lập trình trên máy tính dành riêng cho học sinh lớp 8. - Tạo điều kiện cho giáo viên học tập nâng cao trình độ để đáp ứng với nhu cầu phát triển CNTT trong thời đại nay. Trên đây là những đóng góp mang tính kinh nghiệm và chủ quan của bản thân tôi, hy vọng góp phần nâng cao hiệu qủa dạy và học. Tuy nhiên, do thời gian nghiên cứu và thực hiện đề tài có hạn, không thể tránh khỏi những hạn chế, những sai sót, vì vậy tôi mong nhận được các ý kiến đóng góp của các bạn đồng nghiệp. Tôi xin chân thành cám ơn! Quỳnh Phú, ngày 20 tháng 01 năm 2021 Người viết Vũ Thị Hường
File đính kèm:
sang_kien_kinh_nghiem_ren_ky_nang_lap_trinh_pascal_cho_hoc_s.doc