con ngời cần mô tả chính xác những hoạt động và trình tự thực hiện cáchoạt động đó để giải bài toán đặt ra, tức là cần phải xác định thuật giải.Không chỉ những bài toán cho máy tính điện
Trang 1Lời cảm ơn.
Luận văn này đợc hoàn thành nhờ quá trình nỗ lực phấn đấu của bảnthân và sự hớng dẫn tận tình của thầy giáo, Thạc sỹ Trơng Trọng Cần, cùngcác thầy giáo, cô giáo trong khoa Công nghệ thông tin Các thầy giáo, côgiáo và các em học sinh trờng THPT Thanh Chơng I Nhân dịp này cho phép
em gửi tới thầy giáo, cô giáo, các em học sinh lời cảm ơn chân thành về sựgiúp đỡ quý báu đó
Vinh, ngày 05 tháng 05 năm 2002
Ngời thực hiện
Mở đầu
1 Lý do chọn đề tài:
Sự phát triển của KHKT với tốc độ nhanh chóng nh vũ bão, với sự
đóng góp cực kì lớn lao và phong phú của máy tính điện tử đã và đang thâmnhập vào mọi lĩnh vực đời sống xã hội Với những đặc điểm của thời đại,
đòi hỏi nhà trờng phổ thông phải có chất lợng đào tạo mới, phải bảo đảm rènluyện cho học sinh có một trình độ cao về tri thức phổ thông và kỹ thuậttổng hợp, vũ trang cho học sinh những kỹ năng, kỹ xảo cơ bản về hoạt độngtrí tuệ và lao động tập thể, làm cho họ nắm vững các phơng pháp khoa học,giúp họ giải quyết đúng đắn và sáng tạo các vấn đề thực tiễn
Không ngừng phấn đấu nâng cao chất lợng dạy học Tin học là mộtnhiệm vụ thờng xuyên của các nhà s phạm và của ngời giáo viên Tin học Đểlàm tròn nhiệm vụ ấy, họ phải luôn luôn suy nghĩ, cải tiến phơng pháp dạyhọc nhằm hình thành và phát triển các phẩm chất năng lực trí tuệ
Thuật giải là một khái niệm rất quan trọng của Toán học và Tin học.Trong việc sử dụng máy tính, ngời ta có thể giao cho chúng giải nhiều bàitoán Để những thiết bị kỹ thuật có thể làm đợc việc này một cách tự động,
Trang 2con ngời cần mô tả chính xác những hoạt động và trình tự thực hiện cáchoạt động đó để giải bài toán đặt ra, tức là cần phải xác định thuật giải.
Không chỉ những bài toán cho máy tính điện tử, những bài toán thựctiễn đặt ra cho mỗi ngời cũng cần phải hình dung mô tả các hoạt động vàtrình tự thực hiện để đạt kết quả tối u đó cũng là xác định một thuật giải Đểxác định đúng thuật giải đòi hỏi phải có tri thức về thuật giải, phải có t duy
về thuật giải
Đối với học sinh Trung học phổ thông, khái niệm và t duy thuật giải
đã đợc các em làm quen và hình thành thông qua các môn học Toán, Lý.Việc phát triển t duy thuật giải cho học sinh thông qua giảng dạy Tin họckhông chỉ giúp các em giải những bài toán Tin học mà còn tạo tiền đề đểcác em nắm vững các phơng pháp khoa học, giúp họ giải quyết đúng đắn vàsáng tạo các bài toán khó trong học tập và trong thực tiễn
Với ý nghĩa và vai trò quan trọng đó của thuật giải, với ý thức tích luỹ
và bồi dỡng các phẩm chất của một giáo viên Tin học trong tơng lai, tôichọn đề tài: “ Phát triển t duy thuật giải cho học sinh Trung học phổ thôngthông qua giảng dạy môn Tin”
2 Mục đích nghiên cứu:
Mục đích của đề tài là nghiên cứu việc bồi dỡng t duy thuật giải chohọc sinh Trung học phổ thông thông qua dạy học môn Tin học
3 Nhiệm vụ nghiên cứu:
Để đạt đợc mục đích nghiên cứu trên cần thực hiện các nhiệm vụ sau:
- Làm rõ khái niệm t duy, t duy thuật giải, xác định các nét đặc trngcủa việc phát triển t duy thuật giải
- Rèn luyện khả năng thực hiện một thuật giải cho học sinh
- Rèn luyện khả năng xây dựng thuật giải cho học sinh
- Hình thành, rèn luyện cho học sinh khả năng đánh giá độ phức tạpcủa thuật giải
- Quan sát và thực nghiệm s phạm: cụ thể là điều tra, thăm dò, đánh giá,xây dựng giáo án thử nghiệm, thực nghiệm s phạm
5.Bố cục của luận văn gồm:
- Phần mở đầu: Lý do chọn đề tài; Mục đích nghiên cứu; Nhiệm vụnghiên cứu; Phơng pháp nghiên cứu
- Chơng I: T duy thuật giải và ý nghĩa của việc phát triển t duy thuậtgiải
- Chơng II: Phát triển t duy thuật giải cho học sinh Trung học phổthông thông qua giảng dạy môn Tin học
- Chơng III: Thực nghiệm s phạm
Trang 3Chơng I. TƯ duy thuật giải và ý nghĩa của việc phát triển
t duy thuật giải
1 T duy thuật giải:
1.1 T duy và đặc điểm của t duy:
T duy phản ánh thực tế một cách khái quát vì nó phản ánh nhữngthuộc tính của hiện thực thông qua các khái niệm mà các khái niệm lại táchkhỏi sự vật cụ thể - những cái chứa đựng thuộc tính này T duy phản ánhhiện thực một cách gián tiếp còn vì nó thay thế những hành động thực tế vớichính các sự vật bằng các hành động tinh thần với những hình ảnh củachúng, nó cho phép giải quyết những nhiệm vụ thực tế thông qua hoạt độngtinh thần bằng cách dựa trên những tri thức về các thuộc tính và các quan hệ của các sự vật đợc củng cố trong các khái niệm
1.1.2 Đặc điểm của t duy:
- Khi gặp những hoàn cảnh, những tình huống mà vốn hiểu biết cũ,phơng pháp hành động đã biết của con ngời không đủ để giải quyết, lúc đócon ngời rơi vào “ hoàn cảnh có vấn đề”, khi ấy con ngời phải vợt ra khỏiphạm vi những hiểu biết và đi tìm cái mới, hay nói khác đi con ngời phải tduy
- T duy có khả năng phản ánh những thuộc tính chung, những mốiliên hệ, quan hệ có tính quy luật của hàng loạt sự vật, hiện tợng Do đó, tduy mang tính khái quát
- ở mức độ nhận thức cảm tính, con ngời phản ánh trực tiếp sự vật,hiện tợng bằng giác quan của mình, và ta cũng chỉ có những hình ảnh cảmtính về các sự vật, hiện tợng đó Trong t duy, con ngời phản ánh thế giới mộtcách trực tiếp - phản ánh bằng ngôn ngữ Do đó, t duy mang tính gián tiếp
- T duy của con ngời có quan hệ mật thiết với ngôn ngữ Ngôn ngữ
đ-ợc xem là phơng tiện của t duy trong sự diễn biến của quá trình t duy nhờ sựtham gia của hệ thống tín hiệu thứ hai (ngôn ngữ) mà con ngời tiến hành cácthao tác t duy, cuối cùng sản phẩm của quá trình t duy là những khái niệm,phán đoán, suy lý đợc biểu đạt bằng từ, ngữ, câu
- T duy và nhận thức cảm tính thuộc hai mức độ nhận thức khác nhau,nhng không tách rời nhau, có quan hệ chặt chẽ bổ sung cho nhau, chi phốilẫn nhau trong hoạt động, nhận thức thống nhất và biện chứng TheoX.L.Rubinskin “ nội dung cảm tính bao giờ cũng có t duy trừu tợng, tựa hồ
nh làm thành chỗ dựa cho t duy” Ngợc lại, t duy và những kết quả của nóchi phối khả năng phản ánh của cảm giác và tri giác, làm cho khả năng cảmgiác của con ngời tinh vi, nhạy bén hơn, làm cho tri giác của con ngời mangtính lựa chọn, tính ý nghĩa
Trang 41.1.3.T duy nh một quá trình và t duy nh một hoạt động:
- T duy xuất hiện nh một quá trình, vì vấn đề hàng đầu là quy luật diễnbiến của nó Quá trình này bao gồm các giai đoạn khác nhau:
+ Xác định đợc vấn đề, biểu đạt nó thành nhiệm vụ t duy:
Khi gặp một tình huống(hoàn cảnh) có vấn đề, chủ thể phải ý thức đợc đó làtình huống có vấn đề đối với bản thân mình, phải phát hiện ra mâu thuẫnchứa đựng trong tình huống có vấn đề, tạo ra nhu cầu phải giải quyết vấn đề,tìm thấy những tri thức đã có trong kinh nghiệm cá nhân có liên quan tới vấn
đề, sử dụng các tri thức đó vào giải quyết vấn đề, từ đó đề ra nhiệm vụ t duy
+ Huy động các tri thức, vốn kinh nghiệm có liên quan tới vấn đề, làmxuất hiện trong đầu chủ thể t duy những mối liên tởng xung quanh vấn đề
đang cần giải quyết
+ Sàng lọc những liên tởng, gạt bỏ những cái không cần thiết, hìnhthành giả thiết về cách giải quyết vấn đề có thể có
+ Kiểm tra giả thuyết về cách giải quyết vấn đề, khẳng định hoặc phủ
định nó Nếu giả thuyết đúng thì hình thành giải quyết vấn đề, nếu giảthuyết sai thì phủ định nó để hình thành giả thuyết mới
+ Giải quyết vấn đề đi đến kết quả, kiểm tra kết quả
-T duy chủ yếu là một hoạt động khi xét nó trong quan hệ với khách thể
và nhiệm vụ nó giải quyết Trong t duy với tính cách là một hoạt động,không những có tính quy luật của sự diễn biến theo quá trình, tức là của tduy (nh phân tích, tổng hợp, khái quát hoá ) mà còn có cả mặt nhân cách -
động cơ chung cho t duy và mọi hoạt động khác của con ngời
1.1.4.Cách phân loại t duy:
Có nhiều cách phân loại t duy:
-Phân loại dựa trên lịch sử hình thành và phát triển t duy
-Phân loại dựa vào logic hình thức và logic biện chứng
-Phân loại dựa vào tính chất, kết quả của quá trình t duy
-Phân loại dựa vào dấu hiệu cấu trúc khác nhau của hiện thực
-Phân loại dựa vào dấu hiệu đặc thù của đối tợng t duy: Khi xuất phát
từ ngôn ngữ toán học ta có t duy ngữ nghĩa và t duy cú pháp
ở phạm vi đề tài này nghiên cứu “phát triển t duy thuật giải ở học
sinh THPT thông qua giảng dạy môn Tin ”, do đó nó thuộc vào
cách phân loại thứ 5, phân loại dựa vào dấu hiệu đặc thù của đối
tợng t duy
1.2.Thuật giải:
- Thuật giải: Thuật giải của bài toán đã cho là một hệ thống chặt chẽ
và rõ ràng các quy tắc nhằm xác định một dãy các thao tác trên những dữliệu vào (input), sao cho sau một số hữu hạn bớc thực hiện các thao tác tathu đợc kết quả ra (output) của bài toán đó
- Các tính chất cơ bản của thuật giải:
+ Tính xác định: ở mỗi bớc của thuật giải, các thao tác phải hết sức
rõ ràng Không thể gây nên sự nhập nhằng, lẫn lộn, tuỳ tiện Nói cách khác
là toàn bộ quá trình biến đổi cũng nh trật tự thực hiện phải đợc xác định làduy nhất Do đó nếu áp dụng thuật giải nhiều lần cùng với các dữ kiện nhnhau phải đạt đợc cùng một kết quả
+ Tính hữu hạn: một thuật giải bao giờ cũng phải dừng sau một sốhữu hạn bớc
Trang 5+ Tính đúng đắn: Sau khi thực hiện tất cả các lệnh của thuật giải taphải đợc kết quả mong muốn, kết quả đó thờng đợc xác định theo địnhnghĩa có trớc.
+ Tính phổ dụng: Thuật giải không chỉ giải một bài toán mà giảimột lớp bài toán, có nghĩa là thuật giải có thể làm việc với các dữ liệu khácnhau, trong một miền xác định và luôn dẫn đến kết quả mong muốn
+ Tính có đại lợng vào và ra: Khi bắt đầu, một thuật giải bao giờcũng nhận các đại lợng vào mà ta thờng gọi là dữ liệu vào, các dữ liệu vàothờng lấy từ một tập xác định cho trớc Sau khi kết thúc, một thuật giải baogiờ cũng cho ta một số đại lợng ra tuỳ theo chức năng mà thuật giải đảmnhiệm, chúng thờng đợc gọi là dữ liệu ra
+ Tính hiệu quả: Tính hiệu quả của một thuật giải đợc đánh giá dựatrên các tiêu chuẩn sau:
*Dung lợng bộ nhớ bị chiếm
*Số các phép tính cần thực hiện
*Thời gian cần thiết để chạy
*Có dễ hiểu đối với con ngời không
*Có dễ cài đặt trên máy không
- T duy thuật giải là cách suy nghĩ để giải quyết một loại công việc nào đótheo một trình tự nhất định Nó đợc thể hiện ở những khả năng sau:
*Thực hiện những thao tác theo một trình tự xác định phù hợp với mộtthuật giải cho trớc
*Phân tích một hoạt động thành những thao tác thành phần đợc thựchiện theo một trình tự xác định
*Mô tả chính xác quá trình quá trình tiến hành một hoạt động
*Khái quát hoá một hoạt động trên những đối tợng riêng lẻ thành mộthoạt động trên một lớp đối tợng
*So sánh những con đờng khác nhau cùng thực hiện một công việc vàphát hiện con đờng tối u
2 ý nghĩa của việc phát triển t duy thuật giải:
Ta thấy việc phát triển t duy thuật giải cho học sinh trong nhà trờng phổthông là cần thiết vì:
-T duy thuật giải giúp học sinh hình dung đợc việc tự động hoá trongnhững lĩnh vực khác nhau của con ngời Nó giúp học sinh thấy đợc nền tảngcủa việc tự động hoá, cụ thể là nhận thức rõ đặc tính hình thức, thuần túymáy móc của quá trình thực hiện thuật giải, đó là cơ sở cho việc chuyển giaomột số chức năng của con ngời cho máy thực hiện
-T duy thuật giải giúp học sinh làm quen với cách làm việc trong khigiải bài toán bằng máy tính điện tử Thật vậy, thiết kế thuật giải là một khâurất cơ bản của việc lập trình T duy thuật giải tạo điều kiện cho học sinh thựchiện tốt khâu đó
-T duy thuật giải giúp học sinh học tập tốt những môn học ở nhà trờngphổ thông, rõ nét nhất là môn toán Nó tạo điều kiện thuận lợi cho học sinhlĩnh hội kiến thức và rèn luyện kỹ năng, kỹ xảo khi học các phép tính trênnhững tập hợp số, giải phơng trình bậc nhất, bậc hai
-T duy thuật giải cũng góp phần phát triển năng lực trí tuệ chung nhphân tích, tổng hợp, khái quát hoá và hình thành những phẩm chất của ng-
ời lao động mới nh tính ngăn nắp, kỷ luật, tính phê phán và thói quen tựkiểm tra
Trang 6Chơng II: Phát triển t duy thuật giải cho học sinh trung
học thông qua giảng dạy môn tin học.
Trong chơng trình đa môn Tin học vào giảng dạy ở trờng THPT, nộidung ngôn ngữ lập trình PASCAL đợc giảng dạy vào học kỳ II lớp 10 và học
kỳ I lớp 11 Vì đối tợng học sinh mới từ trờng phổ thông cơ sở lên nên khảnăng t duy còn kém Đặc biệt là khả năng t duy thuật giải Mặc dù t duylogic của học sinh đã đợc rèn luyện và phát triển qua các môn học trong ch-
ơng trình Trung học phổ thông song học sinh cha phân biệt đợc bài toán đãgặp và bài toán cần giải quyết trong Tin học, giữa t duy logic và t duy thuậtgiải, trong đó t duy thuật giải là t duy để tìm ra con đờng đi đến kết quả Vớithói quen t duy cụ thể học sinh thờng chuyển một cách máy móc các biểuthức cũ vào việc xây dựng thuật giải Có thể đơn cử một vài trờng hợp
+ Khi giải phơng trình bậc 2, từ chú ý của định lý (trang 78- sách giáokhoa đại số 10) Điều kiện ắt có và đủ để phơng trình:
này chứng tỏ tích của hai số thực luôn bé hơn hay bằng bình phơng của nửa
2
y x
Từ chú ý trên học sinh sẽ đa ra thuật giải:
Nếu a,c trái dấu thì phơng trình ax2 + bx + c = 0 có 2 nghiệm phânbiệt nhng không xác định các bớc cụ thể để có thể tính đợc 2 nghiệm đó.Trong đại số học sinh sử dụng biệt thức rút gọn '
để giải phơng trình bậc 2nên khi lập trình học sinh cũng áp dụng máy móc và sử dụng câu lệnhIF THEN, căn cứ vào hệ số b sẽ đi đến tính hay '
luận các khả năng có thể Với bài toán giải bất phơng trình bậc nhất ax + b
0, học sinh cho rằng bài toán có thể có một miền nghiệm và nh vậy khôngxác định đợc cần phải khai báo bao nhiêu biến nên không lập trình đợc
Trớc thực trạng đó, tôi nhận định một trong các biện pháp để nâng caochất lợng bộ môn là chú trọng rèn luyện và phát triển t duy thuật giải chohọc sinh qua khả năng thực hiện thuật giải và khả năng xây dựng thuật giải,
từ đó từng bớc phát triển tính tích cực, sáng tạo, lòng say mê tìm tòi, khámphá góp phần hình thành phẩm chất của con ngời mới trong nền sản xuất tự
động hoá
Trớc tiên ta nhắc lại khái niệm “Thuật giải” Thuật giải là một kháiniệm cơ bản của Tin học, có thể hiểu khái niệm thuật giải theo nghĩa trựcgiác nh sau Cho một bài toán cụ thể, khi đó thuật giải của bài toán đã cho là
1 hệ thống chặt chẽ và rõ ràng các quy tắc nhằm xác định một dãy các thaotác trên những đối tợng, sao cho sau một số hữu hạn bớc thực hiện các thaotác ta thu đợc kết quả bài toán đó
Trang 7Ví dụ: Cho 2 số nguyên dơng a, b Cần xây dựng thuật giải để tìm ớcchung lớn nhất (UCLN) của a và b.
Ta sử dụng thuật giải do nhà bác học cổ Hy Lạp Ơclid đề xuất:
Thuật giải ơclid:
- Input: a, b nguyên dơng
- Output: UCLN của a và bBớc 1: chia a cho b tìm số d r
Bớc 2: Nếu r = 0 thì thông báo kết quả
UCLN là b Dừng thuật giảiBớc 3: Nếu r 0 thì gán giá trị b cho a, gán giá trị r cho b
Thực hiện bớc 1:
Các thao tác gồm:
- Phép tìm d: chia số nguyên a cho số nguyên b để tìm số d r
- Phép gán trị: Đa 1 giá trị cụ thể vào một biểu thức nào đó
- Phép dừng thuật giải là dừng sự thực hiện thuật giải
- Phép chuyển điều khiển cho phép thực hiện tiếp từ một bớcnào đó
ở cuối bớc 3 của thuật giải trên ta gặp thao tác “ thực hiện bớc 1”.Trong trờng hợp này bộ xử lý sẽ chuyển sang thực hiện bớc 1 của thuật giải
Theo các chuyên gia, t duy thuật giải đợc thực hiện ở những khả năngsau:
- Thực hiện thuật giải đã biết
- Phân tách hoạt động
- Tờng minh hoá thuật giải
- Khái quát hoá hoạt động
- Chọn thuật giải tối u
Thông qua việc dạy học Tin học, giáo viên có thể rèn luyện cho họcsinh biết vận dụng các quy trình có tính chất thuật giải, từ đó mà t duy thuậtgiải đợc phát triển Trong quá trình dạy học Tin học, giáo viên đa vào cácdấu hiệu trên chuẩn bị bài giảng và hớng dẫn học sinh nhằm phát triển t duythuật giải Cụ thể:
1 Trình bày và thực hiện thuật giải đã biết:
1.1 Vị trí và yêu cầu:
- Yêu cầu học sinh nắm vững tính chất đặc trng của thuật giải
- Nắm vững cấu trúc logic và sơ đồ liên kết giữa tính chất này với tínhchất khác
Trang 8- Phát biểu rõ ràng, chính xác thuật giải mà ta cần sử dụng Biết diễn
đạt dới các hình thức tơng đơng khi chuyển từ “ ngôn ngữ” này sang “ngônngữ” khác hoặc từ cấu trúc điều khiển này sang cấu trúc điều khiển khác
Ví dụ 1: Đoạn chơng trình sau viết bằng ngôn ngữ PASCAL tính ớcchung lớn nhất của 2 số nguyên dơng theo thuật giải ơcơlit:
While a b Do
If a b Then a: = a – bElse b: = b – a;
Writeln (‘UCLN la:’, b);
Ta có thể chuyển đoạn chơng trình trên sang một ngôn ngữ khác đó làngôn ngữ FOXPRO:
Do while a # b
If a b
a= a – b Else
b = b – a endif
Enddo UCLN = a
Ví dụ 2: Chuyển đoạn chơng trình sau bằng lệnh CASE OF
Var diem: 0 100;
Begin
if diem = 90 then writeln(‘Hang A’)else if diem = 80 then writeln(‘Hang B’)else if diem = 70 then writeln(‘Hang C’)else if diem = 60 then writeln(‘Hang D’)else writeln(‘Hang E’);
Chuyển sang câu lệnh case of
Trang 9else writeln(‘diem nhap sai’);
Trang 10end;
writeln(‘so ngay la’,sn);
readln;
End
1.2.Nhận dạng và trình bày lại thuật giải
+ Nhận dạng: “Nhận dạng một thuật giải” là phát hiện xem một đối ợng cho trớc có các đặc trng của một thuật giải nào đó hay không
t-Ví dụ: Tính diện tích hình thang, khi biết thuật giải tính diện tích tamgiác
+ Trình bày lại: Việc trình bày lại thuật giải một bài toán nào đó cónghĩa là trình bày trình tự các thao tác cơ bản của thuật giải Việc trình bàylại có thể dùng ngôn ngữ thông thờng
1.3.Thực hiện thuật giải đã biết
Trớc hết để thực hiện 1 thuật giải thì giáo viên yêu cầu học sinh phải
đảm bảo thuật giải đó có:
+ Tính xác định, nghĩa là ở mỗi bớc của thuật giải, các thao tác phảihết sức rõ ràng, không thể gây nên sự nhập nhằng, lẫn lộn, tuỳ tiện Nói cáchkhác là trong cùng một điều kiện, hai bộ xử lý cùng thực hiện một bớc củathuật giải thì phải cho cùng một kết qủa
+ Tính hữu hạn: Nghĩa là thuật giải đó phải dừng sau một số hữu hạnbớc
+ Tính đúng đắn: Sau khi thực hiện tất cả các lệnh của thuật giải taphải đợc kết quả mong muốn, kết quả đó thờng đợc xác định theo định nghĩa
có trớc
+ Tính có đại lợng vào và ra: Khi bắt đầu một thuật giải bao giờ cũngnhận các đại lợng vào mà ta thờng gọi là dữ liệu vào, các dữ liệu vào thờng
Trang 11lấy từ một tập xác định cho trớc Sau khi kết thúc một thuật giải bao giờcũng cho ta một số đại lợng ra tùy theo chức năng mà thuật giải đảm nhận,gọi là dữ liệu ra.
Vậy trong quá trình giảng dạy để rèn luyện khả năng thực hiện mộtthuật giải cho học sinh, giáo viên có thể đa ra các lợc đồ tính toán hoặc cácchơng trình đơn giản, sau đó cho dữ liệu đầu vào thay đổi, yêu cầu học sinhtheo sơ đồ thực hiện từng câu lệnh một và cho biết sau mỗi câu lệnh “ta thu
đợc kết quả gì” Học để tính đợc kết quả giá trị biểu thức thì quá trình tínhtoán từng bớc nh thế nào?
Ví dụ 5: Ta có lợc đồ tìm USCLN của 2 số nguyên dơng m,n nh sau:
Sai
If m n then thay m bởi m – nElse thay n bởi n – m
Xuất USCLN của a, b là mKết thúc
Từ ý tởng thuật giải trên yêu cầu học sinh chuyển sang viết chơngtrình bằng ngôn ngữ PASCAL:
n
Trang 12Else n: = n – m;
Writeln(‘UCLN cua ‘,a,b,’ la:’,m);
Readln;
End
Để phát triển t duy thuật giải cho học sinh thì trong 2 tiết thực hành
đầu tiên, giáo viên chuẩn bị và nạp sẵn vào máy một số chơng trình đơngiản chỉ sử dụng lệnh gán, tính toán, đổi chỗ
Ví dụ 7: + Khi dạy câu lệnh lặp dạng Repeat, giáo viên có thể vẽ lênbảng các bớc của thuật giải nh sau:
gtrị
đầu<=gtrịcuối ghi nhớ giá trị cuối
Trang 13Nh khi thực hiện FOXPRO bài định vị bản ghi, giáo viên yêu cầu phảivận dụng thành thạo các câu lệnh định vị bản ghi và nắm đợc cách kiểm trathực hiện Giáo viên dùng các tệp mà học sinh đã tạo từ trớc hoặc tệp dogiáo viên chuẩn bị, lần lợt nêu yêu cầu tìm kiếm sau đó kiểm tra kết quả.Chẳng hạn trên đĩa đang có tệp SACH, giáo viên có thể đặt ra các yêu cầusau:
+ Mở tệp SACH+ LIST để kiểm tra+ Đề nghị DISPLAY ( khi đó sẽ không thấy gì vì khi LIST contrỏ tệp trợt qua bản ghi cuối cùng) Giáo viên có thể nêu vấn đề và đề nghịhoc sinh kiểm tra bằng cách hỏi giá trị hàm EOF
+ Đề nghị trở về đầu tệp bằng GO1 sau đó kiểm tra RECNO,DISPLAY và EOF
+ Đề nghị học sinh định vị trực tiếp một vài bản ghi khác theo
số thứ tự sau đó kiểm tra RECNO, DISPLAY và EOF
+ Đề nghị học sinh định vị một vài bản ghi theo khoảng cáchsau đó kiểm tra RECNO, DISPLAY và EOF
+ Đề nghị học sinh định vị một vài bản ghi theo điều kiện,chẳng hạn tìm cuốn sách mua một ngày nào đó, tìm các cuốn sách của tácgiả nào đó (biết tác giả), tìm xem ai là tác giả của một cuốn sách (biết tênsách) Trong mỗi tiết thực hành tiếp theo, mức độ thực hành cần phải đợcnâng cao, nhằm giúp học sinh nâng dần thao tác thực hành trên máy Giáoviên giao bài tập thực hành cho học sinh Học sinh tự xác định thuật giải vàlập trình thì có thể học sinh chỉ cần thấy không còn lỗi cú pháp là cho rằng
đã hoàn thành nhiệm vụ mà không hề hoặc không xác định đợc kết quả có
Biến điều khiển:=giá trị đầu
Biến đk<=gt cuối
Câu lệnh Biến điều khiển:=SUCC(biến đk)
Trang 14đúng hay không Do đó, giáo viên chuẩn bị một bộ dữ liệu tối thiểu đủ đểkiểm tra tất cả các khả năng có thể có Chẳng hạn, khi ra bài tập:
Lập trình giải phơng trình bậc nhất 1 ẩn: ax + b 0 thì bộ dữ liệukiểm tra có thể là a 2 , b 3 , a 2 , b 4a 0 , b 1a 0 , b 0
2 Phân tách hoạt động:
Song song với việc trình bày các kiến thức Tin học một cách đúng
đắn, giáo viên cần tập luyện cho học sinh suy nghĩ, vận dụng các thao táccủa t duy thuật giải tức là các quá trình phân tách hoạt động Có từng bớcluyện tập, học sinh mới quen với lối suy nghĩ cần thiết Nếu không, ta chỉkêu gọi chung chung các em suy nghĩ mà họ chẳng biết bắt đầu suy nghĩ từ
đâu và suy nghĩ nh thế nào
Phân tách là dùng trí óc chia cái toàn thể ra từng phần, hoặc tách bạch
ra từng thao tác, từng khía cạnh riêng biệt Trong giảng dạy Tin học, khâuphân tách hoạt động rất cần thiết Thao tác này đặc biệt quan trọng đối vớiviệc giải các bài tập Tin học Vì thông thờng học sinh chỉ quen sử dụng máymóc công thức nên không biết phải suy nghĩ từ chỗ nào, không có thói quenphân tách các hoạt động
Từ bài toán cần giải quyết, học sinh phải xác định đợc thuật giải, giáoviên có thể chia bài toán lớn thành các bài toán nhỏ hoặc “nới lỏng”, “đặcbiệt” một vài điều kiện nhằm đa bài toán đó về các bài toán mà học sinh đãbiết thuật giải Chẳng hạn nh xây dựng thuật giải chọn trực tiếp để sắp xếpmảng một chiều A có n phần tử là những số thực theo thứ tự tăng dần
Thao tác phân tách: chia công việc ra n bớc:
Bớc 1: Tìm chỉ số phần tử có giá trị nhỏ nhất trong các phần tử từ 1
đến n Sau đó ta đổi chỗ phần từ này cho phần tử thứ 1 Việc này đợc thựchiện nh sau:
Cho k:=1;
Cho j chạy từ 1 đến n nếu A[k] A[j] thì gán k = j;
Đổi chỗ A[k] cho A[1]
Bớc 2: Tìm chỉ số phần tử có giá trị nhỏ nhất trong các phần tử từ 2
đến n Sau đó ta đổi chỗ phần tử này cho phần tử thứ 2 Việc này đợc thựchiện nh sau:
Cho k =2;
Cho j chạy từ 2 đến n nếu A[k] A[j] thì gán k =j;
Đổi chỗ A[k] cho A[2]
Bớc 3: Tìm chỉ số phần tử có giá trị nhỏ nhất trong các phần tử từ 3
đến n Sau đó ta đổi chỗ phần tử này cho phần tử thứ 3 Việc này đợc thựchiện nh sau:
Cho k =3;
Cho j chạy từ 3 đến n nếu A[k] A[j] thì gán k =j;
Trang 15Đổi chỗ A[k] cho A[3].
Tơng tự cho đến bớc thứ i: Tìm chỉ số phần tử có giá trị nhỏ nhấttrong các phần tử từ i đến n Sau đó ta đổi chỗ phần tử này cho phần tử thứ i.Việc này đợc thực hiện nh sau:
Cho k =i;
Cho j chạy từ i đến n nếu A[k] A[j] thì gán k =j;
Đổi chỗ A[k] cho A[i]
Trong quá trình phân tách hoạt động giáo viên chú ý khơi dậy vai tròtích cực, chủ động của học sinh Giáo viên không chỉ hớng cho học sinh pháthiện và nêu ra vấn đề mà trong 1 chừng mực nào đó còn khuyến khích các
em tham gia giải quyết vấn đề Trong quá trình hoạt động, những dạng hoạt
động khác nhau thờng liên quan mật thiết với nhau, nhiều khi một hoạt độngnày có thể xuất hiện nh một thành phần của một hoạt động khác Phân tách
đợc một hoạt động thành những hoạt động thành phần là biết đợc cách tiếnhành hoạt động toàn bộ, nhờ đó có thể vừa quan tâm rèn luyện cho học sinhhoạt động toàn bộ vừa chú ý cho họ tập luyện tách riêng những hoạt độngthành phần khó hoặc quan trọng khi cần thiết Ngay cả khi dạy một câu lệnhcũng cần cho học sinh tiến hành tách hoạt động toàn bộ của câu lệnh thànhnhững hoạt động thành phần
Ví dụ 1: Khi dạy câu lệnh lặp với điều kiện cho trớc, ta cho học sinhphân ra thành những hoạt động:
Hoạt động kiểm tra điều kiện
Hoạt động thực hiện câu lệnh sau Do khi điều kiện đúng
Hoạt động quay lại kiểm tra điều kiện
Hoạt động ra khỏi vòng lặp khi điều kiện sai
Ví dụ 2: Dạy câu lệnh lặp với điều kiện sau, ta cho học sinh phân rathành những hoạt động:
Hoạt động thực hiện câu lệnh sau Repeat
Hoạt động kiểm tra điều kiện
Hoạt động quay lại thực hiện câu lệnh
Hoạt động ra khỏi vòng lặp khi điều kiện đúng
Ví dụ 3: Dạy câu lệnh FOR dạng tiến
FOR biến : = biểu thức 1 TO biểu thức 2 DO câu lệnh;
Giáo viên yêu cầu học sinh phân tách hoạt động của câu lệnh nàythành những hoạt động thành phần diễn ra theo trình tự nh sau:
Đầu tiên máy kiểm tra điều kiện biểu thức 1 không lớn hơn biểu thức
2 Nếu điều kiện này đúng thì máy ghi nhớ giá trị của biểu thức 2 Tiếp đómáy thực hiện liên tiếp các hoạt động sau đây:
1 Gán giá trị biểu thức 1 cho biến điều khiển2.Thực hiện câu lệnh sau DO
Trang 163.Biến điều khiển chu trình nhận giá trị tiếp theo giá trị hiện tại(Tức là giá trị của nó sau khi thực hiện câu lệnh sau DO).
4 Quay lại kiểm tra điều kiện ra khỏi vòng lặp (điều kiện làbiến điều khiển=giá trị tiếp theo của giá trị cuối, nếu điều kiện này sai máyquay trở lại thực hiện các hoạt động từ 2 -> 4 )
5 Qúa trình lặp chỉ kết thúc khi máy quay lại kiểm tra điềukiện ra khỏi vòng lặp mà điều kiện này đúng Giáo viên có thể cho học sinhthực hiện hoạt động nhận dạng để đoán trớc chơng trình sau đây in lên mànhình những số nh thế nào?
for j:=1 to 4 do write(a[i,j]:5) ;writeln;
Với 1 bài toán mới, mặc dù cha tìm ra ngay đợc thuật giải, nhng qua
sự dẫn dắt của giáo viên, học sinh sẽ liên hệ với những kỹ năng đã tích lũy
đợc và với chính những “nội lực” tiềm ẩn trong vốn kiến thức đã đợc trang bịhọc sinh sẽ tìm ra thuật giải
Ví dụ 3: Bài toán tháp Hà Nội
Có 3 cột A, B, C và n đĩa kích thớc khác nhau ở cột A đĩa lớn ở dới,
đĩa nhỏ ở trên Hãy chuyển các đĩa từ A sang C sao cho:
- Mỗi lần chỉ đợc chuyển một đĩa
- ở các cột, tình trạng đĩa luôn luôn là đĩa lớn ở dới, đĩa nhỏ ởtrên
Giáo viên có thể hớng cho học sinh cách suy nghĩ nh sau
- Ta chuyển n đĩa từ cột A sang cột C, lấy cột B làm trung gian
- Bởi vì đĩa lớn nhất phải nằm phía dới bên phải, làm cách nào
đó chuyển n-1 đĩa trên cùng từ cột A sang cột B lấy cột C làm trung gian rồi
Trang 17chuyển các đĩa lớn nhất ở dới cùng từ cột A sang cột C Và rồi ta phải làmcách nào đó chuyển n –1 đĩa từ cột B sang cột C lấy cột A làm trung gian.
Qua sự dẫn dắt của giáo viên, học sinh sẽ tìm ra thuật giải nh sau:
Để chuyển n đĩa từ A sang C, lấy B làm trung gian
Ta làm:
- Chuyển n –1 đĩa từ A sang B, lấy C làm trung gian
- Đem một đĩa từ A sang C
- Chuyển n –1 đĩa từ B sang C, lấy A làm trung gian
Begin {chơng trinh chinh}
Write(‘cho biet so dia’);
Readln(n);
Doicot(n,A,B,C);
End
Ví dụ 4: Bài toán sắp xếp
Cho dãy số nguyên A[1 n] hãy sắp xếp A theo thứ tự tăng dần
Giáo viên có thể hớng dẫn cho học sinh sử dụng thuậtgiải(QUICKSORT) Ta dùng phơng pháp phân vùng để xử lý Nội dung
Trang 18chính là chọn phần tử X ở giữa của dãy làm chuẩn để so sánh, từ đó phânhoạch dãy này thành 3 dãy con liên tiếp nh sau:
+ Dãy con thứ nhất gồm các phần tử nhỏ hơn X+ Dãy con thứ hai gồm các phần tử bằng X+ Dãy con thứ 3 gồm các phần tử lớn hơn XSau đó lại áp dụng thuật giải phân hoạch này cho dãy con thứ nhất vàdãy con thứ 3, nếu các dãy con này có nhiều hơn một phần tử (Đệ quy)
Cụ thể là xét một đoạn của dãy từ thành phần thứ L đến thành phầnthứ R ta thực hiện các bớc nh sau:
+ Lấy giá trị của thành phần thứ (L + R) div 2 gán vào biến X+ Cho i ban đầu là L
+ Cho j ban đầu là R+ Lặp lại:
+ Sắp xếp đoạn từ A[i] đến A[R]
QUICKSORT(var A:array[1 n] of integer;
Procedure SORT (L,R:integer);
Var i,j,tg,X: integer;
Begin
Trang 19X:=A[(L + R) div 2];
i:= L;
j:=R;
Repeat
While (A[i] X) Do inc(i);
While (A[j] X) Do Dec(j);
If i = j then Begin
Ví dụ 5: Nhà trờng tổ chức lao động gây quỹ, các lớp của từng khối
đặt liên tiếp bắt đầu từ A
Khối 10 có từ lớp A IKhối 11 có từ lớp A HKhối 12 có từ lớp A ELập chơng trình tính tổng số tiền của từng khối, khi nhập vào từ bànphím số tiền của từng lớp và đếm xem có bao nhiêu lớp mỗi khối đạt số tiền
từ 200 000 đồng trở lên
Để xây dựng đợc thuật giải cho bài này thì học sinh phải phân tích:
Có 3 lần làm những công việc nh nhau cho từng khối đó là:
+ Nhập vào số tiền từng lớp theo từng khối, rồi cộng chúng lại vớinhau
+ Trong quá trình nhập vào nếu lớp nào có số tiền từ 200000 đồng trởlên thì đếm lớp đó
+ In kết quả là tổng số tiền của cả khối và số lớp có từ 200000 đồngtrở lên Vì vậy, ta có thể tổ chức những công việc nói trên thành một thủ tục,nhng vì các khối có số lớp không bằng nhau, vì vậy ta dùng thủ tục truyềntheo trị Phân tích tiếp ta thấy rằng để chơng trình thuận tiện cho ngời sửdụng ta cần một biến tổng thể để nhận giá trị là giá trị của khối, biến này sẽ
đợc dùng trong chơng trình chính và những chỗ thông báo của thân thủ tục