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

Sáng kiến kinh nghiệm bồi dưỡng học sinh giỏi Tin học 9

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 (119.19 KB, 19 trang )

MỤC LỤC
Nội dung
I. Đặt vấn đề
II. Giải quyết vấn đề
Phần 1: Thực trạng của vấn đề
Phần 2: Các biện pháp để giải quyết vấn đề
Phần 3: Hiệu quả của SKKN
III. Kết luận
1. Kết luận
2. Kiến nghị, đề xuất
Danh mục tài liệu tham khảo

Trang
1
3
3
5
15
16
16
16
18

I. ĐẶT VẤN ĐỀ:
Như chúng ta đã biết: “Mục tiêu bồi dưỡng học sinh môn lập trình Pascal
không phải để tạo ra các nhà lập trình chuyên nghiệp, mà mục tiêu chính của
1


công tác này là bồi dưỡng khả năng tư duy, sáng tạo và lập luận, phân tích,
thiết kế của học sinh”. Để học sinh đạt kết quả cao trong các kì thi chọn học


sinh giỏi do nhiều yếu tố: Tố chất của học sinh, sự quan tâm của gia đình, ý thức
học tập của học sinh, việc bồi dưỡng và không ngoại trừ yếu tố may mắn. Tuy
nhiên chúng ta không chờ đợi và cầu mong sự may mắn bởi vì yếu tố may mắn
chỉ là một phần rất nhỏ. Theo quan điểm của tôi, điều quan trọng hơn cả là
chúng ta trang bị cho các em kiến thức vững vàng, phương pháp tư duy, các
thuật toán trước khi đi thi. Do vậy việc bồi dưỡng vẫn là yếu tố quan trọng hơn
cả. Nhưng chúng ta cần bồi dưỡng cho học sinh giỏi những gì, bồi dưỡng như
thế nào và bằng cách nào cho thật sự hiệu quả?
Thực hiện được điều đó, nhà trường của chúng ta đang cố gắng hướng đến
sự phát triển tối đa những năng lực tiềm tàng trong mỗi học sinh. Ở các trường
trung học cơ sở hiện nay, việc nâng cao chất lượng đại trà và bồi dưỡng học sinh
giỏi được nhiều cấp bộ chính quyền và nhân dân địa phương quan tâm nhưng
nguyên nhân sâu xa nhất đó chính là thực hiện mục tiêu giáo dục mà Đảng và
Nhà nước đã đề ra.
Căn cứ vào nhiệm vụ, mục tiêu của chương trình Tin học trung học cơ sở
là: Bộ môn Tin học phải cùng với các bộ môn khác tham gia thực hiện mục tiêu
của nhà trường phổ thông là đào tạo thế hệ trẻ thành những người lao động có
học vấn vững chắc, có nhân cách hoàn thiện và có năng lực bảo vệ, xây dựng đất
nước phồn vinh. Là một trong những môn thuộc lĩnh vực khoa học tự nhiên, bộ
môn Tin học phải cung cấp những tri thức cơ bản, làm nền tảng để học sinh có
thể tiếp tục đi sâu vào tìm hiểu và xây dựng khoa học Tin học hoặc tiếp thu
những tri thức của các lĩnh vực kĩ thuật công nghệ tiên tiến, nhất là các lĩnh vực
của công nghệ thông tin. Vì vậy việc xác định mục tiêu dạy học môn Tin học
phải xuất phát từ mục tiêu giáo dục Việt Nam, từ đặc điểm và vị trí môn Tin học
trong nhà trường.
Mỗi học sinh đến với bộ môn tin học ở cấp trung học cơ sở thường cảm
thấy khó khăn đặc biệt là kiến thức lập trình ở khối lớp 8. Quả thật như vậy vì

2



với các em, ngôn ngữ lập trình dường như rất xa lạ vì đây là kiến thức đầu tiên
trong lập trình mà các em được học.
Trong quá trình giảng dạy tôi nhận thấy việc tiếp cận với môn học rất khó
khăn, phải làm rất nhiều lần và thực hành rất nhiều tiết các em mới hiểu việc
nhập và xuất dữ liệu, khai báo và sử dụng các câu lệnh: Câu lệnh điều kiện,
vòng lặp xác định, vòng lặp không xác định, cấu trúc dữ liệu kiểu mảng. Điều đó
đã thúc đẩy tôi rất nhiều trong việc dạy học là làm sao đưa ra được cho các em
sự đam mê và phát triển tài năng của học sinh trong việc đào tạo nhân tài cho
đất nước .
Là một giáo viên giảng dạy và bồi dưỡng học sinh giỏi bộ môn Tin học lớp
9, mục tiêu chính của tôi là giúp học sinh không chỉ biết thao tác soạn thảo với
văn bản, bảng biểu mà còn phải có khả năng phân tích, tổng hợp, trừu tượng
hoá, khái quát hoá vấn đề và đặc biệt là phát triển tư duy, sáng tạo. Những năm
qua môn tin học ở trung học cơ sở chưa có sách giáo viên cụ thể hướng dẫn cho
học sinh về cách phân tích lập trình nên việc học của học sinh phụ thuộc rất lớn
ở mỗi giáo viên đứng lớp. Đặc biệt từ năm học 2016-2017, Sở GD&ĐT Phú Thọ
thay đổi cấu trúc thi học sinh giỏi cấp tỉnh môn tin học lớp 9 thì việc rèn kỹ năng
lập trình, kỹ năng soạn thảo, xử lí bảng tính cho các em học sinh lớp 8, lớp 9 nói
chung và học sinh đội tuyển nói riêng lại cần thiết hơn bao giờ hết. Với sáng
kiến “Kinh nghiệm dạy lập trình Pascal trong bồi dưỡng học sinh giỏi môn tin
học cấp trung học cơ sơ” giúp học sinh nắm vững các dạng toán, cấu trúc, các
thuật toán trong lập trình để từ đó các em vận dụng vào giải quyết các bài toán
trong cuộc sống thực tiễn.

II. GIẢI QUYẾT VẤN ĐỀ.
Phần 1: Thực trạng của vấn đề.
3



Từ năm học 2016-2017 Sở GD&ĐT Phú Thọ đã xây dựng cấu trúc đề thi
học sinh giỏi tin học cấp tỉnh mới sau đó có chỉnh sửa, bổ xung trong năm học
2017-2018. Đối với cấu trúc mới có thêm phần tin học ứng dụng gồm: Microsoft
Word, Microsoft Excel, Microsoft PowerPoint. Trong quá trình giảng dạy và bồi
dưỡng học sinh học sinh giỏi môn Tin học, đối với phần tin học ứng dụng lượng
kiến thức không nhiều, có nhiều tài liệu giúp cho học sinh nắm vững được các
định dạng, công thức tính. Trong phần tin học lập trình bản thân tôi gặp không ít
khó khăn trong việc lựa chọn tài liệu giảng dạy, các tài liệu tham khảo cũng như
các dạng bài tập. Chính vì vậy tôi luôn tìm tòi nghiên cứu tài liệu, tham khảo ý
kiến đồng nghiệp phân dạng bài toán để học sinh dễ dàng nhận dạng một bài
toán từ đó có hướng giải quyết vấn đề nhanh nhất, nâng cao chất lượng và hiệu
quả giảng dạy, bồi dưỡng học sinh giỏi. Trên cơ sở quá trình bồi dưỡng tôi nhận
thấy: Mục tiêu bồi dưỡng học sinh môn lập trình Pascal không phải để tạo ra các
nhà lập trình chuyên nghiệp, mà mục tiêu chính của công tác này là: Bồi dưỡng
khả năng tư duy, sáng tạo và lập luận phân tích, thiết kế của học sinh. Giáo viên
bồi dưỡng học sinh giỏi nắm khá chắc chắn nội dung chương trình và kiến thức
về ngôn ngữ lập trình, biết vận dụng đổi mới phương pháp dạy học lấy học sinh
làm trung tâm, biết tôn trọng sự sáng tạo của học sinh trong khi học lập trình.
Trong quá trình bồi dưỡng biết sử dụng các phương pháp, các câu hỏi gợi
mở để học sinh tìm tòi, phân tích tìm ra được thuật toán, trên cơ sở tìm ra thuật
toán các em dần từng bước tối ưu hóa thuật toán đó.
* Những thuận lợi và khó khăn trong công tác bồi dưỡng học sinh giỏi:
a) Thuận lợi:
- Công tác bồi dưỡng học sinh giỏi hiện nay được nhà trường quan tâm chỉ
đạo sát sao đặc biệt đã có những phần thưởng có tính khích lệ để động viên giáo
viên và học sinh cụ thể:
+ Thành lập đội tuyển học sinh giỏi tin học trong đó nòng cốt là học sinh
đội tuyển Toán.
+ Hằng năm nhà trường đã tổ chức trao thưởng cho các em học sinh đạt giải
và các giáo viên bồi dưỡng.

4


+ Bên cạnh đó nhà trường tạo mọi điều kiện cần thiết đảm bảo cho công tác
bồi dưỡng đạt hiệu quả như: phòng học, máy tính, máy chiếu…
+ Đời sống kinh tế của nhân dân được nâng cao, trình độ dân trí được phát
triển nên công tác bồi dưỡng học sinh giỏi được phụ huynh quan tâm hơn. Vì
vậy việc cho con em tham gia các lớp bồi dưỡng được các phụ huynh hết sức
ủng hộ và tạo mọi điều kiện vật chất để con em mình tham gia.
b) Khó khăn:
+ Về học sinh: Tất cả các em học sinh tham gia đội tuyển Tin học đều là học
sinh lớp 8. Ngoài tham gia đội tuyển tin học, các em còn ở các đội tuyển khác
như: Đội tuyển Toán, Vật lí, Hóa học.
+ Về phía phụ huynh học sinh thì một số ít phụ huynh chỉ thích cho con em
mình tham gia đội tuyển học sinh giỏi các môn như: Toán, Vật lí, Hóa học.
+ Đặc trưng môn học: Nhìn chung môn học lập trình Pascal là môn học khá
trừu tượng, đòi hỏi học sinh phải có khả năng phân tích, tư duy tốt và chỉ có
những học sinh giỏi về môn Toán, Vật lí cộng thêm niềm đam mê, cần cù, chịu
khó mới học tốt được.
+ Thời gian dành cho chương trình bồi dưỡng không nhiều.
c) Kết quả thi học sinh giỏi Tin học năm học 2016-2017; 2017-2018
Cấp huyện

Cấp tỉnh

TS

TS

tham


đạt

gia

giải

2016-2017

10

9

1

2

3

2017-2018

10

9

1

2

3


Năm học

TS
Nhất Nhi Ba

KK tham

TS
đạt

gia

giải

3

8

4

3

9

8

Nhất Nhi

2


Ba

KK

1

3

3

3

Từ kết quả thi học sinh giỏi Tin học năm học 2016-2017; 2017-2018 tôi
nhận thấy:
- Một số học sinh chưa tìm tòi được lời giải của bài toán do chưa thực sự
hiểu bản chất của bài toán (Ví dụ: Đối với câu 1 phần lập trình trong đề thi học
sinh giỏi Tin học cấp tỉnh năm học 2016-2017, sau khi phân tích đề bài chỉ cần

5


tìm giá trị nhỏ nhất và giá trị lớn nhất của hai mảng nhưng học sinh lại hiểu sai
bài toán là tìm diện tích của miền phủ trên mặt phẳng tọa độ)
- Một số học sinh viết được chương trình nhưng chương trình không chạy
(do lỗi khai báo dữ liệu, lỗi vào ra dữ liệu, lỗi vào ra chương trình).
- Chương trình còn chạy quá thời gian quy định (01 giây) do thuật toán
chưa tốt, chưa tối ưu.
- Thao tác ra, vào dữ liệu còn nhầm lẫn.
Xuất phát từ những sai lầm của học sinh, việc hình thành kỹ năng xác

định bài toán ban đầu và xác định dạng toán là rất quan trọng, sau đó học sinh
phải tư duy được thuật toán dựa trên kiến thức cơ bản về toán, tối ưu hóa được
thuật toán đó và cuối cùng là lập chương trình (Sử dụng ngôn ngữ lập trình
Pascal). Tôi đã áp dụng một số biện pháp sau nhằm nâng cao kết quả thi học
sinh giỏi môn tin học các cấp, giúp các em nắm vững cách giải một bài toán Tin
học, các dạng toán cơ bản của Tin học và vận dụng kiến thức vào cuộc sống thực
tiễn.
Phần 2: Các biện pháp để giải quyết vấn đề.
Xuất phát từ bài toán trong đề thi học sinh giỏi cấp tỉnh năm học 20152016: Cho một dãy các số nguyên ai, hãy tìm các điểm chia để chia dãy đã cho
thành hai phần sao cho khi nối hai dãy đó lại ta được một dãy tăng.
+ Đối với học sinh đội tuyển: Các em sử dụng thuật toán:
- Bước 1: Xét từng điểm chia.
- Bước 2: Sắp xếp hai dãy con tương ứng.
- Bước 3: Ghép lại xem được một dãy tăng không.
+ Về bản chất nếu học sinh sử dụng thuật toán này thì chỉ đạt 50% số
điểm của câu do vi phạm thời gian chạy. Nếu học sinh sử dụng thuật toán:
- Bước 1: Xét các điểm chia.
- Bước 2: Tìm Max của dãy 1, Min của dãy 2.
- Bước 3: Nếu Max của dãy 1 nhỏ hơn Min của dãy 2 thì điểm chia này
hợp lí.

6


+ Đối với thuật toán này thì khi chạy chương trình đảm bảo thời gian và
đạt 100% số điểm.
Bài toán thứ hai tôi muốn đề cập tới là câu 2 trong đề thi học sinh giỏi tin
học cấp tỉnh năm học 2016-2017: Dịch sốt xuất huyết (Dengue) ở người do
muỗi vằn gây ra. Để phòng chống bệnh này người ta tìm cách diệt muỗi và lăng
quăng (ấu trùng muỗi). Diệt lăng quăng cần phải khơi thông cống, rãnh và nước

đọng để không còn môi trường phát triển cho muỗi. Để diệt muỗi người ta sử
dụng một loại “bẫy muỗi”. Bẫy muỗi là một mảnh bìachữ nhật trên mặt mảnh
bìa có bôi keo dính để dính muỗi, khi muỗi đậu xuống mảnh bìa sẽ bị dính chặt
vào chiếc bẫy. Nếu như may mắn chiếc bẫy sẽ dính được rất nhiều muỗi.
Nhà Bờm rất nhiều muỗi, vốn lười nên Bờm nghĩ cách làm duy nhất một
bẫy để dính hết muỗi.Giả sử trong hệ trục tọa độ

, bạn biết được tọa độcủa

con muỗi sẽ đậu, bạn hãygiúp Bờm làm chiếc bẫynhỏ nhất có các cạnh song
song với các trục tọa độ để dính được
Yêu cầu: Cho tọa độ của

con muỗi trên.

con muỗi sẽ đậu xuống chỗ tối.Hãy tìm:tọa độ

góc trên cùng bên trái;tọa độ góc dưới cùng bên phải của chiếc bẫy nhỏ nhất có
các cạnh song song với các trục tọa độ để dính được

con muỗi trên (nếu cạnh

chiếc bẫy đi qua tọa độ của con muỗi nào thì có nghĩa là con muỗi đó đậu xuống
và dính vào chiếc bẫy).
Đối với bài tập này một số học sinh trong đội tuyển khá lúng túng khi đưa
ra thuật giải, một số em sắp xếp hai mảng sau đó viết phần tử đầu và cuối của
mảng vừa sắp xếp. Do phải sắp xếp mảng nên số điểm các em đạt được là 30%
số điểm của câu hỏi. Chỉ có hai em hiểu được bản chất thuật toán và đưa ra lời
giải tốt nhất (thuật giải:Ta gọi


lần lượt là tọa độ góc trên cùng bên

trái, tọa độ góc dưới cùng bên phải của chiếc bẫy cần tìm, ta có:

7


với

là tọa độ của con muỗi thứ sẽ đậu xuống)

Thông qua hai bài toán trên, tôi thấy: việc rèn luyện cho học sinh các dạng
toán và phân tích các thuật toán trước khi lập chương trình là rất qua trọng, các
em có thuật toán tối ưu thì khi lập chương trình sẽ đạt điểm tuyệt đối của câu đó.
Thiết nghĩ, việc phát hiện và bồi dưỡng học sinh giỏi nếu được đầu tư một
cách thích đáng và và tiến hành bài bản, kết quả sẽ khả quan hơn và kéo theo đó
là hứng thú của học sinh sẽ phần nào được cải thiện. Việc phát hiện bồi dưỡng là
việc cần phải ý thức thường xuyên, trước hết là đối với những giáo viên trực tiếp
giảng dạy. Năng khiếu càng được phát hiện và bồi dưỡng sớm bao nhiêu càng
tốt bấy nhiêu. Nhưng phát hiện và bồi dưỡng như thế nào cho có hiệu quả là cả
một vấn đề cần được trao đổi kỹ lưỡng.
a) Phát hiện học sinh giỏi môn tin học:
- Thế nào là học sinh giỏi môn tin học?
Học sinh giỏi môn tin học trước hết phải là những học sinh có niềm say
mê, yêu thích môn học. Sự say mê ấy phải được biểu hiện thường xuyên, liên
tục và bằng ý thức tự giác trong học tập, như soạn bài cẩn thận chu đáo, luôn
chủ động tiếp thu kiến thức trong giờ học, đặc biệt phải thể hiện rõ ý thức trách
nhiệm trong các tiết học, thực hành rèn luyện kỹ năng mà giáo viên hướng dẫn.
Sự say mê sẽ giúp các em chịu khó tìm tài liệu để mở mang kiến thức. Quan
trọng hơn là nó giúp học sinh phát huy được trí tưởng tượng, tư duy trừu tượng

và khả năng sáng tạo của môn học.
- Phát hiện học sinh giỏi môn Tin học
Từ quan niệm về học sinh giỏi nói trên, việc phát hiện và bồi dưỡng học
sinh giỏi cần được tiến hành từ đầu lớp 8, cơ sở của việc tuyển chọn của tôi là:
Thứ nhất, tìm hiểu kết quả trong kì thi học sinh năng khiếu môn toán của
đội tuyển lớp 7, tham khảo thêm ý kiến giáo viên đã trực tiếp giảng dạy học

8


sinh ở lớp đó nhất là giáo viên chủ nhiệm và giáo viên toán để nắm bắt những
mặt mạnh, mặt yếu của học sinh.
Thứ hai, lựa chọn đúng đối tượng học sinh: Nòng cốt của đội tuyển Tin
học phải là học sinh của đội tuyển Toán; tổ chức khảo sát để lựa chọn chính xác
đối tượng học sinh vào bồi dưỡng.
Thứ ba, giáo viên cần đánh giá học sinh một cách khách quan, chính xác,
không chỉ qua bài thi mà cả qua việc học tập bồi dưỡng hằng ngày. Việc lựa
chọn đúng không chỉ nâng cao hiệu quả bồi dưỡng, mà còn tránh bỏ sót học sinh
giỏi và không bị quá sức đối với những em không có tố chất.
b) Xây dựng chương trinh bồi dưỡng
Cần soạn thảo chương trình từ cơ bản tới nâng cao, từ đơn giản tới phức
tạp đồng thời cũng phải có ôn tập củng cố.
Không nên xây dựng chương trình như một số sách tham khảo về lập trình
như hiện nay vì như thế học sinh khó nắm chắc, dễ nhầm lẫn. Mặt khác trong
các tài liệu tham khảo có một số dạng bài quá khó đối với học sinh trung học cơ
sở.
Một số giờ ôn tập, giáo viên cần giúp các em tổng hợp các dạng bài, các
phương pháp giải theo hệ thống. Vì hầu hết các em chưa tự mình hệ thống đựơc
mà đòi hỏi phải có sự giúp đỡ của giáo viên.
Điều cần thiết, giáo viên đầu tư nhiều thời gian, tham khảo nhiều tài liệu

để đúc rút, soạn thảo cô đọng nội dung chương trình bồi dưỡng.
Giáo viên cần hướng cho học sinh làm quen cách giải một bài toán cụ thể:
Phân tích kĩ bài toán để tìm dữ liệu vào và dữ liệu ra của một bài toán, xây dựng
thuật toán tối ưu để từ đó viết chương trình.
Giáo viên viết mẫu chương trình đối với một bài cụ thể và chỉ rõ cho học
sinh nên viết như thế nào cho đúng, đủ để người đọc nhìn vào hiểu ngay đoạn
chương trình đó mình đang làm gì.
Và theo tôi nên phân tích nhiều về thuật toán, còn chương trình thì học
sinh tự cài đặt

9


Cần lưu ý rằng: Tuỳ thuộc vào thời gian bồi dưỡng, khả năng tiếp thu của
học sinh mà lựa chọn mức độ bài khó và từng dạng luyện tập nhiều hay ít.
c) Dạy như thế nào cho đạt hiệu quả?
Trước hết cần chọn lọc những phương pháp giải dễ hiểu nhất để hướng
dẫn học sinh, không nên máy móc theo các lời giải trong tài liệu.
Cần vận dụng đổi mới phương pháp giảng dạy phù hợp với nội dung từng
bài; phát huy tính tích cực, độc lập, tự giác của học sinh; tôn trọng và khích lệ
những sáng tạo của học sinh.
Khuyến khích học sinh học theo hướng tích cực: Tự nghiên cứu, trao đổi,
thảo luận để tìm ra cái mới.
Những bài hướng dẫn kiến thức mới, giáo viên cần lấy ví dụ và ra bài tập
mang tính chất vui chơi để gây hứng thú học tập cho học sinh đồng thời giúp các
em ghi nhớ được tốt hơn.
Ví dụ:
+ Làm và cho chạy một số ví dụ phần vòng lặp While…do.
+ Lập trình giải bài toán cổ: Vừa gà, vừa chó.
Bó lại cho tròn

Ba mươi sáu con
Một trăm chân chẵn
Ra bài toán vui, bài toán là một bài thơ, bài toán lấy tên học sinh, hay đáp
số là ngày tháng có ý nghĩa, đáng ghi nhớ (như các ngày lễ lớn, ngày thi,...).
Tuy nhiên, những bài toán như thế, giáo viên cần phải tìm hiểu kỹ, thử và
kiểm tra kết quả nhiều lần.
Hầu hết các bài toán giáo viên chỉ nên gợi mở để học sinh tìm tòi ra cách
giải; không nên giải cho học sinh hoàn toàn hoặc để các em bó tay rồi chữa.
Khi chữa bài giáo viên lại phải giải một cách chi tiết (không nên giải tắt)
để giúp học sinh hiểu sâu sắc bài toán; đặc biệt là những bài toán khó và những
bài học sinh còn sai sót nhiều. Đồng thời uốn nắn những sai sót và chấn chỉnh
cách trình bày của học sinh một cách kịp thời.

10


d) Các bước rèn luyện cho học sinh:
- Rèn luyện kĩ năng xác định bài toán:
Để viết được một chương trình chính xác thì bước phân tích đề là rất quan
trọng, bước này không thể bỏ qua và nếu bước này làm không kĩ thì có thể sai cả
bài toán.
Ví dụ : Kiểm tra phân số tối giản
* Xác định bài toán:
- Input: tử số (x); mẫu số (y)
- Output: phân số a/b tối giản hoặc phân số a/b không tối giản.
* Ý tưởng: Phân số tối giản là phân số không còn chia hết cho số nào
được hết, nghĩa là ƯCLN của tử số và mẫu số bằng 1.
Tìm ƯCLN(x,y)
Kiểm tra:
+Nếu ƯCLN(x,y)=1 thì x/y là phân số tối giản

+Nếu ƯCLN(x,y)<>1 thì x/y không là phân số tối giản
- Rèn luyện kĩ năng viết thuật toán:
Ví dụ 1: Có n hộp có khối lượng khác nhau và một cái cân đĩa. Hãy chỉ
ra cách cân để tìm được hộp nặng nhất.Với bài toán trong thực tế như trên ta
có thể phát biểu lại dưới dạng bài toán trong toán học như sau: Cho tập hợp
A có số phần tử hữu hạn. Tìm phần tử lớn nhất trong tập A nói trên. Khi đó
ta có thể trình bày thuật toán như sau:
1. Nếu chỉ có 1 hộp thì đó chính là hộp nặng nhất và kết thúc.
2. Nếu số hộp n>1 thì
Chọn 2 hộp bất kì và đặt lên bàn cân.
Giữ lại hộp nặng hơn và cất hộp nhẹ đi chỗ khác.
3. Nếu không còn hộp chưa được cân thì chuyển sangbước 5, ngoài ra:
Chọn một hộp bất kì và để lên dĩa cân còn trống
Giữ lại hộp nặng hơn, cất hộp nhẹ sang chỗ khác
4. Trở lại bước 3
11


5. Hộp còn lại trên cân là hộp nặng nhất và kết thúc.
Ví dụ 2: Kiểm tra tính nguyên tố của một số nguyên
Thuật toán:
Bước 1: Nhập số nguyên dương N;
Bước 2: Nếu N=1 thì thông báo N không là nguyên tố rồi kết thúc.
Bước 3: Nếu N<4 thì thông báo N là nguyên tố rồi kết thúc.
Bước 4: i :=2;
Bước 5: Nếu i > [ N ] thì thông báo N là nguyên tố, kết thúc.
Bước 6: Nếu N chia hết cho i thì thông báo N không nguyên tố, kết thúc.
Bước 7: i := i+1, rồi quay lại bước 5.
Hoặc khi chúng ta hướng dẫn cho học sinh thuật toán tìm kiếm phần tử có
mặt trong dãy tăng cho trước thì có nhiều cách như: Tìm kiếm tuần tự hoặc tìm

kiếm nhị phân, và hướng cho học sinh đối với dãy tăng nên sử dụng thuật toán
tìm kiếm nhị phân là tốt nhất.
* Ý tưởng của thuật toán tìm kiếm nhị phân
Sử dụng tính chất dãy A đã sắp xếp tăng, ta tìm cách thu hẹp nhanh phạm
vi tìm kiếm bằng cách so sánh k với số hạng ở giữa dãy (agiữa), khi đó chỉ xảy
ra một trong ba trường hợp:
Nếu agiữa= k => tìm được chỉ số, kết thúc;
Nếu agiữa > k => do dãy A đã được sắp xếp tăng nên việc tìm kiếm thu hẹp
chỉ xét từ a1  agiữa -1;
Nếu agiữa < k => do dãy A đã được sắp xếp tăng nên việc tìm kiếm thu
hẹp chỉ xét từ agiữa +1  an.
- Rèn kĩ năng đọc hiểu chương trình:
Loại bài tập này sẽ giúp phát triển tư duy, giúp học sinh hiểu bài, nhất là
khi dạy các cấu trúc lệnh. Đối với dạng bài tập này, giáo viên nên hướng
dẫn các em thực hiện tuần tự từng lệnh theo từng câu lệnh cụ thể.
Ví dụ: Cho biết kết quả khi thực hiện chương trình sau:
Program vd2;
12


Uses crt;
Var i:integer;
Begin
Clrscr;
I:=7; While i>1 do
Begin
If (i mod 2)<>0 then i:=i*3+1
Else i:=i div 2;
Writeln(i);End;
Readln;

End.
- Rèn luyện kĩ năng viết chương trình:
Nếu việc phân tích và đưa ra thuật toán khó bao nhiêu thì việc viết chương
trình lại càng phải chính xác và khó khăn hơn. Phải viết đúng câu lệnh, cú pháp
và có khả năng tư duy tốt thì chương trình mới thi hành được. Chính vì vậy, với
tư cách là giáo viên bồi dưỡng học sinh giỏi tôi đã rèn cho học sinh cách viết
từng câu lệnh một, từ cách khai báo đến câu lệnh nhập, câu lệnh khai báo,…
+ Rèn luyện cho học sinh viết chương trình dựa trên những thuật toán đã làm
Ví dụ: Cho một dãy các số nguyên ai, hãy tìm các điểm chia để chia dãy
đã cho thành hai phần sao cho khi nối hai dãy đó lại ta được một dãy tăng (Câu
2 đề thi học sinh giỏi cấp tỉnh Phú Thọ năm học 2015-2016 môn Tin học)
Chương trình (Viết bằng ngôn ngữ lập trình Pascal)
Uses crt;
Const fi='sapxep.inp';
fo='psapxep.out';
Type
ma=array[1..1000000] of LongInt;
Var
a,b:ma;
dem,cs,dau,m,cuoi,i,j,n, min, max,p:LongInt ;
e,f:text;
Begin
Assign(f,fi);
Reset(f);
13


Assign(e,fo);
Rewrite(e);
Readln(f,n);

For i:=1 to n do Read(f,a[i]);
cs:=0; dem:=0;
For j:=1 to n-1 do
Begin
cuoi:=j; dau:=j+1;
max:=a[1]; min:=a[j+1];
For m:=1 to cuoi do If maxFor p:=dau to n do If min>a[p] then min:=a[p];
If max < min then
Begin
Inc(dem);
inc(cs);

b[cs]:=j;

End;
End;
If dem<> 0 then
Begin
Writeln(e,dem);
For i:=1 to cs do
Write(e,b[i],' ');
End;
Close(e);
Close(f);
End.
- Rèn cho học sinh sửa lỗi chương trình:
Để tìm số lớn nhất trong 3 số a,b,c được nhập vào từ bàn phím, có người đã
viết chương trình như sau:
Program vd3;

Uses crt;
Var a,b,c:integer;
Begin
Clrscr;
14


Write(‘nhap vao 3 so:’);
Readln(a,b,c);
If aElse
If aWrite(‘So lon nhat la:’,a);
Readln;
End.
Chương trình trên cho đáp số lúc đúng, lúc sai tuỳ thuộc vào a,b,c. Hãy giải
thích tại sao và sửa lại cho đúng.
Ta thực hiện chương trình trên với 2 bộ input sau đây:
- a=3,b=4,c=5
a
B
c
aa3
4
5
T (3<4)
4
Vậy số lớn nhất là 4 Kết quả sai

- a=5,b=4,c=7
a
B
c
aa5
4
7
F (5<4)
T (5<7)
7
Vậy số lớn nhất là 7 Kết quả đúng
Chương trình trên thực hiện lúc đúng lúc sai do chương trình mới chỉ so sánh
2 số a và b thôi đã đưa ra kết luận. Ta có thể sửa lại chương trình như sau:
Program vd3_1;
Uses crt;
Var a,b,c:integer;
Begin
Clrscr;
Write(‘nhap vao 3 so:’);
Readln(a,b,c);
If aBegin
If bEnd
Else
If aWrite(‘So lon nhat la:’,a);
Readln;

End.
15


Tóm lại: Quá trình xây dựng chương trình là một chuỗi các bước tinh chế. Ở
mỗi bước được phân ra nhiều công việc nhỏ, để từ đó đưa ra được phương pháp
tối ưu. Song, học sinh học lập trình cần rèn luyện để có ý thức về các quyết định
liên quan và biết khảo sát nghiêm túc các lời giải ngay cả khi chúng cho kết quả
đúng. Cần phải cân nhắc mọi phương tiện của từng lời giải theo một tiêu chuẩn
nhất định.
Phần 3: Hiệu quả của sáng kiến kinh nghiệm.
- Đối với giáo viên: Giáo viên đã hệ thống được kiến thức cơ bản và các
dạng bài tập trong chương trình Tin học 8, lựa chọn được các dạng bài tập có
mức độ từ dễ đến khó theo từng dạng, từ đó nâng cao kinh nghiệm khi giảng dạy
bồi dưỡng học sinh giỏi Tin học. Từ cách nghiên cứu sáng kiến kinh nghiệm
này, giáo viên tiếp tục tìm hiểu để nghiên cứu các sáng kiến kinh nghiệm đối với
các phần kiến thức khác nhằm nâng cao hơn nữa chất lượng học sinh giỏi môn
Tin học.
- Đối với học sinh: Sau khi áp dụng sáng kiến kinh nghiệm, các em đã
thực hiện được đầy đủ các bước giải một bài tập lập trình Tin học, không còn sai
sót trong thao tác vào, ra dữ liệu; đa số các em đã tối ưu hóa được thuật toán. Cụ
thể được thể hiện qua kết quả thi chọn học sinh giỏi các cấp năm học 2017-2018
như sau:
Cấp huyện
TS

TS

tham


đạt

gia

giải

10

9

Nhất

1

Nhi

2

Cấp tỉnh
Ba

3

KK

TS

TS

tham


đạt

gia

giải

9

8

3

Nhất

Nhi

Ba

KK

2

3

3

Qua việc giảng dạy, bồi dưỡng học sinh giỏi, tôi nhận thấy rằng: Người
thầy cần không ngừng học hỏi và tự học hỏi để nâng cao trình độ đúc rút kinh
nghiệm, thường xuyên xây dựng, bổ sung chương trình và sáng tạo trong

phương pháp giảng dạy và đặc biệt phải đam mê, có tâm với nghề.

16


III. KẾT LUẬN
1. Kết luận:
Trong quá trình nghiên cứu, tìm tòi và vận dụng sáng kiến vào thực tiễn
công tác bồi dưỡng học sinh giỏi, tôi xin rút ra một số kết luận sau:
- Để đưa ra một phương pháp tối ưu cho một bài toán không đơn giản. Bởi
một bài toán chúng ta có thể đưa ra nhiều phương pháp giải khác nhau. Song
trong lập trình, người giải không sử dụng đúng cách giải thì một bài toán có thể
đi ngược lại làm cho các kết quả khác nhau. Điều đó cho thấy người lập trình
cần phải nắm vững thuật toán đối với từng dạng toán.
- Để bồi dưỡng học sinh giỏi đạt hiệu quả trước hết phải có những giáo viên
vững về kiến thức, kỹ năng thực hành và thiết kế tốt.
- Thường xuyên học hỏi trau dồi kiến thức, đọc các tài liệu bồi dưỡng để
ngày càng làm phong phú thêm vốn kiến thức của mình.
- Thực sự yêu nghề, có tâm với công việc bồi dưỡng học sinh giỏi.
- Có phương pháp nghiên cứu bài, soạn bài, ghi chép giáo án một cách khoa
học, luôn tìm tòi, tham khảo thêm các đề thi của các năm trước của tỉnh và các
tỉnh khác.
- Tham khảo nhiều sách báo tài liệu có liên quan, giao lưu học hỏi các bạn
đồng nghiệp có nhiều kinh nghiệm, các trường có bề dày thành tích trong tỉnh
như: THCS Lâm Thao; THCS Văn Lang; THCS Hạ Hoà.
- Giáo viên phải khơi dậy niềm say mê, hứng thú của học sinh đối với môn
Tin học, luôn phối hợp với gia đình để tạo điều kiện tốt nhất cho các em tham
gia học tập, bồi dưỡng.
Trong quá trình nghiên cứu và áp dụng sáng kiến kinh nghiệm vào giảng
dạy, bồi dưỡng học sinh giỏi bước đầu tôi đã nhận được một số thành công.

17


Mong nhận được sự góp ý của các thầy cô giáo cùng như bạn bè để sáng kiến
kinh nghiệm của tôi được hoàn thiện hơn, chất lượng học sinh giỏi môn Tin học
ngày càng được giữ vững và nâng cao.
2. Kiến nghị, đề xuất:
Kinh nghiệm “Kinh nghiệm dạy lập trình Pascal trong bồi dưỡng học sinh
giỏi môn tin học cấp trung học cơ sơ” hệ thống được các bước cơ bản trong việc
xây dựng thuật giải cho một bài toán Tin học. Từ đó vận dụng vào bồi dưỡng
học sinh giỏi môn Tin học.
Sáng kiến kinh nghiệm này có thể mở rộng bằng cách bổ sung thêm các
dạng toán thường gặp, một số thuật toán dành cho các lớp chuyên tin cấp THPT
và giới thiệu các đề thi học sinh giỏi của huyện Thanh Sơn, tỉnh Phú Thọ, kèm
theo lời giải từ đó lập thành menu giúp học sinh đội tuyển học tập thuận tiện
hơn.
Tôi xin trân trọng cảm ơn !
Thanh Sơn, ngày 20 tháng 3 năm 2019
Người viết

XÁC NHẬN CỦA THỦ
TRƯỞNG ĐƠN VỊ

Vũ Văn Minh

18


DANH MỤC TÀI LIỆU THAM KHẢO.
- Bộ Giáo dục- Đào tạo, “Tin học dành cho Trung học cơ sơ (quyển 3)”,

NXB giáo dục, năm 2017.
- Hội Tin học Việt Nam , “Tạp chí: Tin học và nhà trường”
- Quách Tuấn Ngọc, “ Ngôn ngữ lập trình Pascal”, NXB Thống kê, năm
2001.
- Tô Văn Nam ,“ Tin học đại cương Turbo Pascal”, NXB giáo dục, năm
2005.
- Các bài tập tham khảo ở đĩa CD “100 bài toán-tin”.
- Một số trang Web lập trình:
+ Coder nhí (hsgtindongnai.blogspot.com);
+ Khoa Công nghệ thông tin- Đại học Nha Trang (NTUCoder.net);
+ Diễn đàn tin học thuật toán (VNOI.Info);
+ Bài tập lập trình (pascalteacher.blogspot.com).

19