intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Phương pháp tinh chế - Một cách tiếp cận mới trong dạy học thuật toán cho học sinh ở trường phổ thông

Chia sẻ: Minh Minh | Ngày: | Loại File: PDF | Số trang:11

50
lượt xem
1
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài báo đưa ra một quan điểm về tư duy thuật toán và các cấp độ tư duy thuật toán, từ đó đề xuất một cách tiếp cận mới trong dạy học thuật toán qua ý tưởng tinh chế thuật toán thành các phiên bản khác nhau, dựa trên các cấp độ làm mịn và điều kiện cụ thể.

Chủ đề:
Lưu

Nội dung Text: Phương pháp tinh chế - Một cách tiếp cận mới trong dạy học thuật toán cho học sinh ở trường phổ thông

  1. JOURNAL OF SCIENCE OF HNUE Educational Science - Mathematics, 2013, Vol. 58, pp. 197-207 This paper is available online at http://stdb.hnue.edu.vn PHƯƠNG PHÁP TINH CHẾ - MỘT CÁCH TIẾP CẬN MỚI TRONG DẠY HỌC THUẬT TOÁN CHO HỌC SINH Ở TRƯỜNG PHỔ THÔNG Nguyễn Chí Trung∗, Hồ Cẩm Hà Khoa Công nghệ Thông tin, Đại học Sư Phạm Hà Nội ∗ Email: trungnc@hnue.edu,vn Tóm tắt. Dạy học thuật toán cho học sinh (HS) có vai trò quan trọng trong việc rèn luyện cho HS các thao tác tư duy và các kĩ năng giải quyết vấn đề trong khoa học và trong thực tiễn. Bài báo đưa ra một quan điểm về tư duy thuật toán và các cấp độ tư duy thuật toán, từ đó đề xuất một cách tiếp cận mới trong dạy học thuật toán qua ý tưởng tinh chế thuật toán thành các phiên bản khác nhau, dựa trên các cấp độ làm mịn và điều kiện cụ thể. Từ khóa: Tinh chế, thuật toán, học sinh phổ thông. 1. Đặt vấn đề Bàn về tư duy, Pascal cho rằng “Tư duy tạo nên sự cao cả của con người”; Descartes nói: “Tôi tư duy tức là tôi tồn tại”; Emerson nói: “Tư duy là hạt giống của hành động”; H.Poincaré dùng hình ảnh “Tư duy là một tia sáng giữa đêm tối. Nhưng chính tia sáng ấy là tất cả”. Bàn về dạy học, rèn luyện tư duy, Phạm Văn Đồng nói: “Điều chủ yếu không phải là nhồi nhét một mớ kiến thức hỗn độn mà là phương pháp suy nghĩ, phương pháp nghiên cứu, phương pháp học tập, phương pháp giải quyết vấn đề”. Theo ngạn ngữ cổ Hy lạp thì “Dạy học không phải là rót kiến thức vào một chiếc thùng rỗng mà là thắp sáng lên những ngọn lửa”. Theo Lê Hải Yến [4], mục tiêu của bậc học phổ thông là hình thành và phát triển được nền tảng tư duy của HS trong thời đại mới, bao gồm nhóm kiến thức, kĩ năng cơ bản của các môn học phổ thông; nhóm các kĩ năng tư duy và nhóm các phẩm chất nhân cách và đạo đức. Trong đó, các kĩ năng tư duy có thể kể đến như biết cách suy luận, phát hiện, giải quyết vấn đề, biết cách học, cách tự học, có tư duy sáng tạo, ... Thông qua dạy kiến thức và kỹ năng để đạt được mục tiêu hình thành và phát triển năng lực tư duy - trí tuệ của HS, thông qua việc dạy và học tư duy, chúng ta sẽ tạo được nền móng trí tuệ - cách suy nghĩ để giải quyết các vấn đề trong thực tiễn sau này cho mỗi HS khi bước vào đời. Vậy, mục tiêu quan trọng bậc nhất của quá trình dạy và học là giúp cho HS phát triển được tư duy. Việc rèn luyện và phát triển tư duy cho HS đặc biệt thích hợp đối với dạy học môn Toán và dạy học môn Tin học ở bậc phổ thông. Theo Nguyễn Bá Kim [1], quá trình dạy 197
  2. Nguyễn Chí Trung, Hồ Cẩm Hà học môn Toán có thể tạo điều kiện cho HS kiến tạo tri thức phương pháp với hai loại phương pháp khác nhau về bản chất, đó là những phương pháp là các thuật giải (ví dụ như giải phương trình bậc hai) và những phương pháp có tính chất tìm tòi (ví dụ như phương pháp tổng quát của Pôlya để giải bài tập toán học). Theo Hồ Sĩ Đàm và các cộng sự [5], môn tin học ở bậc phổ thông “nhằm cung cấp cho HS những kiến thức phổ thông về ngành khoa học tin học, hình thành và phát triển khả năng tư duy thuật toán, năng lực sử dụng các thành tựu của ngành khoa học này trong học tập và trong các lĩnh vực hoạt động của mình sau này." Bài báo đề xuất một hướng rèn luyện và phát triển tư duy cho HS thông qua việc giới thiệu một cách tiếp cận mới trong dạy học thuật toán, được gọi là phương pháp tinh chế, để dạy học thuật toán cho một số bài toán của môn Toán được dạy tường minh thuật giải, và đặc biệt là các bài toán, thuật toán của môn Tin học trong trường phổ thông. Cách tiếp cận này trước hết dựa trên ý tưởng làm mịn dần [2] nhưng được chi tiết hóa thành các phiên bản khác nhau của thuật toán. Chi tiết đến mức độ nào, hay nói cách khác, thuật toán cần được mô tả qua bao nhiêu phiên bản, mỗi phiên bản được thể hiện như thế nào, những điều này được căn cứ vào những yếu tố như mục tiêu chương trình, chuẩn kiến thức kĩ năng, thời lượng, đối tượng HS. 2. Nội dung nghiên cứu 2.1. Khái niệm thuật toán trong khoa học và ở trường phổ thông Từ nhiều nghiên cứu về sự hình thành và phát triển khái niệm thuật toán, ví dụ như của Dimitris Samaras [7], Robb Koether [8], và Yiannis [9], ta có thể tóm tắt rằng thuật toán là một khái niệm có nguồn gốc từ toán học và được hình thành từ định nghĩa trực giác đến định nghĩa hình thức một cách chính xác. Các định nghĩa hình thức và chính xác về thuật toán đều dựa vào máy Turing hoặc luận đề Church-Turing. Các định nghĩa này dù được trình bày dưới dạng trực quan hoặc bằng các kí hiệu, ngôn ngữ toán học, nhưng đều rất dài dòng và phức tạp. Nhiều nhà toán học và nhà khoa học máy tính có xu hướng phát biểu khái niệm thuật toán ẩn đi những mô tả chính xác và phức tạp của ngôn ngữ toán học để tiệm cận với đa số đối tượng có khả năng hiểu và thực hiện được thuật toán. Ví dụ, hướng đến đối tượng HS, để dạy học giải toán bằng qui tắc tựa thuật giải, Nguyễn Bá Kim [1] định nghĩa: “Thuật giải theo nghĩa trực giác được hiểu là như một dãy hữu hạn những chỉ dẫn thực hiện một cách đơn trị, kết thúc sau một số hữu hạn bước và đem lại kết quả là biến đổi thông tin vào của một lớp bài toán thành thông tin ra mô tả lời giải của lớp bài toán đó”. Hướng đến đối tượng là những người lập trình và cuối cùng là máy tính, Chung-Yang Huang và các cộng sự [10] đã định nghĩa: “Một thuật toán là một danh sách có thứ tự các chỉ dẫn được chỉ ra chính xác để thực hiện một công việc hay giải quyết một bài toán. Nó có thể được mô tả trong ngôn ngữ tự nhiên, giả mã, sơ đồ, hoặc thậm chí trong ngôn ngữ lập trình.” Trong định nghĩa của Huang, bốn cách biểu diễn thuật toán đã được chỉ ra. Cách biểu diễn cuối cùng hướng trực tiếp đến máy tính, và điều này được Knuth [11] nhấn mạnh “Một thể hiện riêng của thuật toán được gọi là một chương trình giống như 198
  3. Phương pháp tinh chế - một cách tiếp cận mới trong dạy học thuật toán... chúng ta dùng từ dữ liệu để chỉ một thể hiện riêng của thông tin”. Hướng đến đối tượng là HS, để dạy học thuật toán và lập trình, các nhà giáo dục và khoa học máy tính đưa ra khái niệm thuật toán xuất phát từ khái niệm bài toán trong tin học như sau: Khái niệm bài toán: Trong phạm vi tin học, “bài toán” là một việc nào đó ta muốn máy tính thực hiện. Ta có thể mở rộng khái niệm bài toán trên đây sang lớp bài toán của môn toán được dạy tường minh thuật giải. Cụm từ “một việc nào đó” có thể được hiểu là các bài toán của riêng tin học và của chung hai lĩnh vực toán học và tin học. Hai trường hợp đầu trong ví dụ dưới đây minh họa những việc là những bài toán mà ta cần quan tâm: A. Hãy in lên màn hình một dòng chữ chuyển động: thuộc bài toán của riêng tin học. B. Hãy giải bất phương trình bậc nhất ax + b ≤ 0: thuộc bài toán của toán học và tin học. C. Hãy chứng minh tổng các góc trong một tứ giác bằng 360 độ: thuộc bài toán của toán học. D. Yêu cầu tập lái xe ô tô trên địa hình thực tế: không thuộc bài toán của toán học hoặc tin học. Khái niệm thuật toán: Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho khi thực hiện dãy thao tác ấy, từ Input của bài toán, ta nhận được output cần tìm. Khái niệm thuật toán trên đây hàm ý nhấn mạnh việc chỉ ra tường minh cách tìm Output của bài toán. Cách tìm ra Output đó không nhất thiết phải thể hiện như một bài làm chứng minh chặt chẽ tính đúng đắn của lời giải bài toán. Nói cách khác, tính đúng đắn của thuật toán, nếu cần thiết phải được chứng minh riêng và thường được giải thích ở bước tìm ý tưởng thuật toán. Ví dụ 1: Xét thuật toán dưới đây giải bài toán Chọn cuộc họp: “Cho C là một tập hợp gồm n cuộc họp, cùng thuê một phòng họp lớn. Thời điểm bắt đầu và thời điểm kết thúc của mỗi cuộc họp được biết trước. Hãy tìm một tập S gồm nhiều cuộc họp được cho thuê nhất. Biết rằng tại một thời điểm, phòng họp chỉ cho phép một cuộc họp được diễn ra.”. Bước 1: Sắp xếp các cuộc họp trong C thành một dãy theo thứ tự tăng dần của thời điểm kết thúc; Bước 2: Khởi tạo S = ∅; Bước 3: Lặp các bước sau đây khi C 6= ∅: Bước 3.1. Chọn x là cuộc họp đầu tiên trong C có thời điểm kết thúc sớm nhất; Bước 3.2. Loại cuộc họp x ra khỏi C; Bước 3.3. Nếu cuộc họp x không có chung thời điểm họp với bất kì cuộc họp nào trong S thì thêm cuộc họp x vào cho S; Bước 4. Đưa ra kết quả S. 199
  4. Nguyễn Chí Trung, Hồ Cẩm Hà Mặc dù thuật toán trên đây đưa ra được Output S từ Input C, và thuật toán trong trường hợp này là đúng đắn (tức là S gồm nhiều cuộc họp nhất được bố trí cho thuê), nhưng bản thân thuật toán không được xem là một lời giải mà trong đó bao gồm việc chứng minh chặt chẽ tính đúng đắn của kết quả. Ta có thể coi thuật toán như một lời giải (của một bài toán) đã được lược bỏ đi rất nhiều giải thích chi tiết về tính đúng đắn của nó. 2.2. Các quan điểm về tư duy thuật toán và ý nghĩa của việc rèn luyện tư duy thuật toán Việc tìm kiếm những phương pháp dạy học thuật toán cho HS trở nên rất quan trọng. Những phương pháp này nhằm rèn luyện cho HS tư duy thuật toán, mà tư duy thuật toán, theo Nguyễn Bá Kim [1], nó “góp phần phát triển những năng lực trí tuệ chung như phân tích, tổng hợp, khái quát hóa, ... và hình thành những phẩm chất của con người 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,...”. Mặt khác, Gerald Futschek [6] đã khẳng định: “Tư duy thuật toán là chìa khóa để hiểu khoa học máy tính”, còn mục đích của khoa học máy tính là phục vụ con người giải quyết các bài toán trong hầu hết các lĩnh vực của đời sống xã hội. Vậy ý nghĩa quan trọng của việc rèn luyện tư duy thuật toán cho HS là bồi dưỡng cho các em kĩ năng giải quyết vấn đề trong khoa học và trong thực tiễn. Có nhiều quan niệm về tư duy thuật toán. Nguyễn Bá Kim [1] gián tiếp nêu khái niệm tư duy thuật toán khi cho rằng việc phát triển tư duy thuật giải cho HS là nhằm rèn luyện cho HS năm loại hoạt động: (i) Thực hiện những hoạt động theo một trình tự xác định phù hợp với một thuật giải cho trước; (ii) Phân tích một hoạt động thành những hoạt động thành phần được thực hiện theo một trình tự xác định; (iii) Mô tả chính xác quá trình tiến hành một hoạt động; (iv) 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; và (v) 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. Còn Gerald Futschek [6] thì cho rằng: Tư duy thuật toán là sự kết nối các năng lực của tư duy theo cách nào đó để hiểu và xây dựng được thuật toán, bao gồm: 1) Năng lực phân tích bài toán đã cho. 2) Năng lực xác định chính xác bài toán. 3) Năng lực tìm ra các thao tác cơ bản tương ứng với bài toán đã cho. 4) Năng lực xây dựng một thuật toán chính xác giải bài toán đã cho bằng cách sử dụng các thao tác cơ bản. 5) Năng lực tư duy về tất cả các trường hợp bình thường và đặc biệt có thể xảy ra của một bài toán. 6) Năng lực nâng cao hiệu quả của một thuật toán. Gerald đã chọn bài toán “Tìm đường trong mê cung” để phân tích quá trình tìm ra thuật toán đúng đắn thông qua quá trình tối ưu hóa “cách đi” (thao tác cơ bản) để thoát khỏi mê cung. Định nghĩa của Gerald được chúng tôi vận dụng và phát triển thành một cách tiếp cận mới trong dạy học và rèn luyện tư duy thuật toán cho HS [3]. 200
  5. Phương pháp tinh chế - một cách tiếp cận mới trong dạy học thuật toán... 2.3. Khái niệm tư duy thuật toán dựa trên khái niệm tác nhân Khái niệm mới về tư duy thuật toán được dựa trên những nhận định sau đây: Thứ nhất: Tư duy thuật toán thể hiện năng lực trí tuệ giải quyết vấn đề theo một qui trình xác định. Bởi việc xây dựng thuật toán thực chất là tạo ra một bản thiết kế qui trình giải bài toán, được mô tả bằng một dãy các thao tác mà theo đó đối tượng thực hiện thuật toán sẽ tiến hành để thu được Output từ Input. Qui trình này thường gồm ba phần: Nhận thông tin vào (Input); Xử lí thông tin đã nhận để giải quyết yêu cầu bài toán; và đưa ra thông tin cần tìm (Output). Thứ hai: Khi mô tả các chỉ dẫn trong các định nghĩa thuật toán, hoặc mô tả các thao tác cơ bản trong định nghĩa tư duy thuật toán trên đây của Gerald ở các thuật toán cụ thể, ta sẽ thấy có những đối tượng hiểu được ngay các chỉ dẫn trong thuật toán, và ngược lại, có những đối tượng không hình dung được chúng. Nói cách khác, một thao tác được xem là thao tác cơ bản đối với đối tượng này, nhưng nó có thể là một thao tác phức tạp đối với đối tượng khác. Chẳng lại như thuật toán trong ví dụ 1 trên đây, thao tác ở bước 1 sẽ được xem là một thao tác cơ bản nếu HS đã được học thuật toán sắp xếp. Ngược lại nếu các em chưa được học thuật toán này thì thao tác đó mặc dù phát biểu là dễ hiểu nhưng việc thực hiện nó một cách tường minh là khó hiểu và phức tạp. Như vậy việc mô tả thuật toán luôn phải gắn liền với đối tượng có khả năng hiểu được thuật toán và thực hiện được nó, ta gọi đối tượng này là tác nhân. Dưới đây là phát biểu chính thức khái niệm về tác nhân và tư duy thuật toán. Khái niệm tác nhân: Tác nhân có thể là con người, máy tính, hay bất kì một “máy” nào có khả năng hiểu và thực hiện được thuật toán. Khái niệm tư duy thuật toán: Tư duy thuật toán là sự kết hợp các năng lực để tìm ra cách giải quyết vấn đề theo một qui trình xác định, hướng đến một tác nhân tương ứng. “Cách giải quyết vấn đề” ở đây có thể dựa trên năm hoạt động rèn luyện tư duy thuật giải của Nguyễn Bá Kim [1], hoặc dựa trên việc rèn luyện sáu năng lực xây dựng thuật toán theo các thao tác cơ bản của Gerald Futschek [6], hoặc dựa trên quy trình phát hiện các loại thao tác trong quá trình mô tả thuật toán của chúng tôi [3], hoặc dựa trên qui trình tinh chế dần thành các phiên bản mô tả thuật toán được đề xuất trong nghiên cứu này. 2.4. Các cấp độ tư duy thuật toán Biểu diễn một thuật toán thực chất là biểu diễn tri thức giải quyết vấn đề, thể hiện năng lực tư duy thuật toán. Việc biểu diễn này có thể được chia thành các cấp độ tăng dần như sau: 1) Cấp độ thực hiện: HS hiểu ý tưởng thuật toán, biểu diễn lại được thuật toán cho trước, hiểu được nó hoạt động như thế nào, và có thể thực hiện được thuật toán. 2) Cấp độ chuyển giao: HS không những đạt được cấp độ thực hiện thuật toán, mà còn có thể biểu diễn lại thuật toán ở các phiên bản thích hợp để truyền đạt lại cho tác nhân hiểu và thực hiện thuật toán đó. 3) Cấp độ thiết kế: HS không những đạt được cấp độ chuyển giao thuật toán, mà 201
  6. Nguyễn Chí Trung, Hồ Cẩm Hà còn có thể cải tiến, hoặc hơn nữa, có thể sáng tạo thuật toán mới để giải quyết bài toán. Ba cấp độ tư duy trên đây không hoàn toàn giao nhau khác rỗng và có thể có những cấp độ trung gian. Trong quá trình biểu diễn thuật toán, HS luôn phải bám sát vào ý tưởng thuật toán, có thể điều chỉnh lại ý tưởng thuật toán để nó đầy đủ, đúng đắn hơn; có thể diễn đạt lại thuật toán cho người khác hiểu và thực hiện; có thể phát hiện những điều chỉnh và bổ sung cần thiết vào mô tả thuật toán trước đó để nó hoàn thiện hơn. Vậy ở mọi cấp độ đều đòi hỏi phải biểu diễn được thuật toán. Việc biểu diễn thuật toán ở cấp độ thấp có thể liên quan đến các cấp độ cao hơn. 2.5. Phương pháp tinh chế trong dạy học thuật toán cho học sinh phổ thông Như đã được đề cập trong phần giới thiệu, tinh chế là phương pháp dạy học thuật toán dựa trên ý tưởng “làm mịn” nhưng được chi tiết hóa thành các phiên bản khác nhau. Mỗi phiên bản thuật toán thể hiện một cấp độ làm mịn hoặc thể hiện một sự nâng cấp (hiệu chỉnh hay cải tiến) phiên bản trước đó. Việc lựa chọn các phiên bản nào để dạy một thuật toán được quyết định bởi một bộ yếu tố xác định (phương pháp làm mịn được giới thiệu chi tiết [2]). Thuật toán có thể biểu diễn bằng một trong các hình thức sau đây: 1) Nêu ý tưởng: Thuật toán được mô tả bằng ngôn ngữ tự nhiên ở mức độ phát biểu ý tưởng thuật toán. 2) Mô tả: Thuật toán được mô tả bằng ngôn ngữ tự nhiên ở mức độ biểu diễn theo phương pháp liệt kê từng bước hoặc sơ đồ khối. 3) Giả mã: Thuật toán được mô tả bằng ngôn ngữ gần giống với ngôn ngữ lập trình ở mức độ mô phỏng chương trình. 4) Chương trình: Thuật toán được mô tả bằng một ngôn ngữ lập trình cụ thể và cùng với việc tổ chức dữ liệu, nó tạo thành một chương trình thực hiện được trên máy tính. Mặc dù tại một cấp độ làm mịn, thuật toán có thể được biểu diễn bằng một trong các hình thức nêu trên, nhưng các hình thức biểu diễn này đòi hỏi mức độ suy nghĩ, tìm tòi khác nhau để thể hiện thuật toán. Do đó, việc chuyển một thể hiện thuật toán từ hình thức mô tả đến một thể hiện thuật toán ở hình thức giả mã, và cuối cùng là hình thức chương trình thường phải qua nhiều phiên bản thuật toán và thể hiện sự nâng dần về mức độ tư duy. Đây là một quá trình tinh chế. Đặc biệt, phiên bản nâng cấp một thuật toán (cải tiến hiệu quả, cải tiến thuật toán) đòi hỏi một mức độ tư duy cao hơn và thể hiện rõ nhất của ý nghĩa “tinh chế”. Quá trình tinh chế này dựa trên hai nguyên tắc sau đây: 1) Tinh chế tương đương: Các phiên bản mới hạn chế dần ngôn ngữ tự nhiên, tăng dần các biểu diễn toán học, rồi hạn chế dần các biểu diễn toán học để tăng dần các biểu diễn cú pháp của giả mã hoặc ngôn ngữ lập trình. 2) Tinh chế từ trên xuống: Nguyên tắc này dựa trên ý tưởng từng bước phân tích bài toán thành những bài toán con đơn giản hơn. Mỗi bài toán con trong bước tiếp theo lại có thể được phân tích thành các bài toán con đơn giản hơn nữa. Quá trình này được tiếp tục 202
  7. Phương pháp tinh chế - một cách tiếp cận mới trong dạy học thuật toán... cho đến khi thu được tập các bài toán sơ cấp (dễ giải hoặc đã biết cách giải). Như vậy, phiên bản thuật toán tại một bước nào đó có thể bao gồm một số thao tác được mô tả ngắn gọn nhưng chung chung, chưa biết rõ ràng nó được thực hiện như thế nào. Những thao tác này sẽ được chi tiết hóa dần ở các phiên bản thuật toán trong các bước tiếp theo. Bộ tham số và cách xác định Trước hết ta tìm hiểu những yếu tố ảnh hưởng quyết định đến hiệu quả dạy học các môn khoa học, trong đó có môn toán, công nghệ, và lập trình ở một số nước trên thế giới. Steve Higgins và cộng sự (Trung tâm Giáo dục Phổ thông, Đại học Newcasle, Anh) [12] đã khẳng định rằng hiệu quả dạy và học chịu ảnh hưởng quyết định bởi bốn yếu tố chính, trong đó yếu tố “hệ thống và qui trình” bao gồm: Năng lực nhận thức của người học; Thái độ, hành vi của người dạy; và Kế hoạch dạy học. Fabio Alivernini và các cộng sự (viện Đào tạo và Giáo dục Quốc gia, Ý) [13] đã chỉ ra rằng hiệu quả học tập khoa học của HS liên quan mật thiết với năm yếu tố: Nơi sinh; Giới tính; Tài liệu học tập ở nhà; Sự tự tin trong học khoa học; và Khả năng nhận thức ở trường học. Jeannie Oakes (Đại học Canifornia, Mỹ) [14] đã xây dựng mô hình Rand gồm sáu nhân tố ảnh hưởng đến hiệu quả học tập, đó là: Kiến thức cơ bản hiện có của HS; Thái độ học tập; Chất lượng trường phổ thông; Trình độ người thầy; Chất lượng dạy học; và Kết quả đã đạt được trước đó ở môn toán. Susan Wiedenbeck (Đại học Drexel, IreLand) và các cộng sự [15] đã quan tâm đến câu hỏi: Tại sao một số HS học lập trình dễ dàng và nhanh chóng, trong khi các HS khác thì ngược lại?. Các tác giả đã đề xuất mô hình hai nhân tố ảnh hưởng đến việc học lập trình của HS, đó là tính tự khả (self-efficacy) được định nghĩa bởi Bandura [16] và mô hình trí tuệ (mental model) được định nghĩa bởi Norman [17]. Bandura cho rằng tự khả như là sự tự đánh giá về khả năng tổ chức và thực hiện một qui trình cần thiết để đạt được một dạng thiết kế cách thực hiện một nhiệm vụ cho trước trong một lĩnh vực riêng biệt. Normal cho rằng mô hình trí tuệ như là sự thể hiện ở bên trong trí tuệ của con người về các đối tượng và các hệ thống thực. Các mô hình trí tuệ có vai trò quan trọng trong việc gỡ rối một qui trình khi nó gặp sai sót, vì chúng hỗ trợ lí giải và định vị các lỗi có thể xảy ra. Theo nhóm nghiên cứu của Canas [18], mô hình trí tuệ của một người lập trình có thể bao gồm: Hiểu cách một chương trình thực hiện; Hiểu phương pháp chung để giải quyết các bài toán bằng lập trình; Biết cấu trúc của một chương trình và các hàm; Nắm được cú pháp và ngữ nghĩa của một ngôn ngữ lập trình cụ thể. Qua sự tìm hiểu trên đây, ta thấy có nhiều quan điểm khác nhau về các yếu tố ảnh hưởng đến hiệu quả dạy và học các môn khoa học. Một cách khái quát, nếu giả thiết yếu tố “người thầy” được đảm bảo (về tinh thần trách nhiệm, trình độ, khả năng, và phương pháp dạy học) thì hiệu quả học tập chịu sự ảnh hưởng của hai yếu tố chính là “người học” và “môi trường”. Việc dạy học (ở đây bao gồm phương pháp, và cách tổ chức dạy học) chịu sự ảnh hưởng của hai yếu tố này, và chịu sự quyết định của yếu tố “chương trình”. Các thuộc tính chính của ba yếu tố này có thể được chỉ ra như sau: - “Chương trình” gồm các thuộc tính như nội dung bài học, mục tiêu cần đạt, chuẩn kiến thức, kĩ năng, thái độ và số tiết theo qui định chương trình. - “Người học” gồm các thuộc tính như tinh thần, thái độ học tập, kiến thức đã học, 203
  8. Nguyễn Chí Trung, Hồ Cẩm Hà năng lực nhận thức, độ tuổi, giới tính, loại hình lớp, và điều kiện sinh sống; - “Môi trường” gồm các thuộc tính như điều kiện học tập của trường, lớp và sự ảnh hưởng về điều kiện kinh tế, xã hội của vùng miền. Xét bài toán: “Cho một thuật toán, hãy căn cứ trên các yếu tố về chương trình, đối tượng HS, môi trường học tập để xác định các cấp độ làm mịn, từ đó quyết định các phiên bản thuật toán để dạy cho HS”. Có thể xem đầu vào của bài toán này là một bộ tham số gồm các yếu tố, thuộc tính được xem xét, và đầu ra của bài toán là các phiên bản thuật toán. Việc lựa chọn các thành phần của bộ tham số này, từ đó lựa chọn các cấp độ làm mịn, và số lượng các phiên bản thuật là hoàn toàn do GV quyết định. Bộ tham số này cũng là căn cứ để quyết định sự lựa chọn các cấp độ tư duy thuật toán cần rèn luyện cho HS. Để thuận lợi, ta có thể đưa thêm cấp độ tư duy thuật toán vào bộ tham số. Ta nhận thấy các yếu tố trên đây có sự ảnh hưởng lẫn nhau, và trong mỗi yếu tố, các thuộc tính có mối liên quan mật thiết với nhau. Vì thế, cần lựa chọn một cách phù hợp các thuộc tính để tạo ra bộ tham số không phức tạp trong khi sử dụng. Có thể chọn bộ tham số theo hai cách sau: 1) Chọn bộ tham số gồm các thành phần ưu tiên: GV tự quyết định những thành phần (thuộc tính) nào được ưu tiên đưa vào bộ tham số và loại bỏ những thành phần không được ưu tiên. Chẳng hạn, có thể chọn một bộ tham số ưu tiên bảy thành phần: (mục tiêu, thời lượng chương trình, khối lớp, loại hình lớp, năng lực nhận thức của HS, vùng miền, cấp độ tư duy). Giả sử bộ tham số này được qui định bởi một GV đang dạy ở một trường chuyên ở thành phố. Khi đó, bộ tham số sẽ được chỉ ra đơn giản hơn nhờ việc ẩn đi những thành phần mặc định, chẳng hạn bộ tham số có thể là (tên lớp chuyên, mục tiêu bài dạy, số tiết, cấp độ tư duy). 2) Chọn bộ tham số gồm các thành phần được gán trọng số: Có thể coi đây là bộ tham số đầy đủ nhất, gồm tất cả các thuộc tính trong các yếu tố, nhưng mỗi thuộc tính được gán trọng số ưu tiên. Trọng số của mỗi thuộc tính do giáo viên quy định và là tỷ lệ phần trăm mức độ quan trọng của nó so với tất cả các thuộc tính trong yếu tố tương ứng. Giáo viên có thể đơn giản hóa bộ tham số này bằng cách bỏ qua các thuộc tính có trọng số được gán bằng zero, và khi đó các tham số còn lại tạo thành một bộ tham số gồm một số thuộc tính ưu tiên với trọng số ưu tiên khác nhau. Các bước của phương pháp tinh chế Căn cứ vào các cấp độ làm mịn và cách xác định bộ tham số đầu vào, ta có thể đưa ra một “khung công việc” chung cho phương pháp tinh chế trong dạy học một thuật toán, gồm ba bước sau đây: Bước 1: Căn cứ vào chương trình, đối tượng HS, và môi trường học tập để quyết định một bộ tham số gồm các tham số ưu tiên (có trọng số hoặc không có trọng số). Mỗi thành phần trong bộ tham số này (yếu tố hoặc thuộc tính) được coi là một tham số. Bước 2: Căn cứ vào bộ tham số đã được lựa chọn để quyết định những cấp độ làm mịn và các phiên bản thuật toán tương ứng. Bước 3: Tổ chức cho HS hoạt động học tập theo các phiên bản thuật toán. 204
  9. Phương pháp tinh chế - một cách tiếp cận mới trong dạy học thuật toán... Cách sử dụng khung công việc trên có một vài giải thích bổ sung như sau: Tham số “người học” tại các thuộc tính “kiến thức đã học” và “năng lực nhận thức” (thể hiện trình độ, khả năng hiểu và thực hiện được thuật toán) là một trường hợp đặc biệt của tác nhân. Như vậy tác nhân là một tham số đặc biệt và ngầm định trong bộ tham số. Có hai loại cấp độ ý tưởng: Loại cấp độ thấp chỉ đòi hỏi hiểu được ý tưởng thuật toán đã có. Loại cấp độ cao (thập chí rất cao) đòi hỏi phải đi tìm ý tượng thuật toán. Loại cấp độ ý tưởng thấp được áp dụng đối với mọi bộ tham số đầu vào. Ví dụ vận dụng phương pháp tinh chế Xét bài toán: Cho n là số nguyên dương không vượt quá 10000, và cho dãy (a) gồm n số thực a1 , a2 , ..., an . Hãy sắp xếp các phần tử của dãy (a) theo thứ tự tăng dần (không giảm). Giả sử ta cần dạy thuật toán giải quyết bài toán trên cho lớp 10A1 (lớp đại trà) của một trường Trung học Phổ thông nào đó ở khu vực nông thôn. Các bước thực hiện phương pháp tinh chế để dạy học thuật toán này như sau: Bước 1: Chọn bộ tham số đầu vào là (tên lớp, mục tiêu bài dạy, số tiết, cấp độ tư duy). Giá trị của các tham số tương ứng là: Tên lớp = “10A1 đại trà”; Mục tiêu bài dạy = “HS hiểu được ý tưởng thuật toán sắp xếp đã cho; nắm được thuật toán được mô tả bằng phương pháp liệt kê”; Số tiết = 1; Cấp độ tư duy = “Cấp độ thực hiện”. Bước 2: Căn cứ trên bộ tham số, ta chọn hai cấp độ làm mịn là cấp độ ý tưởng và cấp độ mô tả, với bốn phiên bản thuật toán dựa trên cả hai nguyên tắc tinh chế tương đương và tinh chế từ trên xuống. Bước 3: Tổ chức cho HS hoạt động trong dạy học thuật toán qua các phiên bản dưới. Bốn phiên bản thuật toán được tóm tắt qua Hình 1. Hình 1. Các phiên bản của phương pháp tinh chế khi dạy một phương pháp sắp xếp 205
  10. Nguyễn Chí Trung, Hồ Cẩm Hà 3. Kết luận Bài báo đã trình bày các quan điểm về tư duy thuật toán, các cấp độ tư duy thuật toán, các cấp độ làm mịn, các điều kiện ràng buộc. Với quan điểm đó, chúng tôi đề xuất một phương pháp dạy học thuật toán dựa trên các cấp độ làm mịn để đưa ra các phiên bản thuật toán mịn dần, để từ đó làm cơ sở cho các bước của tinh chế trong dạy học thuật toán. Có thể xem phương pháp tinh chế như một hàm tinh chế từ không gian nguồn đến không gian đích, trong đó không gian nguồn là tập tất cả tất cả các phiên bản thuật toán giải quyết một bài toán (từ phiên bản ý tưởng, đến các phiên bản mô tả, các phiên bản giả mã và các phiên bản chương trình), còn không gian đích là tập các phiên bản thuật toán được chọn để dạy cho HS cách giải quyết bài toán. Cách tiếp cận mới trong dạy học thuật toán thông qua phương pháp tinh chế được đề xuất trong bài báo thỏa mãn được nhiều mục tiêu như: dạy học phân hóa thông qua hàm tinh chế, rèn luyện và phát triển tư thuật toán, bồi dưỡng phẩm chất con người mới và bồi dưỡng kĩ năng giải quyết vấn đề theo một qui trình xác định. Trong phạm vi một bài báo, khó có thể đưa ra được đầy đủ các ví dụ minh họa cho các vấn đề đã được đề cập. Mặt khác, vì bài báo chỉ tập trung vào việc nghiên cứu lí thuyết, nên công việc tiếp theo của bài báo trước hết là tiến hành thực nghiệm để rút ra được các đánh giá và điều chỉnh cần thiết. Chúng tôi cho rằng thực nghiệm sư phạm sẽ có kết quả khả quan vì nó vận dụng một phương pháp có cơ sở lí luận khoa học. Chúng tôi hi vọng rằng cách tiếp cận mới này là một phương pháp hiệu quả được nhiều thầy cô giáo biết đến và áp dụng rộng rãi trong dạy học thuật toán ở trường phổ thông. TÀI LIỆU THAM KHẢO [1] Nguyễn Bá Kim, 2009. Phương pháp dạy học môn toán. Nxb Đại học Sư phạm Hà Nội. [2] Nguyễn Chí Trung, Hồ Cẩm Hà, 2010. Truyền tải kiến thức tới người học bằng phương pháp “làm mịn dần. Journal of science of HNUE. Vol. 55, No 4, pp 38-48. [3] Nguyễn Chí Trung, 2012. Phát triển tư duy thuật toán cho học sinh phổ thông trên con đường từ ý tưởng đến mô tả thuật toán. Kỉ yếu Hội nghị Nghiên cứu khoa học, Khoa Công nghệ thông tin, Đại học Sư phạm Hà nội, pp. 129-137. [4] Lê Hải Yến, 2008. Bàn về mục tiêu của bậc học phổ thông. Tạp chí Dạy và học ngày nay, No. 4. [5] Hồ Sỹ Đàm (chủ biên), Hồ Cẩm Hà, Trần Đỗ Hùng, Nguyễn Xuân My, Nguyễn Đức Nghĩa, Nguyễn Thanh Tùng, Ngô Ánh Tuyết, 2006. Tin học lớp 10, Sách giáo viên. Nxb Giáo dục. [6] Gerald Futschek, 2006. Algorithmic Thinking: The Key for Understanding Computer Science. c Springer-Verlag Berlin Heidelberg, R.T. Mittermeir (Ed.): ISSEP 2006, LNCS 4226, pp. 159 - 168. [7] Dimitris Samaras, 2009. The Definition of Algorithm. Turing subject in module 8302, Lecture Material at CS of Tony Brook University. 206
  11. Phương pháp tinh chế - một cách tiếp cận mới trong dạy học thuật toán... [8] Robb T. Koether, 2008. The Definition of Algorithm. Lecture note in module “Theory of Computing”, Hampden-Sydney College. [9] Yiannis N. Moschovakis, 2001. What Is an Algorithm. Department of Mathematics, University of Athens, Greece, Edited by B. Engquist and W. Schmid, Springer, pp. 919-936 (Part II). [10] Chung-Yang (Ric) Huang, Chao-Yue Lai Kwang-Ting (Tim) Cheng, 2009. Fundamentals of algorithms, Chapter 4 in “Electronic Design Automation”, c Elsevier Inc. Alrights reserved, ISBN: 987-0-12-374-364, pp 173-232. [11] Donald E. Knuth, 1975. Computer Science and its relation to mathematics. The American Mathematical Monthly, vol. 81, 1974, pp. 323-343. [12] Steve Higgins, Elaine Hall, Kate Wall, Pam Woolner, Caroline McCaughey, 2005. The Impact of School Environments:A literature review. The Centre for Learning and Teaching School of Education, Communication and Language Science University of Newcastle, Design Council. [13] Fabio Alivernini, Laura Palmerio, Emanuela Vinci, Ines Di Leo, 2010. An Analysis of Factors Affecting Pupils’ Science Achievement in Italy. In proceeding on 4th International Association for the Evaluation of Education Achivement (IEA), (IRC 2010), Gothenburg, Sweden. [14] Oakes J.J. Educational Indicators: A Guide for Policymakers. Center for Policy Research in Education, The RAND Corporation, Santa Monica, CA. [15] Susan Wiedenbeck, Deborah LaBelle, Vennila N.R. Kain, 2004. Factors Affecting Course Outcomes in Introductory Programming. In Education Dunican & T.R.G. Green (Eds), Proceeding on 16th Workshop of the Psychology of Programming Interest Group (PPIG), Carlow, Ireland, pp. 97-110. [16] Bandura, A., 1997. Self-efficacy: Toward a unifying theory of behavioral change. Psychological, Review, Vol. 84, No. 2, pp. 191-215. [17] Norman, D.A., 1983. Some observations on mental models. In D. Gentner and A.L. Stevens, Educations. [18] Canas, J.J., Bajo, M.T. & Gonzalvo, P., 1994. Mental models and computer programming. International Journal of Human-Computer Studies, Vol. 40, No. 5, pp. 795-811. ABSTRACT Refinement methods: a new approach in teaching algorithms in high school The teaching of algorithms has an important role in the teaching of stepped thinking and problem solving not only in science but also in the everyday life of students. This paper presents a new point of view in algorithm thinking and alternative levels of algorithm thinking. This new approach proposes refining the algorithm to create alternative versions which have increased smoothness and defined input parameters. 207
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2