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

Một số biện pháp nhằm nâng cao hiệu quả giảng dạy kiểu dữ liệu mảng, tin học 11 ở trường THPT lam kinh

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 (102 KB, 12 trang )

I. MỞ ĐẦU
1. Lí do chọn đề tài
Trong thời đại hiện nay, công nghệ thông tin đã thực sự bùng nổ và tác động to
lớn đến mọi đời sống, kinh tế, xã hội và văn hóa loài người. Chính vì tầm quan
trọng đó, tin học đã được đưa vào giảng dạy ở các trường đại học, cao đẳng, trung
học và các trường phổ thông nhằm nâng cao trình độ dân trí về tin học, đào tạo
nguồn nhân lực đáp ứng yêu cầu công nghiệp hóa, hiện đại hóa đất nước. Ở cấp
trung học phổ thông, môn Tin học đã trang bị cho các em một cách tương đối có hệ
thống các kiến thức phổ thông về tin học, hình thành và phát triển khả năng tư duy
thuật toán, năng lực sử dụng các thành tựu của tin học trong học tập và trong các
lĩnh vực hoạt động của các em sau này, đã bước đầu hình thành niềm đam mê cho
các em trong quá trình định hướng nghề nghiệp về sau. Tuy nhiên, qua thực tế
nhiều năm giảng dạy môn Tin học tôi nhận thấy đa số các em chỉ hứng thú khi học
các nội dung về tin học ứng dụng như: Soạn thảo văn bản, hệ quản trị cơ sở dữ
liệu...mà không thích học lập trình thuộc chương trình tin học lớp 11, bởi lí do
chính là các em cảm thấy khó và ít ứng dụng vào thực tiễn. Tôi thấy rằng, ban đầu
khi mới bắt đầu tiếp cận với lập trình và ngôn ngữ lập trình đa số các em đều hứng
thú, tiếp thu tốt, có thể sử dụng cấu trúc rẽ nhánh và vòng lặp để giải các bài toán
đơn giản. Nhưng học đến kiểu dữ liệu có cấu trúc, các em bắt đầu lúng túng, không
hiểu bản chất của vấn đề dẫn đến nhiều em không viết được chương trình hoàn
chỉnh đơn giản, từ đó chán nản, lơ là với môn học và tiếp thu kém các nội dung về
sau. Chính vì thế tôi cho rằng khi giảng dạy kiểu dữ liệu có cấu trúc bắt đầu từ kiểu
mảng, giáo viên cần đặc biệt chú trọng cả về nội dung lẫn phương pháp giảng dạy
để giúp các em nắm vững lý thuyết, nâng cao kĩ năng lập trình từ đó tạo được niềm
đam mê lập trình cho các em. Đó cũng là lí do tôi chọn đề tài “Một số biện pháp
nhằm nâng cao hiệu quả giảng dạy kiểu dữ liệu mảng, tin học 11 ở trường THPT
Lam Kinh”
2. Mục đích nghiên cứu.
Đề ra một số biện pháp giảng dạy bài kiểu mảng, chương trình tin học lớp 11
nhằm nâng cao chất lượng bộ môn.
3. Đối tượng nghiên cứu


Học sinh một số lớp 11 trường THPT Lam Kinh, gồm có: ban KHTN (11B1),
cơ bản C(11B5), cơ bản D (11B6)
Trong mỗi lớp còn được chia ra từng nhóm đối tượng (giỏi, khá, trung bình,
yếu)
4. Phương pháp nghiên cứu
- Phỏng vấn học sinh khối lớp 11.
- Dự giờ, thăm lớp.
- Kiểm tra đánh giá trong và sau giờ học.


II. NỘI DUNG SÁNG KIẾN KINH NGHIỆM
1. Cơ sở lí luận của sáng kiến kinh nghiệm
Thứ nhất là ý nghĩa của kiểu dữ liệu mảng trong ngôn ngữ lập trình Pascal.
Các khái niệm cũng như các thao tác cơ bản đối với kiểu mảng 1 chiều.
Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu.
Thứ 2, Trên cơ sở nghiên cứu Nghị Quyết 40/2000/QH10 và chỉ thị
14/2001/CT-TTg ngày 11/06/2001 về việc đổi mới chương trình giáo dục phổ
thông: Đổi mới phương pháp dạy và học, phát huy tư duy sáng tạo và năng lực tự
học của học sinh.
2. Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
Trường THPT Lam Kinh có 25 lớp, trong đó có 8 lớp 11 thuộc 5 ban: Ban
Khoa học tự nhiên (KHTN) có 3 lớp, ban cơ bản A có 1 lớp, ban cơ bản C có 1 lớp,
ban cơ bản D có 1 lớp và ban cơ bản có 2 lớp. Trong vài năm gần đây, điểm đầu
vào của trường không cao, chất lượng không đồng đều giữa các lớp, chất lượng mũi
nhọn tập trung ở ban KHTN, ở các ban còn lại học lực trung bình của các em còn
thấp, trên 50% học sinh có học lực trung bình và dưới trung bình. Chính vì vậy, khả
năng tiếp thu của các em còn hạn chế đặc biệt là các môn KHTN và môn tin học.
Hơn nữa, chương trình tin học lớp 11 rất mới mẻ và khó tiếp thu đối với các em, nó
đòi hỏi khả năng tư duy cao, cộng thêm những kỹ năng khác như kỹ năng phát
hiện, giải quyết vấn đề, kỹ năng phát hiện, sửa lỗi trong lập trình... cho nên để học

sinh hứng thú và tiếp thu tốt mỗi bài học là nhiệm vụ tương đối khó khăn đối với
mỗi giáo viên giảng dạy môn tin học lớp 11.
Kết quả khảo sát chất lượng môn tin học lớp 11 ở nhà trường trong một số
năm gần đây còn thấp nhất là ở các lớp ban cơ bản:
Kết quả năm học 2015-2016 môn tin học ở một số lớp 11 như sau:
Giỏi
Khá
Trung bình Yếu – Kém
Lớp
Sĩ số
SL %
SL %
SL %
SL %
11A1
46
18
20
8
11A5
47
0
17
28
2
11A6
Tổng

46


0

20

23

3

Kết quả năm học 2014-2015 môn tin học ở một số lớp 11 như sau:
Giỏi
Khá
Trung bình Yếu – Kém
Lớp
Sĩ số
SL %
SL %
SL %
SL %
11C1
43
16
20
7
11C5
41
0
19
20
2
11C6


40

0

16

20

4


Tổng
Thống kê trên cho thấy, tỉ lệ học sinh khá giỏi ở các lớp nói chung còn thấp,
học sinh có học lực yếu còn nhiều. Do đó, giáo viên cần chú trọng về nội dung và
kết hợp tốt các phương pháp dạy học để đạt được hiệu quả tốt nhất.
3. Các biện pháp đã sử dụng để giải quyết vấn đề
3.1 Thay đổi bố cục của bài học.
Như đã nói ở trên, do trình độ nhận thức của các em chênh lệch còn khá nhiều,
chất lượng đầu vào không cao, nên ở các lớp ban cơ bản tôi đã thay đổi bố cục của
bài học so với hướng dẫn của sách giáo khoa để các em dể tiếp thu và vận dụng
kiến thức để giải các bài tập, cụ thể như sau:
Vào bài, tôi đưa ra ví dụ: Tính nhiệt độ trung bình của 7 ngày trong tuần. Yêu
cầu học sinh giải bài toán bằng những kiến thức đã học. Từ đó phân tích để học
sinh thấy được sự cần thiết phải có 1 kiểu dữ liệu mới để mô tả 1 dãy hữu hạn các
phần tử có cùng kiểu. Từ đó, đưa ra khái niệm về mảng 1 chiều.
Mảng 1 chiều là một dãy hữu hạn các phần tử cùng kiểu.
Sau khi tìm hiểu khái niệm mảng 1 chiều, tôi hướng dẫn học sinh tìm hiểu các
nội dung theo bố cục sau:
a) Khai báo

Ở lớp ban KHTN tôi yêu cầu học sinh tìm hiểu 2 cách khai báo, nhưng ở ban
KHXH và ban cơ bản tôi chỉ yêu cầu học sinh tìm hiểu kĩ cách khai báo thứ nhất
(khai báo trực tiếp)
Cách 1: Khai báo trực tiếp
Cú pháp: Var <tên biến mảng>:array[kiểu chỉ số] of <kiểu phần tử>;
Cách 2: Khai báo gián tiếp
Cú pháp:
Type <tên kiểu mảng>=array[kiểu chỉ số] of <kiểu phần tử>;
Var <tên biến mảng>:<tên kiểu mảng>;
b) Tham chiếu đến phần tử của mảng
Tham chiếu đến phần tử mảng 1 chiều, được viết:
<Tên biến>[chỉ số]
c) Nhập/ Hiển thị biến mảng
- Nhập dữ liệu từ bàn phím cho biến mảng
Tôi yêu cầu học sinh nhắc lại cách nhập dữ liệu cho các biến đơn, từ đó phát
biểu cách nhập dữ liệu từ bàn phím cho biến mảng (đối với các lớp KHTN các em
có thể tự rút ra cách nhập dữ liệu cho biến mảng)
Kết luận: Để nhập dữ liệu từ bàn phím cho biến mảng chúng ta phải nhập dữ
liệu cho từng phần tử của mảng
Ví dụ: Nhập nhiệt độ của 7 ngày trong tuần, tính và hiển thị nhiệt độ trung
bình của tuần đó.


Để nhập dữ liệu cho mảng các phần tử là nhiệt độ của 7 ngày trong tuần,
chúng ta có thể sử dụng vòng lặp for sau:
For i:=1 to 7 do
Readln(a[i]);
- Hiển thị dữ liệu ra màn hình
Tưng tự, tôi yêu cầu học sinh nhắc lại cách hiển thị dữ liệu ra màn hình đối với
các biến đơn, từ đó các em có thể rút ra được cách hiển thị dữ liêụ của biến mảng ra

màn hình: Để hiển thị dữ liệu ra màn hình cho cả mảng ta cần hiển thị ra màn hình
từng phần tử của mảng.
Ví dụ: Để hiển thị các giá trị của mảng a vừa nhập ở trên trên cùng 1 dòng, chúng
ta dùng vòng lặp for sau:
For i:=1 to 7 do
Write(a[i],’ ‘);
Ở phần ví dụ minh họa, trước hết tôi yêu cầu học sinh hoàn thiện ví dụ tính
nhiệt độ trung bình đã đặt ra, sau đó tôi chọn 1 ví dụ đơn giản, tương tự ví dụ vừa
thực hiện, phân tích bài toán và yêu cầu học sinh thực hiện các bước theo các nội
dung đã được học.
Ví dụ: Hãy nhập điểm tổng kết của n học sinh trong một lớp, đếm xem có bao
nhiêu bạn đạt học lực khá, giỏi (điểm tổng kết >= 6.5).
Sau khi tìm hiểu đề bài, phân tích thuật toán, tôi chia lớp thành các nhóm nhỏ,
mỗi nhóm thực hiện một trong các công việc sau bằng NNLT Pascal:
- Khai báo mảng a
- Nhập mảng a.
- Đếm số lượng học sinh đạt học lực khá, giỏi.
d) Một số ví dụ
Phần này tôi đưa ra cho các em tìm hiểu một số ví dụ theo hướng mở rộng dần
bài toán cơ bản và được trình bày kĩ ở phần 3.2
3.2 Mở rộng bài toán cơ bản
Để rèn luyện kỹ năng lập trình cho các em, tôi đưa ra các bài toán ở mức độ từ
dể đến khó, từ bài toán cơ bản, mở rộng đến các bài toán khó hơn. Với thời lượng 4
tiết lý thuyết, 5 tiết bài tập và thực hành, tôi thực hiện giảng dạy mỗi tiết 1 dạng bài
toán với phương châm: Dạy kỹ bài toán cơ bản, mở rộng bài toán cơ bản và ra bài
tập về nhà. Ở các bài giảng trên lớp tôi thường chỉ mở rộng ở mức độ 1 tức là chỉ
cần chạy được chương trình mà chưa quan tâm đến các yếu tố như: Độ phức tạp
của thuật toán, phạm vi giá trị của các biến....và 1 phần ở mức độ 2 cho các lớp ban
KHTN, như: Phạm vi giá trị của biến, đánh giá thời gian thực hiện chương trình.
Trong quá trình giảng dạy, để giảm thiểu sự khô khan, nhàm chán cho các em,

các bài toán tương tự tôi thường đưa ra dưới dạng đọc hiểu, nhận biết chương trình,
cũng là để củng cố lại các kiến thức các em vừa tiếp thu.
Sau đây là các dạng bài toán tôi đã áp dụng để giảng dạy cho các em:


3.2.1 Bài toán 1: Tìm giá trị lớn nhất của 1 dãy số nguyên.
Bài toán cơ bản: Cho dãy số nguyên a1, a2, ..., an. Tìm giá trị lớn nhất của dãy số.
Bài toán này các em đã được tìm hiểu thuật toán khi học phần bài toán và thuật
toán, tin học 10 nhưng đa số các em không còn nhớ thuật toán để giải, do đó tôi vẫn
phân tích kỹ thuật toán, yêu cầu các em xác định kết quả từng lần lặp trong thuật
toán đối với 1 input cụ thể (trình bày trong phần 3.3.1), sau đó tùy từng lớp mà yêu
cầu học sinh viết chương trình hoặc chỉ cần trình chiếu chương trình đã cài đặt sẵn
trên ngôn ngữ lập trình Pascal.
Bài toán tương tự: Tìm giá trị nhỏ nhất của 1 dãy số nguyên a1, a2, ..., an
Nhận xét: Bài toán này khá đơn giản, giáo viên chỉ cần chỉ ra điểm khác so với
bài toán cơ bản mà không cần giải chi tiết, hoặc ngược lại như sau:
Cho chương trình sau:
program bai1;
var a:array[1..100] of integer;
m,i:integerr;
BEGIN
Write(‘Nhap n:’); readln(n);
For i:=1 to n do
Readln(a[i]);
m:=0;
For i:=1 to n do
if a[i]write(‘gia tri cua m:’,m);
readln
END.

Giả sử, các giá trị được nhập vào từ bàn phím là:
N=5; a[1]=5; a[2]=8; a[3]=2; a[4]=15; a[5]=10;
Hỏi sau khi thực hiện chương trình trên, giá trị của m bằng bao nhiêu?
A) 15
B) 5
C) 2
D) 0
Học sinh sẽ phải đọc kĩ và hiểu rõ ý nghĩa từng câu lệnh. Đối với bài này có
thể nhiều học sinh sẽ chọn nhầm đáp án C), giáo viên cần nhắc học sinh chú ý về
cách gán biến khởi tạo cho m.
Bài toán mở rộng 1 (dành cho các lớp ban cơ bản): Cho n và dãy số nguyên a1, a2,
..., an. Hãy tìm giá trị lớn nhất của dãy số và chỉ số 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, hãy đưa ra màn hình giá trị và chỉ số của
phần tử có chỉ số lớn nhất.
Nhận xét: Ở bài toán cơ bản các em đã biết dùng biến (max) để lưu giá trị lớn
nhất tìm được sau khi xét lần lượt các phần tử của mảng, ở bài toán này giáo viên
chỉ cần đặt ra các câu hỏi:
1, Chỉ số của phần tử tìm được được lưu trữ như thế nào?


2, Nếu có nhiều phần tử có cùng giá trị lớn nhất, làm thế nào để tìm được phần
tử có chỉ số lớn nhất?
Các em trả lời được 2 câu hỏi trên sẽ viết được chương trình hoàn chỉnh.
Bài toán mở rộng 2 (dành cho các lớp ban KHTN): Cho n và dãy số nguyên a1, a2,
..., an. Hãy tìm giá trị nguyên âm lớn nhất trong dãy.
Nhận xét: Đối với bài toán này, chỉ cần các em trả lời được câu hỏi “giá trị
khởi tạo cho biến max là bao nhiêu?”
Bài tập về nhà:
Bài 1: Cho dãy số nguyên a1, a2, ..., an.. Hãy tìm giá trị lớn nhất của dãy và cho
biết có bao nhiêu phần tử có cùng giá trị lớn nhất đó.

Bài 2: Cho dãy số nguyên a1, a2, ..., an. Hãy sắp xếp dãy số theo thứ tự tăng
dần bằng cách vận dụng thuật toán tìm giá trị lớn nhất.
3.2.2 Bài toán 2: Sắp xếp dãy số bằng thuật toán tráo đổi
Bài toán cơ bản: Cho n (n<=250) và dãy số nguyên a1, a2, ..., an. Hãy sắp xếp các
phần tử của dãy theo thứ tự tăng dần.
Bài toán này không khó đối với các lớp KHTN nhưng cũng không dể dàng với
các lớp còn lại, nếu giáo viên kiểm tra bài cũ và phân tích kĩ bài tập về nhà 2 ở trên
thì học sinh dể tiếp cận cách giải hơn. Đối với bài toán này, giáo viên cần phân tích
kỹ thuật toán và chỉ ra sự khác nhau về ý nghĩa của 2 vòng lặp for. Trong tiết dạy,
tôi thường yêu cầu học sinh xác định giá trị của mảng sau từng bước lặp ra giấy để
các em hiểu rõ về thuật toán (nội dung này tôi trình bày kỹ ở phần 3.3.1)
Bài toán tương tự: Cho n (n<=250) và dãy số nguyên a1, a2, ..., an. Hãy sắp xếp
các phần tử của dãy theo thứ tự giảm dần.
Nhận xét: Nếu học sinh đã hiểu bài toán cơ bản thì sẽ làm được bài toán này
trong thời gian rất ngắn, tôi thường đưa ra bài toán dưới dạng đọc hiểu chương
trình như sau:
Hãy sửa lỗi cú pháp trong chương trình sau và cho biết chương trình trên
thực hiện công việc gì?
program bai2;
var a:array[0…250] of integer;
I, j, tg : integerr;
BEGIN
Write(‘Nhap n va mang a:’);
readln(n);
Readln(a);
For i:= 1 to n-1 do
For j:=i+1 to n do
If a[i]Begin
Tg:=a[i];



A[i]:=a[j];
A[j]:=tg;
End;
Writeln(‘day so sau khi sap xep la:’);
For i:=1 to n do
Write(a[i]:8:4);
Readln
End.
Bài toán trên, trước hết giáo viên cần chỉ ra các lỗi (3 lỗi), yêu cầu học sinh
sửa lại cho đúng, sau đó cần chốt lại ý nghĩa của 2 vòng lặp for trong chương trình.
Bài toán mở rộng 1: (dành cho ban cơ bản) Cho dãy số nguyên a1, a2, ..., an. đôi
một có giá trị khác nhau. Hãy sắp xếp dãy số sao cho giá trị tuyệt đối của chúng
tăng dần, nếu có 2 số có cùng giá trị tuyệt đối hãy sắp xếp sao cho số âm ở trước số
dương.
Nhận xét: Bài toán này giáo viên chỉ cần đưa ra 2 vấn đề:
Thứ nhất, tiêu chí sắp xếp các phần tử là gì?
Thứ hai, nếu 2 phần tử có cùng giá trị tuyệt đối thì làm thế nào để sắp xếp
chúng theo yêu cầu của đề?
Chương trình:
Bài toán mở rộng 2: (dành cho ban KHTN) Cho dãy số nguyên a1, a2, ..., an. Hãy
sắp xếp các phần tử của mảng theo thứ tự tăng dần của số dương, giảm dần các số
âm và số âm ở trước số dương.
Nhận xét: Đa số học sinh đã biết cách sắp xếp theo thứ tự tăng dần hoặc giảm
dần1 dãy số, nhưng khi đứng trước bài toán này mới đầu đa số học sinh sẽ lúng
túng khi tìm thuật toán để giải, giáo viên có thể gợi ý cho học sinh, chẳng hạn:
Bài tập về nhà:
Cho dãy số nguyên a1, a2, ..., an., đôi một có giá trị khác nhau. Hãy sắp xếp dãy
số sao cho phần dư của các phần tử cho 10 theo thứ tự tăng dần, nếu có nhiều phần

tử có cùng giá trị này thì phần tử có giá trị nhỏ hơn đứng trước phần tử có giá trị
lớn hơn.
3.2.3 Bài toán 3: Tìm các phần tử của dãy số thõa mãn điều kiện cho trước
bằng phương pháp tìm kiếm tuần tự.
Bài toán cơ bản: Cho dãy số nguyên a1, a2, ..., an.. Hãy tính tổng các số chia hết
cho 2 trong dãy.
Nhận xét: Bài toán này rất đơn giản, giáo viên chỉ cần hỏi 1 vài câu hỏi nhỏ,
chẳng hạn: Biểu thức điều kiện để kiểm tra 1 số có chia hết cho 2 không? Câu lệnh
gán để tính tổng các số chia hết cho 2 là gì?... là đa số học sinh có thể viết được
chương trình hoàn chỉnh.
Bài toán tương tự: Các phần tử của mảng có thể là:
+ Là số âm


+ Là số dương
+ Là số chia hết cho một số K
+ ...
Bài toán mở rộng 1: Cho dãy số nguyên a1, a2, ..., an.. Hãy đếm số lượng các số
hoàn hảo trong dãy.
Nhận xét:
Bài toán mở rộng 2: Cho dãy số nguyên a1, a2, ..., an.. Hãy hiển thị các số chính
phương trong dãy và số lượng của chúng.
Nhận xét:
3.3 Tăng cường hoạt động nhóm.
Khi giảng dạy tin học 11 nói chung và giảng dạy kiểu mảng 1 chiều nói riêng,
tôi luôn chú trọng đến sự hợp tác trong các nhóm nhỏ, nhằm tăng tính tương trợ lẫn
nhau giữa các em. Khi dạy bài kiểu mảng, tôi thường tổ chức hoạt động nhóm ở các
nội dung sau:
3.3.1 Xác định kết quả thực hiện của thuật toán
Sau khi đã hình thành ý tưởng, phác thảo được cách giải bằng thuật toán hoặc

chương trình, tôi yêu cầu học sinh phải xác định được kết quả thực hiện của thuật
toán theo từng bước đối với mỗi input cụ thể qua các phiếu học tập. Điều này khá
đơn giản đối với học sinh khá, giỏi nhưng cũng rất cần thiết cho các em học sinh có
học lực trung bình và dưới trung bình, bởi nó sẽ giúp các em hiểu rõ thuật toán và
bản chất của kiểu dữ liệu mảng từ đó viết được chương trình hoàn chỉnh. Trong các
tiết học, tôi chia lớp thành các nhóm nhỏ (theo từng bàn, khoảng từ 2 đến 3 em lập
thành 1 nhóm) và phát các phiếu học tập, yêu cầu các em xác định kết quả thực
hiện của bài toán theo từng bước của thuật toán ở trong phiếu. Để hoàn thành phiếu
học tập này phải mất khoảng 5 đến 7 phút, do đó tôi chỉ yêu cầu học sinh thực hiện
đối với các bài toán cơ bản, và các bài toán có thuật toán tương đối phước tạp đối
với các em.
Bài toán 1: Tìm giá trị lớn nhất của dãy số nguyên a1, a2, ..., an.
Ý tưởng: - Gán max:=a1;
- Kiểm tra tất các các phần tử ai (i = 2..n), nếu ai > max thì max:=ai.
Xác định kết quả: Với n=7, mảng a có các giá trị được nhập vào như sau:
6
15
9
2
20
25
10
Yêu cầu học sinh xác định max theo từng bước của vòng lặp từ đó xác định
output của bài toán, cụ thể:
Khởi tạo: max=6.
Các bước lặp:
Max=15 Max=15 Max=15 Max=20 Max=25
i =2
i =3
i=4 i=5

i=6 i=7
Output: Max=25.


PHIẾU HỌC TẬP
Input: Cho n = 7, mảng a gồm n phần tử có các giá trị như sau:
6

15

9

2

20

25

10

Dựa vào thuật toán, hãy xác định:
1. Số lần lặp của vòng lặp?
2. Với mỗi lần lặp hãy xác định:
Max= ? Max= ? Max= ? Max= ? Max=? Max= ?
i =2
i =3
Output: Max=?

i=4


i=5

i=6

i=7

Bài toán 2: Sắp xếp dãy số bằng thuật toán tráo đổi
Tương tự bài toán trên, sau khi tìm hiểu cách giải, tôi yêu cầu học sinh xác
định kết quả từng bước bằng cách hoàn thành phiếu học tập sau:
PHIẾU HỌC TẬP
Input: Cho n = 5, mảng a gồm n phần tử có các giá trị như sau:
15

9

10

6

8

Dựa vào thuật toán, hãy xác định:
1. Số lần thực hiện câu lệnh if – then (số lần lặp của 2 vòng lặp)?
2. Mảng A sau từng bước của vòng lặp đầu tiên vào bảng sau:
J=5
A
J=4
A
J=3
J=2


A


A

Sau khi hoàn thành các phiếu học tập, tôi gọi các em lên trình bày kết quả và
thông thường việc trình bày sẽ do các em có học lực thấp hơn đảm nhiệm.
Ngoài các bài toán cơ bản
3.3.2 Hoạt động nhóm trong các giờ thực hành
Trong các giờ thực hành tôi phân công 2 em đến 3 em vào 1 máy tính, dựa trên
khả năng tiếp thu của các em sao cho các em trong một nhóm ít chênh lệch nhau
nhất. Đối với mỗi nhiệm vụ đặt ra các em sẽ hợp tác, cùng nhau thực hiện. Sau 1
khoảng thời gian, nhóm hoàn thành trước sẽ cùng với giáo viên hỗ trợ những nhóm
còn lại để đa số có thể hoàn thành được công việc đặt ra. Sự hỗ trợ giữa các em học
tốt hơn đối với các nhóm còn lại rất cần thiết, bởi vì các lỗi cơ bản như các lỗi về
cú pháp thông thường trong 1 lớp sẽ có một vài nhóm học sinh có thể phát hiện
được, các em này vừa có thể hỗ trợ cho các nhóm khác, đẩy nhanh hiệu quả của tiết
học, mặt khác cũng nâng cao kỹ năng lập trình, từ đó thúc đẩy niềm đam mê cho
chính các em.
Trong 1 tiết học thực hành tôi thường thực hiện theo trình tự các bước như sau:
Bước 1: Tập trung học sinh, gọi học sinh vào phòng thực hành theo sơ đồ đã
phân công, ổn định lớp.
Bước 2: Nêu nhiệm vụ, yêu câù của tiết học.
Bước 3: Học sinh thực hành theo yêu cầu của giáo viên, trong quá trình thực
hiện giáo viên quan sát, có thể gợi ý, vấn đáp hoặc có thể gọi lên bảng… để học
sinh trong lớp hiểu được thuật toán hoặc cách giải.
Bước 4: Sau một khoảng thời gian, nhóm nào xong trước, cùng với giáo viên
đi đến các nhóm khác để hướng dẫn các nhóm này.
Bước 5: Nhận xét, đánh giá các nhóm trong quá trình thực hành, có thể kết

hợp cho điểm nhằm động viên, khuyến khích các em. Kết luận về bài học và ra
nhiệm vụ về nhà.
3.3.3 Một số nội dung khác
Ngoài 2 nội dung trên, trong quá trình giảng dạy tôi thường xem kẽ hoạt động
nhóm với hoạt động cá nhân riêng PHIẾU
lẻ trong HỌC
quá trình
giảng dạy lý thuyết cũng như
TẬP
trong tiết làm bài tập.
Chohạn,
biếnkhi
x là
thuộc
số thực,thị
mảng
là mảngđối
gồm
số lớp ban
Chẳng
tìmbiến
hiểu
cáchkiểu
nhập/hiển
biếna mảng,
với50các
KHTN tôinguyên.
yêu cầuHãy
họcđiền
sinhcác

tự thao
rút ratác
cách
đốinhập/hiển
với biến xthị
và biến
a vàomảng
bảng bằng
sau: cách chia
lớp thành các nhóm nhỏ (2 đến 3 em), sau đó các em thảo luận và ghi kết quả thảo
Thao
Biến x
Biến mảng a
luận vào phiếu học
tậptác
sau:
Nhập dữ liệu từ bàn
................................... ...................................
phím
Hiển thị dữ liệu ra

.................................. ..................................
................................... ...................................

màn hình

..................................

..................................



Hoặc khi tìm hiểu các ví dụ, các bài toán tương tự với bài toán cơ bản tôi
thường đưa ra nhiệm vụ và tổ chức thực hiện theo nhóm (tôi đã trình bày kỹ hơn ở
phần 3.2)
Trong các tiết bài tập, tôi cũng thường tổ chức hoạt động theo nhóm sau khi
học sinh đã tìm hiểu đề bài, thuật toán của mỗi bài toán. Chẳng hạn, khi giải quyết
bài 5, trang 79 sách giáo khoa tin học 11.
Viết chương trình nhập từ bàn phím số nguyên dương N (N<=100) và dãy A
gồm n số nguyên A1, A2, ..., An có giá trị tuyệt đối không lớn hơn 1000. Hãy cho biết
mảng A có phải là một cấp số cộng hay không và thông báo kết qủa ra màn hình.
Trước hết, tôi yêu cầu học sinh xác định Input, Output của bài toán. Để thực
hiện bài toán này, học sinh phải trả lời được các câu hỏi sau:
- Thế nào là cấp số cộng?
- Kiểu dữ liệu của N và dãy A là gì?
- Làm thế nào để biết dãy a có phải cấp số cộng hay không?
Sau khi đã có câu trả lời cho các câu hỏi trên, tôi tổ chức học sinh thảo luận
theo nhóm để đưa ra chương trình hoàn chỉnh. Bài toán này không quá khó nên tôi
phân công từ 5-6 em vào 1 nhóm. Sau khoảng 7-10 phút thảo luận tôi gọi 1 nhóm
bất kì lên trình bày, trong quá trình nhóm trình bày tôi chú trọng kiểm tra mức độ
hiểu của các thành viên trong nhóm nhằm đánh giá hiệu quả hoạt động nhóm của
học sinh bằng cách hỏi đáp, cuối cùng là nhận xét, bổ sung của các nhóm khác và
đánh giá, kết luận của giáo viên.
4. Hiệu quả của SKKN đối với hoạt động giáo dục
Sau khi tôi áp dụng những kinh nghiệm trên trong tiết học thì thấy chất lượng
học sinh học có tốt hơn các năm học trước.
Kết quả đánh giá học sinh sau khi tôi áp dụng các phương pháp trên trong quá
trình dạy học bài kiêủ mảng.
Lớp
Sĩ số
Giỏi

khá
Trung bình
Yếu
SL
%
SL
%
SL
%
SL
%


11B1
11B5
10B6

42
42
41

22
2
3

52.4
4.8
7.3

20

20
21

47.6
47.6
51.2

0
20
17

0
47.6
41.5

0
0
0

0
0
0

III. KẾT LUẬN, KIẾN NGHỊ
1. Kết luận
Với những biện pháp mà tôi vận dụng trong các bài dạy của mình tại Trường
THPT Lam Kinh tôi thấy đã mang lại hiệu quả đáng kể: Phần lớn các em học
sinh đã hứng thú hơn trong học tập, chủ động trong việc học tập, tự học, tự nghiên
cứu, và rèn luyện kỹ năng; nhiều em đã phát huy tối đa được tính sáng tạo và nhạy
bén trong tư duy, tự tìm tòi kiến thức, có sự say mê trong học tập và nghiên cứu.

Kết quả học tập của nhiều em học sinh có sự tiến bộ rõ rệt.
2. Kiến nghị:
Đối với giáo viên, phải không ngừng tự học, tự bồi dưỡng để hiểu biết về công
nghệ thông tin, nâng cao trình độ chuyên môn.
Đối với các cấp lãnh đạo, cần quan tâm hơn về cơ sở vật chất như: Trang bị
thêm máy tính, máy chiếu Projector...tại các phòng thực hành, khuyến khích và
động viên giáo viên áp dụng công nghệ thông tin vào dạy học.



×