4. Tổ chức luận văn
4.3.3. Phân tích kịch bản
Thực nghiệm được chia thành 3 pha với mục đích:
- Pha 1: HS giải một bài toán toán học đơn thuần trên môi trường giấy bút truyến thống, bài toán về dãy số mà HS vừa được học trong chương trình toán học. Thực nghiệm được tiến hành trên học sinh lớp 11 chương trình cơ bản, dãy số Fibonaci được giới thiệu trong bài dãy số (chỉ giới thiệu công thức truy hồi mà không giới thiệu công thức tổng quát).
Chúng tôi lựa chọn dãy số Fibonaci vì công thức truy hồi của dãy số này tuy phức tạp nhưng HS dễ phát hiện ra công thức từ dãy các số hạng. Hơn nữa, từ công thức truy hồi HS khó tìm được công thức tổng quát của dãy số. Dãy số cho bằng công thức truy hồi nói chung, dãy số Fibonaci nói riêng liên quan đến tư tưởng đệ quy trong tin học. Thông qua bài toán này, HS tiếp xúc với phương pháp giải quyết vấn đề mới, đó là quy các vấn đề cần giải quyết về các trường hợp đơn giản hơn.
Nhưng ở đây chúng tôi không chú trọng bài toán đệ qui, mà chúng tôi quan tâm đến việc HS làm việc với các bài toán tìm số hạng của một dãy số bằng công thức truy hồi với số biến là 2.
Nếu như dãy số được cho bằng công thức tổng quát thì để tìm số hạng thứ n của dãy số, HS chỉ cần thay giá trị n vào công thức tổng quát của dãy số là tìm được số hạng đó. Việc lựa chọn dãy số cho bằng công thức truy hồi, để tính được số hạng thứ n của dãy số HS cần phải quay lại tính các số hạng thứ n-1 và n-2 của dãy số, giá trị n càng lớn thì HS cần phải tính toán rất nhiều số hạng trước đó mới có thể có được kết quả. Như vậy nếu tính toán bằng tay hoặc có sự hỗ trợ của máy tính không có phím nhớ hay chức năng lập trình thì quá trình tính toán cũng mất rất nhiều thời gian. Từ đó, nảy sinh nhu cầu sự dụng MT để lập trình giải bài toán trên.
- Pha 2: ở pha này, GV yêu cầu HS viết thuật toán trên giấy để tìm các số hạng của dãy và tính tổng các số hạng đó.
Ở bài toán này, nếu viết thuật toán dựa trên công thức tổng quát (chiến lược StqT) thì mỗi lần tính số hạng un thì phải thực hiện lặp lại lệnh tính toán trên một biểu thức tổng quát và sẽ tốn khá nhiều thời gian cho việc tính các số hạng. Hơn nữa, ở cuối pha 1, HS đã tìm được công thức truy hồi của dãy số. Từ công thức truy hồi này HS muốn tìm công thức tổng quát của dãy số là rất khó. Tuy nhiên, để chặn không cho chiến lược StqT này xuất hiện, GV
73
yêu cầu HS trong các câu lệnh, biểu thức trong thuật toán không được dùng phép toán “lấy căn bậc hai một số không âm”.
Nếu như HS xây dựng thuật toán đệ quy để tìm số hạng tổng quát un thì về mặt lý thuyết thời gian thực hiện thuật toán sẽ rất lâu không chỉ tính số hạng thứ n của dãy số mà là tìm và tính tổng n số hạng đầu tiên của dãy số. Mỗi lần tính giá trị số hạng un, lại phải quay về tính toán lại tất cả các số hạng trước đó. Tuy nhiên chiến lược SđqT vẫn có thể xuất hiện ở pha 2 này, vì ở pha này HS viết thuật toán trên giấy.
Nếu dùng chiến lược công thức truy hồi, tại mỗi bước tính unthì ta đã có hai số hạng liền kề trước đó (đặt hai biến đó là a và b), ta chỉ việc cộng hai giá trị đó lại là có được giá trị un. Tuy nhiên, với việc sử dụng hai biến a và b, sau mỗi lệnh tính số hạng tiếp theo bằng hai số hạng trước đó, giá trị của hai biến a và b đã thay đổi. Chúng tôi muốn qua thực nghiệm này quan sát ứng xử của HS khi làm việc với hai biến a và b (khi mà trong nội dung tin học 10 và 11 HS chưa bao giờ làm việc với hai biến trong một thuật toán), vì theo chúng tôi HS có thể có những ứng xử sau:
+ 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), điều này có thể vì HS chưa được biết đến thuật toán hoán đổi giá trị của hai biến (được giới thiệu trong sách bài tập Tin học 10).
Ở đây, HS chưa phải làm việc ngay với MT mà ở hoạt động này chúng tôi muốn xem xét “HS chuyển từ lời giải toán học trong bài toán 1 sang lời giải tin học dưới dạng thuật toán như thế nào?” khi làm việc trên môi trường giấy bút truyền thống. Liệu rằng khi không có sự xuất hiện của công cụ tính toán là MT thì thuật toán mà HS xây dựng đã thực sự chính xác hay chưa?, HS có cơ hội để kiểm chứng thuật toán mình xây dựng hay không?
Cũng thông qua hoạt động này, chúng tôi muốn xem xét phản hồi của HS trước một yêu cầu viết thuật toán giải một bài toán chưa được giới thiệu thuật toán tương tự trong tin học 10 và 11.
Pha 3: Theo dự đoán của chúng tôi, ở pha 2, HS chưa xây dựng được thuật toán để giải bài toán 2 nên trong pha 3 này chúng tôi thực hiện các hoạt động hướng dẫn HS xây dựng và cài đặt thuật toán trên MT .
74
Ở bài toán 2 này chúng tôi muốn quan sát những ứng xử của HS khi làm việc với bài toán dãy số cho bởi công thức truy hồi hai biến và câu lệnh gán (lệnh gán trung gian hay lệnh hoán đổi giá trị hai biến). Vấn đề này chúng tôi đã có phân tích trong chương 3 của luận văn này. Trong đó lệnh gán đã được giới thiệu trong cả Tin học lớp 10 và lớp 11, bài toán hoán đổi giá trị của hai biến a và b chưa được giới thiệu trong nội dung tin học lớp 10 và lớp 11 (tính đến thời điểm thực nghiệm, HS chỉ vừa học xong §10 Cấu trúc lặp).
Đối với dãy số Fibonaci, sau khi tính xong một số hạng của dãy, thì số hạng đó được xem là số hạng thứ n của dãy số mới, còn số hạng thứ n của dãy số cũ trở thành số hạng thứ n-1 của dãy số mới. Cứ như thế, sau mỗi lần tính một số hạng nào đó, cần phải thực hiên thao tác hoán đổi giá trị số hạng thứ n và n-1. Sau đó, thay vì dùng các biến un, un-1, un-2 ta sử dụng hai biến a, b cho hai số hạng trước số hạng cần tính.
Ở pha này, trong hoạt động 1: Khi viết thuật toán sử dụng hai biến a và b, sau mỗi bước tính số hạng thứ n cần phải thay đổi lại giá trị của các biến a và b. Chúng tôi sẽ quan sát xem các nhóm HS xử lí như thế nào với tình huống này.
Ở hoạt động 2: chúng tôi yêu cầu HS cài đặt thuật toán trên phần mềm Algobox mà HS đã được giới thiệu và làm quen trong buổi thứ nhất.
Chúng tôi xin nói thêm về lý do lựa chọn phần mềm Alogobox:
- Trong chương trình Tin học 11, HS được học về ngôn ngữ lập trình Pascal và cài đặt các chương trình đã học trên Turbo Pascal. Tuy nhiên qua tìm hiểu HS và GV giảng dạy Tin học 11, HS thường không cài đặt được chương trình trong Turbo Pascal, hoặc khi cài đặt chương trình thường báo lỗi, và chủ yếu là các lỗi cú pháp.
- Phần mềm Algobox được xây dựng trên cơ sở chương trình của Turbo Pascal, trong đó tích hợp sẵn các câu lệnh trong lập trình Pascal vì vậy sẽ khắc phục được nhược điểm về sai cú pháp khi cài đặt chương trình. Trong thực nghiệm này chúng tôi không chú trong đến các lỗi sai về cú pháp mà quan tâm đến các sai lầm trong thuật toán.
- Trong quá trình thực hiện chương trình, phần mềm sẽ thông báo lỗi trong các câu lệnh (nếu có) để người cài đặt có thể chỉnh sửa lỗi. Người dùng cũng có thể quan sát các bước thực hiện chương trình.
- Tuy nhiên một trở ngại khi làm việc với phần mềm Algobox là phần mềm sử dụng ngôn ngữ tiếng Pháp.
Hoạt động 3: GV thể chế lại thuật toán chính xác, trong đó GV sẽ giải thích rõ cho HS thấy tại sao phải thay đổi giá trị các biến sau mỗi lần tính số hạng thứ n.
75