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

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

II. Đặt vấn đề.

Trong những năm học gần đây Bộ GD&ĐT đang tiến hành đổi mới

phương pháp dạy học và một trong những phương pháp đó là phát triển khả

năng tư duy, sáng tạo của học sinh; lấy học sinh làm trung tâm; tránh tình

trạng thầy đọc trò chép một cách thụ động; hướng học sinh đến việc tự làm

chủ kiến thức của mình, tự tìm tòi khám phá kiến thức cho bản thân mình.

Theo phương pháp trên thì ngoài việc cung cấp kiến thức cho học sinh người

thầy còn phải biết phát huy khả năng tư duy cho học sinh.

Trong quá trình dạy học tôi nhận thấy một điểm hạn chế của học sinh là

khi đã tìm ra lời giải cho một bài toán học sinh thường bằng lòng với cách

giải đó mà không thử tìm hiểu xem liệu bài toán này còn có thể giải được theo

phương pháp khác hay không. Học sinh không hiểu rằng việc tìm ra lời giải

mới của bài toán có nhiều điều rất thú vị, nó giúp ta xác định được một vấn đề

từ nhiều góc độ khác nhau từ đó có một cái nhìn tổng quan và toàn diện hơn

trong việc lĩnh hội tri thức cho bản thân.

Mặt khác trong phân phối chương trình Tin học 8 thì nội dung viết

chương trình là khá nhiều, ngược lại số tiết giảng dạy là khá ít điều này ảnh

hưởng nhiều đến phương pháp dạy học của giáo viên và thời gian tìm hiểu sâu

kiến thức, khả năng viết chương trình về ngôn ngữ lập trình pascal của học

sinh. Điều này đã để lại hệ lụy là đa số học sinh viết chương trình một cách

thụ động, dập khuôn hoặc thuộc lòng cách viết một chương trình mà chưa có

tính tư suy, sáng tạo trong cách viết.

Với những lý do trên nên tôi nguyên cứu và thực hiện đề tài “Rèn

luyện cho học sinh kỹ năng viết chương trình Pascal bằng nhiều phương

pháp” nhằm giúp học sinh lớp 8, đội tuyển học sinh giỏi 8, 9 khắc phục được

những hạn chế nêu trên, đồng thời yêu thích môn học ngôn ngữ lập trình

Pascal hơn.

pdf 24 trang Người đăng phuongnguyen22 Ngày đăng 04/03/2022 Lượt xem 688Lượt tải 2 Download
Bạn đang xem 20 trang mẫu của tài liệu "Sáng kiến kinh nghiệm Rèn luyện cho học sinh 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
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 tin học 8, 9 cấp thành phố; HSG lớp 
9, tin học trẻ cấp tỉnh; 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) 
Viết chương trình bằng mấy phương pháp 
Số lượng 
1 pp 2 pp 3 pp 4 pp 
20 16 4 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 
Phụ lục 3 (Đề khảo sát lần 1) 
8->10 6,5-> 7,9 5->6,4 <5 
1 7 10 2 
Trang 4 
V. Nội dung nghiên cứu. 
1. 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 
Trang 5 
 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. 
Trang 6 
 - 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; 
2. 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. 
Trang 7 
* 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. 
Trang 8 
 => 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. 
Trang 9 
* 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. 
Trang 10 
* 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 
Trang 11 
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. 
 3. 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 
Trang 12 
 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. 
Trang 13 
=> 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. 
Trang 14 
VI. 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 Thành phố Tam Kỳ, Sở GD&ĐT tỉnh Quảng Nam 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) 
Viết chương trình bằng mấy phương pháp 
Số lượng 
1 pp 2 pp 3 pp 4 pp 
20 0 10 8 2 
Điểm bài kiểm tra khảo sát chọn đội tuyển cấp trường lần 2 
Phụ lục 4 (Đề khảo sát lần 2) 
8->10 6,5-> 7,9 5->6,4 <5 
7 8 5 
 * 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 2012- 2013: Nhất đồng đội Tin 8 (6/7 học sinh đạt 
giải, trong đó 1 nhất, 1 nhì, 1 ba, 3 khuyến khích); Nhì đồng đội Tin 9 (3/3 
học sinh đạt giải, trong đó 1 nhất, 3 khuyến khích) 
 + Năm học 2013-2014: Nhất đồng đội Tin 8 (4/4 học sinh đạt 
giải, trong đó 2 nhất, 1 nhì, 1 ba); Nhì đồng đội Tin 9 (2/2 HS đạt giải, trong 
đó 1 nhì, 1 khuyến khích); 
 + Năm học 2014-2015: Nhất đồng đội Tin 8 (4/4 học sinh đạt 
giải, trong đó 02 nhất, 02 nhì); Nhất đồng đội Tin 9 (3/3 HS đạt giải, trong đó 
1 nhất, 2 khuyến khích); 
Trang 15 
VII. 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 cho học sinh 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 nhất, 100% 
học sinh tham gia dự thi đạt giải, đặt biệt đội tuyển Tin học lớp 8 năm học 
2013-2014 đạt 2 giải nhất, năm học 2014-2015 đạt 2 giải nhất với số điểm 
tuyệt đối 20/20 điểm. 
Đề 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. 
Trang 16 
VIII. Đề nghị. 
Triển khai rộng rãi nội dung đề tài “Rèn luyện cho học sinh 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 thành phố, tỉnh. 
Trang 17 
IX. Phần phụ lục. 
 - Phụ lục 1: 
BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM 
 Độc lập - Tự do - Hạnh phúc 
Số: 7723/BGDĐT-GDTrH 
V/v: Hướng dẫn dạy môn Tin học Hà Nội, ngày 22 tháng 8 năm 2008 
 tự chọn lớp 8 năm học 2008-2009 
 Kính gửi: Các Sở Giáo dục và Đào tạo 
Tin học ở cấp THCS là 1 trong 3 môn học, hoạt động giáo dục tự chọn ở cấp THCS 
(Ngoại ngữ 2, Tin học, Nghề phổ thông) dành cho các lớp có điều kiện. Thời lượng dạy 
Tin học tự chọn là 2 tiết/tuần trong cả cấp học, bố trí vào thời lượng dạy học tự chọn 2 
tiết/tuần trong Kế hoạch giáo dục cấp THCS. Môn Tin học đã được đưa vào dạy ở lớp 6 từ 
năm học 2006-2007, ở lớp 7 từ năm học 2007-2008 và từ năm học 2008-2009 được đưa 
vào dạy học ở lớp 8. Việc tổ chức thực hiện như sau: 
1. Nếu đã dạy học môn Tin học tự chọn cho lớp 7 năm học 2007-2008, tiếp tục dạy 
môn Tin học tự chọn khi chuyển lên lớp 8. Các Sở GDĐT tổ chức tập huấn giáo viên dạy 
học môn Tin học tự chọn lớp 8 theo hướng dẫn của Bộ GDĐT, không để giáo viên chưa 
qua tập huấn. 
2. Những nơi có đủ điều kiện về giáo viên, CSVC cần tổ chức dạy học môn Tin học 
tự chọn từ lớp 6, khi học sinh có nguyện vọng. Các lớp đã học môn Tin học từ lớp 6 phải 
chuẩn bị để học liên tục cho đến hết cấp THCS. Đối với lớp 9, có thể tiếp tục dạy học Tin 
học theo hướng dẫn trước đây tại công văn số 5488/GDTrH ngày 05/7/2004 của Bộ 
GDĐT. 
3. Tài liệu dạy học Tin học tự chọn cấp THCS do Bộ GDĐT ban hành, gồm 4 cuốn: 
Tin học dành cho THCS quyển 1 (lớp 6), quyển 2 (lớp 7), quyển 3 (lớp 8) và quyển 4 (lớp 
9). Các trường THCS liên hệ với các cơ sở phát hành sách giáo khoa để chuẩn bị tài liệu 
cho giáo viên và hướng dẫn học sinh mua sắm tài liệu Tin học dành cho THCS quyển 1, 
quyển 2 và quyển 3. 
4. Việc kiểm tra, đánh giá kết quả học tập môn Tin học tự chọn cấp THCS, thực hiện 
theo Quy chế đánh giá, xếp loại học sinh THCS và học sinh THPT của Bộ GDĐT; kết quả 
học tập của học sinh được ghi vào Sổ Gọi tên và ghi điểm cũng như vào Học bạ ở phần 
dành cho các môn học tự chọn. 
Trong quá trình thực hiện, nếu có khó khăn vướng mắc đề nghị các Sở GDĐT báo cáo 
với Bộ GDĐT (qua Vụ GDTrH) để kịp thời giải quyết. 
Nơi nhận: 
- Như trên; 
- TT Nguyễn Vinh Hiển (để b/cáo); 
- NXB Giáo dục (để phối hợp); 
- Lưu: VT, Vụ GDTrH. 
TL. BỘ TRƯỞNG 
VỤ TRƯỞNG VỤ GIÁO DỤC TRUNG HỌC 
Lê Quán Tần 
Trang 18 
 - Phụ lục 2: 
Trang 19 
- Phụ lục 3 
Trường THCS Lý Tự Trọng KHẢO SÁT HỌC SINH GIỎI TIN 8 LẦN 1 
 TỔ: TOÁN – TIN NĂM HỌC: 2014-2015 
 Thời gian: 90 phút (không kể giao đề) 
ĐỀ CHÍNH

Tài liệu đính kèm:

  • pdfsang_kien_kinh_nghiem_ren_luyen_cho_hoc_sinh_ky_nang_viet_ch.pdf