Sáng kiến kinh nghiệm Dạy lập trình Pascal
Những nội dung lí luận có liên quan trực tiếp đến vấn đề nghiên cứu
Từ nhiều năm nay, ban giám hiệu vẫn thường xuyên tập trung chỉ đạo công tác nâng cao thành tích học tập, làm nòng cốt cho việc nâng cao chất lượng giáo dục trong nhà trường. Hàng năm, nhà trường đã chỉ đạo tổ chuyên môn xây dựng kế hoạch ở từng môn học, có đặt ra chỉ tiêu phấn đấu cụ thể, phân công giáo viên kèm cặp, giúp đỡ những học sinh
Nhà trường cũng đã hướng dẫn giáo viên những yêu cầu kiến thức, lập kế hoạch bồi dưỡng học sinh. Phối hợp với hội cha mẹ học sinh, hội khuyến học kịp thời động viên khen thưởng thúc đẩy phong trào. Công tác chỉ đạo của nhà trường được đề ra đã thu được một số kết quả khả quan.
Tuy nhiên chất lượng thi học sinh chưa cao, số lượng học sinh giỏi môn Tin học không nhiều. Quá trình tổ chức thực hiện vẫn còn có những bất cập. Việc đầu tư nghiên cứu tài liệu, đầu tư thời gian nâng cao kiến thức cho học sinh ở giáo viên còn ít. Vấn đề điều tra, khảo sát, phân loại đối tượng, phát hiện năng khiếu ở học sinh chưa làm tốt.
Về phía đội ngũ học sinh của trường thì đại đa số là con em các gia đình làm nghề nông, kinh tế gặp nhiều khó khăn, việc đầu tư, chăm lo cho con cái học tập tuy có cố gắng song chưa đáp ứng kịp với yêu cầu đổi mới, nội dung chương trình, phương pháp giáo dục hiện nay. Sự phối hợp giữa gia đình - nhà trường tuy có được cải thiện song chưa thực sự đi vào chiều sâu. Điều đó đã làm phiền lòng các thầy cô giáo trực tiếp giảng dạy, kết quả học tập của các em vì thế không cao.
ặc biệt là Lập trình Pascal); việc áp dụng không hiệu quả các phương pháp dạy học không đặc thù với bộ môn Tin học. - Đưa ra những giải pháp mới mang tính thiết thực nhằm tháo gỡ những khó khăn, vướng mắc ở giáo viên trong quá trình dạy học môn Tin học 8. - Phân tích những điểm mới, điểm sáng tạo vào lợi ích của giải pháp đưa ra trong đề tài. - Đề xuất một số điều kiện nhằm sử dụng có hiệu quả của giải pháp mà đề tài đưa ra. Tóm lại, bằng những kinh nghiệm giảng dạy môn Tin học 8 trong trường THCS, với tâm huyết nghề nghiệp, với sự trăn trở trước thực trạng dạy- học Lập trình hiện nay, với sự hỗ trợ của bạn bè, đồng nghiệp tôi đã mạnh dạn đưa ra kinh nghiệm nhằm giúp đồng nghiệp giảng dạy một giờ Lập trình sao cho tạo được sự hứng thú, tích cực, chủ động, sáng tạo, ghi nhớ bài học dễ dàng và lâu hơn. Từ đó các em biết cách Lập trình, yêu thích Lập trình, đưa môn Lập trình trở về đúng vị trí xứng đáng của nó. 3.2. Nội dung cách thức thực hiện giải pháp: a. Chuyên đề Câu lệnh điều kiện Viết chương trình nhập vào 3 số nguyên dương a, b, c khác nhau. In ra màn hình số lớn nhất và nhỏ nhất trong 3 số trên. Phương pháp 1: - Ý tưởng: + Tìm số lớn nhất: (a>b) và (a>c) thì a lớn nhất; (b>a) và (b>c) thì b lớn nhất; (c>a) và (c>b) thì c lớn nhất; + Tìm số nhỏ nhất: (a<b) và (a<c) thì a nhỏ nhất; (b<a) và (b<c) thì b nhỏ nhất; (c<a) và (c<b) thì c nhỏ nhất; - Chương trình: Program LN_NN; Var a, b, c: Integer; Begin Writeln (‘Nhap a, b, c:’); Readln (a, b, c); If (a>b) and (a>c) Then Writeln (a,’ lon nhat’) Else If (b>a) and (b>c) Then Writeln (b,’ lon nhat’) Else Writeln (c,’ lon nhat’); If (a<b) and (a<c) Then Writeln (a,’ nho nhat’) Else If (b<a) and (b<c) Then Writeln (b,’ nho nhat’) Else Writeln (c,’ nho nhat’); Readln; End. Phương pháp 2: - Ý tưởng: + Nếu a>b thì ta gán a cho Max, b cho Min, ngược lại thì ta gán Max cho b, Min cho a {Tìm số lớn nhất và nhỏ nhất trong hai số a, b. Sau khi thực hiện dòng lệnh trên Max sẽ nhận được giá trị lớn nhất, Min sẽ nhận được giá trị nhỏ nhất}. + Nếu c>Max thì ta gán c cho Max, ngược lại nếu c<Min thì ta gán c cho Min {So sánh c với giá trị lớn nhất (Max) và nhỏ nhất (Min)}. - Chương trình: Program LN_NN; Var a, b, c, Max, Min: Integer; Begin Write (‘Nhap lan luot 3 so a, b, c:’); Readln (a, b, c); If (a>b) Then Begin Max:=a; Min:=b; End; Else Begin Max:=b; Min:=a; End; If (c>Max) Then Max:=c Else If (c<Min) Then Min:=c; Write(‘So lon la:’,Max,’ So nho la:’,Min); Readln; End. Phương pháp 3: - Ý tưởng: + So sánh giá trị a và b, nếu a>b thì đổi giá trị a và b. {Sau khi đổi giá trị thì sẽ cho kết quả a <b}. + So sánh giá trị b và c, nếu b>c thì đổi giá trị b và c. {Sau khi đổi giá trị thì sẽ cho kết quả a, b b hay b>a }. + Lại so sánh giá trị a và b, nếu a>b thì đổi giá trị a và b. {Sau khi đổi giá trị thì sẽ cho kết quả a < b và b < c}. - Chương trình: Program LN_NN; Var a,b,c,tam:Integer; Begin Write('Nhap gia tri a, b, c tuong ung: ');Readln(a,b,c); If a>b Then begin Tam:=a; a:=b; b:=tam end; If b>c Then begin Tam:=b; b:=c; c:=tam end; If a>b Then begin Tam:=a; a:=b; b:=tam end; Write('So nho la:’,a,’ so lon la’,c); Readln; End. => Nhận xét: Trong 3 phương pháp trên thì mỗi phương pháp đều có một ưu điểm và hạn chế riêng: - Phương pháp 1: Giúp học sinh làm quen với câu lệnh điều kiện dạng đủ lồng nhau và điều kiện ghép ((a>b) and (a>c)) trong câu lệnh điều kiện thông qua phép toán And. - Phương pháp 2: Giúp học sinh làm quen với lệnh gán, sử dụng biến trung gian Max, Min và câu lệnh ghép (Begin Max:=a; Min:=b; End) trong câu lệnh điều kiện. - Phương pháp 3: Giúp học sinh làm quen với câu lệnh điều kiện dạng thiếu và ôn lại kiến thức sắp xếp giá trị hai biến theo thứ tự tăng hoặc giảm dần begin Tam:=a; a:=b; b:=tam end; b. Chuyên đề Câu lệnh lặp Bài toán 1: Số nguyên tố là số tự nhiên lớn hơn 1, chỉ có hai ước là 1 và chính nó. Yêu cầu: Nhập vào số nguyên dương N. Kiểm tra xem N có phải là số nguyên tố hay không, thông báo kết quả sau khi kiểm tra. Phương pháp 1: - Ý tưởng: + Cho biến i chạy từ 2 đến n-1 {Ta xét trường hợp n có chia hết cho i hay không}, nếu n chia hết cho i thì ta tăng biến đếm lên một đơn vị {ban đầu biến đếm nhận giá trị bằng 0}. + Kiểm tra biến đếm, nếu biến đếm nhận giá trị bằng không {tức n không chia hết cho số nào trong khoảng từ 2 đến n-1} vậy n là số nguyên tố, ngược lại biến đếm nhận giá trị lớn hơn 0{tức n chia hết cho cho một hoặc nhiều giá trị trong khoảng [2..n-1]} vậy n không phải là số nguyên tố. - Chương trình: Program So_ND; Var n,i,dem:Integer; Begin Write('Nhap gia tri N: ');Readln(n); If n<2 Then Write(n, Khong phai la so nguyen to'); Else Begin dem:=0; For i:=2 To n-1 Do If n Mod i = 0 Then Inc(dem); If dem=0 Then Writeln(n, ' La so nguyen to') Else Writeln(n, ' Khong phai So nguyen to'); End; Readln; End. Phương pháp 2: Bổ sung kiến thức: + N là số Nguyên tố khi n>=2 và n không chia hết cho số nào có giá trị trong khoảng từ 2 đến n – 1. Tuy nhiên trên thực tế thì chỉ cần n không chia hết cho số nào có giá trị trong khoản từ 2 đến số nguyên gần với căn n nhất nhưng nhỏ hơn n {Trunc(Sqrt(n))}. + Giả sử A và B là hai giá trị kiểu Boolean. Kết quả của các phép toán được thể hiện qua bảng dưới đây: Ý tưởng: + Giống như phương pháp 1 tuy nhiên ở đây chúng ta không đếm mà sử dụng phương pháp đánh dấu của kiểu boolean. Tức ta xét trường hợp n có chia hết cho i hay không, nếu n chia hết cho i thì ta đánh dấu là False {Giả sử biến KT có biểu dữ liệu là Boolean thì nếu n chia hết cho i thì KT:=False, ban đầu ta gán KT:=True}. + Kiểm tra biến KT, nếu KT là True {tức biến KT nhận tất cả là True} thì n là số nguyên tố, ngược lại n không phải số nguyên tố {tức biến KT có nhận lớn hơn hoặc bằng một giá trị False}. - Chương trình: Program KT_SONT; Var i,n:Integer; Kt:Boolean; Begin Write('Nhap gia tri N: ');Readln(n); Kt:=True; If n < 2 Then Kt:=False Else For i:=2 To Trunc(Sqrt(n)) Do If n Mod i = 0 Then Kt:=False; If Kt Then Write(n,' la so nguyen to') Else Write(n,' Khong la so nguyen to'); Readln; End. => Nhận xét: - Phương pháp 1: Giúp cho học sinh có cái nhìn tổng quan hơn khi xác định n có phải là số nguyên tố hay không thông qua phương thức đếm số lần n có chia hết cho giá trị nào trong khoảng từ [2..n-1] hay không, theo định nghĩa thì số nguyên tố là số chỉ chia hết cho 1 và chính nó {tức nếu N là số nguyên tố chỉ khi n chia hết cho 1 và n}. Vậy nếu n còn chia hết cho số nào trong khoảng [2..n-1] thì n không phải nguyên tố. - Phương pháp 2: Phương giáp này giúp học sinh tìm hiểu được nhiều kiến thức hơn trên nền kiến thức của phương pháp 1. Khi cho i chạy từ 2 đến trunc(sqrt(n)) thì số lần thực hiện vòng lặp được giảm đi một nữa, sẽ tiết kiệm được thời gian khi chạy chương trình; mặt khác giúp học sinh ôn lại kiến thức lấy kết quả phép so sánh của kiểu dữ liệu Boolean, một kiểu dữ liệu mà chúng ta cũng rất hay sử dụng trong các bài tạo vòng lặp. Bài toán 2: Viết chương trình nhập vào 2 số nguyên dương a, b khác nhau. Tìm ước chung lớn nhất và bội chung nhỏ nhất của 2 số trên. Phương pháp 1: Ý tưởng: + Kiểm tra hai giá trị a, b. Nếu a>b thì a:=a-b ngược lại thì b:=b-a, tiếp tục kiểm tra giá trị a, b và trừ cho đến khi nào a=b thì kết thúc. Lúc đó: USLN=a. + BCNN của hai số a, b bằng phần nguyên của a nhân b chia cho USLN(a,b). {BCNN(a,b) = a*b Div UCLL(a,b)}. Chương trình: Program UCLN_BCNN; Var a,b,p,du:Integer; Begin Write('Nhap gia tri a, b tuong uong : ');Readln(a, b); P:=a*b; Repeat If a>b Then a:=a-b Else b:=b-a; Until a = b; Writeln('UCLN cua a va b la: ',a,' BCNN la: ',p Div a); Readln; End. • Lưu ý: Sau khi test chương trình xong giáo viên cho học sinh test cặp giá trị a, b bằng nhau. Yêu cầu học sinh nhận xét, nêu thuật toán và viết lại chương trình trên với điều kiện a, b là hai số nguyên. Phương pháp 2: Ý tưởng: + Nếu a chia b có phần dư bằng 0 thì b là UCLN của a và b. Từ khái niệm này ta xây dựng thuật toán như sau: du:= a mod b, a:=b; b:=du, chương trình kết thúc khi b=0 và UCLN là a. + Viết ra UCLN, BCNN Chương trình: Program UCLN_BCNN; Var a,b,p,du:Integer; Begin Write('Nhap gia tri a, b tuong uong : ');Readln(a, b); P:=a*b; While b0 Do Begin Du:=a mod b; a:=b:b:=du; Writeln('UCLN la: ',a,' BCNN la: ',P Div a); Readln; End. Phương pháp 3: Ý tưởng: + Ta cho biến i chạy từ 1 đến a, nếu thỏa mãn đồng thời 2 điều kiện (a mod i =0) và (b mod i =0) thì i là UCLN của a và b. + Viết ra UCLN, BCNN Chương trình: Program UCLN_BCNN; Var a,b,p,d:Integer; Begin Write('Nhap gia tri a, b tuong uong : ');Readln(a, b); P:=a*b; For i:=1 To a Do if (a mod i=0) and (b mod i=0) then d:=i Writeln('UCLN la: ',d, ‘BCNN la: ',p Div d); Readln; End. Phương pháp 4: - Ý tưởng: + Ta cho biến i chạy downto từ a đến 1, nếu thỏa mãn đồng thời 2 điều kiện (a mod i =0) và (b mod i =0) thì i là UCLN của a và b đồng thời kết thúc việc tìm kiếm {kết thúc vòng lặp}. + Viết ra UCLN, BCNN - Bổ sung kiến thức: Lệnh break + Cú pháp: Break + Hoạt động: Lệnh break hoạt động khi được đặt trong thân các vòng lặp for, while, repeat. Khi gặp lệnh break thì máy sẽ thoát khỏi chu trình của vòng lặp, nếu có nhiều vòng lặp lồng nhau sẽ thoát vòng lặp trong nhất chứa lệnh break; - Chương trình: Program UCLN_BNNN; Var a,b,p,d:Integer; Begin Write('Nhap gia tri a, b tuong uong : ');Readln(a, b); P:=a*b; For i:=a Downto 1 Do if (a mod i=0) and (b mod i=0) then d:=i; Writeln('UCLN la: ',d, ‘BCNN la: ',p Div d); Readln; End. => Nhận xét: - Phương pháp 1, 2: Nếu chúng ta cho học thực hiện vòng While Do hoặc Repeat Until để viết chương trình cho hai phương pháp trên thì cơ bản thuật toán không thay đổi chỉ khác nhau là sử dụng phương pháp chia liên tiếp hay trừ liên tiếp. Tuy nhiên ở đây chúng ta sử dụng While Do cho phương pháp 1 và Repeat Until cho phương pháp 2 với mục đích giúp các em tìm hiểu thêm sự khác nhau trong điều kiện lặp và kết thúc hai câu lệnh trên, từ đó yêu cầu các em chỉnh sửa câu lệnh, thuật toán chia, trừ liên tiếp ngược lại trong hai phương pháp để khắc sâu kiến thức hơn. - Phương pháp 3, 4: Phương pháp này giúp các em ôn lại 2 nội dung kiến thức, một là điều kiện ghép trong câu lệnh điều kiện, hai là vòng lặp với số lần biết trước. Khi thực hiện vòng lặp dạng tiến For i:=1 To a thì có thể có nhiều giá trị thỏa mãn nhưng chương trình sẽ nhận được giá trị cuối cùng khi kết thúc lặp, giá trị này là giá trị ta cần tìm trong bài toán. Trong phương pháp 4 các em còn tìm hiểu thêm được kiến thức mới về câu lệnh Break. Lệnh này thường được áp dụng để tìm giá trị nhỏ nhất, lớn nhất thỏa mãn các điều kiện nào đó. Ví dụ Viết chương trình tìm số nguyên dương T nhỏ nhất có N chữ số, biết rằng khi chia T cho 19 thì dư 13 và khi chia T cho 31 thì dư 12. c. Chuyên đề mảng một chiều. Dãy Fibonaci là dãy 1, 1, 2, 3, 5, 8, 13, 21, ... dãy này được sinh ra bởi công thức đệ qui sau: F1 =1, F2 =1, Fk=Fk-1+Fk-2 với 2<k≤46. Mọi số nguyên dương N đều có thể triển khai thành tổng của một số trong dãy Fibonaci. Yêu cầu: Cho trước số N, hãy triển khai N thành tổng của ít nhất các số hạng khác nhau của dãy Fibonaci. Phương pháp 1: Ý tưởng: + Triển khai N thành dãy Fibonaci và lưu vào mảng A. Ví dụ: N = 15 A 1 1 2 3 5 8 13 21 i 1 2 3 4 5 6 7 8 + Ban đầu t:=0, j:=0. Thực hiện vòng lặp Downto cho h chạy từ I đến 1, kiểm tra nếu t+ah ≤n thì tăng j lên một đơn vị và lưu ah vào bj , t:=t+ai, chương trình kết thúc khi t=n. + Viết ra mảng bi Chương trình: Program Fibonaci; Var a,b: array[1..100] of Longint; i,j,t,h,n:Longint; Begin Write('Nhap gia tri N:');Readln(n); a[1]:=1;a[2]:=1; i:=2; While a[i]<N Do Begin inc(i); a[i]:=a[i-1]+a[i-2]; End; t:=0;j:=0; For h:=i Downto 1 Do if t+a[h]<=n then Begin inc(j); b[j]:=a[h]; t:=t+b[j]; If b[j] = n then Break End; For i:=1 To j Do Write(b[i],' '); Readln; End. Phương pháp 2: - Ý tưởng: + Triển khai N thành dãy Fibonaci và lưu vào mảng A. + Thực hiện vòng lặp Downto cho h chạy từ i đến 1, kiểm tra nếu ah ≤n thì viết ra ah , n:=n-ah , chương trình kết thúc khi n=0. - Chương trình: Program Fibonaci; Var a,b: array[1..100] of Longint; i,j,t,h,n:Longint; Begin Write('Nhap gia tri N:');Readln(n); a[1]:=1;a[2]:=1; i:=2; While a[i]<N Do Begin inc(i); a[i]:=a[i-1]+a[i-2]; End; For h:=i Downto 1 Do if a[h]<=n then Begin Write(a[h], ‘ ’); N:=n-a[h]; If n = 0 then Break; Readln; End. => Nhận xét: - Phương pháp 1 và 2 khác nhau ở chỗ phương pháp 1 kiểm tra các phần tử trong a nếu nhỏ hơn hoặc bằng n thì chuyển phần tử đó vào mảng b, khi nào tổng của mảng b bằng n thì dừng, phương pháp 2 kiểm tra giá trị n, nếu n lớn hơn hoặc bằng phần tử trong mảng thì in ra phần tử trên và lấy lại giá trị mới cho n. - Nhìn chung phương pháp 2 học sinh dễ hiểu thuật toán hơn tuy nhiên ở phương pháp 1 lại giúp các em bổ sung thêm kiến thức về việc sử dụng nhiều biến mảng trong một chương trình. • Lưu ý chung: Trong các chuyên đề nêu trên, đối với các bài toán giải theo nhiều phương pháp, sau khi học sinh giải xong giáo viên cần cho học sinh nhận xét, phân tích mặt thuận lợi, khó khăn của mỗi phương pháp. Vì đây là điểm cốt lõi nhất để học sinh có thể so sánh điểm mạnh, yếu trong mỗi phương pháp giải từ đó khắc sâu được nội dung kiến thức và lựa chọn, đưa ra được phương pháp giải tối ưu nhất cho mình. Trong nội dung của đề tài tôi chỉ đưa ra một số bài toán để chúng ta cùng tham khảo, tôi quan niệm rằng với ngôn ngữ lập pascal thì mọi bài toán đều có thể được giải (viết chương trình) bằng nhiều phương pháp khác nhau. 4. Kết quả khảo nghiệm: Trên đây là một số biện pháp, hình thức giảng dạyg học sinh mà tôi đã áp dụng trong 2 năm trở lại đây. Sau đây là kết quả mà học sinh đã đạt được: KHỐI 8 Sĩ số Giỏi Khá Trung bình Yếu Kém TB trở lên SL % SL % SL % SL % SL % SL % TS 173 74 42.77 73 42.20 24 13.87 0 0.00 2 1.16 171 98.84 ( Học sinh có học lực “Kém” do học sinh vi pham nội quy. Vắng quá số buổi học. Có kiểm bản trong trong hồ sơ) Kết quả này cho thấy, số học sinh đạt chưa nhiều nhưng đạt chất lượng cao và duy trì được chất lượng học sinh giỏi hàng năm. Điều này đã phản ánh được tác dụng của những phương pháp, hình thức bồi dưỡng học sinh nói trên. III. KẾT LUẬN VÀ KIẾN NGHỊ 1. Những kết luận đánh giá cơ bản nhất về sáng kiến Tóm lại, như nội dung mà đề tài đã nêu, công tác chỉ đạo giảng dạy học sinh là một nhiệm vụ trọng tâm ở nhà trường phổ thông nói chung, trường THCS nói riêng. Đó là công việc khó khăn đòi hỏi sự nỗ lực chỉ đạo của ban giám hiệu, tổ chuyên môn, trăn trở của mỗi thầy cô giáo. Từ việc nghiên cứu nội dung, chương trình, các kiến thức cần đi sâu cho học sinh, các kỹ năng cần rèn luyện cho các em; việc cải tiến, đổi mới phương pháp dạy học. Giảng dạy học sinh giỏi phải gắn liền với việc nâng cao chất lượng. Phải quán triệt được phương châm: Dạy học theo đối tượng, trình độ tiếp thu ở học sinh. Không nên đưa những vấn đề quá khó đối với học sinh. Giáo viên cũng như các nhà quản lý phải kiên trì, bền bỉ xây dựng bài học một cách hệ thống, đồng bộ từ nhiều khâu, đặt ra nhiều giải pháp thực hiện theo điều kiện cơ sở vật chất và hoàn cảnh cụ thể ở từng nhà trường, từng địa phương. Tránh suy nghĩ chủ quan, nóng vội, phải tiến hành từ thấp đến cao, có kế hoạch. Thường xuyên chăm lo xây dựng đội ngũ giáo viên có tay nghề vững, trách nhiệm cao, gần gũi thương yêu học sinh. Chú trọng công tác đúc rút sáng kiến kinh nghiệm, đổi mới phương pháp dạy học, tạo không khí thi đua "dạy tốt - học tốt" thường xuyên trong nhà trường, củng cố phong trào khuyến học, tạo cơ sở vật chất tốt cho nhà trường. Là người thực hiện đề tài, tôi thấy rằng các cấp cần phải tập trung nhiều vào khâu bồi dưỡng giáo viên cả về tư tưởng, chính trị và nghiệp vụ. Tránh chạy đua thành tích, cần tạo được cái nền vững chắc về chất lượng học sinh, đánh giá, nắm rõ thực trạng chất lượng, tháo gỡ những khó khăn ách tắc. Cần đẩy mạnh xã hội hoá giáo dục, xây dựng truyền thống học tập rộng khắp ở mỗi địa phương, đẩy mạnh và cải tiến tiêu chí đánh giá thi đua khen thưởng, đầu tư kinh phí, động viên, khích lệ sự cố gắng ở giáo viên, học sinh một cách hợp lý. Đầu tư cho công tác bồi dưỡng học sinh giỏi là tạo nền móng cho chiến lược nhân tài, là đầu tư cho chiến lược con người của quê hương, đất nước phục vụ sự nghiệp công nghiệp hóa, hiện đại hoá đất nước. Vì vậy cần được sự tập trung chỉ đạo nhiều hơn nữa của các nhà trường và các cấp quản lý giáo dục 2. Đề xuất, kiến nghị Giảng dạy học sinh là một công tác trọng tâm ở các nhà trường phổ thông. Nhiệm vụ của mỗi giáo viên là phải nâng cao được chất lượng giảng dạy, bồi dưỡng học sinh giỏi, để phát hiện và bồi dưỡng đạt kết quả tốt người giáo viên là yếu tố cơ bản. Giáo viên thật sự phải có năng lực, năng khiếu sư phạm, đồng thời phải có tâm huyết với nghề nghiệp, biết tôn trọng tài năng. Chất lượng học sinh giỏi không chỉ thể hiện đánh giá năng lực của học sinh mà còn thể hiện năng lực của mỗi giáo viên nói riêng và chất lượng giáo dục của nhà trường nói chung. Song qua việc nghiên cứu đề tài này cho phép tôi có một vài đề nghị sau: 2.1. Về phía giáo viên: - Không được ép buộc học sinh, phải để học sinh yêu thích về môn đó. - Những giáo viên được phân công giảng dạy phải có kế hoạch. - Phải thật sự nhiệt tình say mê, tận tụy với học sinh . - Luôn nỗ lực, cố gắng nghiên cứu, tìm tòi, học hỏi để xây dựng những tiết dạy-học Tin học một cách hiệu quả. 2.2. Về phía học sinh: - Đầy đủ dụng cụ học tập, sách vở. - Sau mỗi tiết học, yêu cầu học sinh về nhà rèn luyện các bài tập đó thường xuyên để khắc sâu kiến thức. Vì đặc thù bộ môn là thực hành trên máy nên học sinh cần rèn luyện các kĩ năng sử dụng thành thạo phần mềm Pascal. - Luôn có sự chủ động, tích cực và có những kĩ năng cơ bản khi học bộ môn lập trình. 2.3. Đối với tổ chuyên môn: - Tổ chức thao giảng theo chuyên đề hàng tháng, đặc biệt chú ý các tiết dạy khó để cùng trao đổi, thống nhất phương pháp dạy phù hợp nhất. -Thường xuyên tổ chức các buổi ngoại khóa bộ môn, tổ chức các cuộc thi học sinh môn Tin học cấp trường cho học sinh các khối, để học sinh có thể thể hiện năng khiếu của mình. - Việc tổ chức các cuộc thi cấp trường còn giúp cho học sinh thấy được tầm quan trọng của bộ môn tin học, qua đó thu hút học sinh quan tâm đến bộ môn này, đồng thời tạo hứng thú cho học sinh tìm hiểu và thích thú khi học tin học. 2.4. Đối với nhà trường: - Phải quan tâm nhiều hơn công tác này, động viên kịp thời những giáo viên trực tiếp dạy bồi dưỡng cả về vật chất lẫn tinh thần . - Nên bổ sung thêm máy vi tính để tạo điều kiện cho học sinh trong quá trình thực hành trên phòng máy. Trên đây là sáng kiến kinh nghiệm của tôi về “Kinh nghiệm dạy lập trình Pascal” được thực hiện tại trường THCS Nguyễn Trường Tộ. Vì điều kiện thời gian nghiên cứu có hạn và trình độ năng lực hạn chế, đề tài của tôi chắc chắn sẽ còn nhiều thiếu sót. Do vậy tôi rất mong được sự góp ý của các đồng nghiệp và cán bộ phụ trách chuyên môn để cho đề tài hoàn chỉnh hơn. Tôi xin chân thành cảm ơn! Thống Nhất, ngày 08 tháng 11 năm 2018 Người viết La Ngọc Tụ TÀI LIỆU THAM KHẢO - Sách giáo khoa TIN HỌC DÀNH CHO TRUNG HỌC CƠ SỞ QUYỂN 3 - Sách giáo viên TIN HỌC DÀNH CHO TRUNG HỌC CƠ SỞ QUYỂN 3 - Sách bài tập TIN HỌC DÀNH CHO TRUNG HỌC CƠ SỞ QUYỂN 3 - Ngồn ngữ lập trình Pascal – Quách Tuấn Ngọc - Bài tập Ngôn ngữ lập trình Pascal – Quách Tuấn Ngọc. - Lý Thuyết và Bài Tập Pascal Dành cho học sinh phổ thông THCS (Cấp II) và Dạy Nghề - NXBTK - Giáo trình thuật toán và kỹ thuật lập trình Pascal - NXB HÀ NỘI. - Giáo trình LẬP TRÌNH PASCAL – NXB GIÁO DỤC - Giáo trình Lý thuyết và bài tập Pascal (Tập 2): Phần 1 – Khoa CNTT – ĐHSP Hà Nội - Giáo trình Lý thuyết và bài tập Pascal (Tập 2): Phần 2 – Khoa CNTT – ĐHSP Hà Nội - Một số tài liệu khác MỤC LỤC
File đính kèm:
- sang_kien_kinh_nghiem_day_lap_trinh_pascal.doc