Kỹ thuật dò biên là bài toán mới chỉ xuất hiện cách đây không lâu, chỉ khoảng vài thập niên, nhưng đã có rất nhiều nghiên cứu về nó
Trang 1định đối với sự phát triển kinh tế, tạo ra của cải, nâng cao chất lợng cuộc sống.
Nh vậy, tri thức là yếu tố quyết định của sản xuất, sáng tạo đổi mới là
động lực thúc đẩy sản xuất phát triển Công nghệ mới trở thành nhân tố quantrọng hàng đầu trong việc nâng cao năng suất, chất lợng, đặc biệt là công nghệthông tin và sự ứng dụng rộng rãi của CNTT vào sản xuất và mọi lĩnh cựckhác của cuộc sống
Nhận thấy rõ đợc tầm quan trọng của CNTT và từ thực tiễn công cuộc
đổi mới đất nớc giai đoạn hiện nay, trong những năm qua Đảng và Nhà nớc tarất chú trọng đến việc phát triển, ứng dụng CNTT vào mọi lĩnh vực của đờisống xã hội và đào tạo nguồn nhân lực cho CNTT phấn đấu đa Việt Namthành xã hội tin học hoá
Để thực hiện đợc mục tiêu đó một cách toàn diện trong năm học 2006– 2007 bộ môn Tin học đã chính thức đợc phổ cập ở bậc trung học phổthông Nhằm mục đích trang bị cho học sinh những tri thức và kỹ năng cơ bản
về Tin học và đồng thời tạo ra nguồn nhân lực thế hệ mới có kiến thức Tin họctốt để chuẩn bị cho việc tin học hoá xã hội
Tin học, nói rộng hơn là CNTT đợc coi là một lĩnh vực khá mới mẻ
nh-ng phát triển nhanh và mạnh mẽ, có tầm ứnh-ng dụnh-ng rất rộnh-ng rãi Do đó bộ mônTin học đợc đa vào nhà trờng Phổ thông với mục đích là: “làm cho tất cả mọihọc sinh tốt nghiệp trung học đều nắm đợc những yếu tố cơ bản của Tin họcvới t cách là thành tố của văn hoá Phổ thông”, “Góp phần hình thành ở họcsinh những loại hình t duy liên hệ mật thiết với việc sử dụng CNTT nh t duythuật giải, t duy điều khiển…” Ngoài những kiến thức cơ bản về Tin học, về” Ngoài những kiến thức cơ bản về Tin học, về
sử dụng máy tính điện tử thì chơng trình Tin học phổ thông còn trang bị chohọc sinh những kiến thức, kỹ năng cơ bản về lập trình, biết vận dụng chúng để
Trang 2giải một số bài tập cơ bản, đồng thời bớc đầu chuẩn bị hành trang cho họcsinh có thể đi tiếp vào lĩnh vực này ở các giai đoạn tiếp theo Đặc biệt, qua dạyhọc lập trình cần rèn luyện cho học sinh một loại hình t duy quan trọng đó là
t duy thuật giải Hơn nữa, trớc khi giải quyết một bài toán, trớc khi viết chơngtình cho máy tính cho dù đơn giản nhất thì bất cứ ai dù ở trình độ nào cũng
đều phải suy t ít nhiều về cách giải, về thuật giải Trong tổng thể kiến thức vềTin học, các thuật giải hay hẹp hơn nữa là các thuật toán cùng cấu trúc dữ liệu
đợc xem là những tri thức quan trọng hàng đầu và không thể thiếu cho dù bất
kỳ ngôn ngữ lập trình nào muốn đạt đợc mục đích với hiệu quả cao nhất
Chính vì những lý do trên và với mong muốn tìm ra cho mình một đờng
đi riêng để đến với phơng pháp dạy học môn Tin học, để từ đó tích luỹ và traudồi những năng lực và phẩm chất của một ngời giáo viên trong tơng lai, tôi
chọn đề tài: Phát triển t“ duy thuật giải cho học sinh thông qua dạy học các cấu trúc điều khiển và các kiểu dữ liệu có cấu trúc Tin học lớp 11 THPT”
làm đề tài nghiên cứu khoa học của mình
2 Mục đích nghiên cứu
Mục đích nghiên cứu của khoá luận là nghiên cứu cơ sở lý luận vàthực tiễn, đề ra một số định hớng s phạm nhằm phát triển t duy thuật giải chohọc sinh trong quá trình dạy học các cấu trúc điều khiển và các kiểu dữ liệu cócấu trúc góp phần nâng cao chất lợng dạy học Tin học ở trờng phổ thông
3 Giả thuyết khoa học
Nếu đổi mới phơng pháp dạy học theo định hớng phát triển t duy thuật
giải thì sẽ kích thích hứng thú học tập, tích cực hóa hoạt động nhận thức của
học sinh do đó nâng cao chất chất lợng dạy học Tin học lớp 11 THPT
4 Nhiệm vụ nghiên cứu
Để đạt đợc mục đích đã nêu trên, khoá luận có nhiệm vụ:
- Nghiên cứu cơ sở khoa học của việc phát triển t duy thuật giải chohọc sinh trong dạy học Tin học 11 THPT
- Phân tích tầm quan trọng của việc dạy học lập trình trong giảng dạymôn Tin học ở trờng Phổ thông nhằm nâng cao nhận thức và t duy cho họcsinh (nhất là t duy thuật giải)
- Làm rõ khái niệm t duy, t duy thuật giải, xác định các nét đặc trngcủa việc phát triển t duy thuật giải
- Xây dựng quy trình dạy học theo hớng phát triển t duy thuật giải chohọc sinh thông qua dạy học các cấu trúc điều khiển và các kiểu dữ liệu có cấutrúc
Trang 35 Đối tợng nghiên cứu
- Nội dung, phơng pháp dạy học lập trình trong chơng trình Tin học phổthông
- Sách giáo khoa và sách giáo viên Tin học 11
- Hoạt động dạy và học các cấu trúc điều khiển và các kiểu dữ liệu cócấu trúc ở trờng THPT
6 Phơng pháp nghiên cứu
6.1 Nghiên cứu lý thuyết
* Nghiên cứu các văn kiện của Đảng và Nhà nớc, của Bộ giáo dục và
Đào tạo có liên quan đến việc dạy và học Tin học ở trờng THPT
* Các sách báo, tạp chí có liên quan đến nội dung đề tài
* Các tài liệu, bài giảng về phơng pháp dạy học Tin học, phơng phápdạy học môn Toán, các tài liệu giáo dục học, tâm lý học…” Ngoài những kiến thức cơ bản về Tin học, về
* Nghiên cứu vị trí, khối lợng kiến thức về lập trình trong chơng trìnhTin học phổ thông
* Nghiên cứu các tài liệu về ngôn ngữ lập trình Pascal
6.2 Nghiên cứu thực tiễn
* Dự giờ, quan sát gìơ dạy của giáo viên và hoạt động học tập của họcsinh trong quá trình dạy học nói chung và dạy học các cấu trúc điều khiển vàcác kiểu dữ liệu có cấu trúc nói riêng
* Tìm hiểu qua giáo viên để nắm đợc tình hình giảng dạy và học tậpTin học trong nhà trờng Phổ thông hiện nay
* Tiến hành thực nghiệm s phạm để kiểm chứng thông qua các lớpthực nghiệm và đối chứng trên cùng một lớp đối tợng
7 Cấu trúc của khoá luận
Ngoài phần mở đầu, kết luận và tài liệu tham khảo, khoá luận gồm bachơng:
Chơng I: Cơ sở lý luận của việc phát triển t duy thuật giải cho học sinh thông
qua dạy học các cấu trúc điều khiển và các kiểu dữ liệu có cấu trúc
Chơng II: Một số định hớng s phạm góp phần phát triển t duy thuật giải cho
học sinh thông qua dạy học các các cấu trúc điều khiển và các kiểu dữ liệu cócấu trúc
Chơng III: Thực nghiệm s phạm.
Trang 51.1.1 Quan điểm hoạt động trong phơng pháp dạy học.
Chúng ta biết rằng quá trình dạy học là một quá trình điều khiển hoạt
động của học sinh nhằm đạt đợc những mục đích dạy học Còn học tập là mộtquá trình xử lý thông tin Quá trình này có chức năng: đa thông tin vào, ghinhớ thông tin, biến đổi thông tin, đa thông tin ra và điều phối Học sinh thựchiện các chức năng này bằng những hoạt động của mình Thông qua hoạt
động thúc đẩy sự phát triển về trí tuệ ở học sinh làm cho học sinh học tập mộtcách tự giác, tích cực
Xuất phát từ một nội dung dạy học ta cần phát hiện những hoạt độngliên hệ với nó rồi căn cứ vào mục đích dạy học mà lựa chọn để tập luyện chohọc sinh một trong số những hoạt động thành phần giúp chúng ta tổ chức chohọc sinh tiến hành những hoạt động với độ phức tạp vừa sức họ
Việc tiến hành hoạt động nhiều khi đòi hỏi những tri thức nhất định,
đặc biệt là tri thức phơng pháp Những tri thức này lại là kết quả của một quátrình hoạt động khác Trong hoạt động, kết quả rèn luyện đợc ở một mức độnào đó có thể lại là tiền đề để tập luyện và đạt kết quả cao hơn Do đó cầnphân bậc những hoạt động theo mức độ khác nhau làm cơ sở cho việc chỉ đạoquá trình dạy học Trên cơ sở đợc phân tích trên về phơng pháp dạy học theoquan điểm hoạt động Khoá luận này đợc nghiên cứu trong khuôn khổ của lýluận dạy học, lấy quan điểm hoạt động làm nền tảng tâm lý học Nội dung củaquan điểm này đợc thể hiện một cách tóm tắt qua những t tởng chủ đạo sau:
* Cho học sinh thực hiện và tập luyện những hoạt động và hoạt độngthành phần
* Hớng đích và gợi động cơ cho các hoạt động
* Truyền thụ tri thức, đặc biệt là tri thức phơng pháp, nh phơng tiện vàkết quả của hoạt động
* Phân bậc hoạt động làm căn cứ cho việc điều khiển quá trình dạyhọc
Nh vậy, nếu phân tích rõ đợc t tởng và phơng pháp dạy học dựa trênquan điểm hoạt động sẽ góp phần phát triển phơng pháp dạy học theo hớngphát triển t duy thuật giải cho học sinh
Trang 61.1.2 T duy và đặc điểm của t duy
1 T duy
Theo tâm lý học : “T duy là một quá trình tâm lý phản ánh những thuộctính bản chất, những mối liên hệ và quan hệ bên trong có tính quy luật của sựvật hiện tợng trong hiện thực khách quan mà trớc đó ta đã biết”
T duy là một quá trình tâm lý thuộc nhận thức lý tính, là một mức độ nhậnthức mới về chất so với cảm giác và tri giác Trong đó nhận thức lý tính là mộtquá trình mà chủ thể nhận thức, khái quát hoá từ các dữ kiện mà họ có mộtcách cảm tính bằng cách hệ thống hoá chúng rồi đi đến thiết lập mối liên hệgiữa chúng và hiểu đợc mối quan hệ bản chất giữa các hiện tợng nghiên cứu
Từ đó phát biểu thành các tri thức và đợc kiểm tra lại bằng thực nghiệm
T duy là giai đoạn cao nhất của nhận thức, đi sâu vào bản chất và phát hiện
ra tính quy luật của sự vật hiện tợng bằng những hình thức nh biểu tợng, kháiniệm, phán đoán và suy nghĩ
2 Đặc điểm của t duy
Với t cách là một mức độ mới thuộc nhận thức lý tính, khác xa về chất
so với nhận thức cảm tính, t duy do con ngời là chủ thể có những đặc điểm cơbản sau đây:
* Tính “có vấn đề”: Đứng trớc những hoàn cảnh, những tình huống màvốn hiểu biết cũ, phơng pháp hành động đã biết của con ngời không đủ để giảiquyết, khi đó con ngời rơi vào hoàn cảnh “có vấn đề”, lúc này con ngời phải v-
ợt ra khỏi phạm vi những hiểu biết và đi tìm những cái mới, hay nói cách khác
đi con ngời phải t duy
* Tính gián tiếp : t duy phát hiện ra bản chất của sự vật, hiện tợng vàquy luật giữa chúng nhờ sử dụng công cụ, phơng tiện(nh đồng hồ, nhiệt kế,máy vi tính…” Ngoài những kiến thức cơ bản về Tin học, về).Ngôn ngữ là một phơng tiện rất quan trọng của t duy.Con ngờiluôn dùng ngôn ngữ để t duy
Nhờ đặc điểm gián tiếp này mà t duy đã mở rộng không giới hạn những khảnăng nhận thức của con ngời
* Tính trừu tợng và khái quát: T duy phản ánh cái bản chất nhất,chung cho nhiều sự vật hợp thành một nhóm, một loại, một phạm trù (kháiquát), đồng thời loại bỏ khỏi những sự vật đó, những cái cụ thể, cá biệt Nóimột cách khác, t duy đồng thời mang tính chất trừu tợng và khái quát
* T duy của con ngời có sự liên hệ chặt chẽ với ngôn ngữ: Ngôn ngữ
đợc xem là phơng tiện của t duy Nếu không có ngôn ngữ thì bản thân quá
Trang 7trình t duy không diễn ra đợc, đồng thời tạo ra các sản phẩm của t duy cũngkhông đợc chủ thể và ngời khác tiếp nhận.
* T duy có quan hệ mật thiết với nhận thức cảm tính: T duy phải dựatrên những tài liệu cảm tính, trên kinh nghiệm, trên cơ sở trực quan sinh động
T duy và nhận thức cảm tính là hai mức độ nhận thức khác nhau, nhng khôngthể tách rời nhau, có quan hệ chặt chẽ bổ sung cho nhau, chi phối lẫn nhautrong hoạt động nhận thức thống nhất và biện chứng Nh F Anghen đã nói:
“Nhập vào với con mắt của chúng ta chẳng những có những cảm giác khác,
mà còn có cả hoạt động t duy của ta nữa”
1.2 Khái niệm thuật toán
1.2.1 Khái niệm
Khái niệm t duy thuật giải liên hệ chặt chẽ với khái niệm thuật toán,
do đó trớc khi đa ra khái niệm thuật giải ta hãy nghiên cứu khái niệm thuậttoán
Trong Tin học, ngời ta quan niệm bài toán là một việc nào đó ta muốnmáy tính thực hiện Những việc nh đa một dòng chữ ra màn hình, giải phơngtrình bậc hai, sắp xếp một dãy số…” Ngoài những kiến thức cơ bản về Tin học, vềlà những ví dụ về bài toán
Việc cho một bài toán là mô tả rõ Input và Output Với Input là cácthông tin đã có còn Output là các thông tin cần tìm từ Input Nhng vấn đề làlàm thế nào để tìm ra Ouput?
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 đó Thuật ngữ “thuật toán” đợc xuấtphát từ nhà toán học Arập Abu Ja’far Mohammed ibn Musa al Khowarizmi(khoảng năm 825) Có nhiều định nghĩa khác nhau về thuật toán ở đây xin đa
ra khái niệm về thuật toán nh sau:
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.
Ví dụ:
Bài toán: Tìm giá trị lớn nhất của một dãy số nguyên
Xác định bài toán
+ Input: Số nguyên dơng N và dãy N số nguyên a1,a2,…” Ngoài những kiến thức cơ bản về Tin học, về,an
+ Output: Giá trị lớn nhất Max của dãy số.
ý tởng: - Khởi tạo giá trị Max = a1
- Lần lợt với i từ 2 đến N, so sánh giá trị số hạng ai với giátrị Max, nếu ai > Max thì Max nhận giá trị mới là ai
Trang 8 Thuật toán: Thuật toán giải bài toán này có thể đợc mô tả theo cách liệt
+ Bớc 4.1 Nếu ai > Max thì Max ai
+ Bớc 4.2 i i+1 rồi quay lại bớc 3
Từ định nghĩa ta thấy thuật toán có các tính chất sau:
* Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực hiệntác thao tác
* Tính xác định: Sau khi thực hiện các thao tác thì hoặc là thuật toán kếtthúc hoặc là có đúng một thao tác các định để đợc thực hiện tiếp theo
* Tính đúng đắn: Sau khi thuật toán kết thúc ta phải nhận đợc Outputcần tìm
Ví dụ: Với thuật toán tìm Max đa ra ở trên:
* Tính dừng: Vì giá trị của i mỗi lần tăng lên 1 đơn vị nên sau N lầnthì i > N, khi đó kết quả của phép so sánh ở bớc 3 xác định việc đa ra giá trịMax rồi kết thúc
* Tính xác định: Thứ tự thực hiện các bớc của thuật toán đợc mặc định
là tuần tự nên sau bớc 1 là bớc 2, sau bớc 2 là bớc 3 Kết quả các bớc so sánhtrong bớc 3 và bớc 4 đều xác định duy nhất bớc tiếp theo cần thực hiện
* Tính đúng đắn: Vì thuật toán so sánh Max với từng số hạng của dãy
số và thực hiện Max:= ai nếu ai > Max nên sau khi so sánh hết N số hạng củadãy thì Max là giá trị lớn nhất
1.2.2 Các đặc trng của thuật toán
1 Tính đơn trị
Tính đơn trị của thuật toán đòi hỏi rằng các thao tác sơ cấp phải đơntrị, nghĩa là hai phần tử thuộc cùng một cơ cấu, thực hiện cùng một thao táctrên cùng một đối tợng thì phải cho cùng một kết quả
2 Tính hiệu quả
Tính hiệu quả của một thuật toán đợc đánh giá dựa trên một số tiêuchuẩn nh: khối lợng tính toán, không gian và thời gian khi thuật toán đợc thựchiện Tính hiệu qủa của thuật toán là yếu tố quyết định để đánh giá, chọn lựacách giải quyết vấn đề – bài toán trên thực tế Có rất nhiều phơng pháp để
Trang 9đánh giá tính hiệu quả của thuật toán Độ phức tạp của thuật toán là một tiêuchuẩn đợc dùng rộng rãi.
3 Tính tổng quát
Thuật toán có tính tổng quát là thuật toán phải áp dụng đợc cho mọitrờng hợp của bài toán chứ không phải chỉ áp dụng đợc cho một số trờng hợpriêng lẻ nào đó Tuy nhiên, không phải thuật toán nào cũng đảm bảo đợc tínhtổng quát Trong thực tế, có lúc ngời ta chỉ xây dựng thuật toán cho một dạng
đặc trng của bài toán mà thôi
1.2.3 Các phơng pháp biểu diễn thuật toán.
Khi chứng minh hoặc giải một bài toán trong toán học, ta thờng dùngnhững ngôn ngữ toán học nh: “ta có”, “điều phải chứng minh”, “giả thiết”,…” Ngoài những kiến thức cơ bản về Tin học, về
và sử dụng các phép suy luận toán học nh phép kéo theo, phép tơng đơng,…” Ngoài những kiến thức cơ bản về Tin học, về
Đối với tin học cũng vậy, khi cần yêu cầu máy tính thực hiện một côngviệc nào đó, giải một bài toán nào đó thì chúng ta cần phải đa ra cách giải, cácbớc giải cho máy chứ máy tính không thể suy nghĩ và tìm ra cách giải Haynói theo ngôn ngữ của tin học thì có nghĩa là ta phải đa ra thuật toán, cài đặtthuật toán vào máy, khi đó máy mới có thể giải quyết đợc bài toán
Thuật toán là một phơng pháp thể hiện lời giải một bài toán nên cũngphải tuân theo một số quy tắc nhất định Để có thể truyền đạt thuật toán chongời khác hay chuyển thuật toán thành chơng trình máy tính, ta phải có phơngpháp biểu diễn thuật toán Có 4 phơng pháp biểu diễn thuật toán:
đôi lúc gây hiểu nhầm hoặc khó hiểu cho ngời đọc
2 Lu đồ – Sơ đồ khối.
Lu đồ hay sơ đồ khối là một công cụ trực quan để diễn đạt các thuật toán.Biểu diễn thuật toán bằng lu đồ sẽ giúp ngời đọc theo dõi đợc sự phân cấp các
Trang 10trờng hợp và quá trình xử lý của thuật toán Phơng pháp lu đồ thờng đợc dùngtrong những thuật toán có tính rắc rối, khó theo dõi đợc quá trình xử lý.
Để biểu diễn thuật toán theo sơ đồ khối, ta phải phân biệt hai loại thao tác:thao tác lựa chọn và thao tác hành động
tự thực hiện các thao tác
đợc nối bằng một mũi tên chỉ hớng thực hiện Từ thao tác chọn lựa có thể cóhai hớng đi, một hớng ứng với điều kiện đúng, một hớng ứng với điều kiện sai
Trang 11* H×nh « van thÓ hiÖn c¸c thao t¸c nhËp, xuÊt d÷ liÖu, khëi ®Çu hoÆc kÕtthóc cña mét thuËt to¸n.
Start (hoÆc Begin), thay KÕt thóc bëi End)
Ngoµi ra cßn cã ®iÓm nèi, ®iÓm nèi sang trang dïng cho thuËt to¸n cã
§
§óng
SaiSai
Trang 12Sơ đồ mô tả thuật toán một cách trực quan, dễ hình dung nhng lại rấtcồng kềnh khi phải mô tả những thuật toán phức tạp Một phơng pháp khác đểbiểu diễn thuật toán khắc phục đợc nhợc điểm ấy là ngôn ngữ phỏng trình.
3 Ngôn ngữ phỏng trình.
Tuy sơ đồ khối thể hiện rõ quá trình xử lý và phân cấp các trờng hợpcủa thuật toán nhng lại cồng kềnh Để mô tả thuật toán nhỏ ta phải dùng mộtkhông gian rất lớn Hơn nữa, lu đồ chỉ phân biệt hai thao tác là rẽ nhánh (lựachọn có điều kiện) và xử lý mà trong thực tế, các thuật toán còn có các lặp
Biểu diễn thuật toán bằng ngôn ngữ phỏng trình là cách biểu diễn sựvay mợn các cú pháp của một ngôn ngữ lập trình nào đó (Pascal, Basic, C, C++, …” Ngoài những kiến thức cơ bản về Tin học, về) để thể hiện thuật toán Ngôn ngữ phỏng trình đơn giản, gần gũi với mọingời, dễ học vì nó sử dụng ngôn ngữ tự nhiên và cha quá sa đà vào những quy
ớc chi tiết Mặt khác, nó cũng dễ chuyển sang những ngôn gnữ cho máy tính
điện tử vì đã sử dụng một cấu trúc và ký hiệu chuẩn hoá
Ví dụ: Biểu diễn thuật toán tìm ớc chung lớn nhất của hai số nguyên
Trang 13Có nhiều ngôn ngữ lập trình nh Pascal, Basic, C, C++, Asembly,…” Ngoài những kiến thức cơ bản về Tin học, vềSau
đây là ví dụ dùng ngôn ngữ lập trình Pascal để biểu diễn thuật toán
Bài toán: Tìm giá trị lớn nhất của một dãy gồm N số nguyên a1, a2,…” Ngoài những kiến thức cơ bản về Tin học, về, aN.Input: Số nguyên dơng N và dãy N số nguyên a1, a2,…” Ngoài những kiến thức cơ bản về Tin học, về, aN
Output: Giá trị lớn nhất Max của dãy đó
If A[i] > Max then Max:= A[i];
Write(‘Gia tri lon nhat cua day so la: ’, Max);
Readln;
END
1.3 Khái niệm thuật giải
Trong toán học, một bài toán có thể có nhiều cách để giải, tơng tự nhvậy trong Tin học có thể có nhiều thuật toán khác nhau để giải quyết cùngmột bài toán, nhng mỗi thuật toán lại chỉ giải một bài toán nào đó Vấn đề đặt
ra là ta nên chọn một thuật toán tốt để giải bài toán đã cho Vậy thuật toán tốt
là thuật toán nh thế nào? Một thuật toán đợc xem là tốt (hiệu quả) nếu đạt đợccác tiêu chí sau:
Dung lợng bộ nhớ chiếm ít
Số các phép tính cần thực hiện ít
Thời gian cần thiết để chạy ngắn
Dễ hiểu đối với con ngời
Trang 14 Dễ cài đặt trên máy.
Trong quá trình nghiên cứu giải quyết các vấn đề – bài toán, ngời ta đã đa
ra nhận xét sau:
+ Có nhiều bài toán cho đến nay vẫn cha tìm ra một cách giải theokiểu thuật toán và cũng không biết có tồn tại thuật toán hay không
+ Có nhiều bài toán đã có thuật toán để giải nhng không chấp nhận
đ-ợc vì thời gian giải theo thuật toán đó quá lớn hoặc các điều kiện cho thuậttoán đó khó đáp ứng
+ Có những bài toán đợc giải theo cách giải vi phạm thuật toán nhngvẫn chấp nhận đợc
Nh vậy, không phải cách giải nào, thuật toán nào cũng đều đạt đợc các tiêuchí nêu trên Do vậy, các cách giải chấp nhận đợc nhng không hoàn toàn đápứng đầy đủ các tiêu chuẩn của thuật toán đợc gọi là các thuật giải Khái niệm
mở rộng này của thuật toán đã mở rộng cho chúng ta trong việc tìm kiếm ph
-ơng pháp để giải quyết các bài toán đợc đặt ra Ngoài việc mở rộng tính đúngcủa thuật toán, thuật giải có tất cả các tính chất nh thuật toán Nó cũng có cáchình thức biểu diễn phong phú nh thuật toán Tuy nhiên, đối với một cơ cấunhất định chỉ tơng ứng với một hình thức biểu diễn nhất định Đặc biệt trongdạy học cần chú ý lựa chọn phơng tiện biểu diễn phù hợp với trình độ và kiếnthức của học sinh Sự hiểu biết về thuật giải, các tính chất và phơng tiện biểudiễn nó phản ánh trình độ văn hoá của thuật giải Ngôn ngữ lập trình là bớcphát triển cao của văn hoá thuật giải
1.4 Khái niệm t duy thuật giải
T duy thuật giải là hình thức biểu lộ của t duy biện chứng trong quátrình con ngời nhận thức khoa học Tin học hay thông qua hình thức áp dụngtin học vào các khoa học khác Nh vậy, t duy thuật giải là t duy biện chứng, làcách suy nghĩ để giải quyết một bài toán, một công việc nào đó theo mộttrình tự nhất định Nó là phơng thức t duy biểu thị khả năng tiến hành các hoạt
Trang 15T4: Mô tả chính xác quá trình tiến hành một hoạt động.
T5: So sánh những thuật giải khác nhau cùng giải quyết một bài toán
và tìm ra thuật giải tốt hơn về một yêu cầu nào đó
Trong đó, T1 thể hiện năng lực thực hiện thuật giải, (T2 – T5) thể hiệnnăng lực xây dựng thuật giải
Khái niệm t duy thuật giải đợc xác định ở trên là hoàn toàn phù hợpvới những kết quả nghiên cứu về hình thành văn hoá thuật giải Trong mộtcuốn sách của mình tác giả Monakhop đã nêu lên những thành phần của vănhoá thuật giải bao gồm:
- Hiểu bản chất của thuật giải và những tính chất của nó, hiểu bản chất
là ngôn ngữ biểu diễn thuật giải
- Nắm vững các phơng pháp và các phơng tiện biểu diễn thuật giải
- Hiểu tính chất thuật giải của các phơng pháp toán học và các ứng dụngcủa chúng; nắm vững các thuật giải trong chơng trình tin học phổ thông
- Hiểu cơ sở sơ cấp cho máy tính điện tử
Từ khái niệm và những phân tích ở trên về t duy thuật giải ta thấy rằng
để phát triển t duy thuật giải cho học sinh trong dạy học tin học giáo viên cầnphải tổ chức điều khiển các hoạt động t duy thuật giải Thông qua hoạt động
đó giúp học sinh nắm vững, củng cố các quy tắc đồng thời phát triển t duythuật giải cho học sinh
1.5 Vấn đề phát triển t duy thuật giải cho học sinh trong dạy học Tin học
1.5.1 Vai trò của việc phát triển t duy thuật giải trong dạy học Tin học ở trờng phổ thông.
Sau khi nghiên cứu khái niệm về thuật toán, thuật giải và t duy thuậtgiải, chúng ta nhận thấy rằng vấn đề phát triển t duy thuật giải trong môn tin
là một việc rất cần thiết, vai trò của việc phát triển t duy thuật giải là quantrọng Bởi đối với tin học thì vấn đề thuật giải và cấu trúc dữ liệu là vấn đềhàng đầu, muốn giải quyết đợc bài toán cần phải xác định đợc thuật giải vàcác kiểu dữ liệu sẽ sử dụng Hơn nữa việc phát triển t duy thuật giải khôngnhững có ý nghĩa rất lớn đối với tin học mà còn cả đối với toán học Phát triển
t duy thuật giải không chỉ là một điều kiện cần thiết góp phần hình thành vàphát triển văn hoá thuật giải cho học sinh mà còn là mục đích quan trọng củaviệc dạy học tin học ở trờng phổ thông:
* T duy thuật giải tạo điều kiện tốt cho học sinh tiếp thu kiến thức, rènluyện các kỹ năng tin học và các môn học khác
Trang 16* T duy thuật giải giúp học sinh làm quen với cách làm việc trong khigiải bài toán bằng máy tính điện tử Thật vậy, thiết kế thuật giải là một khâurất cơ bản của việc lập trình T duy thuật giải tạo điều kiện cho học sinh thựchiện tốt khâu đó.
* T duy thuật giải phát triển sẽ thúc đẩy sự phát triển các thao tác trítuệ (nh: phân tích, tổng hợp, so sánh, trừu tợng hoá, khái quát hoá…” Ngoài những kiến thức cơ bản về Tin học, về) cũng nhnhững phẩm chất trí tuệ (nh: tính linh hoạt, tính độc lập, tính sáng tạo và nhất
là những phẩm chất cần thiết của ngời lập trình nh: tác phong làm việc theonhóm, tính kỷ luật cao,…” Ngoài những kiến thức cơ bản về Tin học, về)
* T duy thuật giải giúp học sinh hình dung đợc quá trình tự động hoádiễn ra trong những lĩnh vực khác nhau của con ngời, trong đó có lĩnh vực xử
lý thông tin điều này làm cho học sinh thích nghi với xã hội tự động hoá, gópphần làm giảm ngăn cách giữa nhà trờng và xã hội
1.5.2 Những t tởng chủ đạo để phát triển t duy thuật giải trong dạy học Tin học.
Phơng hớng chung để phát triển t duy thuật giải là tổ chức, điều khiểnhọc sinh tập luyện các hoạt động t duy thuật giải Muốn vậy, trớc hết giáo viêncần phải thiết kế và xây dựng các bài dạy theo một quy trình có tính chất thuậtgiải đối với các tình huống điển hình trong dạy học tin, mà quan trọng nhất làcác cấu trúc điều khiển và các kiểu dữ liệu có cấu trúc Nghĩa là phải xâydựng một hệ thống quy định nghiêm ngặt đợc thể hiện theo một quá trình chặtchẽ và dẫn tới cách giải quyết đúng đắn
Qua quá trình tìm hiểu, nghiên cứu và tham khảo tài liệu, xin đợc đa
ra hệ thống các t tởng chủ đạo về phát triển t duy thuật giải nh sau:
* Rèn luyện cho học sinh các hoạt động t duy thuật giải trong khi dạyhọc và luyện tập tri thức lập trình
* Gợi động cơ và hớng đích cho các hoạt động t duy thuật giải baogồm:
- Gợi động cơ và hớng đích mở đầu cho các hoạt động t duy thuậtgiải
- Gợi động cơ và hớng đích trong khi tiến hành các hoạt động t duythuật giải
- Gợi động cơ kết thúc hoạt động t duy thuật giải
* Truyền thụ cho học sinh những tri thức phơng pháp về t duy thuậtgiải trong khi tổ chức, điều khiển tập luyện các hoạt động t duy thuật giải
* Phân bậc các hoạt động
Trang 17Những t tởng chủ đạo trên đã quán triệt những yêu cầu đầu tiên củaviệc khai thác hoạt động trong các nội dụng dạy học tin học Thật vậy, cáchoạt động t duy thuật giải nhằm vào thực hiện những yêu cầu tin học có nghĩa
là các hoạt động này phải tơng thích với nội dung đó Các hoạt động t duythuật giải xuất hiện trớc hết nh phơng tiện chiếm lĩnh tri thức và rèn luyện kỹnăng Sau đó, do có vai trò quan trọng trong học tập và đời sống đã trở thànhmục đích dạy học Vì vậy, các hoạt động t duy thuật giải mang hai chức năng.Chức năng phơng tiện và chức năng mục đích Tiến hành các hoạt động t duythuật giải trong khi và nhằm vào thục hiện các yêu cầu tin học chính là nhằmvào thực hiện hai chức năng này
Những t tởng chủ đạo này còn mang ý nghĩa nền tảng cho việc pháttriển t duy thuật giải trong môn tin Trong dạy học tin, không có những hoạt
động t duy thuật giải chỉ nhằm một mục đích duy nhất là phát triển t duy thuậtgiải mà chỉ có những hoạt động t duy thuật giải đợc tiến hành trong khi tiếnhành các hoạt động tin học Đồng thời các hoạt động t duy thuật giải phảinhằm vào các yêu cầu của toán học Hiệu quả tập luyện các hoạt động t duythuật giải thể hiện bằng hiệu quả thực hiện những yêu cầu tin học
Trên tinh thần các t tởng chủ đạo đó, khoá luận sẽ đa ra một số địnhhớng nhằm góp phần phát triển t duy thuật giải của học sinh trong quá trìnhdạy học các cấu trúc điều khiển và các kiểu dữ liệu có cấu trúc trong chơngtrình tin học phổ thông
Khoá luận cũng đã nêu lên đợc ý nghĩa và tầm quan trọng của việcphát triển t duy thuật giải
Chơng II
Một số định hớng s phạm góp phần phát triển t duy thuật giải cho học sinh thông qua dạy học các cấu trúc điều khiển và các kiểu dữ liệu có cấu trúc.
Trang 182.1 Những nội dung chủ yếu về các cấu trúc điều khiển và các kiểu dữ liệu có cấu trúc
Để phát triển t duy thuật giải cho học sinh thông qua dạy học các cấu trúc
điều khiển và các kiểu dữ liệu có cấu trúc, trớc hết ta cần nắm rõ đợc nhữngnội dung chủ yếu mà ta đang đề cập đến, từ đó phân tích để thấy đợc kiến thứcchủ yếu cần truyền đạt tới học sinh, dựa vào đó để phát triển t duy thuật giảicho học sinh Học sinh có nắm đợc các kiến thức về cấu trúc điều khiển và cáckiểu dữ liệu có cấu trúc thì mới nảy sinh hứng thú học tập lập trình và t duythuật giải về các bài toán
Theo chơng trình tin học 11 THPT đã trình bày, các cấu trúc điều khiểnbao gồm: Cấu trúc rẽ nhánh và cấu trúc lặp đợc trình bày rất chi tiết trong ch-
ơng III Còn các kiểu dữ liệu có cấu trúc đợc đề cập ở chơng IV bao gồm:Kiểu mảng, Kiểu xâu và Kiểu bản ghi
Đó là những kiến thức cơ bản nhất, chủ yếu nhất là hành trang cho họcsinh tiến bớc vào lĩnh vực lập trình Do đó, cần phải làm cho học sinh hiểu vànắm vững đợc các kiến thức này thông qua đó phát triển đợc t duy thuật giảicho học sinh – t duy quan trọng không chỉ đối với tin học mà còn trong toánhọc và các lĩnh vực khác nữa
Về cấu trúc rẽ nhánh:
+ Chúng ta cần phải làm rõ đợc ý nghĩa của cấu trúc rẽ nhánh, đó làmột điều khiển chọn thực hiện hoặc không thực hiện công việc phù hợp vớimột điều kiện đang xảy ra
+ Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh IF …” Ngoài những kiến thức cơ bản về Tin học, vềTHEN gồmhai dạng sau:
- điều kiện là biểu thức logic.
- câu lệnh, câu lệnh 1, câu lệnh 2 là câu lệnh của Pascal.
+ Chú ý: Trong cấu trúc rẽ nhánh chúng ta cần phải phân tích thêm để chohọc sinh hiểu về câu lệnh ghép Câu lệnh ghép là câu lệnh đợc gộp lại từmột dãy các câu lệnh của ngôn ngữ lập trình Trong Pascal, câu lệnh ghép
có dạng nh sau:
Begin
Trang 19+ Khi sử dụng cấu trúc lặp chơng trình của chúng ta sẽ ngắn gọn hơn, rõràng và dễ hiểu hơn Chúng ta không phải viết đi viết lại nhiều lần cùng mộtcâu lệnh, chơng trình dài dòng, khó hiểu.
+ Qua ý nghĩa của cấu trúc lặp đã nêu ở trên ta cần phân tích cho học sinhthấy đợc hai hạng của cấu trúc lặp đó là: lặp với số lần biết trớc và lặp với sốlần cha biết trớc
+ Đối với cấu trúc lặp với số lần biết trớc, Pascal dùng câu lệnh FOR…” Ngoài những kiến thức cơ bản về Tin học, vềDOdạng tiến và dạng lùi để mô tả:
Dạng tiến:
For <biến điếm> := <giá trị đầu> To <giá trị cuối> Do <câu lệnh>;
Dạng lùi:
For <biến đếm>:= <giá trị cuối> Downto <giá trị đầu> Do <câu lệnh>;
+ Lặp với số lần cha biết trớc
Lặp với số lần cha biết trớc có hai dạng:
Dạng 1: Trong khi <điều kiện> còn đúng thì còn thực hiện <công việc>.
Dạng 2: Thực hiện <công việc> trong khi <điều kiện> còn đúng.
Trong dạng 1, đầu tiên kiểm tra và tính giá trị của điều kiện, nếu điều kiện nhận giá trị true thì thực hiện công việc (một lần) Mỗi lần thực hiện
công việc có thể sẽ làm thay đổi giá trị của điều kiện nên đến một lúc nào đó
điều kiện lặp không còn đúng nữa và cấu trúc lặp sẽ đợc kết thúc Ngợc lại,
nếu khi thực hiện công việc không làm thay đổi giá trị của của điều kiện thì cấu trúc lặp sẽ kéo dài mãi (gọi là vòng lặp vô hạn) Để thoát khỏi vòng lặp vô
hạn, trong công việc cần có câu lệnh rẽ nhánh thoát khỏi vòng lặp vô hạn khithoả mãn điều kiện rẽ nhánh
Trong dạng 2, đầu tiên công việc đợc thực hiện, sau đó điều kiện đợc kiểm tra, nếu điều kiện còn đúng thì tiếp tục thực hiện công việc, ngợc lại việc thực hiện lặp kết thúc Trong công việc cần có câu lệnh làm thay đổi điều kiện
Trang 20hoặc câu lệnh thoát khỏi vòng lặp Để giảm tải, trong sách giáo khoa chỉ giớithiệu dạng 1, giáo viên có thể giới thiệu thêm cho học sinh dạng 2 trong cácbuổi thực hành.
Trong Pascal, một dạng chủ yếu trong hai dạng lặp với số lần cha biết
trớc là dạng While – do
Câu lệnh While – do chứa một biểu thức điều kiện để điều khiển thựchiện lặp một câu lệnh đơn hoặc ghép
Cú pháp:
While <điều kiện > do <câu lệnh>;
Câu lệnh viết sau từ khoá do đợc thực hiện khi biểu thức điều kiện còn
nhận giá trị true Biểu thức điều kiện đợc tính giá trị trớc khi câu lệnh đợc thực hiện, nhng nếu biểu thức điều kiện đã nhận giá trị false luôn nhận giá trị
true thì câu lệnh đợc thực hiện mãi, ta gọi là vòng lặp vô hạn.
Việc thực hiện lệnh While – do đợc thể hiện bằng sơ đồ sau:
Sau đó giáo viên nên liên hệ giữa cấu trúc lặp với số lần lặp biết trớc vàlệnh lặp với số lần cha biết trớc cụ thể là cấu trúc While – do với for – do t-
ơng ứng Mọi vòng lặp for – do đều có thể chuyển về While – do, giáo viên
có thể hớng dẫn học sinh giải quyết vấn đề này trong các giờ bài tập
Đối với các kiểu dữ liệu có cấu trúc:
Kiến thức chủ yếu về các kiểu dữ liệu có cấu trúc bao gồm: Dữ liệu kiểumảng, kiểu xâu và kiểu bản ghi
Khi dạy cho học sinh về kiểu mảng ta chỉ yêu cầu học sinh nắm đợc ýnghĩa, cách khai báo và cách truy nhập đến các phần tử của mảng mà khôngnên đi sâu và trình bày đầy đủ về:
- Những kiểu dữ liệu nào có thể là kiểu dữ liệu của các phần tử củamảng;
- Những kiểu dữ liệu nào có thể là kiểu chỉ số;
Đúng
Sai
Điều kiện
Câu lệnh
Trang 21- Kích thớc cho phép của mảng.
* Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu Mảng đợc đặt tên vàmỗi phần tử của nó có một chỉ số
* Có hai cách để khai báo mảng một chiều:
- Cách 1: khai báo trực tiếp
Var <tên biến mảng> : array [kiểu chỉ số] of <kiểu phần tử>;
- Cách 2: Khai báo gián tiếp
Type <tên kiểu mảng> = array [kiểu chỉ số] of <kiểu phần tử>;
Var <tên biến mảng> : <tên kiểu mảng>;
* Mảng hai chiều là bảng các phần tử cùng kiểu có các dòng và các cột Cácdòng và các cột đều đợc đánh số bằng các số nguyên liên tiếp Hai đoạn sốnguyên dùng để đánh số cho các dòng và các cột có thể khác nhau Nhận xétrằng mỗi hàng của mảng hai chiều có cấu trúc nh một mảng một chiều cùngkích thớc Nếu coi mỗi hàng của mảng hai chiều là một phần tử thì ta có thểnói mảng hai chiều là một mảng một chiều mà mỗi phần tử của mảng là mộtmảng một chiều
Tơng tự nh mảng một chiều, đối với mảng hai chiều cũng có hai cáchkhai báo nh sau:
- Cách 1: khai báo trực tiếp
Var <tên biến mảng> : array [kiểu chỉ số hàng, kiểu chỉ số cột] of
<kiểu phần tử>;
- Cách 2: Khai báo gián tiếp
Type <tên kiểu mảng> = array [kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu
phần tử>;
Var <tên biến mảng> : <tên kiểu mảng>;
* Trong đó cần lu ý cho học sinh đối với cả hai kiểu mảng:
+ Kiểu phần tử: là kiểu của các phần tử tạo nên mảng;
+ Kiểu chỉ số: ngời ta thờng dùng một đoạn số nguyên liên tục códạng n1 n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu
và chỉ số cuối (n1<=n2)
Dữ liệu kiểu xâu: Đối với kiểu dữ liệu này học sinh cũng chỉ cần nắm
đ-ợc khái niệm, cách khai báo và các thao tác với xâu
- Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự đợc gọi là một phần tửcủa xâu Số lợng kí tự trong một xâu đợc gọi là độ dài của xâu
- Có thể xem xâu là mảng một chiều mà mỗi phần tử là một kí tự Các kí tựcủa xâu đợc đánh số thứ tự, thờng bắt đầu từ 1
Trang 22- Biến kiểu xâu có thể đợc khai báo nh sau:
Var <tên biến>: String [độ dài lớn nhất của xâu];
- Các thao tác xử lý đối với xâu bao gồm: Phép ghép xâu, các phép so sánh,các hàm và thủ tục chuẩn
Đối với Kiểu bản ghi: Kiểu dữ liệu này phức tạp hơn so với các dữ liệu
đã trình bày trớc nên khi dạy cho học sinh về kiểu bản ghi, giáo viên nên có sựdẫn dắt đặt vấn đề bằng các câu hỏi và bài tập để rút ra đợc sự cần thiết phảixây dựng kiểu dữ liệu mới
- Dữ liệu kiểu bản ghi (Record) dùng để mô tả các đối tợng có cùngmột số thuộc tính mà các thuộc tính có thể có các kiểu dữ liệu khác nhau Mỗi
đối tợng đợc miêu tả bằng một bản ghi Mỗi thuộc tính của đối tợng tơng ứng
với một trờng của bản ghi Các trờng khác nhau có thể có các kiểu dữ liệu
khác nhau.
- Do dữ liệu kiểu bản ghi thờng dùng để mô tả nhiều đối tợng nên ta
thờng định nghĩa một kiểu bản ghi và sau đó dùng nó để khai báo các biếnliên quan
Kiểu bản ghi thờng đợc định nghĩa nh sau:
Type <tên kiểu bản ghi> = Record
<tên trờng 1> : < kiểu trờng 1>;
<tên biến bản ghi> : <tên kiểu bản ghi>;
Cũng giống nh ở kiểu mảng, không thể nhập hay xuất giá trị của mộtbiến bản ghi nh nhập hay xuất giá trị của một biến kiểu dữ liệu chuẩn mà phảinhập hay xuất cho từng trờng của bản ghi và để tham chiếu đến tờng trờng củabản ghi ta viết nh sau:
Tên biến bản ghi.tên trờng
Ví dụ: Để tham chiếu đến trờng X của một biến kiểu bản ghi A ta viết:
A.XTóm lại, mục tiêu về kiến thức cần đạt khi dạy học cho học sinh vềnhững kiến thức này theo hớng phát triển t duy thuật giải:
Trang 23+ Các ngôn ngữ lập trình có quy tắc cho phép tạo ra các kiểu dữ liệu cócấu trúc để lập trình thể hiện (mô phỏng) đợc dữ liệu thực tế Từ đó, có khảnăng giải quyết đợc những bài toán đặt ra trên thực tế.
+ Mọi kiểu dữ liệu có cấu trúc đợc xây dựng từ những kiểu dữ liệuchuẩn theo một cách thức tạo kiểu do ngôn ngữ lập trình quy định
+ Mỗi kiểu dữ liệu xác định với hai yếu tố: Phạm vi đối tợng và cácthao tác trên những đối tợng này
+ Mỗi kiểu dữ liệu có cấu trúc thờng hữu ích trong việc giải quyết một
số bài toán thờng gặp
+ Trong ngôn ngữ lập trình Pascal, dùng mô tả kiểu dữ liệu mới với từ
khoá Type có thể tránh đợc sự lặp lại khi mô tả trực tiếp kiểu dữ liệu mới với
từ khoá Var (cho nhiều biến cùng kiểu mới này).
Trên đây là phần kiến thức chủ yếu của chơng III: Cấu trúc rẽ nhánh vàcấu trúc lặp và chơng IV: Kiểu dữ liệu có cấu trúc mà khi dạy học cho họcsinh cần phải truyền tải đợc, học sinh cần nắm đợc và vận dụng để giải quyếtcác bài tập cơ bản
2.2 Một số nguyên tắc dạy học theo hớng phát triển t duy thuật giải cho học sinh.
Sau khi phân tích và nắm rõ đợc những kiến thức chủ yếu về các cấutrúc điều khiển và các kiểu dữ liệu có cấu trúc Để dạy học theo hớng pháttriển t duy thuật giải đảm bảo đợc mục tiêu về kiến thức, kỹ năng và đạt hiệuquả cần phải dựa trên một số nguyên tắc sau:
Nguyên tắc 1: Dạy học theo hớng phát triển t duy thuật giải phải đáp
ứng đợc mục đích của việc dạy, học tin ở nhà trờng phổ thông
Mục đích của việc dạy học tin trong nhà trờng phổ thông là: giúp họcsinh lĩnh hội và phát triển một hệ thống kiến thức, kỹ năng, thói quen cần thiếtcho cuộc sống, cho học tập; Hình thành và phát triển các phẩm chất t duy (tduy logic, t duy thuật giải, t duy trừu tợng…” Ngoài những kiến thức cơ bản về Tin học, về) cần thiết của một con ngời cóhọc vấn trong xã hội hiện đại; Góp phần quan trọng trong việc hình thành thếgiới quan khoa học tin học, hiểu đợc nguồn gốc thực tiễn của Tin học và vaitrò của nó trong quá trình phát triển văn hóa văn minh nhân loại cũng nh tiến
bộ của khoa học kỹ thuật
Để đạt đợc những mục đích to lớn đó, những năm gần đây, ngành giáodục đào tạo đã liên tục đổi mới chơng trình sách giáo khoa, phơng pháp dạyhọc Do đó, dạy học theo hớng phát triển t duy thuật giải là một trong nhữngphơng pháp dạy học đáp ứng đợc mong muốn đó
Trang 24Nguyên tắc 2: Dạy học theo hớng phát triển t duy thuật giải phải dựa
trên định hớng đổi mới phơng pháp dạy học hiện nay
Định hớng đổi mới phơng pháp dạy học hiện nay là tổ chức cho ngờihọc đợc học tập trong họat động và bằng hoạt động: tự giác, tích cực, sáng tạo(“hoạt động hóa ngời học”) Phù hợp với định hớng đổi mới đó có thể trìnhbày một số xu hớng dạy học không truyền thống nh: dạy học giải quyết vấn
đề, dạy học dựa vào lý thuyết tình huống, dạy học theo thuyết kiến tạo, dạyhọc chơng trình hóa, dạy học với công cụ máy tính điện tử,…” Ngoài những kiến thức cơ bản về Tin học, về)
Vì vậy, dạy học theo hớng phát triển t duy thuật giải phải dựa trên địnhhớng đổi mới phơng pháp dạy học hiện nay Phải biết kết hợp giữa các phơngpháp để đạt đợc hiệu qủa dạy học cao nhất
Nguyên tắc 3: Dạy học theo hớng phát triển t duy thuật giải phải đảm
bảo sự tôn trọng, kế thừa và phát triển tối u chơng trình sách giáo khoa hiệnhành
Chơng trình và sách giáo khoa môn tin đợc xây dựng trên cơ sở kế thừanhững kinh nghiệm tiên tiến ở trong nớc và ngoài nớc theo một hệ thống quan
điểm nhất quán về phơng diện tin học cũng nh phơng diện s phạm, đã thựchiện thống nhất trong phạm vi toàn quốc và đợc điều chỉnh nội dung cũng nhchơng trình nhiều lần sao cho phù hợp với thực tiễn giáo dục ở nớc ta
Dạy học theo hớng phát triển t duy thuật giải của học sinh phải đảm bảo
sự tôn trọng, kế thừa và phát triển một cách tối u chơng trình sách giáo khoahiện hành
Cụ thể là:
+ Khai thác triệt để sách giáo khoa để tìm những phần có thể thông qua
đó bỗi dỡng các hoạt động t duy thuật giải (T1- T5)
+ Khai thác các dạng bài tập cùng vận dụng một kiểu cấu trúc điều kiểnhoặc các kiểu dữ liệu có cấu trúc trong sách giáo khoa và sách bài tập để từ đó
có thể xây dựng thuật giải cho các bài toán tổng quát
Nguyên tắc 4: Dạy học theo hớng phát triển t duy thuật giải phải góp
phần đắc lực hình thành nhân cách con ngời ở thời đại mới
Xã hội ngày càng phát triển đòi hỏi con ngời phải năng động, tự chủ,sáng tạo, kỷ luật, biết tôn trọng pháp luật và các quy tắc của xã hội Do đó,dạy học theo hớng phát triển t duy thuật giải góp phần quan trọng trong việcphát triển nhân cách ngời học Cùng với việc tạo điều kiện cho học sinh kiếntạo những tri thức và rèn luyện kỹ năng tin học, dạy học theo hớng phát triển
t duy thuật giải còn có tác dụng góp phần phát triển năng lực trí tuệ chung nh
Trang 25phân tích, tổng hợp, trừu tợng hóa, khái quát hóa…” Ngoài những kiến thức cơ bản về Tin học, về và những phẩm chất củangời lao động mới nh: tính cẩn thận, chính xác, tính kỉ luật, tính phê phán,tính sáng tạo, bồi dỡng óc thẩm mỹ cho học sinh.
Nguyên tắc 5: Dạy học theo hớng phát triển t duy thuật giải phải phát
huy tính tích cực nhận thức của học sinh phù hợp với thực tiễn hoàn cảnh, môitrờng giáo dục và thực tiễn học sinh
Quá trình dạy học chỉ thực sự đạt hiệu quả khi quá trình dạy học bảo
đảm sự thống nhất giữa tính vừa sức với yêu cầu phát triển có thể đợc thựchiện dựa trên lý thuyết về vùng phát triển gần nhất của Vgôtki
Tính vừa sức để học sinh có thể chiếm lĩnh tri thức, rèn luyện đợc kỹnăng, kỹ xảo nhng mặt khác lại đỏi hỏi không ngừng nâng cao yêu cầu đểthúc đẩy sự phát triển của học sinh Hơn nữa, trong quá trình dạy học, nhữngyêu cầu phải hớng vào vùng phát triển gần nhất, tức là phải phù hợp với trình
độ mà học sinh đã đạt tới ở thời điểm đó, không thoát ly cách xa trình độ này,nhng họ vẫn còn phải tích cực suy nghĩ, phấn đấu vơn lên thì mới thực hiện đ-
ợc yêu cầu và nhiệm vụ đặt ra
Nguyên tắc 6: Dạy học theo hớng phát triển t duy thuật giải phải kết
hợp chặt chẽ rèn luyện cho học sinh tính tổ chức, tính trật tự với tính linh hoạt
và sáng tạo
Để đào tạo những con ngời có đầy đủ các phẩm chất của ngời lao độngmới đòi hỏi trong quá trình dạy học theo hớng phát triển t duy thuật giải bêncạnh việc cho học sinh tập luyện tốt các hoạt động t duy thuật giải cần làmcho học sinh biết cách tìm tòi, sáng tạo thông qua việc khai thác ứng dụng củamột số nội dung kiến thức hay những bài tập đòi hỏi tính linh hoạt, tính tíchcực trong t duy của học sinh
Trên đây là một số nguyên tắc cần phải đảm bảo khi dạy học theo hớngphát triển t duy thuật giải cho học sinh thông qua dạy học các cấu trúc điềukhiển và các kiểu dữ liệu có cấu trúc
Trong chơng trình Tin học đợc đa vào giảng dạy ở trờng THPT, phầnkiến thức về lập trình cụ thể là nội dung ngôn ngữ lập trình Pascal đ ợc đa vàogiảng dạy ở lớp 11 Vì đối tợng học sinh mới từ trờng Trung học cơ sở lên nênkhả năng t duy còn kém, đặc biệt là khả năng t duy thuật giải Mặc dù t duylogic của học sinh đã đợc rèn luyện và phát triển qua các môn học khác trongchơng trình Trung học phổ thông nhất là môn Toán, Lý,…” Ngoài những kiến thức cơ bản về Tin học, vềsong học sinh chaphân biệt đợc bài toán đã gặp và bài toán cần giải quyết trong Tin học, giữa tduy logic và t duy thuật giải, trong đó t duy thuật giải là t duy để tìm ra con đ-
Trang 26ờng đi đến kết quả Với thói quen t duy cụ thể học sinh thờng chuyển mộtcách máy móc các biểu thức cũ vào việc xây dựng thuật giải mới Có thể đa ramột số trờng hợp cụ thể nh sau:
* Khi giải phơng trình bậc hai, từ chú ý của định lý trong sách giáokhoa Đại số 10 Điều kiện ắt có và đủ để phơng trình:
Từ chú ý trên học sinh sẽ đa ra thụât giải:
Nếu a,c trái dấu thì phơng trình ax2 + bx + c = 0 có hai nghiệm phânbiệt nhng không xác định các bớc cụ thể để có thể tính đợc 2 nghiệm đó.Trong đại số học sinh sử dụng biệt thức rút gọn '
để giải phơng trình bậc hainên khi lập trình học sinh cũng áp dụng máy móc và sử dụng câu lệnh IF …THEN, căn cứ vào hệ số b sẽ đi đến tính hay '
, sau đó mới biện luận cáckhả năng có thể Với bài toán giải bất phơng trình bậc nhất ax + b > 0, họcsinh cho rằng bài toán có thể có một miền nghiệm và nh vậy không xác định
đợc cần phải khai báo bao nhiêu biến nên không lập trình đợc
Do vậy, để giúp học sinh có sự t duy sáng tạo hơn, tích cực hơn tránh
đợc sự máy móc trong suy nghĩ và vận dụng kiến thức đợc học vào việc giảiquyết các bài toán Tôi nhận định một trong các biện pháp để nâng cao chất l-ợng bộ môn là chú trọng rèn luyện và phát triển t duy thuật giải cho học sinhqua khả năng thực hiện thuật giải và khả năng xây dựng thuật giải
Theo các chuyên gia, t duy thuật giải đợc thể hiện ở những khả năngsau:
K1: Thực hiện thuật giải đã biết
K2: Phân tách hoạt động
K3: Tờng minh hóa thuật giải
K4: Khái quát hóa hoạt động
K5: Chọn thuật giải tối u
Trang 27Để phát triển t duy thuật giải cho học sinh một cách có hiệu quả thôngqua việc dạy học Tin học nói chung và thông qua dạy học các cấu trúc điềukhiển và các kiểu dữ liệu có cấu trúc nói riêng Giáo viên nên rèn luyện chohọc sinh biết vận dụng các quy trình có tính chất thuật giải, để học sinh thểhiện đợc các khả năng trên từ đó mà t duy thuật giải đợc phát triển
2.3 Một số định hớng s phạm góp phần phát triển t duy thuật giải cho học sinh thông qua dạy học các cấu trúc điều khiển và các kiểu dữ liệu có cấu trúc.
Dựa vào những nghiên cứu và tìm hiểu thực tế, xin đợc đa ra một số
định hớng s phạm góp phần phát triển t duy thuật giải cho học sinh thông quadạy học các cấu trúc điều khiển và các kiểu dữ liệu có cấu trúc nh sau:
2.3.1 Xây dựng quy trình dạy học các cấu trúc điều khiển và các kiểu dữ liệu có cấu trúc theo hớng phát triển t duy thuật giải.
Theo quan điểm hoạt động trong dạy học đã đợc trình bày ở chơng 1,việc phát triển t duy thuật giải chính là việc rèn luyện cho học sinh thực hiệntốt các hoạt động t duy thuật giải Để làm đợc điều đó, trớc hết việc dạy củagiáo viên phải có tính chất thuật giải và đợc tiến hành theo hớng phát triển tduy thuật giải
Quy trình dạy học là một algorit dạy học rất đặc biệt: chủ thể phải thựchiện nghiêm ngặt từng thao tác và sau một số hữu hạn bớc sẽ đạt đợc kết quảmong muốn Song không thể xem quy trình dạy học là một cấu trúc cứng nhắc,nghiêm ngặt nh một thuật toán mà phải tính đến cả thái độ, tình cảm, nhân cáchcủa học sinh, cả những khó khăn, chớng ngại trong quá trình dạy học, mangtính nghệ thuật và sáng tạo rất cao trong quá trình truyền thụ tri thức Sau đây làhai quy trình dạy học các cấu trúc điều khiển và các kiểu dữ liệu có cấu trúctheo hớng phát triển t duy thuật giải của học sinh qua hai giai đoạn: chiếm lĩnhtri thức lập trình và rèn luyện kỹ năng lập trình thông qua sự tác động để họcsinh thể hiện đợc các khả năng K1- K5
2.3.1.1 Quy trình dạy học chiếm lĩnh tri thức lập trình
Quy trình gồm 5 bớc nh sau:
B
ớc 1 : Làm nảy sinh nhu cầu nhận thức tri thức lập trình cụ thể là các
cấu trúc điều khiển và các kiểu dữ liệu có cấu trúc Trong bớc này, giáo viên
có thể tiến hành bằng hai cách: Nêu vấn đề hoặc cho học sinh làm một số ví
dụ và phản ví dụ tốt nhất là nên có các “phiếu học tập” đã chuẩn bị sẵn, đặthọc sinh vào tình huống “có vấn đề” để học sinh phải suy nghĩ, phải t duy từ
đó phát hiện ra vấn đề
Trang 28Ví dụ 1: Khi dạy cho học sinh về kiểu mảng một chiều, đây là kiểu dữliệu có cấu trúc rất cần thiết và hữu ích trong nhiều chơng trình đợc giới thiệu ởbài 11 của chơng IV sách giáo khoa Tin học 11 Do học sinh đã đợc học về cấutrúc lặp ở chơng III nên ta có thể đa ra các câu hỏi và bài tập đặt vấn đề thôngqua phiếu học tập để học sinh chuẩn bị trớc ở nhà nh sau:
Phiếu học tập
Câu hỏi 1: Chúng ta sử dụng cấu trúc lặp trong trờng hợp nào? Có những kiểu
dữ liệu chuẩn nào mà em đã đợc học?
Câu hỏi 2: Sử dụng các cấu trúc điều khiển và các kiểu dữ liệu đã đợc học lập
chơng trình: Nhập vào nhiệt độ (trung bình) của mỗi ngày trong tuần
Tính và in ra màn hình nhiệt độ trung bình của tuần và số lợng ngày trongtuần có nhiệt độ cao hơn nhiệt độ trung bình của tuần
Nh vậy, học sinh đã có sự chuẩn bị về bài toán đặt vấn đề, giáo viên thuphiếu trả lời, xem và rút ra nhận xét ngắn gọn rồi chiếu Slide (hoặc treo bảngphụ) chơng trình hoàn chỉnh sử dụng cấu trúc rẽ nhánh nh sau:
Writeln( ‘ Nhiet do trung binh cua tuan la: ’, tb:5:2);
Writeln( ‘ So ngay co nhiet do cao hon trung binh la: ’, dem); Readln;
End.
Sau đó dẫn dắt học sinh tới vấn đề mới bằng một câu hỏi:
Trang 29Đối với bài toán trong câu hỏi 2, ở đây chỉ yêu cầu nhập vào nhiệt độ của 7ngày trong tuần (N=7) Vậy khi N lớn hơn giả sử N=365 ngày thì chơng trìnhtrên phải viết lại nh thế nào?
Câu hỏi này đặt học sinh vào tình huống “có vấn đề”, học sinh sẽ phải tduy và nảy sinh những suy nghĩ mới, hớng mới để giải quyết vấn đề đợc đặt
ra Nh vậy sẽ làm nảy sinh nhu cầu nhận thức tri thức mới
B
ớc 2 : Tổ chức hớng dẫn học sinh hành động tác động vào đối tợng
nhằm phát hiện ra dấu hiệu bản chất, cấu trúc logic của kiến thức mới Trongbớc này giáo viên nên đa ra các phơng tiện trực quan (sơ đồ khối, hình minhhọa…” Ngoài những kiến thức cơ bản về Tin học, về.), ví dụ và bài tập yêu cầu học sinh quan sát, phân tích, tổng hợp, sosánh, trừu tợng hóa và khái quát hóa để tìm ra dấu hiệu bản chất của vấn đề
Từ đó rút ra ý nghĩa, cấu trúc,…” Ngoài những kiến thức cơ bản về Tin học, về của kiến thức mới
Tiếp tục với ví dụ trình bày ở bớc 1, sau khi đã nêu vấn đề và đặt họcsinh vào tình huống “có vấn đề” Trong bớc 2 này, giáo viên sẽ tổ chức và h-ớng dẫn học sinh giải quyết vấn đề bằng sự t duy, suy nghĩ của học sinh kếthợp với sự uốn nắn hớng dẫn của giáo viên để phát hiện ra bản chất của vấn đề
có thể bằng cách đa ra các câu hỏi gợi ý nh sau:
? Khi N lớn hơn 7 chẳng hạn N=365 ngày thì chúng ta sẽ phải khai báo
bao nhiêu biến và viết bao nhiêu câu lệnh rẽ nhánh để so sánh
? Các biến nhiệt độ ở đây có kiểu dữ liệu nh thế nào
? Chơng trình nếu viết nh vậy thì sẽ có những hạn chế nào.
Cuối cùng, giáo viên có thể dẫn dắt học sinh đến kiến thức mới: Cácbiến nhiệt độ ở đây có cùng kiểu dữ liệu với nhau và để phân biệt các biến này
dễ dàng hơn chúng ta đã đặt chung cho chúng tên là T chỉ khác nhau ở các số
1, 2, 3,…” Ngoài những kiến thức cơ bản về Tin học, vềVậy tại sao chúng ta không ghép tất cả các biến này lại thành mộtdãy để khi khai báo chúng ta chỉ việc khai báo 1 biến và thao tác với các phần
tử của dãy thông qua chỉ số của nó Ngôn ngữ lập trình Pascal cho phép ngờilập trình xây dựng và sử dụng các biến nh vậy Biến này đợc gọi là biến mảngmột chiều còn kiểu dữ liệu của biến này đợc gọi là dữ liệu kiểu mảng mộtchiều
Qua đây học sinh đã có thể hình dung đợc cấu trúc logic về mảngmột chiều và có thể khái quát phát biểu đợc khái niệm mảng một chiều Nhvậy ở bớc này ta đã tạo cho học sinh hứng thú, sự tò mò về kiến thức mới
Ví dụ 2: Khi dạy học cho học sinh về Kiểu bản ghi:
Trang 30Với bài toán: Cho bảng kết quả thi gồm các thông tin về các thí sinhnh: Họ và tên, ngày sinh, giới tính, điểm các môn thi…” Ngoài những kiến thức cơ bản về Tin học, vềmà những thông tinnày thuộc các kiểu dữ liệu khác nhau.
Họ và tên Ngày sinh Giới tính Điểm Tin Điểm Toán Điểm Lí Điểm Hóa Điểm Văn Điểm Sử Điểm Địa
.
…” Ngoài những kiến thức cơ bản về Tin học, về …” Ngoài những kiến thức cơ bản về Tin học, về…” Ngoài những kiến thức cơ bản về Tin học, về …” Ngoài những kiến thức cơ bản về Tin học, về …” Ngoài những kiến thức cơ bản về Tin học, về …” Ngoài những kiến thức cơ bản về Tin học, về …” Ngoài những kiến thức cơ bản về Tin học, về …” Ngoài những kiến thức cơ bản về Tin học, về …” Ngoài những kiến thức cơ bản về Tin học, về …” Ngoài những kiến thức cơ bản về Tin học, về …” Ngoài những kiến thức cơ bản về Tin học, về
Nếu cha đợc học về Kiểu bản ghi, với bài toán này học sinh có thểdùng mảng hai chiều để lu bảng trên mà dữ liệu trong các cột thuộc cùng mộtkiểu:
Type
Hoten = Array [1 30] of String;
Ngaysinh = Array [1 30] of String;
Gioitinh = Array [1 30] of Boolean;
Toan, tin, li, hoa, van, su, dia = Array [1 30] of Real;
Var
A1: Array [1 30] of hoten;
A2: Array [1 30] of Ngaysinh;
A3: Array [1 30] of gioitinh;
A4: Array [1 30] of Toan;
A5: Array [1 30] of Tin;
A6: Array [1 30] of Li;
A7: Array [1 30] of Hoa;
A8: Array [1 30] of Van;
A9: Array [1 30] of Su;
A10: Array [1 30] of Dia;
Khi dùng mảng hai chiều khai báo cho bài toán trên thì khai báo viếtdài và khi truy nhập đến các thông tin của một học sinh gặp rất nhiều khókhăn vì vậy khi làm việc với bài toán này giáo viên hớng dẫn cho học sinhdùng kiểu dữ liệu bản ghi để lu trữ bảng mà dữ liệu trong các cột có thể thuộccác kiểu dữ liệu khác nhau Với việc dùng kiểu dữ liệu bản ghi, khai báo củabài toán trên đợc viết nh sau:
Const Max = 60;
Type
Hocsinh = Record
Trang 31ớc 3 : Gợi động cơ để học sinh trình bày lại, thể hiện lại cấu trúc cũng
nh sự hoạt động của các cấu trúc điều khiển hay cách khai báo của các kiểudữ liệu có cấu trúc dới dạng một thuật giải Trong bớc này, giáo viên phải nêubật các câu hỏi thích hợp làm nổi bật các thao tác có trong tri thức mới
B
ớc 4 : Tổ chức hớng dẫn học sinh nhận dạng và thể hiện thuật giải vừa
nêu vào các tình huống cụ thể Trong bớc này, giáo viên yêu cầu học sinh làmcác bài tập đòi hỏi phát triển các thao tác t duy thuật giải (T1, T2, T3, T4)
Trở lại với ví dụ ở bớc 1, sau khi đã hớng dẫn cho học sinh về cách khaibáo mảng một chiều giáo viên có thể đa ra một số trờng hợp khai báo (có thểchiếu Slide hoặc dùng bảng phụ) để học sinh chỉ ra khai báo nào hợp lệ vàkhai báo nào không hợp lệ, vì sao?
Ví dụ nh:
A Type 1chieu=array[1 100] of char;
B Type 1chieu=array[1-100] of char;
C Type mang1c=array(1 100) of char;
D Type mang1c: array[1 100] of char;
E Var a: array [-10…” Ngoài những kiến thức cơ bản về Tin học, về50] of Integer;
F Var a: array [30…” Ngoài những kiến thức cơ bản về Tin học, về10] of Real;
B
ớc 5 : Tập luyện các hoạt động t duy thuật giải thông qua các bài toán
không theo thuật giải đã biết Trong bớc này, giáo viên có thể đa ra một số bàitoán giải đợc bằng 2 hoặc nhiều cách Việc làm này có tác dụng rèn luyệnphát hiện thuật giải tối u
2.3.1.2 Quy trình dạy học rèn luyện kỹ năng lập trình
Nh đã phân tích ở trên và theo các chuyên gia, t duy thuật giải đợc thểhiện ở những khả năng K1- K5 Để rèn luyện kỹ năng lập trình của học sinhtheo hớng phát triển t duy thuật giải cần phải tác động để học sinh thể hiện đ-
ợc những khả năng đó, cụ thể:
1 Trình bày và thể hiện thuật giải đã biết
Trang 321.1 Mục đích và yêu cầu
- Học sinh nắm vững các tính chất đặc trng của thuật giải, nắm vữngcấu trúc logic và mối liên hệ giữa cấu trúc này với cấu trúc khác
Ví dụ 1: Khi dạy cho học sinh về cấu trúc lặp, giáo viên nên lu ý cho học sinh:
Trong vòng lặp không đợc chứa lệnh làm thay đổi giá trị của biến điều khiển vì sẽ gây ra tình trạng khó theo dõi và quản lý vòng for – do. Mặc dù, vớiTurbo Pascal, trong vòng lặp ta có thể gán giá trị của biến điều khiển bằng giá
trị cuối của vòng for tiến (hoặc giá trị đầu của vòng for lùi) để thoát ngay
vòng lặp, song giáo viên cần giải thích việc làm này là không hợp lệ Trong
Free Pascal, việc gán giá trị cho biến điều khiển vòng for bên trong vòng lặp
sẽ bị thông báo mắc lỗi khi biên dịch Việc thay đổi giá trị của biến điều khiển
ngay trong vòng lặp là không hợp lý vì can thiệp vào cấu trúc vòng for, có thể
dẫn chứng giống với hình ảnh ngời đi đờng đi sai phần đờng, đôi khi vẫn đi
đ-ợc nhng là phạm luật và có thể bị tại nạn nếu không thận trọng
- Phát biểu rõ ràng, chính xác thuật giải mà ta cần sử dụng Biết diễn
đạt dới các hình thức tơng đơng khi chuyển từ “ngôn ngữ” này sang “ngônngữ” khác hoặc từ cấu trúc điều khiển này sang cấu trúc điều khiển khác
Ví dụ 2: Đối với bài toán: Tính và đa kết quả ra màn hình tổng
Trang 33Begin
Write(‘ Nhap N = ’); Readln(N);
For i :=1 to N do For j :=0 to N-1 do
Begin
Trang 341.2 Nhận dạng và trình bày lại thuật giải
* Hoạt động nhận dạng: “Nhận dạng một thuật giải” là phát hiện xem một
đối tợng cho trớc có các đặc trng của một thuật giải nào đó hay không?
Ví dụ 1: Lập chơng trình tính diện tích của một tứ giác khi đã biết thuật giải tính
diện tích tam giác
* Hoạt động trình bày lại: Việc trình bày lại thuật giải một bài toán nào đó
có nghĩa là trình bày lại trình tự các thao tác cơ bản của thuật giải Việc trình bàylại có thể dùng ngôn ngữ thông thờng hoặc dùng ngôn ngữ phỏng trình,…
1.3 Thực hiện thuật giải đã biết.
Đối với những thuật giải đã biết, trớc khi cho học sinh thực hiện thuật giải
đó giáo viên nên yêu cầu học sinh kiểm tra lại để đảm bảo thuật giải đó có đầy đủcác tính chất cơ bản của thuật giải: