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 - Pdf 44

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

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



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

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,

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 đó.



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

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=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

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


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
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.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status