Sáng kiến kinh nghiệm Rèn luyện kỹ năng viết chương trình Pascal bằng nhiều phương pháp

Cơ sở lý luận

Vận dụng linh hoạt, sáng tạo các phương pháp dạy học theo cách phát huy yếu tố tích cực và những ưu điểm của phương pháp dạy học truyền thồng cùng phương pháp dạy học hiện đại nhằm tăng cường tính tích cực của học sinh trong tiếp nhận kiến thức, hình thành kỹ năng sử dụng máy tính, sử dụng thành thạo phần mềm Turbo Pascal để phục vụ cho học tập và bước đầu vận dụng vào cuộc sống. Từ đó, tôi luôn tạo điều kiện tối ưu để học sinh bồi dưỡng kỹ năng tự học. Vận dụng linh hoạt, sáng tạo các hình thức tổ chức học tập kết hợp giữa học tập cá thể với học tập hợp tác; giữa hình thức học cá nhân với hình thức học theo nhóm.

Tôi luôn chủ động sáng tạo thiết kế các dạng bài tập căn cứ vào mục tiêu cụ thể của bài học, không gò bó theo một quy trình cứng nhắc những bước đi bắt buộc. Tăng cường kiểm tra đánh giá bằng nhiều hình thức khác nhau theo chuẩn kiến thức kỹ năng, yêu cầu học sinh tự viết các chương trình hoàn chỉnh bằng nhiều phương pháp đó là biện pháp kích thích hứng thú học tập. Với phương pháp dạy và học hiện nay đang có xu hướng thay đổi một cách tích cực. Phương pháp mới hướng tới lấy học sinh làm trung tâm, học sinh không còn đóng vai trò tiếp thu một cách thụ động những kiến thức do giáo viên truyền đạt. Giáo viên trở thành người hướng dẫn, giúp đỡ học sinh. Học sinh hướng tới việc học tập chủ động, biết tự thích nghi. Kiến thức được cá nhân học sinh tự tìm tòi, phát hiện một cách tích cực dưới sự hướng dẫn của giáo viên. Ngoài ra, cách tổ chức học theo nhóm làm tăng thêm khả năng cộng tác, khả năng làm việc tập thể. Tin học là môn học có nhiều điều kiện thuận lợi để thực hiện các phương pháp dạy và học mới này.

Cũng như những môn học khác, việc rèn luyện kỹ năng viết chương trình trong bộ môn tin học cần được thực hiện bằng hoạt động tự giác, tích cực, chủ động và sáng tạo của học sinh. Khi cần dạy một nội dung tin học cho học sinh, người giáo viên phải biết phân tích nội dung đó liên quan đến những hoạt động nào. Và một số hoạt động trong đó lại được phân tích thành những hoạt động thành phần. Rồi căn cứ vào mục tiêu tiết học, trình độ học sinh, trang thiết bị hiện có mà lựa chọn cho học sinh luyện tập và thực hiện một số những hoạt động tiềm năng trong nội dung cần dạy. Để hình thành cho học sinh những kỹ năng tư duy nhằm tìm ra được những phương pháp giải bài tập mới, sáng tạo.

 

doc15 trang | Chia sẻ: thuphuong25 | Lượt xem: 1401 | Lượt tải: 1Download
Bạn đang xem tài liệu "Sáng kiến kinh nghiệm Rèn luyện kỹ năng viết chương trình Pascal bằng nhiều phương pháp", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ăng làm việc tập thể. Tin học là môn học có nhiều điều kiện thuận lợi để thực hiện các phương pháp dạy và học mới này.
Cũng như những môn học khác, việc rèn luyện kỹ năng viết chương trình trong bộ môn tin học cần được thực hiện bằng hoạt động tự giác, tích cực, chủ động và sáng tạo của học sinh. Khi cần dạy một nội dung tin học cho học sinh, người giáo viên phải biết phân tích nội dung đó liên quan đến những hoạt động nào. Và một số hoạt động trong đó lại được phân tích thành những hoạt động thành phần. Rồi căn cứ vào mục tiêu tiết học, trình độ học sinh, trang thiết bị hiện có mà lựa chọn cho học sinh luyện tập và thực hiện một số những hoạt động tiềm năng trong nội dung cần dạy. Để hình thành cho học sinh những kỹ năng tư duy nhằm tìm ra được những phương pháp giải bài tập mới, sáng tạo.
3. Cơ sở thực tiễn
- Đối với giáo viên: Trong quá trình dạy học trên lớp một số giáo viên dạy học theo phương pháp thuộc lòng giáo án, giải bài toán theo một lời giải nhất định, các bước nhất định chưa phát huy khả năng tư duy sáng tạo của học sinh trong quá trình gợi ý tìm ra lời giải mới; trong quá trình kiểm tra đánh giá (15 phút, 1 tiết, thi học kỳ) hệ thống câu hỏi ít mang tính tìm tòi, câu hỏi có tình huống, câu hỏi mở, câu hỏi có nhiều phương án trả lời hoặc câu hỏi mang tính khen thưởng (giải bài toán khác phương pháp giải đã học sẽ được cộng điểm).
- Đối với học sinh: Trong tiết học lý thuyết cách học và làm bài của các em vẫn đơn giản là nắm được một nội dung kiến thức thầy cô giáo đã truyền đạt là được, lười tư duy suy nghĩ, khám phá kiến thức. Trong tiết thực hành một số em gõ chương trình một cách máy móc các nội dung của bài thực hành từ sách giáo khoa chứ không thực sự tìm hiểu xem tại sao lại viết câu lệnh này, câu lệnh này mục đích để làm gì, câu lệnh này sẽ cho chúng ta kết quả gì, các học sinh hầu như chưa ý thức việc học của mình, hay nói cách khác học sinh chưa có động cơ, thái độ học tập đúng đắn.
- Mặt khác theo phân phối chương trình tin học 8, ngôn ngữ lập trình pascal chiếm 56/74 tiết, nội kiến thức trong chương trình thì chỉ dừng lại ở những khái niệm cơ bản, trong khi đó yêu cầu thực tế của môn tin học lớp 8 (ngôn ngữ lập trình pascal) là khá cao. Nếu học sinh chỉ dừng lại ở nội dung kiến thức trong chương trình sách giáo khoa thì sẽ không đáp ứng được yêu cầu đặt ra. Cụ thể như: Thi học sinh giỏi văn hóa lớp 9, tin học trẻ, trường chuyên lớp 10 đều phải thi ngôn ngữ lập trình pascal trong chương trình tin học 8.
Bảng khảo sát đội tuyển HSG Tin học 8 cấp trường
(Khi chưa thực hiện đề tài nghiên cứu)
Số lượng
Viết chương trình bằng mấy phương pháp
1pp
2pp
3pp
4pp
10
7
3
0
0
Điểm bài kiểm tra khảo sát chọn đội tuyển cấp trường lần 1
8 – 10
6,5 – 7,9
5 – 6,4
<5
1
3
4
2
4. Nội dung nghiên cứu
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:
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:
Var a,b,c,Max,Min:Integer;
Begin
Write(‘Nhap lan luoc 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:
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:
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:
A
B
A AND B
A OR B
TRUE
TRUE
TRUE
TRUE
TRUE
FALSE
FALSE
TRUE
FALSE
TRUE
FALSE
TRUE
FALSE
FALSE
FALSE
FALSE
- Ý 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:
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:
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:
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;
End;
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:
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:
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 bj
- Chương trình:
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:
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;
End;
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.
5. Kết quả nghiên cứu
Trong quá trình thực hiện đề tài thông qua việc quan sát của giáo viên và những thành tích đạt được từ các bài kiểm tra đánh giá, các hội thi của Phòng GD&ĐT Cần Giuộc, Sở GD&ĐT tỉnh Long An tổ chức tôi nhận thấy việc học tập của các em có sự thay đổi một cách tích cực và đem lại hiểu quả khá cao.
Bảng khảo sát đội tuyển HSG Tin học 8 cấp trường
(Khi thực hiện đề tài nghiên cứu)
Số lượng
Viết chương trình bằng mấy phương pháp
1pp
2pp
3pp
4pp
10
0
5
3
2
Điểm bài kiểm tra khảo sát chọn đội tuyển cấp trường lần 1
8 – 10
6,5 – 7,9
5 – 6,4
<5
3
4
3
0
Về mặt nhận thức học tập.
+ Học lý thuyết: Đa số học sinh tập trung lắng nghe khi thầy giáo giảng bài, việc phát biểu xây dựng dựng bài được học sinh phát huy một cách tích cực,...
+ Viết chương trình: Các dòng lệnh thường ngăn rọn, sút tích, có tính tư duy sáng tạo cao trong việc tìm ra phương pháp giải quyết bài toán. 
Về chất lượng dạy học:
+ Năm học 2013 - 2014: Tin học trẻ cấp tỉnh: 1 giải ba; Học sinh giỏi văn hóa cấp huyện: 1 giải nhất, 1 giải ba, 1 giải khuyến khích.
+ Năm học 2014 - 2015: Học sinh giỏi văn hóa cấp tỉnh: 1 giải ba; Học sinh giỏi văn hóa cấp huyện: 1 giải nhất.
+ Năm học 2015 - 2016: Tin học trẻ cấp huyện: 1 giải nhất, 1 giải ba; Học sinh giỏi văn hóa cấp huyện: 1 giải nhất; cấp tỉnh: 1 giải ba.
6. Kết luận
Khi người giáo viên lên lớp mục tiêu đặt ra trong mỗi tiết dạy là rèn luyện cho các em kỹ năng sống, giáo dục đạo đức, nắm được chuẩn kiến thức kỹ năng chương trình sách giáo khoa, ... Trong các mục tiêu trên thì mục tiêu cuối cùng cần đạt được và đây là phần quan trọng nhất đó là chất lượng học tập của học sinh.
Sau khi thực hiện đề tài “Rèn luyện kỹ năng viết chương trình pascal bằng nhiều phương pháp” tôi thấy đề tài đã đạt được những mục tiêu sau:
- Thứ nhất: Giúp cho học sinh phát triển khả năng tư duy sáng tạo, tự chiếm lĩnh tri thức, khắc sâu kiến thức đã học, phát huy tính chủ động, tích cực trong việc tiếp thu kiến thức mới, khả năng suy luận khi giải quyết một vấn đề, qua đó giúp cho học sinh tìm ra được các phương pháp giải hay và ngắn gọn cho bài toán.
- Thứ hai: Rèn luyện cho học sinh tính kiên trì, sáng tạo trong học tập, dần dần hoàn thiện phương pháp viết chương trình cho bản thân và có thể vận dụng vào việc xử lý các tình huống xãy ra trong cuộc sống hằng ngày một cách cho tối ưu nhất.
- Thứ ba: Qua bảng thống kê những thành tích đạt được ta thấy chất lượng mũi nhọn luôn được duy trì bền vững với thành tích cao, đặt biệt đội tuyển học sinh giỏi văn hóa 9 năm học 2014 - 2015 đạt: 1 giải nhất cấp huyện, 1 giải ba cấp tỉnh; năm học 2015 - 2016 đội tuyển học sinh giỏi văn hóa 9 đạt: 1 giải nhất cấp huyện, 1 giải ba cấp tỉnh; Tin học trẻ đạt: 1 giải nhất, 1 giải ba cấp huyện.
Đề tài đã phát huy được mục tiêu đề ra đó là năng cao chất lượng đại trà, phát huy tính bền vững trong chất lượng mũi nhọn.
7. Đề nghị
Triển khai rộng rãi nội dung đề tài “Rèn luyện kỹ năng viết chương trình pascal bằng nhiều phương pháp” đến tất cả giáo viên tin học trong địa bàn huyện, tỉnh.
Thủ trưởng đơn vị xác nhận, đề nghị
(Ký và đóng dấu)
Người viết
(Ký và ghi rõ họ tên)
Huỳnh Công Dân
BẢNG CHẤM ĐIỂM ĐỀ TÀI, SÁNG KIẾN KINH NGHIỆM
(Kèm theo sáng kiến kinh nghiệm)
Tên đề tài, SKKN:Rèn luyện kỹ năng viết chương trình Pascal bằng nhiều phương pháp
Tên tác giả: Huỳnh Công Dân
Đơn vị: Trường THCS Nguyễn Đình Chiểu
Tiêu chuẩn
Điểm chuẩn
Điểm của HĐ cơ sở
Điểm của HĐ cấp huyện
(Đối với GV MN, TH và THCS)
Điểm của HĐ ngành GD
Điểm của HĐ cấp tỉnh
1. Đề tài sáng kiến có yếu tố mới và sáng tạo:
3
- Hoàn toàn mới, được áp dụng lần đầu tiên
3
- Có cải tiến so với giải pháp trước đây với mức độ khá
2
- Có cải tiến so với giải pháp trước đây với mức độ trung bình
1,5
- Có cải tiến so với giải pháp trước đây với mức độ ít
1
- Không có yếu tố mới hoặc sao chép từ các giải pháp đã có trước đây
0
2. Đề tài sáng kiến có khả năng áp dụng:
3
- Có khả năng áp dụng trong toàn tỉnh hoặc ngoài tỉnh
3
- Có khả năng áp dụng trong đơn vị và có thể nhân ra ở một số nơi trong tỉnh
2
- Có khả năng áp dụng ở mức độ ít trong đơn vị
1
- Không có khả năng áp dụng trong đơn vị
0
3. Đề tài sáng kiến có tính hiệu quả:
4
- Có hiệu quả trong phạm vi toàn tỉnh
4
- Có hiệu quả trong phạm vi cấp sở, ngành, huyện, thành phố
3
- Có hiệu quả trong phạm vi cấp trường, phòng, ban, tổ, khối
2
- Không có hiệu quả cụ thể
0
Tổng cộng
10
Xác nhận của Hội đồng khoa học cơ sở:
(Ký tên, đóng dấu)
Xác nhận của Hội đồng khoa học cấp..
(Ký tên, đóng dấu)

File đính kèm:

  • docsang_kien_kinh_nghiem_ren_luyen_ky_nang_viet_chuong_trinh_pa.doc
Sáng Kiến Liên Quan