MỤC LỤC
I. PHẦN MỞ ĐẦU: ................................................................................................................................... 1
I.1. Lý do chọn đề tài : ........................................................................................................................... 1
I.2. Mục tiêu, nhiệm vụ của đề tài: ........................................................................................................ 2
I.2.1. Mục tiêu : .................................................................................................................................. 2
I.2.2. Nhiệm vụ :................................................................................................................................. 2
I. 3. Đối tượng nghiên cứu: .................................................................................................................... 3
I. 4. Giới hạn phạm vi nghiên cứu: ........................................................................................................ 3
I. 5. Phương pháp nghiên cứu: ............................................................................................................... 3
II . NỘI DUNG .......................................................................................................................................... 4
II.1.Cơ sở lý luận: .................................................................................................................................. 4
II.1.1. Khái niệm thuật toán .............................................................................................................. 4
II.1.2. Dạy cho học sinh cảm nhận được cách “tư duy” của máy tính ................................................. 6
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 ............................ 7
II.2. Thực trang dạy và học môn Tin học tại các trường phổ thông ...................................................... 8
II.2.1. Thực trang phương pháp dạy : ................................................................................................. 8
II.2.2. Thực trang phương pháp học: .................................................................................................. 9
II.3.Phân tích nguyên nhân của thực trạng ............................................................................................ 9
II.4. Giải pháp, biện pháp: ..................................................................................................................... 9
II.4.1. Định hướng vận dụng .............................................................................................................. 9
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 ...................................................................................................... 11
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............................... 13
III. PHẦN KẾT LUẬN, KIẾN NGHỊ ................................................................................................... 155
TÀI LIỆU THAM KHẢO................................................................................................................... 177
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
I. PHẦN MỞ ĐẦU:
I.1. Lý do chọn đề tài :
Mục tiêu của giáo dục phổ thông là “Giúp học sinh phát triển toàn diện về
đạo đức, trí tuệ, thể chất, thẩm mĩ và các kĩ năng cơ bản, phát triển năng lực cá
nhân, tính năng động và sáng tạo, hình thành nhân cách con người Việt Nam xã
hội chủ nghĩa, xây dựng tư cách và trách nhiệm công dân, chuẩn bị cho học sinh
tiếp tục học lên hoặc đi vào cuộc sống lao động, tham gia xây dựng và bảo vệ Tổ
quốc”.
Phương pháp dạy học là khâu rất quan trọng bởi lẽ phương pháp dạy học có
hợp lý thì hiệu quả của việc dạy học mới cao, phương pháp dạy họ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.
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
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
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.
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
2
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
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.
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
3
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
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
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
4
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
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
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
5
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
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
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
6
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
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.
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
7
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
Thao tác gán: gán giá trị của biểu thức cho một biến, có dạng:
<tên biến> ←− <biểu thức>;
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.
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
8
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
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
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
9
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
đầ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
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
10
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
1
Tìm giá trị lớn nhất của một
Các thao tác cơ sở chung.
2
dãy số nguyên
Kiểm tra tính nguyên tố của
Các thao tác cơ sở chung; Các thao tác cơ sở
một số nguyên dương
riêng (phép lấy căn, phép chia hết).
Các thao tác cơ sở chung; Các thao tác cơ
3
Bài toán sắp xếp bằng tráo đổi bản (tráo đổi hai số, đưa phần tử “nặng” nhất
4
Bài toán tìm kiếm tuần tự
về vị trí cuối dãy xác định bởi M).
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
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
11
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
+ 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: i1 ;
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: i1 ;
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: i1 ;
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;
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
12
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
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ới nhau
để đưa ra thuật toán.
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
13
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
Khi các em làm bài kiểm tra một tiết có kết quả rất xấu. Nhưng khi áp dụng
phương pháp này, kết quả thi học kỳ I vừa qua là rất khả quan.
Bảng so sánh kết quả trước và sau khi áp dụng phương pháp phát triển
tư duy thuật toán học sinh lớp 10A1- Trường THPT Buôn Ma Thuột – Năm
học 2014- 2015:
Mức độ đạt được các tiêu Phương pháp dạy Phương
trước đây
chí
pháp Tỷ lệ tăng,
phát triển tư Giảm
duy
Số
học Tỉ lệ
sinh
Số học Tỉ lệ
sinh
Giỏi
10
22.2% 20
44.4% Tăng 22.2%
Khá
12
26.7% 16
35.6% Tăng 8.7%
Trung Bình
13
28.9% 9
20%
Yếu
10
22.2%
Giảm 8.9%
Giảm
22.2%
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
14
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
III. PHẦN KẾT LUẬN, KIẾN NGHỊ
Có thể thấy rằng hầu hết các bài toán đều có thể xây dựng được thuật
toán giải nó dựa trên việc tìm ra các loại thao tác: thao tác cơ sở (chung,
riêng), thao tác cơ bản và thao tác tổng hợp. Với các bài toán tính toán, các loại
thao tác có thể tìm được ngay sau khi có ý tưởng thuật toán. Với các bài toán
khó hơn như các bài toán biến đổi trạng thái, câu đố, trò chơi thì ý tưởng thuật
toán thường hình thành cùng với việc xây dựng các loại thao tác.
Đề tài đã tập trung vào việc rèn luyện năng lực tìm ra các loại thao tác
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 đã tìm ra, và 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. Hướng nghiên cứu tiếp theo của đề tài là năng lực nâng cao hiệu quả của
một thuật toán. Ngoài ra, phần thực nghiệm sẽ được triển khai để vận dụng
kết quả nghiên cứu, từ đó đánh giá và điều chỉnh nếu cần thiết.
Trong quá trình thực hiện tôi đã bám sát 3 luận điểm chính nhằm hình
thành tư duy thuật toán cho học sinh đó là: Xác định bài toán, gợi ý cho học
sinh đưa ra ý tưởng, phân tích dẫn dắt để học sinh đưa ra thuật toán dựa vào
các thao tác, tiếp cận đánh giá thuật toán. Trong đó các luận điểm luôn gắn bó
chặt chẽ với nhau. Có như thế mới phát huy thực sự tính tích cực, chủ động và
sáng tạo của học sinh.
Trong thời gian tương đối ngắn, tôi chỉ áp dụng được một ví dụ nhỏ,
một vài hoạt động, chưa thể làm nổi bật lên phương pháp, cách thức truyền đạt
kiến thức một cách toàn diện. Vì vậy, với mong muốn sẽ đưa phương pháp
trên vào áp dụng rộng rãi trong bộ môn tin học nhằm nâng cao chất lương
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
15
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
giảng dạy, giúp học sinh lĩnh hội tri thức và hơn hết là nâng cao năng lực bản
thân.
Qua thực tế áp dụng, tôi thấy học sinh rất có hứng thú khi học tập bộ
môn Tin học nói chung và thuật toán nói riêng, chủ động, tích cực trong việc
tiếp thu kiến thức và tiết học cũng đạt được hiệu quả cao hơn. Nhưng do áp
dụng trong phạm vi hẹp, và cũng là ý kiến chủ quan của cá nhân tôi nên không
tránh khỏi những hạn chế và sai sót. Rất mong ý kiến đóng góp, xây dựng của
các đồng nghiệp để đề tài sáng kiến kinh nghiêm của tôi được hoàn thiện và
ứng dụng rộng rãi hơn trong các trường THPT toàn tỉnh.
Xin chân thành cảm ơn.
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
16
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
TÀI LIỆU THAM KHẢO
[1] Hồ Sĩ Đàm và cộng sự, 2006. Tin học 10. Nxb Giáo dục Việt Nam, SGK
trang 32-44 và SGV trang 4-10.
[2] 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, trang 383.
[3] Nguyễn Bá Kim, Lê Khắc Thành, 2006. Phương pháp dạy học đại cương
môn Tin học. Nxb Đại học Sư Phạm, Hà Nội, trang 91-104, 148-153.
[4] Nguyễn Chí Trung, 2013. Phương pháp phát triển tư duy thuật toán cho
học sinh phổ thông. Đại học Sư phạm, Hà Nội.
GV : Nguyễn Thu Huyền – Trường THPT Buôn Ma Thuột
17