Tải bản đầy đủ (.doc) (16 trang)

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”

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (181.1 KB, 16 trang )

MỤC LỤC
Trang

1. MỞ ĐẦU.......................................................................................................2
1.1. Lý do chọn đề tài......................................................................................2
1.2. Mục đích nghiên cứu:...............................................................................2
1.3. Đối tượng và phạm vi áp dụng:...............................................................2
1.4. Phương pháp nghiên cứu:........................................................................2
2. NỘI DUNG SÁNG KIẾN KINH NGHIỆM.............................................3
2.1. Cơ sở lý luận:............................................................................................3
2.2. Thực trạng của vấn đề..............................................................................3
2.3. Nội dung của giải pháp.............................................................................3
2.3.1. Tìm hiểu về thuật toán của bài toán....................................................3
2.3.1.2. Thuật toán...........................................................................................4
2.3.2. Cách thức viết chương trình đối với các dạng thuật toán.................5
2.3.3.1 Thuật toán không phân nhánh...........................................................5
2.3.3.2. Thuật toán có phân nhánh.................................................................7
2.2.3.3. Thuật toán theo chu trình có bước lặp xác định.............................9
2.3.3.4. Thuật toán theo chu trình có bước lặp không xác định................10
2.4. Hiệu quả của giải pháp...........................................................................13
2.4.1. Kết quả định tính.................................................................................13
2.4.2. Kết quả định lượng..............................................................................13
3. KẾT LUẬN
14
3.1 Kết luận....................................................................................................14
3.2 Kiến nghị..................................................................................................14


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>]
<Phần thân>
* Phần khai báo:
- Khai báo tên chương trình program <tên chương trình>;
- Khai báo thư viện Uses crt;
- Khai báo hằng const <tên hằng> = <giá trị>;
- Khai báo biến var <danh sách biến>: <kiểu dữ liệu>;
* Phần thân:
Begin
[<Dãy lệnh>];
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 <điều kiện> then <câu lệnh>;

+ Dạng đủ: if <điều kiện> then <câu lệnh 1> else<câu lệnh 2>;
* 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 <biến đếm>:= <giá trị đầu> to <giá trị cuối> do
<câu lệnh>;
+ Dạng lặp lùi: for <biến đếm>:=<giá trị cuối> downto <giá trị đầu>
do <câu lệnh>;
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 <điều kiên> do <câu lệnh>;
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  p(p-a)(p-b)(p-c) ;
ha


2s
;
a

,

hb

2s
;
b

hc

2s
;
c

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ơ AB và AC .
Hướng dẫn:
- Input: Toạ độ 3 điểm A, B và C;
- Output: Tích vô hướng AB. AC ;
uuur
- Sử dụng các công thức: AB=(x B -x A ;y B -y A ) ;
uuur
AC=(x C -x A ;y C -y A ) ;
uuur uuur
Tích vô hướng: AB.AC=(x B -x A ).(x C -x A )+(yB -y A ).(yC -y A ) ;
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
uuur

2
2
- Sử dụng các công thức: AB= AB = (x B -x A ) +(y B -y A ) ;

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
y
Bài tâp 9 SGK_tr36:

a
* Xác định bài toán:
- Input: cạnh a (a>0)
x
- Output: Diện tích gạch chéo


* Thuật toán:
Sơ đồ khối.
Nhập a
* Chương trình
Program Dtgachcheo;
Const pi=3.14;
Var a,s:real;
s  pi*sqr(a)/2
Begin
Writeln(‘nhap canh a:’);
Readln(a);
S:=pi*sqr(a);
Thông báo s
Writeln (‘ dien tich phan gach cheo la:’,s:8:4);
rồi kết thúc
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= 2gh 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  sqrt(2*9.8*h)
Bước 3: thông báo v và kết thúc
Nhập h
Sơ đồ khối
Chương trình
Program tinhvantoc;
const g=9.8;
var v,h:real;
v
Begin
writeln( ‘nhao do cao h:’);
readln(h);
v:=sqrt(2*g*h);
Thông báo v
writeln(‘van toc la:’,v:6:3);
rồi kết thúc
readln;
End.
2.3.3.2. Thuật toán có phân nhánh
Sơ đồ:
Dạng thiếu
Đúng
Điều
Câu lệnh
kiện
Sai



Dạng đủ
Câu lệnh
2

Sai

Điều
kiện

Đúng

Câu lệnh
1

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 (a<>0)
- Output: Nghiệm x thoả phương trình ax2+bx+c=0
Liệt kê: Bước 1: Nhập a,b,c (a<>0);
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
Nhập
a,b,c

(a<>0)
Db*b-4*a*c

D<0

Thông báo
PT vô
nghiệm rồi

Đ

kết thúc

S

D=0

Đ

x-b/
(2*a)

Thông báo PT
có nghiệm kép

x rồi kết
thúc

S
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
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
Câu lệnh
- 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ơ đồ:
Sai
Điều
Đúng kiện
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


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.

Nhập n
GT1

i1

GTGT*i

ii+1

Bài tập áp dụng:
Bài 1: Tính tổng
Đ
S= 1 + 2 + 3 + ………..+ n
i n
với n nhập từ bàn phím
S
Bài 2: Tính tổng
1 1
1
Thông báo GT rồi
S  1    ....... 
2 3

n
kết thúc
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
50

n
n 1 n  1

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.
Sơ đồ:

Điều
kiện

Đúng

Câu lệnh


Sai


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;
Bước 4: bb – a rồi quay lại bước 2;
Nhập a,b
Bước 5: Đưa ra kết quả UCLN rồ kết thúc.
Chương trình;
Đ
Program UCLN;
ĐƯA KQ
Var a,b,ucln:integer;
UCLN(a,b
a=b
)=a
Begin
KẾT
Writeln(‘nhap a,b’);
THÚC
S
Readln(a,b);
S

While a<>b do
bb-a
a>b
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;
aa-b
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à tuoichatuoicon>=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 tuoicha<>2*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 +

1
1
1
1

+
+ …..+
+… cho đến khi
< 2 x 10-6
n!
2!
n!
n!

Thuật toán
Sh  1/2
N 2

e  2+sh
S

Đ

sh>=2*1
E-6

Chương trình:
Var N:longint;
E,sh: real;
Begin

n n + 1
sh  sh*(1/n)
e  e+ sh


Thông báo
S và kết
thúc


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
Điểm yếu
Điểm TB
Điểm khá Điểm giỏi
Lần Phương
Số bài
KT
án
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



×