4. Tổ chức luận văn
4.4 Phân tích hậu nghiệm
• Pha 1 và pha 2
Toàn bộ thực nghiệm này chúng tôi tiến hành trên 45 HS lớp 11B10, trường THPT Trần Phú, Quận Tân Phú. HS được chia thành 20 nhóm, mỗi nhóm 2 – 3 học sinh.
Bài toán 1:
Bảng 4.1: Bảng thống kê kết quả nhận được trong bài toán 1 của các nhóm HS Bài toán Đúng Sai
1a) 20 0
1b) 9 11
1c) 20 0
1d) 12 8
1a) Tất cả các nhóm đều trả lời chính xác 5 số hạng tiếp theo sau số “8”: 13, 21, 34, 55, 89.
1b) Có 9 nhóm đưa ra được công thức truy hồi của dãy số. 11 nhóm không tìm được công thức tổng quát.
Đối với 1b), tại thời điểm chúng tôi tiến hành làm thực nghiệm, HS vẫn chưa học về Dãy số, nên các công thức dãy số được đưa ra vẫn chưa đầy đủ cho tất cả các trường hợp n của dãy số.
76 - Nhóm 1
- Nhóm 2:
Đối với 1c, 1d yêu cầu tính tổng 10 và 30 số hạng. Ở câu 1c) tính tổng 10 số hạng, tất cả các nhóm HS đều cho kết quả đúng. Tuy nhiên khi tính tổng ở câu 1d), có 12 nhóm trả lời đúng, 8 nhóm còn lại tính sai tổng S. Như vậy, đối với bài toán tính tổng các số hạng, khi số lượng số hạng nhỏ (10 số hạng) thì HS dễ dàng tính được tổng S, nhưng khi tính tổng của 30 số hạng thì HS nhận thấy việc tính tổng S bằng “thủ công” (có sự hỗ trợ của MTCT) gặp rất nhiều khó khăn. Lúc này chỉ 12 trên tổng số 20 nhóm tính đúng giá trị tổng S.
Bài làm của một số nhóm HS:
- Nhóm 1: chỉ tính được S10, S30chưa tính .
- Nhóm 3
Qua pha này, thông qua việc tìm các số hạng của dãy trong câu 1 và tìm công thức truy hồi của dãy số, HS nảy sinh nhu cầu sử dụng công cụ tính toán nào để tính tổng này nhanh hơn và cho kết quả chính xác. Hơn nữa đối với việc tìm số hạng tiếp theo của dãy số, lời giải toán học được sử dụng là: số hạng tiếp theo là tổng của hai số hạng trước đó. Trong pha 2 và
77
pha 3, chúng tôi mong muốn HS sử dụng lời giải toán học này để xây dựng thuật toán cho bài toán 2.
Bài toán 2:
• Pha 2 (làm việc trên giấy)
Kết quả thu được sau pha 2: không có nhóm nào xây dựng được thuật toán đúng cho bài toán, trong đó có những nhóm xây dựng thuật toán dựa trên công thức truy hồi (kĩ thuật đệ quy), một số nhóm khác không có câu trả lời.
Ở bài toán 1, câu b các nhóm HS đã biết đến công thức truy hồi của dãy số. Vì vậy, trong pha 2, HS xây dựng thuật toán cho bài toán 2 dựa trên công thức truy hồi của dãy số. Chúng tôi thông kê bài làm các nhóm theo các chiến lược như sau:
Bảng 4.2: Bảng thống kê bài làm các nhóm theo chiến lược trong bài toán 2 – pha 2. Chiến lược StqT STđq STtđtg STtđ Không viết được thuật toán
Số lượng 0 11 0 0 9 Tỷ lệ % 0 55% 0 0 45%
Một số bài làm của các nhóm:
- Nhóm 1: thuật toán tuy không chính xác nhưng được xây dựng theo chiến lược
SđqT
78
- Nhóm 10: không xây dựng được thuật toán.
Tại thời điểm tiến hành thực nghiệm này, HS lớp 11 vừa kết thúc §10 Cấu trúc lặp, bài toán này chưa từng được giới thiệu trong Tin học, kết quả thực nghiệm không có nhóm nào xây dựng đúng thuật toán giải bài toán 2. Điều này đúng với dự đoán ban đầu của chúng tôi.
• Pha 3: Hoạt động 1:
Sau khi kết thúc pha 2, không có nhóm HS nào xây dựng được thuật toán chính xác cho bài toán 2. Mục đích thực nghiệm không hướng đến chiến lược đệ qui mà muốn quan sát ứng xử của HS khi làm việc với phép gán (hoán đổi giá trị hai biến) nên trong hoạt động 1 của pha 3 này, GV hướng dẫn HS xây dựng thuật toán cho bài toán 2 với việc sử dụng hai biến a và b:
GV: Hướng dẫn HS sử dụng hai biến a và b để xây dựng thuật toán
Xét các số hạng: 1, 1, 2, 3, 5, 8
79
Tiếp tục xem số hạng thứ 2 là a, số hạng thứ 3 là b, số hạng tiếp theo là a + b = 3
Cứ như vậy, ta tính được số hạng tiếp theo của dãy từ hai số hạng liền kề trước của nó là a và b.
Bây giờ các nhóm viết thuật toán tìm n số hạng và tính tổng sử dụng hai biến a và b thay vì các biến un.
Xem thêm ở phụ lục 3 đoạn từ đầu đến đoạn 20
Hơn nữa, việc sử dụng hai biến a và b xuất phát từ lời giải toán học được HS sử dụng trong bài toán 1a:
HS1 (vui mừng): lúc nãy mình cũng làm như cô nói kìa.
Trong pha 1, nhóm HS này viết công thức dãy số: Đặt x là số cần tính
Đặt y là số hiện có
Đặt z là số liền trước của số hiện có x= +y z
HS2: Ờ, giờ viết thuật toán đi kìa.
Từ các phiếu bài làm thu được cho thấy, các nhóm HS đều viết được lệnh gán
b← +a b, các nhóm HS thực hiện theo chiến lước StđT (tức là tính vào tráo đổi các giá trị biến a và b, nhưng không hoàn toàn chính xác như trong các chiến lược mà chúng tôi đã phân tích.
Một số phiếu bài làm của các nhóm HS:
- Nhóm 2: Nhóm 5
- Nhóm 19: (phần viết mực đỏ là phần chỉnh sửa sau khi cài đặt thuật toán trên phần mềm Algobox ở hoạt động 2.
80 -
Trong 20 nhóm HS, chiến lược StđtgT chỉ được một nhóm sử dụng là nhóm 7.
Khi tiến hành viết thuật toán trên giấy, HS ít có cơ hội kiểm tra lại thuật toán mình viết đã chính xác chưa.Trong thuật toán, vì a và b là các biến được gán giá trị từ đầu, nên rất nhiều nhóm HS không in ra màn hình hai số này mà chỉ in ra giá tri trong các vòng lặp hay có nhóm không in ra giá trị trong vòng lặp.
HS1: rồi, vậy là xong. À, còn in ra các số hạng nữa mà. HS1: In giá trị b. Thế là xong rồi đúng không?
HS2: chưa phải tính tổng nữa mà.
Việc gán tổng a+b cho biến b làm thay đổi giá trị biến nên khi thực hiện tiếp lệnh gán
a←b thì lúc này giá trị hai biến a và b đã thay đổi và số hạng tiếp theo không chính xác nữa.
Chiến lược SđqT và Stq không xuất hiện trong pha này nữa. Chiến lược SđqT thất bại trong pha 2, nên pha này HS không còn sử dụng chiến lược này và HS cũng không tìm được công thức tổng quát của dãy số nên chiến lược Stq cũng không xuất hiện.
Thống kê kết quả trong các phiếu bài làm cho thấy có 4 chiến lược xuất hiện:
ST (không thay đổi giá trị biến a). Nghĩa là chỉ thực hiện lệnh gán b← +a b để tính giá trị số hạng tiếp theo rồi tính tổng S,
81
Shđt (hoán đổi trước). Nghĩa là sử dụng lệnh gán a←b để làm thay đổi giá trị của biến a sau lệnh gán b← +a b
Shđs (hoán đổi sau). Nghĩa là sử dụng lệnh gán a←b và b← +a b để tính số hạng tiếp theo.
Bảng 4.3: Bảng thống kê bài làm các nhóm theo chiến lược trong hoạt động 1.
Như vậy, trong hoạt động này, khi đã được GV giới thiệu cách xây dựng thuật toán cho bài toán với việc sử dụng hai biến a và b nhưng gấn như tất cả các nhóm HS vẫn không xây dựng được thuật toán chính xác cho bài toán. Và chúng tôi kiểm chúng được hai ứng xử có thể xuất hiện ở các nhóm HS mà chúng tôi đề cập trong phần phân tích kịch bản:
+ HS không nhận thấy sự cần thiết của việc hoán đổi giá trị các biến a, b sau mỗi lần tính số hạng un của dãy số. Hay nói cách khác, HS không nhận thấy sự thay đổi giá trị các biến a và b sau mỗi lần tính b.
+ HS có thể nhận thấy sự cần thiết của việc hoán đổi giá trị các biến, nhưng việc thay đổi giá trị các biến bằng lệnh: b← +a b thì không đạt kết quả như mong muốn (tức là sai về thuật toán hoán đổi giá trị hai biến).
Kết thúc hoạt động 1, các nhóm HS chưa có điều kiện kiểm tra tính đúng đắn của các thuật toán mà mỗi nhóm đưa ra khi làm việc trên môi trường giấy, bút truyền thống.
Hoạt động 2:
Số lượng Tỉ lệ ST(không thay đổi giá trị biến a) 4 20% Shđt(hoán đổi trước) 6 30% Shđs(hoán đổi sau) 7 35% Stđtg(hoán đổi trung gian) 1 5%
82
Trong hoạt động 2 này, HS thực hiện cài đặt thuật toán trên máy tính, qua đó có cơ hội để mỗi nhóm HS tự mình kiểm chứng lại thuật toán được xây dựng ở hoạt động 1 đã chính xác chưa.
Ở pha này, hầu hết các nhóm đều nhận ra thiếu các bước in ra các số hạng của dãy và chỉnh sửa.
HS1: Sao lại là 2, ở bài tập 1 mình tính tổng 10 số hạng của dãy này là l43. HS2: Vậy là sai rồi. Phải sửa lại các bước.
HS1: Sửa gì? Thuật toán hay trên phần mềm. HS2: Cả hai.
HS1: Sửa trên máy trước đi.
HS2: Dãy số có hai số hạng đầu tiên là 1, 1 mà kết quả lại không có hai số hạng này của dãy. HS1: vậy giờ sao?
HS2 (ngập ngừng): mình có in ra b rồi mà, sao lại không có hai số hạng đầu?
HS1: Ah, đó chỉ là in ra b từ số hạng thứ 3 thôi. Hai số hạng đầu chưa in ra mà. vậy thì sau phép gán 1 cho a và b thêm vào lệnh in ra giá trị hai biến đó đi.
HS2: Để thêm vào. Mà thêm vào đâu? HS1: ngay sau khi gán 1 cho a và b đó.
Xem thêm ở phụ lục đoạn từ 54 đến 64.
Tuy nhiên, việc chỉnh sửa trong các bước tính số hạng tiếp theo và tính tổng S vẫn chưa được hoàn thiện. Sau hoạt động này chỉ có thêm hai nhóm chỉnh sửa thuật toán theo chiến lược như nhóm 7 và cho kết quả đúng. Kết quả này có sự ảnh hưởng một phần của phần mềm mà chúng tôi lựa chọn cho thực nghiệm này, phần mềm bằng tiếng Pháp, HS lớp thực nghiệm lại không hiểu tiếng Pháp:
HS1: Sao phần mềm này không có bản tiếng Anh hay tiếng Việt ?
HS2: Có bản hướng dẫn cách viết chương trình, khai báo và các câu lệnh rồi mà. HS1: Nhưng mà không nhớ được.
HS2: thì nhìn vào bản hướng dẫn mà làm. HS1: Làm đi, không là không kịp
Một số thuật toán được các nhóm cài đặt trên máy tính như sau:
83
Sau khi chạy thử thuật toán, kết quả chỉ hiển thị một số hạng của dãy, nhóm chỉnh sửa thuật toán bằng cách thêm vào vòng lặp để tính các số hạng, tuy nhiên vẫn không có thay đổi nào về lệnh gán sau lệnh tính b.
HS1: Ờ, có. Thử xem chạy đúng chưa?
HS2 chạy thử thuật toán cũng với n=10, lúc này kết quả chỉ có thêm hai số hạng 1, 1 là có tất cả 3 số hạng và tổng S là 2.
HS1: Sao vẫn chưa đúng? Quay lại sửa thuật toán.
HS1: À, như thế này thì mới chỉ tính được số hạng thứ 3 thôi. Đúng rồi. Phải dùng for để in ra các số hạng thứ nhất đến n chứ.
HS2: Thêm vòng lặp vào đâu? HS1: trước câu lệnh tính b và S.
HS1: mở thêm dòng mới trước câu lệnh gán giá trị cho b.
HS1: chọn câu lệnh Pour … de … A (tương ứng câu lệnh for trong Pascal), cho n chạy từ 1 đến …
84
- Nhóm 19: thuật toán trên giấy và sau khi cài đặt trên MT (chỉnh sửa bằng bút đỏ)
85 - Nhóm 6:
86
Bảng 4.4: Bảng thống kê bài làm HS trong hoạt động 2 theo các chiến lược Số lượng Tỉ lệ
S
T
(không thay đổi giá trị biến a) 4 20% S
hđt(hoán đổi trước) 6 30% S
hđs(hoán đổi sau) 5 25% S
tđtg(hoán đổi trung gian) 3 15% Không có câu trả lời 2 10%
Kết thúc hoạt động 2, phần lớn các nhóm kiểm chứng được thuật toán xây dựng ban đầu chưa chính xác, tuy nhiên chỉ có 3 nhóm chỉnh sửa thuật toán chính xác. Qua đây, một lần nữa khẳng định các ứng xử của HS khi đứng trước bài toán tính giá trị các số hạng và sau mỗi bước cần có theo tác hoán đổi giá trị các biến như chúng tôi đã dự đoán ở phân tích tiên nghiệm.
Hoạt động 3:
Trong hoạt động này, GV cùng học sinh trao đổi để tìm chỉnh sửa thuật toán chính xác. GV mở file thuật toán trên Algobox của nhóm 5, các nhóm tham gia thảo luận:
HS1 (nhóm 2): Vòng lặp for, i bắt đầu từ 3 không phải là 1 Phải gán i bằng 3 chứ, vì ta bắt đầu tính từ số hạng thứ 3 mà. Số hạng thứ nhất và thứ 2 đã có.
Cả lớp: đúng rồi.
HS3 (nhóm 6): Ban đầu S phải được gán bằng tổng a+b.
GV nhận xét: ý kiến bạn HS3 đúng.
HS4 (nhóm 19): Sau lệnh gán b← +a b; phải có thêm lệnh gán a←b.
HS5 (nhóm 6): không phải. Trước lệnh gán b← +a b;là lệnh gánb←a để sau khi tính b giá trị hai biến là hai số cuối và gần cuối của dãy số mới.
HS6 (nhóm 7): Trước hết gán giá trị tổng a+b cho biến c, sau đó gán giá trị biến b cho a và cuối cùng gán giá trị biến c cho b.
GV cài đặt thuật toán và chạy thuật toán theo cả ba trường hợp đưa ra của ba bạn HS. Kết quả: cách làm của bạn HS 3 đúng.
GV giải thích tại sao lại cần phải sử dụng thêm biến c để tính giá trị biến b và hoán đổi giá trị cho biến a và thể chế lại thuật toán trên giấy và chương trình chính xác trên MT.
87
Cuối cùng, GV cho các nhóm HS chạy thuật toán với các giá trị n lần lượt là 10, 20, 30, …
Như vậy từ lời giải toán học được HS sử dụng trong bài toán 1a, GV thông qua pha 3 với 3 hoạt động, dần dần chuyển lời giải toán học sang lời giải tin học dưới dạng thuật toán (chương trình trên Algobox) qua các bước:
- Bài toán 1a, tính số hạng tiếp theo của dãy số bằng tổng hai số hạng trước đó. - Đầu pha 3, GV yêu cầu HS sử dụng hai biến a và b thay cho các biến un.
- Cài đặt thuật toán trên phần mềm Algobox để kiểm tra tính đúng đắn của các thuật toán được xây dựng ở hoạt động 1.
- Hoạt động 3, pha 3 thể chế lại thuật toán chính xác cho bài toán.
Kết luận chương 4
Trong kết luận chương 3 chúng tôi dự đoán rằng: HS gặp khó khăn khi đứng trước yêu cầu viết thuật toán giải bài toán mà trước đó thuật toán tương tự chư được giới thiệu. Thực nghiệm ở chương này cho phép chúng tôi khẳng định lại điều đó. Tuy nhiên trong khuôn khổ luận văn này, chúng tôi vẫn chưa thể chỉ ra các sai lầm và khó khăn của HS khi chuyển từ lời giải toán học sang lời giải tin học của một bài toán.
Thực nghiệm trong pha 3 đã giúp chúng tôi quan sát được các ứng xử của HS khi xây dựng thuật toán với hai biến a và b (trên giấy và trên MT). Qua đó cho thấy sự tác động không nhỏ của công cụ tính toán đối với quá trình xây dựng thuật toán (môi trường phản hồi).
Thực nghiệm chưa thực sự thành công theo sự mong đợi của chúng tôi, tuy nhiên
88
KẾT LUẬN
Luận văn của chúng tôi đã thực hiện được những công việc chính sau:
Trong chương 1, chúng tôi tiến hành nghiên cứu về thuật toán và các phương pháp giải quyết vấn đề - bài toán và rút ra những kết luận sau: