SKKN Xây dựng một số thuật toán cơ bản nhằm cải thiện kĩ năng lập trình Tin học 11 cho học sinh ở một trường miền núi

SKKN Xây dựng một số thuật toán cơ bản nhằm cải thiện kĩ năng lập trình Tin học 11 cho học sinh ở một trường miền núi

Trong chương trình Tin học bậc THPT, các em lớp 11 được tìm hiểu với ngôn ngữ lập trình (NNLT) để trang bị cho các em những kiến thức, kỹ năng cơ bản về lập trình, biết vận dụng chúng để giải một số bài tập cơ bản hình thành những loại hình tư duy như tư duy thuật giải, tư duy điều khiển.

Tuy nhiên, môn học có những khái niệm trừu tượng nên các em gặp nhiều khó khăn trong quá trình tiếp thu bài. Bởi khi học phần lập trình đòi hỏi học sinh phải tư duy, mà khó khăn nhất đối với các em là bước “Lựa chọn và thiết kế thuật toán”.

Khi nắm vững cách lựa chọn và thiết kế thuật toán, học sinh sẽ dễ dàng viết chương trình để giải bài toán trên máy tính bằng bất kỳ ngôn ngữ bậc cao nào. Từ đó, các em có hứng thú với bộ môn Tin học hơn.

Hơn nữa, việc lựa chọn và thiết kế thuật toán để giải bài toán trên máy tính giúp rèn luyện cho học sinh khả năng tư duy, sáng tạo, biết phân tích và giải quyết tình huống. Đây là những kỹ năng cần thiết để sau này các em hoà nhập vào thực tế cuộc sống.

Xuất phát từ thực tiễn giảng dạy tại trường THPT Quan Hóa , nhằm giúp học sinh bước đầu hiểu rõ và tiếp cận với thuật toán giải bài toán để việc lập trình đạt kết quả tốt hơn, tôi lựa chọn đề tài “ Xây dựng một số thuật toán cơ bản nhằm cải thiện kĩ năng lập trình tin học 11 cho học sinh ở một trường miền núi”.

 

doc 17 trang thuychi01 6074
Bạn đang xem tài liệu "SKKN Xây dựng một số thuật toán cơ bản nhằm cải thiện kĩ năng lập trình Tin học 11 cho học sinh ở một trường miền núi", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
 Trang
1. MỞ ĐẦU
1.1. Lý do chọn đề tài
Trong chương trình Tin học bậc THPT, các em lớp 11 được tìm hiểu với ngôn ngữ lập trình (NNLT) để trang bị cho các em những kiến thức, kỹ năng cơ bản về lập trình, biết vận dụng chúng để giải một số bài tập cơ bản hình thành những loại hình tư duy như tư duy thuật giải, tư duy điều khiển...
Tuy nhiên, môn học có những khái niệm trừu tượng nên các em gặp nhiều khó khăn trong quá trình tiếp thu bài. Bởi khi học phần lập trình đòi hỏi học sinh phải tư duy, mà khó khăn nhất đối với các em là bước “Lựa chọn và thiết kế thuật toán”.
Khi nắm vững cách lựa chọn và thiết kế thuật toán, học sinh sẽ dễ dàng viết chương trình để giải bài toán trên máy tính bằng bất kỳ ngôn ngữ bậc cao nào. Từ đó, các em có hứng thú với bộ môn Tin học hơn.
Hơn nữa, việc lựa chọn và thiết kế thuật toán để giải bài toán trên máy tính giúp rèn luyện cho học sinh khả năng tư duy, sáng tạo, biết phân tích và giải quyết tình huống. Đây là những kỹ năng cần thiết để sau này các em hoà nhập vào thực tế cuộc sống.
Xuất phát từ thực tiễn giảng dạy tại trường THPT Quan Hóa , nhằm giúp học sinh bước đầu hiểu rõ và tiếp cận với thuật toán giải bài toán để việc lập trình đạt kết quả tốt hơn, tôi lựa chọn đề tài “ Xây dựng một số thuật toán cơ bản nhằm cải thiện kĩ năng lập trình tin học 11 cho học sinh ở một trường miền núi”.
1.2. Mục đích nghiên cứu:
Giúp học sinh hiểu được thuật toán của các bài toán cơ bản. Từ đó, các em có thể hình thành tư duy lập trình cho các bài toán khác.
1.3. Đối tượng và phạm vi áp dụng:
+ Đối tượng nghiên cứu:
 Học sinh khối 11 ở các lớp trường THPT Quan Hoá, bộ môn Tin học để rèn luyện kỹ năng tư duy thuật toán từ đó nâng cao hiệu quả lập trình.
+ Phạm vi nghiên cứu:
- Bài 3: Bài toán và thuật toán 10.
- Bài tập chương II, III trong sách giáo khoa (SGK) Tin học 11.
+ Nhiệm vụ của đề tài:
- Đảm bảo được tính chính xác của thuật toán trong các bài toán đưa ra.
- Cách thức lựa chọn, diễn tả thuật toán, viết chương trình cho bài toán
1.4. Phương pháp nghiên cứu: 
- Phương pháp nghiên cứu lí thuyết: Nghiên cứu tài liệu và các công trình nghiên cứu đổi mới PPDH theo hướng tích cực hóa việc học của học sinh.
- Phương pháp thực tập sư phạm: Thực nghiệm sư phạm ở trường THPT Quan Hóa, tiến hành theo quy trình của đề tài nghiên cứu khoa học giáo dục để đánh giá hiệu quả của đề tài nghiên cứu. 
- Phương pháp thống kê toán học: thống kê, đánh giá kết quả thu được.
2. NỘI DUNG SÁNG KIẾN KINH NGHIỆM
2.1. Cơ sở lý luận: 
* Lịch sử nghiên cứu vấn đề:
- Khi các em đã xây dựng được thuật toán thì có thể sử dụng bất kỳ một ngôn ngữ bậc cao nào cũng sẽ viết được chương trình trên cơ sở đảm bảo tính tối ưu.
* Cơ sở khoa học của giải pháp:
Là một người giáo viên giảng dạy bộ môn Tin học, tôi nhận thức được nhiệm vụ cơ bản của mình:
- Cung cấp cho học sinh kiến thức phổ thông cơ bản có hệ thống và toàn diện về môn Tin học.
- Rèn luyện cho học sinh những kỹ năng chủ yếu sau: 
+ Giải được một số bài toán đơn giản trên máy tính bằng cách vận dụng các kiến thức của thuật toán.
+ Tư duy thuật toán, từ đó rèn luyện tư duy logic.
+ Củng cố kiến thức các môn học như Toán, Lý...
2.2. Thực trạng của vấn đề.
* Thuận lợi:
- Toàn ngành, toàn xã hội đang đề cao việc ứng dụng công nghệ thông tin vào tất cả các lĩnh vực ảnh hưởng tích cực theo đó các em học sinh có hứng thú hơn.
- Môn Tin học là môn chính khoá trong trường phổ thông.
- Các em học sinh thích được thực hành trên máy tính để nghiên cứu tìm tòi.
* Khó khăn:
- Máy vi tính và các thiết bị hỗ trợ còn hạn chế ngoài thời gian thực hành tại trường đa phần các em chỉ học qua sách.
- Phần lập trình hoàn toàn xa lạ với học sinh. 
- Chất lượng học sinh ở trường còn thấp không đồng đều ở các lớp. 
- Học sinh lớp 11 vẫn còn gặp khó khăn với đa phần học sinh của nhà trường trong việc xác định thuật toán để lập trình cho bài toán.do đó khi viết chương trình, sản phẩm thu được chưa đảm bảo tính tối ưu.
2.3. Nội dung của giải pháp
2.3.1. Tìm hiểu về thuật toán của bài toán
2.3.1.1. Khái niệm bài toán
a. Bài toán
Trong tin học, người ta quan niệm bài toán là một việc nào đó ta muốn máy tính thực hiện. Những việc như đưa một dòng chữ ra màn hình, giải phương trình bậc hai, quản lý cán bộ của một cơ quan... là những ví dụ về bài toán.
Khi dùng máy tính giải toán, ta cần quan tâm đến hai yếu tố: Đưa vào máy thông tin gì (Input) và lấy ra thông tin gì (Output). Do đó để phát biểu một bài toán, ta cần phải trình bày rõ Input và Output của bài toán và mối quan hệ giữa Input và Output.
b. Các bước để giải bài toán trên máy tính
Bước 1: Xác định bài toán: Xác định Input/Output và mối liên hệ giữa chúng.
Bước 2: Lựa chọn hoặc xây dựng thuật toán: Thiết kế hoặc lựa chọn thuật toán đã có đề giải bài toán.
Bước 3: Viết chương trình: Lựa chọn cách tổ chức dữ liệu và sử dụng NNLT để diễn tả đúng thuật toán .
Bước 4: Hiệu chỉnh.
Bước 5: Viết tài liệu.
c. Cấu trúc của chương trình sử dụng ngôn ngữ lập trình Pascal
Bao gồm 2 phần: 	[ ]
* Phần khai báo:
- Khai báo tên chương trình program ;
- Khai báo thư viện Uses crt;
- Khai báo hằng const = ;
- Khai báo biến var : ;
* Phần thân:
Begin
[];
End.
2.3.1.2. Thuật toán
* Khái niệm: Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác ấy, từ Input của bài toán, ta nhận được Output cần tìm.
* Tính chất của thuật toán
+ Tính tổng quát: thuật toán không chỉ đề cập một bài toán riêng lẻ mà bao hàm một lớp bài toán cùng kiểu
+ Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện các thao tác.
+ Tính xác định: Sau khi thực hiện một thao tác thì hoặc là thuật toán kết thúc hoặc là có đúng một thao tác xác định để được thực hiện tiếp theo.
+ Tính đúng đắn: sau khi thuật toán kết thúc ta phải nhận được Output cần tìm.
* Thuật toán có thể phân loại như sau:
- Thuật toán không phân nhánh.
- Thuật toán có phân nhánh.
- Thuật toán theo chu trình có bước lặp xác định và có bước lặp không xác định.
* Có 2 cách thể hiện thuật toán:
+ Liệt kê: Thể hiện thuật toán thông qua các bước.
+ Sơ đồ khối: Sử dụng các kí hiệu để thể hiện. 
Các kí hiệu để diễn tả thuật toán bằng sơ đồ khối.
 Quy định trình tự thực hiện các phép toán
	 Thể hiện các thao tác nhập, xuất dữ liệu
 	 Thể hiện các phép tính toán
 Thể hiện thao tác so sánh 	 
* Lưu ý: 
- Với hình ô van thì chỉ có một hướng mũi tên đi ra cho trường hợp thao tác nhập dữ liệu và chỉ có một hướng đi vào cho thao tác xuất dữ liệu.
- Với hình chữ nhật thì có một hướng mũi tên vào và một hướng mũi tên ra.
- Với hình thoi thì có một hướng mũi tên vào và hai hướng mũi tên ra.
2.3.2. Cách thức viết chương trình đối với các dạng thuật toán
* Thuật toán không phân nhánh: đây là dạng thuật toán đơn giản, sau khi học sinh xác định bài toán, vận dụng các kiến thức liên quan, sử dụng một số hàm học chuẩn đã học để giải quyết bài toán.
* Thuật toán có phân nhánh: sử dụng câu lệnh if...then để viết chương trình
	Cấu trúc của câu lệnh rẽ nhánh if...then:
+ Dạng thiếu: if then ;
+ Dạng đủ: if then else;
* Thuật toán theo chu trình có bước lặp xác định và có bước lặp không xác định.
- Thuật toán theo chu trình có bước lặp xác định:
Cấu trúc câu lệnh lặp For-do:
+ Dạng lặp tiến: for := to do ;
+ Dạng lặp lùi: for := downto do ;
Kết hợp với câu lệnh if... then để giải quyết bài toán.
- Thuật toán theo chu trình có bước lặp không xác định.
Cấu trúc câu lệnh lặp While-do:
+ While do ;
2.3.3. Một số dạng toán 
2.3.3.1 Thuật toán không phân nhánh
Bài toán:
Nhập từ bàn phím độ dài 3 cạnh của tam giác ABC, rồi tính chu vi, diện tích và các đường cao của tam giác.
* Xác định bài toán:
	- Input: độ dài 3 cạnh a,b,c
	- Output: chuvi, dientich, các đường cao ha, hb, hc
* Thuật toán: 
Bước 1: nhập độ dài 3 cạnh a,b,c;
Bước 2: 
	Pß(a+b+c)/2;
	s ß ;
	haß;	,	hbß;	hcß;
Bước 3: Đưa ra màn hình chuvi p, dientich s, các đường cao ha, hb, hc
* Chương trình:
Program tinhdt_cv_duongcao;
Var a,b,c,p,s, h1, h2, h3: real;
Begin 
 Writeln (‘ nhap do dai 3 canh:’);
 Readln (a,b,c);
	P:=(a+b+c)/2;
	S:=sqrt(p*(p-a)*(p-b)*(p-c));
	h1:=2*s/a;	;	h2:= 2*s/b;	h3:=2*s/c;
 Writeln(‘chu vi dien tich chieu cao’, p:5:2,s:5:2,h1:5:2,h2:5:2,h3:5:2);
 Readln
End.
Bài tập áp dụng:
Bài 1: Nhập từ bàn phím toạ độ 3 điểm A,B,C. Tính tích vô hướng của hai vectơ và .
Hướng dẫn:
	- Input: Toạ độ 3 điểm A, B và C;
	- Output: Tích vô hướng ;
	- Sử dụng các công thức: 	;
	 ;
Tích vô hướng: ;
Bài 2:
Nhập từ bàn phím toạ độ 3 điểm A,B,C. Tính độ dài các đoạn thẳng AB, AC và BC.
Hướng dẫn:
	- Input: Toạ độ 3 điểm A, B và C;
	- Output: Độ dài các đoạn thẳng AB,AC và BC
	- Sử dụng các công thức: AB= ;	
a
x
y
Từ các bài tập trên giáo viên hướng dẫn học làm các bài tập trong SGK chương 
Bài tâp 9 SGK_tr36: 
* Xác định bài toán:
- Input: cạnh a (a>0)
- Output: Diện tích gạch chéo
* Thuật toán:
Nhập a
s ¬ pi*sqr(a)/2
Thông báo s rồi kết thúc
Sơ đồ khối.
* Chương trình
Program Dtgachcheo;
Const pi=3.14;
Var a,s:real;
Begin
 Writeln(‘nhap canh a:’);
 Readln(a);
 S:=pi*sqr(a);
 Writeln (‘ dien tich phan gach cheo la:’,s:8:4);
 Readln;
End.
Bài tập 10 SGK_tr36: Tính và đưa ra màn hình vận tốc v khi chạm đất của một vật rơi từ độ cao h biết rằng v= trong đó g =9.8m/s2, độ cao h nhập từ bàn phím.
*Xác định bài toán:
+ Input: h 
+ Output: v
* Thuật toán
 Bước 1: Nhập h
 Bước 2: v ¬ 
Nhập h
v ¬ 
Thông báo v rồi kết thúc
 Bước 3: thông báo v và kết thúc
Sơ đồ khối
Chương trình
Program tinhvantoc;
const g=9.8;
var v,h:real;
Begin
writeln( ‘nhao do cao h:’);
readln(h);
v:=sqrt(2*g*h);
writeln(‘van toc la:’,v:6:3);
readln;
Sai
Đúng
Điều kiện
Câu lệnh
End.
2.3.3.2. Thuật toán có phân nhánh
Sơ đồ:
Dạng thiếu 
Sai
Đúng
Điều kiện
Câu lệnh 
1
Câu lệnh
2
Dạng đủ
Chú ý:
- Ta có thể sử dụng cấu trúc rẽ nhánh lồng nhau
VD: Viết chương trình giải phương trình bậc hai ax2+bx+c=0
* Xác định bài toán 
- Input: a,b,c (a0) 
- Output: Nghiệm x thoả phương trình ax2+bx+c=0
Liệt kê:	Bước 1: Nhập a,b,c (a0);
 	Bước 2: Tính D¬b*b-4*a*c;
	Bước 3: Nếu D<0 thì PTVN rồi kết thúc;
 Bước 4: Nếu D>0 thì PT có nghiệm x1¬(-b+sqrt(D))/(2*a)
 X2¬(-b-sqrt(D))/(2*a) rồi kết thúc;
 Bước 5: Nếu D= 0 thì PT có nghiệm kép x¬-b/(2*a) rồi kết thúc;
 Bước 6: Kết thúc.
Sơ đồ khối
S
Đ
S
Đ
Nhập a,b,c (a0)
D¬b*b-4*a*c
D<0
Thông báo PT vô nghiệm rồi kết thúc
D=0
Thông báo PT có nghiệm kép x rồi kết thúc
x¬-b/(2*a)
X1¬(-b+sqrt(D))/(2*a)
X2¬(-b-sqrt(D))/(2*a)
Thông báo PT có 2 nghiệm x1 và x2 rồi kết thúc
Chương trình: 
Uses Crt;
Var a , b, c : real;
	d, x1, x2 : real;
Begin
	 Clrscr;
 Write (‘a, b, c: ’);
 Readln (a, b, c) ;
	 D: = b * b – 4 * a * c ;
 if D < 0 then Writeln (‘Phuong trinh vo nghiem’)
 Else
 Begin
	 x1 = ( - b – sqrt (D))/(2 * a); x1 = ( - b + sqrt (D))/(2 * a);
	 Witeln ( ‘x1 =’, x1 : 8:3 , ‘x2 = ’ , x2 : 8:3);
 End;
 Readln
End.
Bài tập áp dụng:
Bài 1: Nhập dữ liệu là tháng trong năm
Hướng dẫn
- Tháng trong năm phải từ 1 đến 12
- Nếu thoả mãn thì thông báo là tháng, ngược lại thì thông báo không phải là tháng trong năm
Bài 2: Nhập vào một năm cho ra số ngày của năm đó
Hướng dẫn
- Kết quả là 365 ngày hoặc 366 ngày
- Năm nhuận là 366 ngày, không nhuận là 365 ngày
- Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100 
Sai
Đúng
Điều kiện
Câu lệnh
Bài 3: Giải bất phương trình ax+b> 0
Hướng dẫn
- Sử dụng thuật toán như các bài đã gặp
Hướng dẫn
- Sử dụng If lồng nhau
2.2.3.3. Thuật toán theo chu trình có bước lặp xác định.
Sơ đồ:
Bài toán: Tính giai thừa của một số nguyên dương n (n!=1.2.......(n-1).n)
Xác định bài toán + Input: Số nguyên dương n;
+ Output: Giai thừa của n (GT)
Sơ đồ khối
Đ
S
Nhập n 
GT¬1
i¬1
GT¬GT*i
i¬i+1
i £ n
Thông báo GT rồi kết thúc
Chương trình: 
Program tinhgiaithua
Var i,n,gt: integer;
Begin
 Writeln(‘ nhap n:’);
 Readln(n);
For :=1 to n do gt:=gt*i;
Writeln(‘giai thua cua n la:’,gt);
Readln
End.
Bài tập áp dụng: 
Bài 1: Tính tổng 
S= 1 + 2 + 3 + ..+ n
với n nhập từ bàn phím
Bài 2: Tính tổng
với n nhập từ bàn phím
Giáo viên yêu cầu học sinh áp dụng làm các bài tâp trong SGK
Bài tập 5a SGK_ tr51: Lập trình tính Y=
Thuật toán
Liệt kê: 
Bước 1: iß1; sß0;
Bước 2: Nếu i>50 thì sang bước 4;
Bước 3: 	
sßs+i/(i+1);
 ißi+1; 
	quay lại bước 2;
	 Bước 4: Thông báo s và kết thúc.
Bài tập 6/SGK tr51: tương tự
2.3.3.4. Thuật toán theo chu trình có bước lặp không xác định.
Sai
Đúng
Điều kiện
Câu lệnh
Sơ đồ:
Bài toán: Tìm ước số chung lớn nhất của hai số nguyên dương a và b
* Xác định bài toán 
+ Input: Số nguyên dương a,b;
+ Output: UCLN(a,b)
Thuật toán:
 Bước 1: Nhập a,b;
 Bước 2: Nếu a=b thì lấy giá trị chung này làm UCLN rồi kết thúc;
 Bước 3: Nếu a>b thì a¬a – b rồi quay lại bước 2;
Đ
S
b¬b-a
ĐƯA KQ
UCLN(a,b)=a
KẾT THÚC
Nhập a,b
a=b
a¬a-b
a>b
Đ
S
 Bước 4: b¬b – a rồi quay lại bước 2;
 Bước 5: Đưa ra kết quả UCLN rồ kết thúc.
Chương trình; 
Program UCLN; 
Var a,b,ucln:integer;
Begin
 Writeln(‘nhap a,b’);
 Readln(a,b);
 While ab do
 If a>b then a:=a-b else b:= b-a;
 If a=b then ucln:=a;
Writeln(‘ uoc chung lon nhat la: ‘, ucln);
Readln;
End.
Bài tập áp dụng:
Bài tập 7 SGK/tr51 :
Nhập từ bàn phím tuổi của cha và con (hiện tại tuổi cha lớn hơn hai lần tuổi con và tuổi cha hơn tuổi con ít nhất là 25 ). Đưa ra màn hình câu trả lời cho câu hỏi “Bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con ?
 *Xác định bài toán:
Input: nhập tuổi cha, tuổi con;
Output: số năm tuổi cha gấp đôi tuổi con
*Thuật toán:
Bước 1: nhập tuoicha, tuoicon (điều kiện tuoicha >2*tuoicon và tuoicha-tuoicon>=25)
Bước 2: namß0;
Bước 3: nếu tuoicha= 2*tuoicon thì đến bước 5;
Bước 4: tuoichaßtuoicha+1;
 tuoiconßtuoicon + 1;
 namßnam+1;
Bước 5: thông báo số năm và kết thúc.
*Chương trình 
 Var Tuoicha, tuoicon, nam : word;
Begin
Writeln (‘ nhap tuoi cha va con’);
Writeln (‘tuoi cha >2*tuoicon ca tuoicha-tuoicon>=25’);
Readln(tuoicha, tuoicon);
Nam:=0;
While tuoicha2*tuoicon do
 Begin
Tuoicha:= tuoicha + 1;
Tuoicon:=tuoicon+1;
Nam:=nam+1;
End;
Writeln(‘sau’,nam,’nam tuoi cha gap doi tuoi con’);
Readln
End.
Bài 1: Kiểm tra xem khi nhập một số tự nhiên vào có phải là số nguyên tố hay không.
Hướng dẫn
- Nhập vào số tự nhiên N 
- Chú ý: N<=1 thì thông báo “Không xét”
- Lấy N chia cho các số tự nhiên lớn hơn 1 và nhỏ hơn nó. Nếu N là số nguyên tố thì các phép chia có số dư khác 0. Nếu N không là số nguyên tố thì sẽ có một phép chia có dư bằng 0 
Học sinh áp dụng làm bài tập trong SGK
Bài tập 5b/SGK_51 
Tính tổng: e(n) = 1 + + + ..+ + cho đến khi < 2 x 10-6
Thuật toán 
Đ
Sh ¬ 1/2
N ¬ 2
e ¬ 2+sh
sh>=2*1E-6
n¬ n + 1
sh ¬ sh*(1/n)
e ¬ e+ sh
Thông báo S và kết thúc
S
Chương trình:
Var N:longint;
 E,sh: real;
Begin
Sh:=1/2;
N:=2;
E:=2+sh;
While sh>=2*1E-6 do 
 Begin
I:=i+1;
Sh:=sh*(1/n);
E:= e+sh;
 End;
Writeln(‘ gia tri e(n) la:’,e:10:6);
Readln;
End.
2.4. Hiệu quả của SKKN
Mặc dù đây là một nội dung tương đối khó với đa phần học sinh miền núi nơi chất lượng đầu vào hàng năm quá thấp đa phần không tuyển đủ học sinh theo chỉ tiêu đề ra và mức độ phạm vi ứng dụng sáng kiến kinh nghiệm còn rất chi là hạn chế nhưng trong thời gian nghiên cứu và áp dụng tôi thấy cũng mang lại một số hiệu quả nhất định:
2.4.1. Kết quả định tính. 
- Về tạo hứng thú học tập cho học sinh: Vì nhận thấy được những ứng dụng rất hữu ích của môn Tin học thông qua việc lựa chọn và thiết kế thuật toán để viết một chương trình nên các em học sinh càng yêu thích và say mê học hơn, kết quả học tập của các em tốt hơn.
- Về rèn luyện kỹ năng: kỹ năng tư duy, sáng tạo, biết phân tích và giải quyết tình huống của các em học sinh ngày càng tốt hơn, các em có thể tự viết được những chương trình để giải các bài tập Toán, Lý, Hoá của bậc phổ thông.
- Về giáo dục nhận thức: các em hiểu rõ tầm quan trọng của việc xây dựng thuật toán trong lập trình từ đó hiểu rõ tầm quan trọng của tin học trong thời đại công nghệ 4.0
2.4.2 Kết quả định lượng.
Kết quả bài kiểm tra 1 tiết sau khi thực hiện SKKN như sau: 
Lớp đối chứng (ĐC): 11A3, 11A4
Lớp thực nghiệm (TN): 11A1, 11A2
Lần KT
Phương án
Số bài
Điểm yếu
Điểm TB
Điểm khá
Điểm giỏi
SL
%
SL
%
SL
%
SL
%
1
ĐC
77
15
19.5
46
59.7
16
20.8
0
0
TN
81
7
8.6
33
40.7
35
43.3
6
7.4
Qua kết quả nghiên cứu ta thấy rằng, ở lớp thực nghiệm tỷ lệ đạt điểm khá giỏi đều cao hơn lớp đối chứng. Ngược lại, tỷ lệ điểm trung bình và dưới trung bình của lớp đối chứng lại cao hơn. Điều đó phần nào cho thấy học sinh lớp thực nghiệm tiếp thu kiến thức nhiều hơn và tốt hơn.
3. KẾT LUẬN
3.1 Kết luận.
Qua thời gian gần 10 năm giảng dạy tại trường THPT Quan Hóa – một trường miền núi cao của Thanh Hóa, nơi có chất lượng đầu vào thấp, học sinh không ham học trong khi đời sống nhân dân còn nghèo. Tôi muốn bằng sức mình làm thay đổi điều gì đó vì lợi ích của học sinh, của nhân dân Quan Hóa. Tôi hiểu được rằng việc thay đổi ý thức của con người là vô cùng khó khăn, và để thay đổi ý thức học tập của học sinh thì trước hết người giáo viên phải thay đổi phương pháp, hình thức tổ chức dạy học của mình. Tôi đã từng bước thay đổi các hoạt động dạy học, giao quyền chủ động cho các em, kích thích sự tò mò tìm hiểu kiến thức ở mỗi học sinh để làm tăng hứng thú học tập cho học sinh từ đó giúp các em hiểu rõ tầm quan trọng của Tin học trong cuộc sống xã hội ngày nay.
Đề tài giúp nâng cao kỹ năng tư duy cho học sinh không chỉ môn học nói riêng mà còn các môn tự nhiên nói chung, từ đó cải thiện được chất lượng học tập của các em.
3.2 Kiến nghị.
 Để học tốt được bộ môn Tin học cần có sự trợ giúp về phương tiện, nhất là máy tính và máy chiếu. Tại trường THPT Quan Hóa, mới có một phòng học có lắp đặt máy chiếu dùng chung cho cả trường và vị trí cách xa lớp học ở khoảng cách trên 60 m vì thế việc tôi mong được sự quan tâm của các cấp, các ngành đối với cơ sở vật chất của nhà trường. 
Trên đây là những kinh nghiệm rất nhỏ mà tôi đã đúc rút được từ quá trình giảng dạy ở trường THPT Quan Hóa, tôi xin chia sẻ với các đồng nghiệp. Dù đã rất nhiều cố gắng nhưng chắc chắn không tránh khỏi sai sót. Tôi mong nhận được sự đóng góp ý kiến từ Ban giám hiệu nhà trường, các đồng nghiệp để tôi bổ sung, rút kinh nghiệm, tiếp tục cống hiến cho sự nghiệp giáo dục miền núi.
XÁC NHẬN CỦA HIỆU TRƯỞNG
Quan Hóa ngày 18 tháng 5 năm 2019
Tôi xin cam đoan đây là SKKN do bản thân viết không sao chép nội dung của người khác.
Võ Văn Thuận
TÀI LIỆU THAM KHẢO
[1] Hồ Sĩ Đàm – Sgk Tin học 10 – NXBGD.
[2] Hồ Sĩ Đàm – Sgk Tin học 11 – NXBGD.
[3] Hồ Sĩ Đàm – Sgv Tin học 10 – NXBGD.
[4] Hồ Sĩ Đàm – Sgv Tin học 11 – NXBGD.
[5] Quách Tuấn Ngọc – Ngôn ngữ lập trình Pascal
[6] Thuật toán và kỹ thuật lập trình – NXB Hà Nội
 [7] Nguồn Internet: violet.vn, tailieu.vn...
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ
	TRƯỜNG THPT QUAN HOÁ
SÁNG KIẾN KINH NGHIỆM
XÂY DỰNG MỘT SỐ THUẬT TOÁN CỞ BẢN NHẰM CẢI THIỆN KĨ NĂNG LẬP TRÌNH TIN HỌC 11 CHO HỌC SINH Ở MỘT TRƯỜNG MIỀN NÚI
 Người thực hiện: Võ Văn Thuận 
	 Chức vụ: Giáo viên
	 SKKN thuộc môn: Tin học
THANH HÓA NĂM 2019

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

  • docskkn_xay_dung_mot_so_thuat_toan_co_ban_nham_cai_thien_ki_nan.doc