SKKN Phát triển tư duy thuật toán cho học sinh Trung học Phổ thông thông qua “Bài toán và thuật toán” Tin học 10

SKKN Phát triển tư duy thuật toán cho học sinh Trung học Phổ thông thông qua “Bài toán và thuật toán” Tin học 10

Không thể dạy cho học sinh phổ thông kiến thức Kiến trúc tập lệnh

(Instruction set architecture), là hình ảnh trừu tượng của một hệ thống tính

toán được nhìn từ góc độ của một lập trình viên sử dụng ngôn ngữ máy

(hay hợp ngữ) [2]. Nhưng nếu hiểu được những vấn đề này thì mới có thể

hiểu rõ cách mà máy tính “tư duy” để thực hiện thuật toán giải một bài

toán, và do đó biết cách diễn tả đúng thuật toán. Mâu thuẫn này dẫn đến sự

khó hiểu về cách viết các thao tác trong một mô tả thuật toán và nó dường

như bị áp đặt lên học sinh. Bởi vậy, trong những cơ hội có thể được, giáo

viên cần dạy cho học sinh cảm nhận được cách tư duy của máy tính. Cơ

hội đầu tiên là trả lời các câu hỏi dạng “Tại sao có thể gán được x bằng x +

1?”. Thao tác gán là một thao tác đặc trưng, gặp thường xuyên trong các

thuật toán của tin học, và nó không thể giải thích dựa vào các phép toánPhát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán

thông thường của toán học. Học sinh phải hiểu rằng thao tác gán x ←− x

+ 1 được thực hiện theo thứ tự: giá trị của biểu thức ở bên phải phép gán

được tính toán trước, rồi sau đó giá trị này mới được gán cho biến ở bên

trái phép gán. Như vậy giá trị của x ở vế phải khác với giá trị của x ở vế

trái (các giá trị này tương ứng là giá trị của x trước và sau khi thực hiện

thao tác gán). Trong ngôn ngữ lập trình Pascal, kí hiệu ←− được thay bằng

kí pháp :=, và máy tính thực hiện thao tác gán x := x + 1 theo thuật toán

sau:

Bước 1. Tìm địa chỉ biến x ở biểu thức bên phải và lấy giá trị của x;

Bước 2. Tính giá trị của biểu thức ở bên phải;

Bước 3. Tìm lại địa chỉ của biến x ở bên trái để lưu kết quả vừa tính.

Ta gọi các thao tác ở 3 bước trên đây là các thao tác nguyên tố, nghĩa là

các thao tác nhỏ nhất (không thể phân chia thành các thao tác khác) mà các phần

tử vật lí thực hiện chức năng tính toán trong máy tính có thể “hiểu” và thực hiện

được. Phép gán x ←− x + 1 trong ngôn ngữ C/C++ được viết là x++ và máy tính

thực hiện thao tác gán này thông qua các thao tác nguyên tố sau đây:

Bước 1. Tìm địa chỉ của biến duy nhất trong phép gán để lấy giá trị;

Bước 2. Tăng giá trị đó lên 1 đơn vị;

Bước 3. Đặt giá trị mới vào địa chỉ đã biết

pdf 18 trang Người đăng thuquynh91 Lượt xem 1507Lượt tải 2 Download
Bạn đang xem tài liệu "SKKN Phát triển tư duy thuật toán cho học sinh Trung học Phổ thông thông qua “Bài toán và thuật toán” Tin học 10", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
c phù hợp thì 
mới có thể phát huy được khả năng tư duy, sáng tạo của người học. Bởi vậy, việc 
đổi mới giáo dục trước hết là việc đổi mới phương pháp dạy học theo hướng chủ 
động, tích cực, “lấy người học làm trung tâm”. 
Thực tiễn dạy học cho thấy phương pháp dạy học hiện nay tuy đã nhiều đổi 
mới nhưng cũng chưa đáp ứng được mục tiêu đề ra, ở trường phổ thông các thầy 
cô quan tâm đến nội dung và phương pháp học tập đáp ứng tốt cho các kì thi 
nhưng chưa chú trọng thích đáng vào rèn luyện phát triển trí tuệ, rèn luyện kĩ năng 
vận dụng kiến thực vào thực tiễn, đặc biệt là phát triển tư duy thuật toán. Tư duy 
thuật toán là loại hình rất cần thiết trong dạy học và làm việc sau này của học sinh. 
Chính vì vậy, người thầy không chỉ cung cấp kiến thức mà còn dạy cách học, phát 
huy khả năng tư duy, phân tích, tổng hợp, nhận xét, đánh giá, phát hiện vấn đề 
làm cho học sinh chủ động trong học tập, say mê nghiên cứu, gạt bỏ tư tưởng ngại 
và sợ thuật toán làm cho thuật toán trong tin học trở nên gần gũi và thiết thực đối 
với học sinh. 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 2 
Mục tiêu của môn Tin học, bậc phổ thông là “nhằm cung cấp cho học sinh 
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." Trên thực tế 
có rất ít giáo viên quan tâm nghiên cứu các câu hỏi “Tư duy thuật toán là gì?” và 
“Cần phải dạy học như thế nào để có thể rèn luyện và phát triển tư duy thuật toán 
cho học sinh?”. Đề tài này đã thảo luận những vấn đề đặt ra trong các câu hỏi 
trên và trình bày một quan điểm dạy cho học sinh phương cách tư duy để chuyển 
hóa được ý tưởng thuật toán thành mô tả thuật toán giải bài toán. 
Trong chương trình Tin học 10 học sinh mới tiếp xúc với thuật toán trong 
tin học nên có một khoảng trống về mặt thể hiện tri thức, ngầm diễn ra trong tư 
duy, giữa phần nêu ý tưởng thuật toán và phần mô tả thuật toán. Vì các lý do nêu 
trên, tôi chọn đề tài viết sáng kiến kinh nghiệm là: “Phát triển tư duy thuật toán 
cho học sinh THPT thông qua “ Bài toán và thuật toán” Tin học 10 ”, nhằm giúp 
cho học sinh có cái nhìn khái quát hơn về thuật toán từ đó phát triển tư duy tốt là 
nên tảng cho việc lập trình sau này. 
I.2. Mục tiêu, nhiệm vụ của đề tài: 
I.2.1. Mục tiêu : 
Hình thành và phát triển khả năng tư duy thuật toán là một trong các mục 
tiêu của môn Tin học ở phổ thông. 
I.2.2. Nhiệm vụ : 
Đề tài đề xuất một phương pháp tiếp cận mô tả thuật toán mà dựa vào đó, 
giáo viên có thể dẫn dắt học sinh phân tích, tìm tòi các thao tác quan trọng để hiểu 
và mô tả được thuật toán. 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 3 
I. 3. Đối tượng nghiên cứu: 
Phát triển tư duy thuật toán cho học sinh lớp 10. 
I. 4. Giới hạn phạm vi nghiên cứu: 
Trong đề tài đề cập đến phương pháp giúp học sinh phát triển tư duy thuật 
toán, cụ thể là sẽ phân tích một số ví dụ trong bài “ Bài toán và thuật toán”, qua 
đó giúp học sinh có cái nhìn khái quát về thuật toán để phát triển tư duy là nền 
tảng cho việc học lập trình sau này. 
I. 5. Phương pháp nghiên cứu: 
- Phương pháp tìm tài liệu : Phân tích, tổng hợp, phân loại, hệ thống hóa 
các nguồn tài liệu có liên quan đến đề tài. 
- Phương pháp nghiên cứu thực tiễn: Tư duy, logic, tìm hiểu, trao đổi, đàm 
thoại các bài toán liên quan đến đề tài. 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 4 
II . NỘI DUNG 
II.1.Cơ sở lý luận: 
 II.1.1. Khái niệm thuật toán : 
Việc cho một bài toán là mô tả rõ Input cho trước và Output cần tìm. 
Vấn đề là: Làm thế nào để tìm ra output? 
Việc chỉ ra tường minh một cách tìm Output của bài toán được gọi là 
một thuật toán (algorithm) giải bài toán đó. Có nhiều định nghĩa khác nhau 
về thuật toán, dưới đây là một định nghĩa thường dùng. 
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 sau 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 [1] 
Input : Các thông tin đã có; 
Output : Thông tin cần tìm từ Input; 
Thuật toán: Các thao tác cơ sở để tìm Output từ Input. 
Rõ ràng ý tưởng thuật toán là dễ hiểu, nhưng mô tả thuật toán thường 
làm học sinh khó hiểu với những câu hỏi như: Tại sao lại có thể gán được i 
bằng i + 1? 
Những thắc mắc của học sinh khi cố gắng hiểu một mô tả thuật toán 
đã cho thấy có một khoảng trống khá lớn về mặt thể hiện tri thức, ngầm 
diễn ra trong tư duy, khi chuyển từ phần nêu ý tưởng thuật toán sang phần 
mô tả thuật toán. Khoảng trống này cần được lấp đầy bằng tư duy thuật toán 
ở góc độ tin học. Với nhiệm vụ biến tri thức giáo khoa thành tri thức dạy 
học, người thầy phải dạy cho học sinh một con đường tư duy để từ ý tưởng 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 5 
thuật toán, học sinh có thể hiểu và xây dựng được mô tả thuật toán giải bài 
toán đã cho. 
Nguyễn Bá Kim khi bàn về “Dạy học qui tắc, phương pháp” đã chỉ 
ra 5 dạng hoạt động để phát triển tư duy cho học sinh, nhưng không đề 
cập đến việc vận dụng 5 dạng hoạt động này để hướng dẫn học sinh cách 
tư duy trong “khoảng trống” nói trên [2]. Lê Khắc Thành đã chú ý đến 
việc rèn luyện cho học sinh các hoạt động trí tuệ, nhưng chưa chỉ rõ một 
phương cách cụ thể để rèn luyện cho học sinh tư duy thuật toán [3]. Knuth, 
D.đã so sánh mối quan hệ giữa tư duy thuật toán và tư duy toán học, nhưng 
không đề cập đến việc hướng dẫn người học tư duy như thế nào khi xây 
dựng thuật toán. 
Theo Gerald Futschek , 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: 
• Năng lực phân tích bài toán đã cho; 
• Năng lực xác định chính xác bài toán; 
• 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; 
• 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; 
• 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; 
• Năng lực nâng cao hiệu quả của một thuật toán. 
Hai năng lực đầu tiên giúp học sinh thực hiện tốt nhiệm vụ “Xác 
định bài toán”. Các năng lực còn lại giúp học sinh hiểu và làm tốt nhiệm 
vụ “Mô tả thuật toán”. Trong đó, năng lực 5 và 6 được xem là những năng 
lực tư duy giúp học sinh xây dựng được một thuật toán đảm bảo tính đúng 
đắn và tính hiệu quả; năng lực 3 và 4 được xem là những năng lực tìm ra 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 6 
các thao tác cơ bản để mô tả thuật toán giải bài toán. Gerald đề nghị nên 
dùng các bài toán khó nhưng phát biểu bài toán là dễ hiểu để rèn luyện tư 
duy thuật toán cho người học, và 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. Bài báo 
tập trung vào các năng lực 3 và 4 và đề nghị một hướng khác: Thứ nhất là 
xem xét được tất cả các bài toán từ dễ đến khó để phù hợp cho tất cả các 
trình độ của người học; Thứ hai là không chọn cách tối ưu dần các thao tác 
cơ bản mà đề xuất một số thao tác cố định mới (khái niệm mới) và tìm cách 
dùng chúng để mô tả thuật toán dựa trên ý tưởng thuật toán. Hướng tiếp 
cận này sẽ hình thành một con đường cho học sinh tư duy để hiểu và xây 
dựng được thuật toán, nhằm lấp đầy khoảng trống giữa phần nêu ý tưởng 
thuật toán và phần mô tả thuật toán. 
II.1.2. Dạy cho học sinh cảm nhận được cách “tư duy” của máy tính 
Không thể dạy cho học sinh phổ thông kiến thức Kiến trúc tập lệnh 
(Instruction set architecture), là hình ảnh trừu tượng của một hệ thống tính 
toán được nhìn từ góc độ của một lập trình viên sử dụng ngôn ngữ máy 
(hay hợp ngữ) [2]. Nhưng nếu hiểu được những vấn đề này thì mới có thể 
hiểu rõ cách mà máy tính “tư duy” để thực hiện thuật toán giải một bài 
toán, và do đó biết cách diễn tả đúng thuật toán. Mâu thuẫn này dẫn đến sự 
khó hiểu về cách viết các thao tác trong một mô tả thuật toán và nó dường 
như bị áp đặt lên học sinh. Bởi vậy, trong những cơ hội có thể được, giáo 
viên cần dạy cho học sinh cảm nhận được cách tư duy của máy tính. Cơ 
hội đầu tiên là trả lời các câu hỏi dạng “Tại sao có thể gán được x bằng x + 
1?”. Thao tác gán là một thao tác đặc trưng, gặp thường xuyên trong các 
thuật toán của tin học, và nó không thể giải thích dựa vào các phép toán 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 7 
thông thường của toán học. Học sinh phải hiểu rằng thao tác gán x ←− x 
+ 1 được thực hiện theo thứ tự: giá trị của biểu thức ở bên phải phép gán 
được tính toán trước, rồi sau đó giá trị này mới được gán cho biến ở bên 
trái phép gán. Như vậy giá trị của x ở vế phải khác với giá trị của x ở vế 
trái (các giá trị này tương ứng là giá trị của x trước và sau khi thực hiện 
thao tác gán). Trong ngôn ngữ lập trình Pascal, kí hiệu ←− được thay bằng 
kí pháp :=, và máy tính thực hiện thao tác gán x := x + 1 theo thuật toán 
sau: 
Bước 1. Tìm địa chỉ biến x ở biểu thức bên phải và lấy giá trị của x; 
Bước 2. Tính giá trị của biểu thức ở bên phải; 
Bước 3. Tìm lại địa chỉ của biến x ở bên trái để lưu kết quả vừa tính. 
Ta gọi các thao tác ở 3 bước trên đây là các thao tác nguyên tố, nghĩa là 
các thao tác nhỏ nhất (không thể phân chia thành các thao tác khác) mà các phần 
tử vật lí thực hiện chức năng tính toán trong máy tính có thể “hiểu” và thực hiện 
được. Phép gán x ←− x + 1 trong ngôn ngữ C/C++ được viết là x++ và máy tính 
thực hiện thao tác gán này thông qua các thao tác nguyên tố sau đây: 
Bước 1. Tìm địa chỉ của biến duy nhất trong phép gán để lấy giá trị; 
Bước 2. Tăng giá trị đó lên 1 đơn vị; 
Bước 3. Đặt giá trị mới vào địa chỉ đã biết. 
 II.1.3. Dạy cho học sinh biết sử dụng các “thao tác cơ sở” để mô tả thuật toán 
Để ý thấy các thuật toán giải một bài toán đều xuất hiện một số thao tác sau 
đây: 
 Thao tác nhập: nhập giá trị cho biến. 
 Thao tác xuất: đưa ra ra giá trị của biến. 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 8 
 Thao tác gán: gán giá trị của biểu thức cho một biến, có dạng: 
 ←− ; 
 Thao tác chuyển: chuyển đến một bước nào đó phía trước hoặc phía sau bước 
hiện tại. 
 Thao tác kiểm tra: thực hiện một thao tác dạng "Nếu P thì Q"; trong đó P 
là một mệnh đề có một và chỉ một trong hai giá trị đúng hoặc sai, Q là một 
trong các thao tác đã chỉ ra (có thể là một thao tác kiểm tra khác) 
Ta gọi 5 thao tác trên đây là các thao tác cơ sở chung. Ngoài các thao tác 
cơ sở chung, mỗi bài toán còn có thao tác cơ sở của riêng nó, ta gọi chúng là các 
thao tác cơ sở riêng. Cả hai loại thao tác này được gọi chung là các thao tác cơ 
sở, và được định nghĩa như sau: 
“ Thao tác cơ sở là thao tác nhỏ nhất, được dùng để diễn tả từng bước của thuật 
toán và biểu thị một khả năng hiểu và thực hiện được bởi một tác nhân tương 
ứng.”
II.2. Thực trang dạy và học môn Tin học tại các trường phổ thông 
 II.2.1. Thực trang phương pháp dạy : 
 Phương pháp dạy của giáo viên chủ yếu vẫn là phương pháp truyền thụ 
một chiều, thuyết trình, giảng giải. Việc đổi mới phương pháp dạy và 
học chưa đi vào thực chất, có nhiều sâu, thiếu triệt để, chỉ mới dừng lại 
ở việc cải tiến phương pháp dạy học truyền thống bằng cách tăng cường 
các câu hỏi tái hiện; việc sử dụng các phương tiện hiện đại thường chỉ 
diễn ra vào các buổi hội giảng, không được áp dụng triệt để. 
 Giáo viên ít gọi học sinh phát biểu để hiểu hơn về tư duy thuật toán của 
học sinh, chưa phân bậc hoạt động nên khả năng tư duy của các em nói 
chung là chưa được phát triển. 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 9 
II.2.2. Thực trang phương pháp học: 
 Học sinh nắm kiến thức không chắc, hời hợt, không sâu sắc, bị động 
trong việc tiếp thu kiến thức, chủ yếu phụ thuộc vào giáo viên. 
 Cách kiểm tra, đánh giá theo hình thức thi thế nào thì học thế ấy. Việc 
kiểm tra đánh giá học sinh chỉ nhằm kiểm tra sự ghi nhớ, thuộc bài mà 
không chú trọng đến khả năng sáng tạo, ý thức tự giác trong học tập, 
năng lực tự học, tự nghiên cứu, phát triển tư suy sáng tạo, rèn luyện 
kỹ năng tư duy thuật toán. Học sinh có thể nêu ra được ý tưởng nhưng 
còn lúng túng trong quá trình đưa ra thuật toán. 
II.3.Phân tích nguyên nhân của thực trạng 
 Qua tìm hiểu và khảo sát thực tế có thể rút ra một số khó khăn, sai lầm sau: 
 Giáo viên chưa làm cho học sinh thực sự hiểu ý nghĩa của môn Tin học 
trong nhà trường nên thái độ học tập của học sinh chưa tích cực. 
 Do tính chất của bài học “Bài toán và thuật toán” là mới, học sinh còn chưa 
phân biệt được bài toán đã gặp và bài toán trong Tin học, giữa tư duy lôgic 
và tư duy thuật toán. 
 Học sinh thường có thói quen tư duy cụ thể do đó thường chuyển một cách 
máy móc các kiến thức cũ vào việc xây dựng thuật toán. 
 Việc nắm bắt thuật toán và tư duy thuật toán thường diễn ra một cách máy 
móc, do đó khi gặp bài toán mới học sinh lúng túng trong việc xây dựng 
thuật toán. 
II.4. Giải pháp, biện pháp: 
II.4.1. Định hướng vận dụng 
Đối với các bài toán chỉ cần mô tả thuật toán bằng các thao tác cơ sở, lần 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 10 
đầu tiên giáo viên cung cấp cho học sinh khái niệm về các thao tác cơ sở và 
yêu cầu các em hoạt động tùy theo các mức độ từ cao xuống thấp. 
Khi đã thành thạo việc phán đoán, suy luận để mô tả thuật toán chỉ bằng 
các thao tác cơ sở, học sinh có thể biết cách xây dựng những thao tác cơ bản 
(mới) để mô tả thuật toán gọn gàng, trong sáng hơn. Giáo viên cần tạo ra các 
tình huống thuật toán mà ở đó các thao tác cơ bản được nảy sinh một cách tự 
nhiên, điển hình là tình huống xuất hiện nhiều đoạn mô tả thuật toán giống 
nhau. Để rèn luyện cho học sinh biết xây dựng các thao tác cơ bản và dùng 
chúng mô tả thuật toán, giáo viên có thể thiết kế một kiểu dạy học chương trình 
hóa theo đường thẳng để từng bước dẫn dắt học sinh tiếp cận thuật toán đích 
cần xây dựng. Mỗi “liều” của chương trình đề cập đến một thao tác cơ bản 
(nếu có) và “liều” cuối cùng là thuật toán chính giải bài toán. 
Chỉ nên cho học sinh có trình độ từ mức khá trở lên tiếp cận với các thao 
tác tổng hợp. Bài tập loại này nên được phân hóa thành các yêu cầu mà theo 
thứ tự đó các thao tác tổng hợp được hình thành một cách tự nhiên. Giáo viên 
có thể thiết kế phương pháp dạy học chương trình hóa kiểu phân nhánh, trong 
đó các nhánh được sử dụng để đưa ra các gợi ý dưới dạng các bài toán con. 
Các bài toán con này giúp học sinh dễ suy ra các thao tác tổng hợp ít phức 
tạp, dùng để xây dựng thao tác tổng hợp phức tạp hơn, nhưng lại gần với ý 
tưởng thuật toán hơn. Các phương pháp dạy học tích cực như “khám phá có 
hướng dẫn”, “dạy học dựa trên truy vấn”, “phát hiện và giải quyết vấn đề”,... 
cũng có thể áp dụng để rèn luyện cho học sinh dạng bài tập này. 
Các bài toán trong sách giáo khoa Tin học 10, THPT đều là các bài toán 
có thể mô tả thuật toán dựa trên các loại thao tác như bảng sau đây: 
Bảng các loại thao tác cho các thuật toán trong SGK Tin học 10 
Stt Bài toán, thuật toán Loại thao tác cần sử dụng 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 11 
1 Tìm giá trị lớn nhất của một 
dãy số nguyên 
Các thao tác cơ sở chung. 
2 Kiểm tra tính nguyên tố của 
một số nguyên dương 
Các thao tác cơ sở chung; Các thao tác cơ sở 
riêng (phép lấy căn, phép chia hết). 
3 
Bài toán sắp xếp bằng tráo đổi 
Các thao tác cơ sở chung; Các thao tác cơ 
bản (tráo đổi hai số, đưa phần tử “nặng” nhất 
về vị trí cuối dãy xác định bởi M). 
4 Bài toán tìm kiếm tuần tự Các thao tác cơ sở chung. 
5 Bài toán tìm kiếm nhị phân Các thao tác cơ sở chung. 
II.4.2. Phát triển tư duy thuật toán của học sinh thông qua ví dụ trong bài “ 
Bài toán và thuật toán” sách giáo khoa Tin học 10 
 Xét ví dụ bài toán sau : 
 Bài toán tìm kiếm tuần tự 
Cách trình bày thuật toán giải quyết bài toán này, cũng giống như cách 
trình bày thuật toán trong hầu hết các tài liệu khác về thuật toán, kể cả trong sách 
giáo khoa Tin học lớp 10 [1], gồm 3 phần sau đây: 
 Xác định bài toán : 
- Input : Dãy A gồm N các số nguyên khác nhau a1,,aN và số nguyên k 
- Output: Chỉ số I mà ai = k hoặc thông báo không có số hạng nào của dãy A 
có giá trị bằng k. 
 Ý tưởng: 
 Bắt đầu tìm kiếm vị trí đầu tiên 
 Lần lượt so sánh k với các phần tử trong dãy. 
+ Nếu thấy phần tử bằng k thì thông báo i 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 12 
+ Nếu không có phần tử nào bằng k thì thông báo không có phần tử nào 
bằng k. 
Với k : là vị trí cần tìm 
 i: là vị trí các phần tử trong dãy. 
 Thuật toán: 
Để đưa ra thuật toán ta cần phân tích bài toán ra làm các thao tác như sau: 
Thao tác 1: 
Bước 1: Nhập N, các số hạng a1, a2,,aN; 
Bước 2: i1 ; 
Bước 3 : So sánh a1 với k 
 a2 với k 
  Vậy câu hỏi đặt ra là ai = k hay không? 
 aN với k 
Với N là số phần tử của dãy 
 ai là giá trị phần tử thứ i. 
Thao tác 2: 
Bước 1: Nhập N, các số hạng a1, a2,,aN; 
Bước 2: i1 ; 
Bước 3 : So sánh ai = k ? 
 - Nếu ai = k thì thông báo i rồi kết thúc 
 - Nếu ai khác k chuyển sang thao tác 3 
Thao tác 3 : 
Bước 1: Nhập N, các số hạng a1, a2,,aN; 
Bước 2: i1 ; 
Bước 3 : So sánh ai = k ? 
 Nếu ai = k thì thông báo i rồi kết thúc. 
Bước 4: i i+1; 
Phát triển tư duy thuật toán cho học sinh THPT trên con đường từ ý tưởng đến mô tả thuật toán 
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột 13 
Bước 5: Nếu i> N thì thông báo dãy A không có số hạng nào có giá trị bằng 
k, rồi kết thúc; 
Bước 6 : Quay lại bước 3. 
II.4.3. Phân tích các thao tác để đưa ra thuật toán: 
Từ thao tác 1 chuyển sang thao tác 2 : Gợi cho học sinh thấy nhu cầu 
cần làm rõ cấu trúc, khi so sánh thì sẽ có những trường hợp nào và cách giải 
quyết các trường hợp đó. Giáo viên có thể đưa ra ví dụ để dẫn dắt học sinh 
chuyển sang thao tác tiếp theo. 
Từ thao tác 2 chuyển sang thao tác 3 : gợi cho học sinh làm rõ các 
trường hợp còn lại, dừng thuật toán cho đến khi hết các phần tử của dãy. 
Ta có thể chia nhỏ các thao tác ra để làm rõ thuật toán giúp học sinh 
phát triển tư duy năng lực phân tích nhóm, năng lực xác định chính xác bào 
toán và năng lực tìm ra các thao tác cơ bản ( phép gán, phép cộng). 
Kết luận : Từ bài toán ví dụ trên ta có thể tìm thuật toán cho một bài 
toán bất kỳ bằng cách phân tích các thao tác để làm rõ thuật toán giúp học 
sinh phát triển tư duy thuật toán tốt hơn. 
II.5. Kết quả đạt được sau khi sử dụng phát triển tư duy thuật toán cho học 
sinh 
Trong quá trình thực hiện đề tài, tôi đã mạnh dạn áp dụng một số phương 
pháp dạy học tích cực để khơi gợi khả năng tư duy của các em, từ đó lựa chọn 
được các phương pháp phù hợp để nâng cao hiệu quả giảng dạy. 
Kích thích khả năng học hỏi, tìm tòi, trao đổi để phát triển tư duy. Khi gặp 
các bài toán các em không còn ngần ngại khi đưa ra ý tưởng và trao đổi v

Tài liệu đính kèm:

  • pdfskkn_phat_trien_tu_duy_thuat_toan_cho_hoc_sinh_trung_hoc_pho.pdf