Phát triển tư duy thuật toán cho học sinh
Trong phần lớn các trường hợp, kết quả hoạt động của con người phụ thuộc vào mức độ chuẩn xác do nhận thức được bản chất thuật toán của các hoạt động của mình. Nhờ kinh nghiệm có được, khi giải quyết một loại công việc người ta biết cần phải có những hoạt ...
Trong phần lớn các trường hợp, kết quả hoạt động của con người phụ thuộc vào mức độ chuẩn xác do nhận thức được bản chất thuật toán của các hoạt động của mình. Nhờ kinh nghiệm có được, khi giải quyết một loại công việc người ta biết cần phải có những hoạt động gì? Mỗi hoạt động có những thao tác gì? Thứ tự các thao tác đó như thế nào? Việc tìm ra một dãy các hoạt động, các thao tác, theo đó giải quyết được vấn đề, có thể xem như đã xây dựng được một quy trình thuật toán, mà việc tuân theo quy trình đó sẽ dẫn đến kết quả.[1]
Thuật toán được hiểu như một quy trình mô tả những chỉ dẫn rõ ràng và chính xác để người (hay máy) thực hiện một loạt thao tác nhằm đạt được mục đích đặt ra hay giải một lớp bài toán nhất định.[2]
Ví dụ: Thuật toán giải phương trình bậc hai, thuật toán dựng tam giác biết c-c-c, g-c-g, c-g-c,...
Thuật toán có các đặc điểm[1]:
Đó là một dãy hữu hạn các bước sắp xếp theo một trình tự nhất định
Mỗi bước là một thao tác sơ cấp, trường hợp đặc biệt cũng có thể là một thuật toán đã biết. Các bước rõ ràng, thao tác chính xác (trong cùng một điều kiện, hai bộ xử lí cùng thực hiện một thuật toán thì phải cho ra cùng một kết quả).
Có tính kết thúc (sau một số hữu hạn bước thực hiện) và tính phổ dụng (giải quyết được các bài toán cùng loại)
Tư duy thuật toán là cách suy nghĩ để nhận thức, để giải quyết vấn đề một cách có trình tự (sắp xếp lần lượt, thứ tự trước sau).[1]
Thông qua việc dạy học các quy trình, phương pháp có tính chất thuật toán giáo viên cần rèn luyện cho học sinh tư duy thuật toán. Tư duy thuật toán được đặc trưng bởi các khả năng:[3]
thực hiện những thao tác theo một trình tự xác định phù hợp với một thuật toán 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ực hiện theo một trình tự xác định
mô tả chính xác quá trình tiến hành một hoạt động
khái quát hóa một hoạt động trên những đối tượng riêng lẻ thành một hoạt động trên một lớp đối tượng
so sánh những thuật toán khác nhau cùng thực hiện một công việc và phát triển thuật toán tối ưu
Khả năng đầu thể hiện khả năng thực hiện thuật toán, bốn khả năng sau thể hiện khả năng xây dựng thuật toán, đặc biệt khả năng thứ hai thể hiện con mắt phát hiện thuật toán.
Quy trình là một trình tự phải tuân theo để tiến hành một công việc nào đó.
Ví dụ: Quy trình bốn bước của Polia để giải một bài toán, quy trình giải bài toán bằng cách lập phương trình,...
Mỗi quy trình có thể chia thành các bước. Mỗi bước là một hoạt động nhằm một mục đích nhất định. Mỗi hoạt động có thể có nhiều thao tác.
Ví dụ: Hoạt động "Tìm hiểu nội dung bài toán" có các thao tác: Vẽ hình, chọn kí hiệu, phân tích giả thiết, kết luận của bài toán,...
Quy trình tựa thuật toán hay quy trình có tính thuật toán là quy trình gồm một số hữu hạn các hoạt động có mục đích rõ ràng, cụ thể, được sắp xếp theo một trình tự nhất định, nhằm đi đến kết quả là giải được một loại công việc nào đó theo đúng yêu cầu đã định.
Một quy trình có tính thuật toán phải có các đặc điểm sau:
Đó là một dãy hữu hạn các bước sắp xếp theo một trình tự nhất định
Mỗi bước là một hoạt động nhằm một mục đích cụ thể, có bước là một thao tác sơ cấp, có bước chỉ là gợi ý định hướng suy nghĩ hoặc là hướng dẫn thực hiện thao tác được lựa chọn trong một số hữu hạn trường hợp.
Trong đa số trường hợp[4], sau khi thực hiện xong tất cả các bước thì đi đến kết quả
Trong chương trình hình học không gian ở Trung học phổ thông ta có thể hướng dẫn học sinh giải một số dạng bài toán theo một quy trình nhất định.
Ví dụ 1:
Quy trình tìm các điểm chung sẵn có của hai mặt phẳng
Bước 1: Tìm điểm chung sẵn có trong các điểm đã cho của hai mặt phẳng đã cho
Bước 2: Tìm điểm đã cho của mp này thuộc đường thẳng của mp kia
Bước 3: Tìm điểm đã cho của mp này thuộc mp kia.
Quy trình này không phải là một thuật toán nhưng có một số điểm giống với thuật toán. Trong quy trình này các thao tác được chỉ ra một cách khá rõ ràng, khôngg quá khái quát như trong quy trình bốn bước của Polya để giải bài toán, song cũng không cụ thể như ở một thuật toán. Ở bước 1, người thực hiện chỉ thực hiện thao tác so sánh từng điểm đã cho của mặt phẳng này với từng điểm đã cho của mặt phẳng kia. Ở bước 2, bước 3 người thực hiện đối chiếu từng điểm đã cho của mặt phẳng này với từng đường thẳng của một mặt phăng kia hay với mặt phẳng kia. Vận dụng quy trình này học sinh tìm được các điểm chung sẵn có của hai mặt phẳng đã cho trong các bài toán ở SGK hình học không gian.
Ví dụ 2:
Quy trình xác định đường vuông góc chung của hai đường thẳng chéo nhau d và d'
Bước 1: Xác định hai mặt phẳng vuông góc
mp(P) chứa d và song song với d'
mp(Q) vuông góc với một đường thẳng của mp(P) (nên chọn giao tuyến của mp(P) với mặt đáy của hình). Ta được hai mặt phẳng vuông góc với nhau.
Bước 2: Xác định đường vuông góc với mặt phẳng mp(P)
Xác định giao điểm G của d và mp(Q), giao tuyến (t) của mp(P) và mp(Q)
Trong mp(Q) xác định GI vuông góc với (t). Ta được GI vuông góc với mp(P).
Bước 3: Xác định hai chân đường vuông góc chung
Trong mp(P) xác định đường thẳng (a) qua I, song song với d, cắt d' tại K.
Trong mp(a, GI) xác định đường thẳng qua K, song song với IG, cắt d tại H.
Ta có HK là đường vuông góc chung của d và d'.
Nhận xét rằng, nếu các bước trong quy trình của ví dụ trên là các thao tác sơ cấp thì các bước trong quy trình của ví dụ này chỉ là các gợi ý định hướng suy nghĩ.
Ví dụ 3:
Quy trình xác định góc giữa hai mặt phẳng
Bước 1: Xác định giao tuyến của hai mặt phẳng
Bước 2: Tìm hai đường thẳng thuộc hai mặt phẳng và cùng vuông góc với giao tuyến tại một điểm
Bước 3: Xác định góc giữa hai đường thẳng này, đó chính là góc cần tìm.
Cần chú ý rằng, tùy theo dữ kiện của bài toán cụ thể mà bước này hoặc bước kia đã quá rõ ràng, nhưng việc tập luyện cho học sinh ý thức được việc xác định góc theo trình tự trên là cần thiết và sẽ luôn luôn đạt được kết quả.
Việc phát triển tư duy thuật toán cho học sinh có thể được thực hiện bằng cách rèn luyện cho họ những khả năng đã liệt kê ở trên như những thành tố của phương thức tư duy thuật toán.[3]
Để tập luyện cho học sinh khả năng thực hiện những thao tác theo một trình tự xác định phù hợp với một thuật toán cho trước, có thể phát biểu một số quy trình toán học như cộng, trừ, nhân, chia hai phân số, hai số hữu tỉ,... thành những thuật toán dưới dạng ngôn ngữ tự nhiên hoặc sơ đồ khối hoặc ngôn ngữ phỏng trình rồi yêu cầu học sinh thực hiện các quy trình ấy, thông qua đó nhấn mạnh các bước và trình tự tiến hành các bước trong mỗi quy trình. Ví dụ thuật toán giải phương trình bậc hai.
Để tập luyện cho học sinh biết phân tích một hoạt động thành những thao tác thành phần theo một trình tự xác định, giáo viên hứong dẫn học sinh tập luyện như với khả năng 1 với lưu ý áp dụng cho cả những quy trình thể hiện phần nào nhưng không hoàn toàn đầy đủ các yêu cầu chặt chẽ của một thuật toán.
Ví dụ 4:
Chẳng hạn quy trình xác định góc giữa một đường thẳng và một mặt phẳng
Bước 1: Xác định hình chiếu của đường thẳng trên mặt phẳng
Bước 2: Xác định góc giữa đường thẳng và hình chiếu của nó
Quy trình này tỏ ra có hiệu quả, ví dụ như đối với bài toán: "Một hình chóp SABC có hai mặt bên SAB và SAC vuông góc với đáy. Đáy ABC là tam giác cân đỉnh A, trung tuyến AD = a. Cạnh SB tạo với đáy một góc ∝ và tạo với mặt phẳng SAD góc β. Hãy xác định góc ∝, β ...". Theo các bước trên thì việc xác định góc ∝ không có gì khó khăn, còn với góc β, chắc chắn xác dịnh được hình chiếu của SB trên mp(SAD) chính là SD, do đó ∠SBD = β
Để rèn luyện cho học sinh khả năng tường minh hóa thuật toán, tức là khả năng diễn đạt ngôn ngữ để mô tả chính xác một quá trình, cần yêu cầu học sinh phát biểu những quy trình đã học hoặc đã biết bằng lời lẽ của mình. Giáo viên theo dõi phân tích tính chính xác, xác định của những phát biểu như vậy. Chẳng hạn, có thể sử dụng những bài tập kiểu như: "Hãy nêu một loạt chỉ dẫn sao cho bạn của em có thể căn cứ vào đó và thực hiện từng bước để dựng được một tam giác đều."
Để tập luyện cho học sinh hoạt động khái quát hóa một quá trình diễn ra trên những đối tượng riêng lẻ thành những hoạt động trên một lớp đối tượng, có thể hướng dẫn họ đi từ việc giải những phương trình bậc hai cụ thể tới giải phương trình bậc hai tổng quát hay giải những phương trình cụ thể sau: 3x - 6 = 0, -x + 5 = 0, 0x + 7 = 0, 0x = 0 sang giải phương trình bậc nhất dạng tổng quát.
Việc rèn luyện khả năng so sánh những thuật toán khác nhau thực hiện cùng một công việc và phát hiện thuật toán tối ưu có thể bắt đầu từ việc rèn luyện cho học sinh ý thức tiết kiệm thao tác[5]. Chẳng hạn, nếu so sánh các phân số 9/5, 9/4 và 9/7 thì không nên quy đồng mẫu số mà so sánh ngay các mẫu số vì ở đây tử số của các phân số đã bằng nhau.