PHẦN I
MỞ ĐẦU
I. Lý do chọn đề tài
1. Trong bối cảnh Công nghệ thông tin ngày càng phát triển, việc sử dụng rộng
rãi máy tính không còn chỉ bó hẹp trong viện nghiên cứu, các trường đại học, các
trung tâm máy tính mà còn mở rộng ra mọi cơ quan, xí nghiệp và nhà máy. Song
song với quá trình trên, việc giảng dạy Tin học trong các trường đại học, trung
học và phổ thông cũng được đẩy mạnh đi đôi với việc tăng cường trang bị máy vi
tính. Chính vì vậy, đối với mỗi giáo viên giảng dạy môn Tin học ở các trường
phổ thông, việc tìm hiểu, nghiên cứu các vấn đề về Tin học, cùng với việc tìm các
biện pháp giảng dạy Tin học trong nhà trường phổ thông là một công việc cần
phải làm thường xuyên, nhằm đáp ứng với sự đòi hỏi ngày càng cao của xã hội.
2. Trong nghiệp vụ của người thầy giáo có hai vấn đề quan trọng: thứ nhất là
thực tiễn về tiềm năng - những kiến thức lý thuyết mà họ được học rất cơ bản.
Thứ hai là thực tiễn về nghiệp vụ - thầy giáo phải biết cách truyền thụ kiến thức
phù hợp với trình độ của học sinh. Trong đó, thực tiễn thứ hai là điều quyết định
trong nghiệp vụ của thầy giáo, nó đánh giá chất lượng giảng dạy của thầy giáo.
Hai thực tiễn trên vừa mâu thuẫn với nhau, lại vừa thống nhất với nhau. Thầy
giáo không thể mang hết các kiến thức lý thuyết cao xa và trừu tượng dạy cho
học sinh, nhưng cũng không thể dạy tốt cho học sinh nếu thầy giáo hiểu biết quá
ít.
2.1. Trong bối cảnh toàn ngành Giáo dục và Đào tạo đang nỗ lực đổi mới
phương pháp dạy học theo hướng phát huy tính tích cực chủ động của học sinh
trong hoạt động học tập. Điều 24.2 của Luật giáo dục đã nêu rõ : “Phương pháp
giáo dục phổ thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của
học sinh, phù hợp với đặc điểm của từng lớp học, môn học; bồi dưỡng phương
pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn, tác động đến
tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh”. Như vậy, chúng ta
có thể thấy định hướng đổi mới phương pháp dạy học đã được khẳng định, không
Trang 5
còn là vấn đề tranh luận. Cốt lõi của việc đổi mới phương pháp dạy học ở trường
phổ thông là giúp học sinh hướng tới việc học tập chủ động, chống lại thói quen
học tập thụ động.
2.2. Đổi mới phương pháp dạy học theo hướng tích cực hóa hoạt động của học
sinh là một quá trình lâu dài; không thể ngày một ngày hai mà đông đảo giáo viên
từ bỏ được kiểu dạy học truyền thụ kiến thức, tiếp thu thụ động đã quen thuộc từ
lâu. việc phát triển các phương pháp tích cực đòi hỏi một số điều kiện, trong đó
quan trọng nhất là bản thân mỗi giáo viên cần có một sự nỗ lực để tìm tòi, sáng
tạo trong công tác giảng dạy của mình.
2.3. Đổi mới phương pháp dạy học là một vấn đề hết sức quan trọng, nhất là
với bộ môn Tin học hiện đang được đưa vào giảng dạy ở các trường phổ thông.
Là một giáo viên giảng dạy bộ môn này, theo em không phải cứ tìm được nhiều
bài toán khó, bài toán hay để giảng dạy cho học sinh. Mà vấn đề đặt ra là chúng
ta cần phải tích cực tìm tòi, sáng tạo trong việc đưa ra những bài toán đó để giúp
cho học sinh có sự hứng thú, tìm tòi sáng tạo trong quá trình giài quyết học tập,
từ đó biết vận dụng linh hoạt trong các tình huống cụ thể ngoài thực tế.
3. Trong việc giảng dạy cho học sinh, ngoài việc giúp học sinh lĩnh hội những
kiến thức cơ bản. Thầy giáo còn phải biết kích thích tính tích cực, sự sáng tạo say
mê học hỏi của học sinh trong việc học tập của các em. Bởi vì, việc học tập tự
giác, tích cực, chủ động và sáng tạo đòi hỏi học sinh phải có ý thức về những
mục tiêu đặt ra và tạo được động lực bên trong thúc đẩy bản thân họ hoạt động để
đạt các mục tiêu đó. Điều này được thực hiện trong dạy học không chỉ đơn giản
bằng việc nêu rõ mục tiêu mà quan trọng hơn còn do gợi động cơ.
4. Turbo Pascal là ngôn ngữ lập trình có cấu trúc, nó được dùng phổ biến ở
nước ta hiện nay trong công tác giảng dạy, lập trình tính toán, đồ họa. Turbo
Pascal được dùng trong chương trình giảng dạy Tin học ở hầu hết các trường đại
học, cao đẳng, trung học phổ thông.
4.1. Trong các vấn đề về Tin học được đưa vào giảng dạy ở chương trình bậc
học phổ thông hiện nay. Khi nói đến vấn đề dạy học lập trình cho học sinh, vấn
Trang 6
đề dạy học cho học sinh về chương trình con là một trong những vấn đề chiếm
vai trò quan trọng. Bởi vì, sử dụng chương trình con để hợp lý hóa, tiết kiệm
công sức lập trình. Đồng thời, chương trình con có thể giúp cho người lập trình
dễ sửa chữa, dễ kiểm tra. Vấn đề đặt ra là: gợi động cơ hoạt động cho học sinh
khi giảng dạy về chương trình con như thế nào? Đó chính là vấn đề mà bản thân
em hết sức quan tâm.
4.2. Để thực hiện được điều đó, theo em chúng ta cần phải tìm tòi, nghiên cứu
tìm ra những bài toán phù hợp, kích thích được sự độc lập, tích cực của học sinh
trong học tập. Trên cơ sở đó, học sinh có thể tự mình tìm ra được những ý tưởng
sáng tạo vận dụng thiết thực vào cuộc sống thực tế khi nhu cầu nảy sinh, khi đó
các em có thể tự mình hoàn thành được ý tưởng đó.
4.3. Trên cơ sở những gì mà học sinh được học tập về môn lập trình Pascal,
học sinh có thể sử dụng một cách thành thạo các ngôn ngữ khác để hoàn thành tốt
hơn những ứng dụng trong thực tế. Bởi vì, ngôn ngữ Pascal có tính cấu trúc
mạnh, có cơ sở và nó đòi hỏi chương trình phải chặt chẽ, logic. Đặc biệt, khi học
về chương trình con, học sinh có thể hiểu một cách sâu sắc hơn về ngôn ngữ lập
trình, nhìn nhận vấn đề một cách sáng sủa hơn, chặt chẽ hơn và nhất là chương
trình con có thể giúp cho các em hoàn thành những chương trình lớn hơn vượt ra
những bài toán bình thường mà nội bộ môn học đòi hỏi. Chính vì vậy, việc gợi
động cơ cho học sinh trong việc dạy học chương trình con là một công việc quan
trọng, đòi hỏi mỗi giáo viên cần phải nỗ lực tìm tòi, sáng tạo giúp cho học sinh
nhìn nhận vấn đề một cách tích cực hơn, sáng tạo hơn và nhất là giúp cho các em
có thể yêu thích nhiều hơn nữa ngôn ngữ lập trình Pascal.
Với tất cả những lý do nêu trên, em quyết định chọn đề tài này.
Trang 7
II. Định hướng nghiên cứu
1. Mục đích nghiên cứu
Tạo động cơ cho học sinh ý thức về ý nghĩa của các hoạt động khi sử dụng
chương trình con trong công việc lập trình. Từ đó, học sinh có thể liên hệ , vận
dụng sáng tạo vào giải quyết các bài toán lập trình và các tình huống thực tế.
2. Nhiệm vụ nghiên cứu
Qua việc nghiên cứu các vấn đề về chương trình con của ngôn ngữ lập trình
Pascal, các tài liệu về phương pháp giảng dạy. Từ đó, đưa ra các biện pháp có thể
gợi động cơ hoạt động cho học sinh thông qua các ví dụ cụ thể về chương trình
con.
III. Phương pháp nghiên cứu
1. Nghiên cứu lý luận
Trong nghiên cứu lý luận người ta dựa vào những tài liệu sẵn có, những lý
thuyết đã được khẳng định, những thành tựu của nhân loại trên những lĩnh vực
khác nhau như Tâm lý học, Giáo dục học, Tin học, ... để xem xét vấn đề, tìm ra
giải pháp hợp lý có sức thuyết phục vận dụng vào PPDH Tin học.
Người ta cũng nghiên cứu cả những kết quả của bản thân chuyên ngành PPDH
Tin học để kế thừa những cái hay, phê phán và gạt bỏ những cái dở, bổ xung và
hoàn chỉnh những nhận thức đã đạt được.
Những hình thức thường dùng trong nghiên cứu lý luận là:
- Phân tích tài liệu lý luận : Giúp chúng ta chọn đề tài, đề ra mục đích nghiên
cứu, hình thành giả thuyết khoa học, xác định tư tưởng chủ đạo và đánh giá sự
kiện. Khi nghiên cứu lý luận, ta cần phân tích, tổng hợp, so sánh, khái quát để tìm
ra ý mới. Cái mới ở đây có thể là một lý thuyết hoàn toàn mới, nhưng cũng có thể
là một cái mới đan kết với những cái cũ, có thể là một sự tổng hợp những nét
riêng lẻ đã chứa trong cái cũ, nêu bật cái bản chất từ những cái cũ, bổ xung, cụ
thể hóa lý thuyết cũ.
Trang 8
- So sánh quốc tế : Giúp chúng ta lựa chọn, xây dựng phương án tác động giáo
dục trên cơ sở đánh giá, so sánh tài liệu, cách làm của những nước khác nhau.
- Phân tích tiên nhiệm : Thường dựa vào những yếu tố lịch sử, những cách tiếp
cận khác nhau của một lý thuyết, những cách định nghĩa khác nhau của một khái
niệm, ... để dự kiến những quan niệm có thể có của học sinh về một kiến thức Tin
học. Nó cũng được dùng để kiểm nghiệm một hiện tượng, một quá trình có thỏa
mãn những tiêu chuẩn, yêu cầu, điều kiện đặt ra hay không.
2. Quan sát - điều tra
Quan sát điều tra được sử dụng rộng rãi trong nghiên cứu giáo dục. Đó là
phương pháp tri giác có mục đích một hiện tượng giáo dục nào đó để thu lượm
những số liệu, tài liệu, sự kiện cụ thể đặc trưng cho quá trình diễn biến của hiện
tượng mà ta dự định khảo sát. Chúng ta quan tâm đến chất lượng của các mối
quan hệ, của các hoạt động, của tình huống. Điều tra giống quan sát ở chỗ cùng
dựa vào và khai thác những hiện tượng có sẵn, không chủ động gây nên những
tác động sư phạm, nhưng quan sát thiên về xuất phát từ những dấu hiệu bên
ngoài, còn điều tra có thể khai thác những thông tin sâu kín từ bên trong, chẳng
hạn cho làm những bài kiểm tra rồi đánh giá.
Quan sát - điều tra giúp chúng ta theo dõi hiện tượng giáo dục theo trình tự
thời gian, phát hiện những biến đổi số lượng, chất lượng gây ra do tác động giáo
dục. Nó giúp ta thấy được những vấn đề thời sự cấp bách đòi hỏi phải nghiên cứu
hoặc góp phần giải quyết nhiệm vụ nghiên cứu. Môi trường tự nhiên là nguồn
cung cấp dữ liệu trực tiếp cho ta. Người nghiên cứu đến trực tiếp một nơi nào đó
mà họ quan tâm để quan sát và thu thập dữ liệu, bởi vì các hoạt động chỉ có thể
hiểu tốt nhất là trong môi trường tự nhiên, trong ngữ cảnh mà chúng xuất hiện.
Quan sát - điều tra thực tiễn sư phạm, chẳng hạn thăm lớp dự giờ sẽ giúp
chúng ta nhận thức được thực trạng dạy học Tin, phát hiện được những vấn đề
thời sự cấp bách cần nghiên cứu, giúp ta thu được những tài liệu sinh động và bổ
ích cho nhiệm vụ nghiên cứu.
Trang 9
Theo mối quan hệ giữa đối tượng quan sát - điều tra với người nghiên cứu thì
có các dạng quan sát - điều tra trực tiếp, gián tiếp, công khai, kín đáo. Theo dấu
hiệu về thời gian thì có quan sát - điều tra liên tục, gián đoạn.
Quan sát - điều tra cần có mục đích cụ thể (chẳng hạn để thấy được hoạt động
tích cực của học sinh trong giờ học), có nội dung cụ thể (chẳng hạn sự gây động
cơ và hướng đích của giáo viên, số lượng học sinh giơ tay xin phát biểu, số lượng
câu hỏi, chất lượng câu trả lời của học sinh thể hiện sự suy nghĩ sâu sắc hay hời
hợt, sự tập trung chú ý thể hiện qua hướng nhìn, cử chỉ, ... ) và có tiêu chuẩn đánh
giá, đo lường các kết quả quan sát cụ thể (chẳng hạn một giờ như thế nào được
đánh giá là học sinh hoạt động rất tích cực, khá tích cực, kém tích cực). Các loại
dữ liệu thu thập được trong nghiên cứu bao gồm văn bản ghi chép các cuộc
phỏng vấn, các sổ ghi chép, ảnh, băng hình, ghi âm, phiếu điều tra, nhật ký, ...
giúp ta dựng lại một cách đầy đủ những gì mà ta đã quan sát được, giúp ta lý giải
được vì sao họ lại nghĩ như thế, tại sao họ lại làm như vậy?, ...
Trong khi quan sát - điều tra diễn biến thực của những hiện tượng sư phạm, có
khi người ta tình cờ phát hiện ra những sự kiện, hiện tượng sư phạm mới ngoài
dự kiến ban đầu.
3. Tổng kết kinh nghiệm
Tổng kết kinh nghiệm thực chất là đánh giá và khái quát hóa những kinh
nghiệm đã thu thập được trong hoạt động thực tiễn, từ đó phát hiện ra những vấn
đề cần khẳng định để đưa ra áp dụng rộng rãi hoặc cần tiếp tục nghiên cứu hay
loại bỏ. Nó có nguồn gốc từ kinh nghiệm, mang tính khoa học, được lĩnh hội,
kiểm chứng từ quá trình hoạt động thực tiễn sinh động. Bài học kinh nghiệm là sự
cụ thể hóa một cách sáng tạo tư tưởng, luận điểm, lý luận giáo dục đã đi vào cuộc
sống. Trong quá trình nghiên cứu tổng kết kinh nghiệm, có khi người ta khám
phá ra những mối liên hệ có tính quy luật của những hiện tượng giáo dục.
Những kinh nghiệm cần được đặc biệt chú ý là kinh nghiệm tiên tiến, kinh
nghiệm thành công và kinh nghiệm lặp lại nhiều lần. Kinh nghiệm giáo dục ở
những đơn vị tiên tiến có thể được coi là dạng lý luận giáo dục đã được kiểm
Trang 10
chứng trong thực tiễn, trong những tình huống, điều kiện cụ thể của môi trường
giáo dục. Những bài học của sự thành công cần được đề cập với tư cách là cứ liệu
đối chiếu, so sánh làm rõ kinh nghiệm thành công. Chúng cần được xem xét một
cách khách quan, khoa học, biện chứng theo tính lịch sử của vấn đề rút ra những
kết luận có tính thuyết phục, có độ Tin cậy cao. Qua tổng kết kinh nghiệm, chúng
ta có được những bài học kinh nghiệm hàm chứa những tri thức, thông Tin, kỹ
năng, những giải pháp, biện pháp về hướng đi và cách làm mới có giá trị, đem lại
hiệu quả, chất lượng cao hơn trong điều kiện đổi mới giáo dục của đất nước hiện
nay.
Tổng kết kinh nghiệm phải có lý luận soi sáng, giải thích tính chất hợp lý, phù
hợp với những quy luật đã được khẳng định thì mới có thể thoát khỏi những sự
kiện lộn xộn, những kinh nghiệm vụn vặt, hời hợt không có tính phổ biến, mới
loại bỏ được những yếu tố ngẫu nhiên, đi sâu vào bản chất của sự vật, hiện tượng,
đạt tới những kinh nghiệm có giá trị khoa học đích thực. Chỉ khi đó tổng kết kinh
nghiệm mới thật sự là một phương pháp nghiên cứu khoa học hữu hiệu. Những
bài học kinh nghiệm, những kết luận về lý luận giáo dục góp phần bổ xung, làm
cho lý luận giáo dục được hoàn thiện hơn, mang tính thực tiễn cao hơn, tránh
được tình trạng lý luận suông. Bài học kinh nghiệm giáo dục phải bảo đảm có
được một sự khái quát nhất định, mang tính khoa học với tính lý luận cụ thể và
đặc biệt phải mang tính thực tiễn cao.
Bài học kinh nghiệm cần trình bày theo trình tự sau:
- Tên bài học kinh nghiệm
- Nêu bối cảnh xuất hiện vấn đề mà khi giải quyết dẫn đến bài học kinh
nghiệm.
- Những kết quả đạt được gắn với nhiệm vụ nghiên cứu.
- Hệ thống biện pháp đã vận dụng đạt kết quả cao.
- Đánh giá tác dụng, hiệu quả của bài học kinh nghiệm, đưa ra nhận định có
tính khái quát về bài học mang tính lý luận.
Trang 11
Tổng kết kinh nghiệm không chỉ đơn giản là trình bày lại những công việc đã
làm và những kết quả đã đạt được. Là một phương thức nghiên cứu khoa học, nó
phải được tiến hành theo một quy trình nghiêm túc, thường là như sau:
Liệt kê sự kiện, mô tả quá trình
Tước bỏ những yếu tố ngẫu
nhiên làm bộc lộ cái bản chất
Phát hiện mối quan hệ nhân quả
Dùng lý luận soi sáng
Dùng thực nghiệm kiểm chứng
Phát hiện cần đảm bảo cả về mặt định tính và phần nào về mặt định lượng, tức
là phải thu thập đủ về dữ liệu, tư liệu về sự kiện, việc làm, các hoạt động đã tiến
hành đạt kết quả cao nhất. Trong đó cần chú trọng đến những dữ liệu, tư liệu,
thông tin mà nội dung của chúng phản ánh mối quan hệ giữa kết quả với nguyên
nhân và biện pháp. Những bước của quá trình phát hiện có thể là:
- Nêu mục đích yêu cầu phát hiện.
- Triển khai những hình thức phát hiện.
- Thẩm định, bổ sung thông tin.
- Tiến hành xử lý thông tin.
Trang 12
Khi tiến hành xử lý thông tin phải căn cứ vào cái có thực thu được qua quá
trình khảo sát, phát hiện thu thập được. Dùng lý luận để phân tích các tư liệu, số
liệu rút ra được từ thực tiễn. Rút ra bài học kinh nghiệm dưới dạng khái quát
mang tính lý luận hay khẳng định về mặt lý luận và thực tiễn. Trong quá trình xử
lý, cần áp dụng những thao tác tư duy khoa học, trừu tượng hóa các yếu tố ngẫu
nhiên, tìm ra tính đặc thù, tất yếu mà chúng đã thể hiện trong bối cảnh, hoàn cảnh
cụ thể.
Phần cuối của sơ đồ cho thấy rõ mối liên hệ giữa tổng kết kinh nghiệm với
nghiên cứu lý luận và thực nghiệm giáo dục.
4. Thực nghiệm giáo dục
Thực nghiệm giáo dục cho phép ta tạo nên những tác động sư phạm vào quá
trình dạy học và giáo dục. Những tác động này xảy ra trong những điều kiện có
thể khống chế, điều chỉnh, thay đổi được, ít chịu ảnh hưởng của những yếu tố
ngẫu nhiên khác, từ đó xác định và đánh giá kết quả của những tác động đó. Đặc
trưng của thực nghiệm giáo dục là nó không diễn ra một cách tự phát mà là dưới
sự điều khiển của nhà nghiên cứu. Nhà nghiên cứu tổ chức quá trình giáo dục một
cách có ý thức, có mục đích, có kế hoạch, tự giác thiết lập và thay đổi những điều
kiện thực nghiệm cho phù hợp với ý đồ nghiên cứu của mình.
Trong những điều kiện nhất định, thực nghiệm giáo dục cho phép ta khẳng
định hoặc bác bỏ một giả thuyết khoa học đã đề ra.
Trong thực nghiệm giáo dục ta cần giải thích rõ kết quả, làm rõ nguyên nhân
bằng lý luận hoặc bằng sự phân tích quá trình thực nghiệm.
Thực nghiệm giáo dục là một phương pháp nghiên cứu rất có hiệu lực, song
thực hiện nó rất công phu, rất khó khăn. Khó khăn là do chúng ta thực hiện một
tác động lên những con người cụ thể, kết quả thu được phụ thuộc vào nhiều yếu
tố tâm lý. Những kết quả thực nghiệm thường chỉ có ý nghĩa xác suất, phải xử lý
bằng phương pháp thống kê. Để thống kê cho kết quả Tin cậy, cần phải đo lường,
định lượng được các dấu hiệu, đó là việc làm không dễ. Vì thế ta không nên lạm
dụng phương pháp thực nghiệm giáo dục. Khi nghiên cứu một hiện tượng giáo
Trang 13
dục, trước hết có thể dùng những phương pháp không đòi hỏi quá nhiều công sức,
ví dụ như nghiên cứu lý luận, quan sát, tổng kết kinh nghiệm. Chỉ ở những chỗ
các phương pháp này chưa đủ sức thuyết phục, chỉ ở một số khâu mấu chốt, ta
mới dùng thực nghiệm giáo dục.
Thông thường những phương pháp được sử dụng kết hợp với nhau, làm cho
kết quả thu được vừa có tính lý luận, vừa có tính thực tiễn. Chẳng hạn, qua
nghiên cứu lý luận, quan sát, tổng kết kinh nghiệm, người ta đề xuất một giả
thuyết khoa học rồi đem thực nghiệm giáo dục để kiểm nghiệm. Sau đó, lại dùng
lý luận để phân tích kết quả, xác định nguyên nhân và khái quát hóa lên một trình
độ cao hơn, tổng quát hơn những điều đã đạt được.
Trang 14
Chương I
CƠ SỞ LÝ LUẬN VỀ GỢI ĐỘNG CƠ HOẠT ĐỘNG
Gợi động cơ là làm cho học sinh có ý thức về ý nghĩa của những hoạt động
và của đối tượng hoạt động. Gợi động cơ nhằm làm cho những mục tiêu sư phạm
biến thành những mục tiêu của cá nhân học sinh, chứ không phải chỉ là sự vào
bài, đặt vấn đề một cách hình thức.
Ở những lớp dưới, thầy giáo thường dùng những cách như cho điểm, khen chê,
thông báo kết quả học tập cho gia đình, ... để gợi động cơ. Càng lên lớp cao, cùng
với sự trưởng thành của học sinh, với trình độ nhận thức và giác ngộ chính trị
ngày càng cao những cách gợi động cơ xuất phát từ nội dung hướng và những
nhu cầu nhận thức, nhu cầu đời sống, trách nhiệm đối với xã hội ngày càng trở
nên quan trọng.
Gợi động cơ không phải chỉ là việc làm ngắn ngủi lúc bắt đầu dạy một tri thức
nào đó, mà phải xuyên suốt quá trình dạy học. Vì vậy, có thể phân biệt gợi động
cơ mở đầu, gợi động cơ trung gian và gợi động cơ kết thúc. Trong đề tài này em
xin đưa ra một số giải pháp gợi động cơ hoạt động trong việc giảng dạy chương
trình con của ngôn ngữ lập trình Pascal theo từng giai đoạn như trên.
Trang 15
1. Gợi động cơ mở đầu
Để Gợi động cơ mở đầu chúng ta có thể gợi động cơ xuất phát từ thực tế hoặc
xuất phát từ nội bộ Tin học.
Việc xuất phát từ thực tế không những có tác dụng gợi động cơ mà còn góp
phần hình thành thế giới quan duy vật biện chứng. Nhờ đó, học sinh nhận rõ việc
nhận thức và cải tạo thế giới đã đòi hỏi phải suy nghĩ và giải quyết những vấn đề
Tin học như thế nào, tức là nhận rõ Tin học bắt nguồn từ những nhu cầu của đời
sống thực tế. Vì vậy, chúng ta cần khai thác triệt để mọi khả năng để gợi động cơ
xuất phát từ thực tế. Tuy nhiên, để gợi động cơ xuất phát từ thực tế cần chú ý các
điều kiện sau:
- Vấn đề đặt ra phải đảm bảo tính chân thực, đương nhiên có thể đơn giản hóa
vì lý do sư phạm trong trường hợp cần thiết.
- Việc nêu vấn đề không đòi hỏi quá nhiều tri thức bổ xung.
- Con đường từ lúc nêu vấn đề cho tới khi giải quyết vấn đề càng ngắn càng
tốt.
Mặc dù Tin học phản ánh thực tế một cách toàn bộ và nhiều tầng. Tuy nhiên
không phải bất cứ nội dung nào, hoạt động nào cũng có thể gợi động cơ xuất phát
từ thực tế. Vì vậy, ta còn tận dụng cả những khả năng gợi động cơ xuất phát từ
nội bộ Tin học.
Gợi động cơ từ nội bộ Tin học là nêu vấn đề Tin học xuất phát từ nhu cầu Tin
học, từ việc xây dựng khoa học Tin hoc, từ những phương thức tư duy và hoạt
động Tin học. Gợi động cơ theo cách này là cần thiết vì:
- Việc gợi động cơ xuất phát từ thực tế không phải bao giờ cũng thực hiện
được.
- Việc gợi động cơ từ nội bộ Tin học sẽ giúp học sinh hình dung được đúng sự
hình thành và phát triển của Tin học cùng với những đặc điểm của nó và có thể
dần dần tiến tới hoạt động Tin học một cách độc lập.
Trang 16
Thông thường khi bắt đầu một nội dung lớn, chẳng hạn một phân môn hay một
chương ta nên cố gắng xuất phát từ thực tế. Còn đối với từng bài hay từng phần
của bài thì cần tính tới những khả năng gợi động cơ từ nội bộ Tin học. Đó là
những cách sau đây:
1.1. Đáp ứng nhu cầu xóa bỏ sự hạn chế
Xét bài toán : “Viết chương trình cho máy tính chu vi, diện tích và đường chéo
của ba hình chữ nhật theo hai kích thước của mỗi hình. Trong đó:
- Hình thứ nhất có hai kích thước là a1, a2
- Hình thứ hai có hai kích thước là b1, b2
- Hình thứ ba có hai kích thước là a1+b1 và a2*b2”.
Var a1, b1, a2, b2, c1, c2, c3, d1, d2, d3, m1, m2, m3 : Real;
Begin
Writeln('Nhap hai canh cua hinh chu nhat thu nhat:');
Write('a1 = '); Readln(a1);
Write('b1 = '); Readln(b1);
Writeln('Nhap hai canh cua hinh chu nhat thu hai:');
Write('a2 = '); Readln(a2);
Write('b2 = '); Readln(b2);
c1 := 2 * (a1 + b1);
c2 := 2 * (a2 + b2);
c3 := 2 * ((a1 + b1) + (a2 * b2));
d1 := a1 * b1;
d2 := a2 * b2;
d3 := (a1 + b1) * (a2 * b2);
m1 := sqrt(a1 * a1 + b1 * b1);
m2 := sqrt(a2 * a2 + b2 * b2);
m3 := sqrt(sqr(a1 + b1) + sqr(a2 * b2));
Trang 17
Writeln('Hinh chu nhat thu nhat:');
Writeln('Chu vi bang
: ',c1:0:2);
Writeln('Dien tich bang : ',d1:0:2);
Writeln('Duong cheo bang: ',m1:0:2);
Writeln('Hinh chu nhat thu hai:');
Writeln('Chu vi bang
: ',c2:0:2);
Writeln('Dien tich bang : ',d2:0:2);
Writeln('Duong cheo bang: ',m2:0:2);
Writeln('Hinh chu nhat thu ba:');
Writeln('Chu vi bang
: ',c3:0:2);
Writeln('Dien tich bang : ',d3:0:2);
Writeln('Duong cheo bang: ',m3:0:2);
Readln
End.
Chương trình trên để thực hiện được yêu cầu của đề bài, chúng ta phải viết đi
viết lại ba dòng liên tiếp tính chu vi, diện tích và đường chéo của từng hình chữ
nhật. Giả sử nếu phải tính đến n hình chữ nhật thì vấn đề quả thực là hết sức phức
tạp. Trong bài toán trên ta còn chưa có phần kiểm tra điều kiện nhập vào của mỗi
hình. Nếu có thêm điều kiện này, chắc chắn chương trình còn dài nữa. Vấn đề đặt
ra là: làm thế nào có thể xóa bỏ được sự hạn chế này? Ở đây, chúng ta có thể
hướng dẫn cho học sinh sử dụng chương trình con để khắc phục sự hạn chế đó.
Thay vì phải viết nhiều lần lệnh nhập, tính đi tính lại cho từng hình ta có thể viết
2 thủ tục:
1. Thủ tục nhập hai cạnh của hình chữ nhật.
2. Thủ tục Tính ba giá trị cho mỗi hình.
Var a1, b1, a2, b2: Real;
Procedure Nhap(Var x, y: Real; i: Byte);
Trang 18
Begin
Writeln('Nhap hai kich thuoc cua hinh chu nhat thu ',i,':');
Repeat
Write('Canh thu nhat: '); Readln(x);
Write('Canh thu hai : '); Readln(y);
If (x <= 0) Or (y <= 0) Then Writeln('Nhap lai!');
Until (x > 0) And (y > 0);
End;
Procedure Tinh(a, b: Real; k: Byte);
Begin
Writeln('Hinh chu nhat thu ',k,':');
Writeln('Chu vi bang
: ',2 * (a + b):0:2);
Writeln('Dien tich bang : ',a * b:0:2);
Writeln('Duong cheo bang: ',sqrt(a * a + b * b):0:2);
End;
Begin
Nhap(a1, b1, 1); Nhap(a2, b2, 2);
Tinh(a1, b1, 1); Tinh(a2, b2, 2); Tinh(a1 + b1, a2 * b2, 3);
Readln
End.
1.2. Hướng tới sự tiện lợi hợp lý hóa công việc
Xét bài toán sau: “Nhập vào 1 dãy n số nguyên lớn hơn 1. Viết ra màn hình tất
cả các số của dãy thỏa mãn điều kiện là số nguyên tố”.
Var A: Array[1..100] Of Integer;
k,n: Integer;
Function NgTo(a: Integer):Boolean;
Var u: Integer;
Trang 19
Begin
NgTo:=False;
For u := 2 To Trunc(sqrt(a)) Do
If a mod u = 0 Then Exit;
NgTo := a > 1;
End;
Begin
Write('Nhap so phan tu: '); Readln(n);
Writeln('Nhap cac phan tu cua day. Chu y: A[k] >= 2');
For k := 1 to n do Begin
Repeat
Write('A[',k,'] = ');Readln(A[k]);
If A[k] < 2 Then Writeln('Ban can nhap A[k] > 2. Vui long nhap lai!');
Until A[k] >= 2;
End;
Writeln('Cac so nguyen to cua day so tren la:');
For k := 1 to n do
If NgTo(A[k]) Then Write(A[k]:6);
Readln
End.
Từ chương trình trên chúng ta có thể giúp cho học sinh thấy được việc sử dụng
chương trình con có thể hợp lý hóa, tiết kiệm công sức lập trình. Đồng thời,
chương trình con giúp cho người lập trình dễ sửa chữa, dễ kiểm tra. Cụ thể là với
bài toán trên chúng ta có thể sửa chữa thành bài toán: “Viết ra màn hình tất cả
các số của dãy thỏa mãn điều kiện là hợp số” chỉ bằng hai câu lệnh:
- Dòng lệnh Writeln(‘Cac so nguyen to cua day so tren la:’); Sửa thành:
Writeln(‘Cac so la hop so cua day so tren la:’);.
Trang 20
- Dòng lệnh : If NgTo(A[k]) Then Write(A[k]:6) ta thay bằng dòng lệnh If Not
NgTo(A[k]) Then Write(A[k]:6).
1.3. Chính xác hóa một khái niệm
Có những khái niệm mà học sinh đã biết ở từng bài riêng lẻ chưa thể đưa ra
ngay những nhận xét, những kết luận chính xác liên quan tới khái niệm đó; tới
một thời điểm nào đó có đủ điều kiện thì chúng ta có thể gợi lại vấn đề và giúp
học sinh chính xác hóa khái niệm đó. Chẳng hạn, ta cần chính xác hóa khái niệm
sử dụng tham biến của chương trình con. Sau khi học cách sử dụng tham trị,
chúng ta có thể yêu cầu học sinh làm bài tập sau:
“Viết một thủ tục nhập vào số đo bán kính của 3 đường tròn. Sau đó tính chu vi
và diện tích của mỗi đường tròn đó”.
Var r1, r2, r3: Real;
Procedure Nhap( r: Real; k:Byte);
Begin
Repeat
Write('Nhap ban kinh cua duong tron thu ',k,': ');
Readln(r);
If r <= 0 Then Writeln('Nhap lai!');
Until r > 0;
End;
Begin
Nhap(r1, 1);
Nhap(r2, 2);
Nhap(r3, 3);
Writeln('Duong tron 1 Chu vi bang:',2 * pi * r1:6:1,' Dien tich bang: ',pi *
sqr(r1):6:1);
Writeln('Duong tron 2 Chu vi bang:',2 * pi * r2:6:1,' Dien tich bang:',pi *
Trang 21
sqr(r2):6:1);
Writeln('Duong tron 3 Chu vi bang:',2 * pi * r3:6:1,' Dien tich bang:',pi *
sqr(r3):6:1);
Readln
End.
Chúng ta có thể yêu cầu học sinh thực thi chương trình trên và chạy thử. Học
sinh sẽ phát hiện ra là kết quả chu vi và diện tích của cả ba đường tròn đều bằng
0. Vấn đề đặt ra là: Chương trình sai ở chỗ nào? Lúc này giáo viên có thể khẳng
định sự phân biệt giữa tham biến và tham trị, các giá trị của tham biến được lưu
giữ khi ra ngoài chương trình con, còn giá trị của tham trị chỉ lưu giữ khi thực
hiện chương trình con, nếu ra khỏi chương trình con nó sẽ không còn lưu giữ giá
trị đó. Điều này sẽ giúp cho chúng ta chính xác hóa khái niệm tham biến và tham
trị cho học sinh.
Chương trình trên cần sửa lại như sau:
Var r1, r2, r3: Real;
Procedure Nhap(Var r: Real; k:Byte);
Begin
Repeat
Write('Nhap ban kinh cua duong tron thu ',k,': ');
Readln(r);
If r <= 0 Then Writeln('Nhap lai!');
Until r > 0;
End;
Begin
Nhap(r1, 1);
Nhap(r2, 2);
Nhap(r3, 3);
Trang 22
Writeln('Duong tron 1 Chu vi bang:',2 * pi * r1:6:1,' Dien tich bang: ',pi *
sqr(r1):6:1);
Writeln('Duong tron 2 Chu vi bang:',2 * pi * r2:6:1,' Dien tich bang:',pi *
sqr(r2):6:1);
Writeln('Duong tron 3 Chu vi bang:',2 * pi * r3:6:1,' Dien tich bang:',pi *
sqr(r3):6:1);
Readln
End.
1.4. Hướng tới sự hoàn chỉnh hệ thống
Để có thể giúp học sinh nắm bắt được các kiến thức về chương trình con một
cách có hệ thống . Sau khi học xong về chương trình con, chúng ta có thể đưa ra
sơ đồ sau:
Không Có tham chiếu
Thủ tục
Chương trình con
Tham trị
Có tham chiếu
Hàm
Tham biến
Tiếp theo, để giúp cho học sinh nhìn thấy vấn đề có hệ thống một các rõ ràng
hơn, đặc biệt là giúp cho học sinh hiểu rõ các vấn đề về chương trình con. Chẳng
hạn đâu là biến toàn cục, đâu là biến địa phương, khi nào dùng tham biến, khi nào
dùng tham trị, các chương trình con gọi lẫn nhau như thế nào?, ... Chúng ta có thể
đưa ra ví dụ sau:
Trang 23
“Viết chương trình nhập vào số cạnh của n tam giác, sau đó tính diện tích của
mỗi tam giác vừa nhập và tổng diện tích của tất cả các tam giác đó”.
Var a:array[1..3,1..100] Of Real; {Bien toan cuc}
Function Ktra(x, y, z: Real): Boolean; {Ham co tham tri}
Begin
Ktra := (x < y + z) And (y < x + z) And (z < x + y);
End;
Procedure Nhap(Var a, b, c: Real; i:Byte); {Thu tuc co tham bien}
Begin
Writeln('Nhap vao ba canh cua tam giac thu ',i,': ');
Repeat
Write('Nhap do dai canh thu nhat: '); Readln(a);
Write('Nhap do dai canh thu hai : '); Readln(b);
Write('Nhap do dai canh thu ba : '); Readln(c);
If Not Ktra(a, b, c) Then
Writeln('Ba do dai vua nhap khong phai la 3 canh tam giac! Nhap lai:');
Until Ktra(a, b, c);
End;
Function DT(m, n, p:Real): Real; {Ham co tham tri}
Var d: Real; {Bien cuc bo}
Begin
d := (m + n + p) / 2;
DT := sqrt(d * (d - m) * (d - n) * (d - p));
End;
Procedure Tinh; {Thu tuc khong co tham chieu}
Var k, n, j: Integer; tong: Real; {Bien cuc bo}
Begin
Write('Nhap so tam giac: ');Readln(n);
Trang 24
tong:=0;
For k:=1 to n do
Nhap(a[1,k], a[2,k], a[3,k], k);
For k:=1 to n do Begin
Tong := tong + DT(a[1, k], a[2,k], a[3,k]);
Writeln('Dien tich cua tam giac thu ',k,': ',DT(a[1, k], a[2, k], a[3, k]):6:1);
End;
Writeln('Tong dien tich cua ',n,' tam giac la: ',tong:6:1);
End;
Begin
Tinh;
Readln
End.
1.5. Lật ngược vấn đề
Xuất phát, chúng ta cho học sinh thực hiện bài toán sau: “Viết chương trình đổi
một xâu ký tự thành chữ HOA”.
Var x:String;
Procedure Doi(x: String);
Var d, i:Integer;
Begin
d := 0;
Write('Doi sang chu hoa: ');
For I := 1 to Length(x) Do
Write(Upcase(x[i]));
End;
Begin
Write('Nhap xau: '); Readln(x);
Trang 25
Doi(x);
Readln
End.
Ngược lại, chúng ta đặt câu hỏi: Nếu ta cần đổi một xâu ký tự thành xâu chữ
thường thì làm thế nào?
Học sinh đã biết trong bảng mã ASCII mỗi ký tự viết hoa A, B, C, ... , Z được
mã hóa bằng các con số từ 65 đến 90. Còn các ký tự thường a, b, c, ... z được mã
hóa bằng các con số từ 97 đến 122. Ta thấy rõ mỗi ký tự viết hoa và viết thường
của một chữ cách nhau 32 đơn vị. Chính vì vậy, ta có thể sử dụng quy luật này để
đổi một xâu ký tự viết HOA thành xâu ký tự viết thường bằng cách dùng một
vòng For chạy từ đầu xâu đến cuối xâu và đổi từng ký tự thành mã ASCII, nếu
gặp ký tự viết hoa, ta cộng mã ASCII của nó thêm 32 đơn vị. Chương trình như
sau:
Var x: String;
Procedure Doi(x: String);
Var d, i:Integer;
Begin
d := 0;
Write('Doi sang chu thuong: ');
For i := 1 to Length(x) Do Begin
d := ord(x[i]);
If (d >= 65) And (d <= 90) Then d := d + 32;
Write(chr(d));
End;
End;
Begin
Write('Nhap xau: '); Readln(x);
Doi(x);
Trang 26
Readln
End.
1.6. Xét tương tự
Xuất phát từ bài toán: “Viết chương trình tìm độ dài 3 đường cao của một tam
giác khi biết độ dài 3 cạnh của tam giác đó”.
Var a, b, c, S: Real;
Function Ktra(x, y, z: Real): Boolean;
Begin
Ktra := (x < y + z) And (y < x + z) And (z < x + y);
End;
Procedure Nhap(Var m, n, p: Real);
Begin
Repeat
Write('Nhap do dai canh thu nhat: '); Readln(m);
Write('Nhap do dai canh thu hai : '); Readln(n);
Write('Nhap do dai canh thu ba : '); Readln(p);
If Not Ktra(m, n, p) Then
Writeln('Ba do dai vua nhap khong phai la 3 canh tam giac! Nhap lai:');
Until Ktra(a, b, c);
End;
Function DT :Real;
Var d: Real;
Begin
d := (a + b + c) / 2;
DT := sqrt(d * (d - a) * (d - b) * (d - c));
End;
Procedure Dcao(m: Real);
Trang 27
Begin
Writeln('Duong cao qua canh ', m:0:2,' la: ',2 * S / m:0:2);
End;
Begin
Nhap(a, b, c);
S:=DT;
DCao(a); DCao(b); DCao(c);
Readln
End.
Tương tự, chúng ta yêu cầu học sinh giải bài toán sau:
“Viết chương trình tìm độ dài 3 đường trung tuyến của một tam giác khi biết
ba cạnh của tam giác”.
Var a, b, c, S: Real;
Function Ktra(x, y, z: Real): Boolean;
Begin
Ktra := (x < y + z) And (y < x + z) And (z < x + y);
End;
Procedure Nhap(Var a, b, c: Real);
Begin
Repeat
Write('Nhap do dai canh thu nhat: '); Readln(a);
Write('Nhap do dai canh thu hai : '); Readln(b);
Write('Nhap do dai canh thu ba : '); Readln(c);
If Not Ktra(a, b, c) Then
Writeln('Ba do dai vua nhap khong phai la 3 canh tam giac! Nhap lai:');
Until Ktra(a, b, c);
Trang 28
End;
Procedure Trung_Tuyen;
Begin
Writeln('Trung tuyen qua canh ',a:0:2,' la: ',0.5 * sqrt(2 * (b * b + c * c) - a *
a):0:2);
Writeln('Trung tuyen qua canh ',b:0:2,' la: ',0.5 * sqrt(2 * (a * a + c * c) - b *
b):0:2);
Writeln('Trung tuyen qua canh ',c:0:2,' la: ',0.5 * sqrt(2 * (b * b + a * a) - c *
c):0:2);
End;
Begin
Nhap(a, b, c);
Trung_Tuyen;
Readln
End.
1.7. Khái quát hóa
Xuất phát từ bài toán: “Tìm ước chung lớn nhất của 2 số ”.
Var a, b: Integer;
Begin
Repeat
Writeln('Nhap vao 2 so:'); Readln(a,b);
If (a<=0) Or (b<=0) then Writeln(‚Nhap lai!’);
Until (a>0) And (b>0);
Write('UCLN(',a,',',b,') = ');
While a <> b do Begin
If a > b Then a := a - b
Else b := b - a;
Trang 29