Nâng cao hiệu quả trong giờ thực hành tin học 11. Sáng kiến kinh nghiệm “Một số biện pháp phát huy năng lực của học sinh nâng cao hiệu quả trong giờ thực hành tin học 11” với mong muốn đóng góp một phần rất nhỏ về phương pháp dạy thực hành môn tin học, cùng chia sẻ kinh nghiệm với các bạn đồng nghiệp.
Trang 1CẤU TRÚC SÁNG KIẾN
PHẦN MỞ ĐẦU 2
1 Lý do chọn đề tài 2
2 Mục đích nghiên cứu 2
3 Phương pháp nghiên cứu 2
4 Phạm vi nghiên cứu 3
PHẦN NỘI DUNG 4
I Tình hình thực tế trước khi thực hiện đề tài 4
II Một số biện pháp phát huy năng lực của học sinh nhằm nâng cao hiệu quả giờ thực hành 4
1 Chuẩn bị của giáo viên và học sinh 4
2 Một số biện pháp 5
a) Phát huy năng lực tự học 5
b) Phát triển năng lực đặt và giải quyết vấn đề 8
c) Nhận xét, đánh giá giờ thực hành 14
d) Phân loại học sinh 15
III Kết quả 16
PHẦN KẾT LUẬN VÀ KIẾN NGHỊ 17
1 Bài học kinh nghiệm 17
2 Hạn chế và phạm vi áp dụng 17
3 Hướng phát triển 17
4 Kiến nghị đề xuất 18
TÀI LIỆU THAM KHẢO 19
Trang 2PHẦN MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay môn Tin học đã trở thành môn học bắt buộc trong nhà trườngphổ thông Đây là một thuận lợi rất lớn cho việc tiến hành giảng dạy Họcsinh sẽ nghiêm túc hứng thú và có trách nhiệm hơn khi học môn Tin học.Một trong những đặc thù của môn Tin học đó là lí thuyết gắn liền vớithực hành Rất nhiều bài học được diễn đạt hoàn toàn thông qua các thao tácthực hành trên máy tính Đồng thời, sau mỗi tiết lí thuyết, lại có bài thực hành
để học sinh củng cố và nâng cao kĩ năng thực hành Do vậy dạy thực hành tinhọc là yếu tố không thể thiếu khi giảng dạy môn tin học
Tuy nhiên, qua quá trình giảng dạy, tôi nhận thấy việc tổ chức cho họcsinh thực hành còn chưa đạt hiệu quả cao do nhiều yếu tố tác động Một trongcác yếu tố đó là sự tổ chức giờ thực hành còn thiếu khoa học, chưa phát huyhết được tính tích cực, chủ động của học sinh
Là một giáo viên được giảng dạy môn tin học tại trường, tôi cũng nhiềulần băn khoăn, suy nghĩ làm sao để nâng cao được hiệu quả thực hành mônTin học, đặc biệt giúp các em nâng cao kĩ năng, năng lực thực hành lập trình
Pascal trong chương trình tin học lớp 11 Do vậy tôi viết kinh nghiệm “Một
số biện pháp phát huy năng lực của học sinh nâng cao hiệu quả trong giờ thực hành tin học 11” với mong muốn đóng góp một phần rất nhỏ về
phương pháp dạy thực hành môn tin học, cùng chia sẻ kinh nghiệm với cácbạn đồng nghiệp
2 Mục đích nghiên cứu
Nghiên cứu tổ chức dạy học thực hành tin học nhằm phát huy năng lực
và nâng cao chất lượng của học sinh trong giờ thực hành tin học lớp 11
3 Phương pháp nghiên cứu
Khảo sát thực trạng, tiến hành thực nghiệm qua tiết dạy thực tế, có đốichứng kết quả trước và sau khi thực hiện
Trang 34 Phạm vi nghiên cứu
- Thời gian nghiên cứu: Tháng 9/2013 đến tháng 2/2016
- Đối tượng nghiên cứu: Học sinh khối 11
- Địa điểm nghiên cứu: Trường THPT Nguyễn Siêu
Trang 4PHẦN NỘI DUNG
I Tình hình thực tế trước khi thực hiện đề tài
Một thực trạng phổ biến hiện nay là giờ thực hành, giáo viên sau khikhởi động máy tính lại phải đợi học sinh gõ văn bản chương trình mất rấtnhiều thời gian, sau đó hướng dẫn sửa lỗi được 1, 2 nhóm là hết giờ Trongkhi đó các nhóm khác, học sinh không biết phải làm gì, không biết khắc phụclỗi như thế nào, thậm chí còn không biết là mình có sai hay không? Đa số họcsinh không tự sửa được lỗi, nếu học sinh có hỏi, giáo viên cũng không đủ thờigian sửa lỗi cho tất cả các máy Đặc biệt học sinh gặp khó khăn trong cáctrường hợp mà bài tập thực hành chưa có chương trình cụ thể mà mới đượcgiáo viên mô tả giải thuật và lúng túng không biết viết các lệnh nhằm giaotiếp giữa người và máy được dễ dàng
Một số học sinh không thể thực hành được nhiệm vụ của giờ thực hànhnên chán nản, gây mất trật tự hoặc quay sang thực hiện các thao tác ngoài nộidung bài học Do đó, các giờ thực hành thường không đạt được mục đích, yêucầu đã đề ra
II Một số biện pháp phát huy năng lực của học sinh nhằm nâng cao hiệu quả giờ thực hành.
Để nâng cao chất lượng dạy học thì một trong các biện pháp là phải thựchiện hiệu quả các giờ thực hành trên phòng máy Trải qua quá trình giảng dạy,tôi xin đề xuất một số biện pháp sau nhằm nâng cao hiệu quả các giờ thựchành:
1 Chuẩn bị của giáo viên và học sinh
Giáo viên:
Tổ chức vào lớp: Do vị trí phòng thực hành trên tầng 3, nên việc chohọc sinh di chuyển lên phòng thực hành mất khá nhiều thời gian Do vậy, cầncho các em lên phòng thực hành trước khoảng 3 đến 5 phút
Chuẩn bị tốt phương tiện dạy học như phòng máy, máy tính hoạt độngtốt, đầy đủ chuột, bàn phím, các phần mềm học tập, máy chiếu, phông chiếu(nếu cần)
Trang 5Phổ biến và thực hiện nghiêm túc nội quy thực hành trong phòng máy
Sáng tạo là một vấn đề quan trọng của đổi mới phương pháp giảng dạy
và giáo dục Từ đó, người ta đặt ra vấn đề giải phóng tiềm năng sáng tạo chomỗi người ở bất kỳ xã hội nào, thế hệ nào Đây là một tư tưởng đầy nhân văn
và dân chủ Trong mối tương quan như vậy, đổi mới phương pháp giáo dụcnói chung và đổi mới phương pháp dạy học nói riêng thực sự có một ý nghĩa
vô cùng to lớn Dạy học không chỉ đơn thuần là thông báo kiến thức đến họcsinh mà cái quan trọng nhất là dạy cách tự học để học sinh không chỉ học tốt
mà còn chuẩn bị một tâm thế để "học suốt đời" sau này
Đối với môn Tin học, hình thành cho học sinh thói quen tự học là mộtviệc rất cần thiết, bởi nếu học sinh chỉ học trên lớp, chỉ tiếp thu kiến thứcthầy cô giáo giảng trên lớp thì khó có thể nắm bắt hết nội dung một cách kĩcàng bởi lượng kiến thức yêu cầu trong một tiết học trên lớp rất nhiều Chính
vì vậy, với mỗi bài học, tôi thường yêu cầu học sinh tự đọc bài, tự tìm hiểubài ở nhà Đặc biệt, đối với các bài thực hành, các em tự đọc yêu cầu, đọcchương trình, hiểu từng câu lệnh trong chương trình Khi đến lớp, học sinh sẽhỏi các bạn hoặc thầy cô nội dung mà mình chưa hiểu, hoặc chạy chươngtrình trên máy để kiểm nghiệm rút ra kết luận, từ đó học sinh hiểu sâu hơn,chắc hơn kiến thức
Ví dụ trong bài thực hành 3, yêu cầu học sinh đọc trước bài ở nhà, tìmhiểu yêu cầu bài thực hành, đọc trước đề bài, chương trình thực hành trongsách giáo khoa
Bài 1 Tạo mảng A gồm n (n<=100) số nguyên, mỗi số có giá trị tuyệt đối không quá 300 Tính tổng các phần tử của mảng là bội số của một số nguyên dương k cho trước.
Khi đọc yêu cầu của bài, học sinh cần hiểu được yêu cầu của bài
Trang 6Input Cho dãy số nguyên gồm N số A1, A2…AN, số nguyên k
Output Tổng các số nguyên là bội số của k
Giả sử ta có dãy gồm 7 số nguyên là 7,6,5,9,11,23,30 và k=5 Khi đó ta
Readln(n); { Tạo ngẫu nhiên mảng A gồm N số nguyên}
For i:=1 to n do a[i]:=random(300) – random(300):
For i:=1 to n do write(a[i]:5); { In ra mảng vừa tạo}
Writeln(‘nhap k=’);
Readln(k);
S:=0;
For i:= 1 to n do
If a[i] mod k =0 then s:=s+a[i];
Writeln(‘ Tong can tinh la ‘, s);
Readln
End.
Học sinh sẽ tự đọc chương trình, tìm hiểu ý nghĩa từng câu lệnh Với cácthủ tục và hàm mới, sách giáo khoa đã chú thích rõ ràng, đa số các em họcsinh khá giỏi có thể tự hiểu Tuy nhiên với các em học sinh trung bình, yếu,
có thể chưa hiểu các em sẽ đặt ra cho mình các câu hỏi như
Thủ tục Randomize có ý nghĩa gì?
Trang 7Câu lệnh For i:=1 to n do a[i]:=random(300) – random(300); dùng để
làm gì?
Tại sao lại phải kiểm tra a[i] mod k=0 ?
Từ việc đặt ra các câu hỏi như vậy sẽ kích thích học sinh tìm hiểu câutrả lời, từ đó các em sẽ hiểu hơn, nhớ lâu hơn kiến thức
Đối với các em khá giỏi, đã hiểu chương trình ở câu a, các em sẽ đi đếntìm hiểu yêu cầu câu b)
Hãy đưa các câu lệnh sau đây vào những vị trí cần thiết nhằm sửa đổi chương trình trong câu a) để có được chương trình đưa ra số các số dương và số các số âm trong mảng
posi, neg : Integer;
posi:=0; neg:=0;
If a[i] >0 then posi:= posi+1
Else if a[i]<0 then neg:=neg +1;
writeln( posi: 4, neg:4) ;
Để thực hiện được yêu cầu ở câu b, học sinh cần hiểu được ý nghĩa từngcâu lệnh để tìm được vị trí thích hợp
Câu lệnh posi, neg : Integer; nghĩa là gì? Đa phần các em sẽ hiểu được
đây là câu lệnh khai báo hai biến posi và neg và biết đặt câu lệnh này sau từkhóa var
Câu lệnh posi:=0; neg:=0; dùng để làm gì? Đây là câu lệnh khởi tạo giá
trị cho biến posi và neg, ta có thể đặt câu lệnh này ở bất kì vị trí nào trước
vòng lặp tính giá trị posi và neg.
Câu lệnh
If a[i] >0 then posi:= posi+1
Else if a[i]<0 then neg:=neg +1;
Đây là câu lệnh đếm số posi và số neg, nhận xét rằng để kiểm tra được
hết các phần tử trong mảng A có là số dương hay âm không thì ta phải đặt câu
lệnh này trong vòng lặp for i:=1 to n do
Trang 8Câu lệnh write( posi: 4, neg:4) ; là câu lệnh hiển thị posi và neg lên màn hình nên ta sẽ đặt câu lệnh này ở cuối chương trình trước câu lệnh readln.
Để kích thích các em tự học ở nhà, tôi thường kiểm tra vào đầu tiết học,khen ngợi, cho điểm các em có tinh thần tự học, chuẩn bị bài tốt Khích lệ,nhắc nhở các em chưa tích cực tự tìm hiểu ở nhà, để các em tích cực hơn vàocác tiết học sau
Tôi nhận thấy việc yêu cầu các em tự học ở nhà giúp các em có tinh thần
tự giác trong việc học, chuẩn bị bài trước khi đến lớp, hiểu bài hơn Khi đếngiờ học, giáo viên sẽ giải đáp các thắc mắc, câu hỏi của học sinh, giảng giảicho các em nội dung còn chưa hiểu, phân tích giảng giải các nội dung khóhơn, giáo viên đi hết nội dung của bài mà vẫn đạt hiệu quả
b) Phát triển năng lực đặt và giải quyết vấn đề
Dạy học phát hiện và giải quyết vấn đề là phương pháp dạy học trong
đó giáo viên tạo ra những tình huống có vấn đề, điều khiển học sinh phát hiệnvấn đề, hoạt động tự giác, tích cực, chủ động sáng tạo để giải quyết vấn đề vàthông qua đó chiếm lĩnh tri thức, rèn luyện kĩ năng và đạt được những mụcđích học tập khác
Tình huống có vấn đề là một tình huống gợi ra cho học sinh những khókhăn về lí luận hay thực tiễn mà họ thấy cần và có khả năng vượt qua, nhưngkhông phải ngay tức khắc bằng một thuật giải mà phải trải qua quá trình tíchcực suy nghĩ, hoạt động để biến đổi đối tượng hoạt động hoặc điều chỉnh kiếnthức có sẵn
Việc lập trình Pascal trong môn tin học lớp 11 là một chuỗi các tìnhhuống có vấn đề, việc giúp các em đặt ra được các tình huống có vấn đề vàgiải quyết chúng giúp các em hiểu bài sâu hơn
Ví dụ 1, khi cho các em thực hành bài 1 trong bài thực hành 3, giáo viênyêu cầu học sinh nhập các giá trị n và k khác nhau và nhận xét kết quả thuđược
Trang 9Tình huống 1 Nếu cho k=2 thì bài toán có thể phát biểu lại như thế
For i:=1 to n do
If a[i] mod 2 <> 0 then s:= s+a[i];
Tình huống 3 Em hãy sửa chương trình để đếm số các phần tử là bội
của k
Giáo viên gợi ý
Vậy để đếm số phần tử là bội của k thì ta sửa chương trình thế nào?
Ta có cần giữ lại biến s không? Dùng biến nào để lưu trữ giá trị đếmđược?
Khi có một giá trị thỏa mãn thì ta lưu trữ giá trị như thế nào?
Học sinh trả lời và giải quyết vấn đề
Ta có thể bỏ đi biến s, thay vào đó ta sử dụng biến Dem để lưu trữ giá trị
đếm được
Trang 10Mỗi lần có một phần tử thỏa mãn điều kiện là bội của k thì ta cộng vào
biến Dem 1 đơn vị bằng câu lệnh Dem:= Dem + 1;
Như vậy để kiểm tra và đếm hết các phần của mảng A có thỏa mãn điềukiện hay không ta viết đoạn lệnh sau
For i:=1 to n do
If a[i] mod k = 0 then dem:= dem +1;
Tình huống 4 Em hãy sửa lại chương trình để nhập dữ liệu từ bàn
phím
Từ việc phân tích đoạn lệnh nào là đoạn lệnh tạo ra mảng A, học sinh sẽbiết được để nhập dữ liệu từ bàn phím ta xóa đoạn lệnh tạo mảng A tự động,thay vào đoạn lệnh nhập các phần tử của mảng A từ bàn phím
Như vậy qua phần phân tích chương trình, chạy thử, và các tình huống
mà giáo viên đặt ra, học sinh có thể giải quyết, mở rộng bài thực hành
Ví dụ 2, trong bài thực hành 3,
Bài 2 Viết chương trình tìm phần tử có giá trị lớn nhất của mảng và đưa ra màn hình chỉ số và giá trị của phần tử tìm được Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đưa ra phần tử có chỉ số nhỏ nhất.
Chương trình
Const Nmax=100;
Type MyArray = array[1 Nmax] of integer;
Trang 11For i:=2 to N do if A[i] > A[j] then j:=I;
Write(‘Chi so : ‘,j , ‘Gia tri : ‘, a[j]:4);
Readln
End.
Đặt vấn đề, chương trình trên thực hiện công việc gì?
Giáo viên gợi ý
Em hãy suy nghĩ về vai trò của biến j qua câu lệnh khởi gán giá trị chobiến j trước khi duyệt từng phần tử của mảng bằng vòng lặp for – do, qua câulệnh if – then dung để kiểm tra phần tử thứ I của mảng và lưu trữ chỉ số nàytrong biến j
Em hãy chạy thử chương trình trên giấy để thấy giá trị của biến j thayđổi với bộ dữ liệu thực tế
Học sinh suy nghĩ, thực hiện
Giả sử với bộ dữ liệu mảng A bao gồm các phần tử 8, 5, 13, 50, 45 ta chạythử chương trình như sau
J=1
Trang 12I=2 Xét ai < aj I=3 xét ai=13>aj=8 nên j=3 I=4 xét ai=50> aj=13 nên j=4 I=5 xét ai<aj
Chi so : 4, Gia tri: 50
Kết luận được sau khi thực hiện, chương trình cho kết quả là chỉ số và giá trịcủa phần tử lớn nhất trong mảng
Tình huống 1 Em hãy sửa chương trình để tìm phần tử nhỏ nhất của mảng
Học sinh suy nghĩ và thấy được để tìm phần tử nhỏ nhất ta chỉ cần thay dấu >thành dấu < trong câu lệnh sau
For i:=2 to N do if A[i] < A[j] then j:=I;
Tình huống 2 Em hãy sửa chương trình để đưa ra phần tử lớn nhất với chỉ
số lớn nhất
Giáo viên cũng gợi ý học sinh tìm hiểu với bộ dữ liệu thực tế
Giả sử ta có bộ dữ liệu như 8, 50, 13, 50,45
Thì kết quả thu được sẽ là Chi so: 4, Gia tri : 50
Vậy cần chỉnh sửa câu lệnh
if A[i] > A[j] then j:=I;
thành câu lệnh
do if A[i] >= A[j] then j:=I;
Tình huống 3 Chỉnh sửa chương trình để đưa ra chỉ số của các phần tử có
cùng giá trị lớn nhất
Giáo viên gợi ý
Chương trình có cần giữ lại đoạn tìm phần tử lớn nhất không?
Để đưa ra tất cả các chỉ số của các phần tử đạt giá trị lớn nhất đó có cần duyệtlại tất cả các phần tử trong mảng không?
Trang 13Những chương trình có được ở bài 1 cũng duyệt qua các phần tử trong mảng,mỗi phần tử duyệt đến đã được kiểm tra theo một điều kiện để quyết địnhmột xử lí liên quan đến phần tử này Điều đó có gợi cho em cách giải quyếtkhông?
Qua việc trả lời các câu hỏi gợi ý trên, học sinh giải quyết vấ đề như sau
Ta giữ nguyên đoạn lệnh tìm phần tử lớn nhất
Sau đó duyệt lại toàn bộ các phần tử của mảng, so sánh với phần tử lớn nhất
để đưa ra được chỉ số của các phần tử lớn nhất
Đoạn lệnh như sau
J:=1;
For i:=2 to N do if A[i] > A[j] then j:=I;
Writeln(‘ Chi so cua cac phan tu lon nhat la :’);
For i:=1 to N do
If A[i]= A[j] then write (i:5);
Đặc biệt, khi các em gõ và chạy thử chương trình, các em sẽ gặp phảicác lỗi cú pháp, cũng như các lỗi về ngữ nghĩa Việc các em gặp các lỗi cũng
là các tình huống có vấn đề mà các em cần phải giải quyết hoặc nhờ sự trợgiúp của các bạn và thầy cô giáo
Ví dụ: Trong bài tập 5a trang 51: Viết chương trình tính tổng y=n/(n+1)
với n lần lượt nhận giá trị từ 1 đến 50
Khi thực hành viết chương trình này, học sinh hay gặp những lỗi sau:
Lỗi 1: Giá trị biến đếm không phù hợp.
Phân tích: Chỉ cho học sinh thấy con trỏ đang chỉ ở biến n Vậy có lỗi sai liên quan đến biến n Biến n ở đây đóng vai trò là biến đếm Hỏi biến
đếm có kiểu dữ liệu là gì? Khi đó học sinh sẽ nhìn ngay thấy ở phần khai báo,
biến n được khai báo kiểu real là sai.
Trang 14Lỗi 2: Đa số học sinh viết câu lệnh nhập giá trị n từ bàn phím Trong khibiến n được nhận giá trị từ 1 đến 50 Nếu viết thêm câu lệnh này vào thìchương trình không sai, nhưng không cần thiết.
Lỗi 3: Không khởi tạo giá trị ban đầu cho biến y Việc không khởi tạo
giá trị ban đầu đôi khi sẽ làm kết quả chương trình bị sai lệch
Lỗi 4: Khởi tạo giá trị ban đầu cho biến y không đúng
Ở đây do ban đầu biến y chưa có giá trị gì nên cần khởi tạo là 0
Lỗi 5: Viết sai cú pháp câu lệnh for-do
Khi viết dấu chấm phẩy sau câu lệnh for-do, chương trình dich khôngbáo lỗi, tuy nhiên khi học sinh chạy chương trình lại ra kết quả sai mà họcsinh không hiểu tại sao
Lỗi 6: Thay đổi giá trị của biến đếm trong vòng lặp For-do
c) Nhận xét, đánh giá giờ thực hành.
Sau mỗi giờ thực hành, giáo viên dành ra ít phút nhận xét về giờ thựchành, các lỗi mà học sinh thường gặp trong giờ thực hành đó Có khen, chê rõ