4. Tổ chức luận văn
2.2. Ngôn ngữ biểu diễn thuật toán
2.2.1 Phần lý thuyết
Trước khi phân tích các ngôn ngữ biểu diễn thuật toán, chúng tôi tìm hiểu khái niệm biến và phép gán được giới thiệu trong §2 Mô hình hoạt động của máy tính. Khái niệm được đề cập đến đầu tiên trong bài này là khái niệm biến.
“Trong các tính toán dùng đến MT, biến là một chữ hay chuỗi chữ dùng làm tên gọi cho một đối tượng biến đổi” và “ở một thời điểm, biến là một đối tượng nhất định gọi là giá trị của biến tại thời điểm đó”. Giá trị này thay đổi tại các thời điểm khác nhau và đôi khi thay đổi rất nhiều trong quá trình thực hiện thuật toán.
Đến đây, việc thực hiện bước số 2 trong thuật toán dãy Phibonaxi:
được mô tả lại với sự xuất hiện của các biến TỔNG, CUỐI, ÁP CUỐI và phép gán như sau:
Tìm tổng số của số cuối và số áp cuối
39
Biến ←biểu thức
Trong đó, để thực hiện lệnh gán này thì trước hết MT sẽ tính giá trị biểu thức bên phải CUỐI + ÁP CUỐI, sau đó lấy giá trị gán cho biến TỔNG.
Và từ đó thuật toán dãy Phibônaxi được biểu diễn lại như sau:
[6, tr 125]
Khi đã giới thiệu khái niệm biến và minh họa quá trình hoạt động của MT khi thực hiện lệnh gán thì đến §3 Ngôn ngữ sơ đồ khối Stoán 10 mới giới thiệu một cách đầy đủ về sơ đồ khối.
• Sơ đồ khối
“Sơ đồ khối gồm một số kí hiệu và quy tắc để viết một cách chính xác các thuật toán”. Các thành phần đó bao gồm các nút bắt đầu, kết thúc, hộp nhập giá trị vào, hộp xuất giá trị ra, hộp gán và hộp quyết định. Trong đó:
- Hộp gán: chỉ thị trong hộp gán có dạng có nghĩa là gán biểu thức bên phải cho biến ở bên trái.
- Hộp quyết định: nội dung của hộp này là so sánh giá trị hiện tại của hai biểu thức, và thường dùng các dấu: = ≠ > < ≥ ≤, , , , , .
- Các hộp Nhập vào và Xuất ra. Hộp này chứa danh sách các đối tượng được ngăn cách nhau bằng dấu phẩy. Các đối tượng trong hộp nhập vào chỉ có thể là biến, hộp xuất ra có thể là biến, hằng hay biểu thức. Hộp nhập vào là một chỉ thị đọc các giá trị trong một danh sách nào đó để gán cho các biến có mặt trong hộp đó. Hộp xuất ra là một chỉ thị in ra
40
các giá trị của những đối tượng có mặt trong hộp ra màn hình máy tính hay trên giấy thông qua máy in.
Bây giờ chúng tôi quan tâm đến hai vấn đề quan trọng khác được giới thiệu trong phần này là vòng lặp và phương pháp xây dựng thuật toán. Trước hết chúng tôi xem xét khái niệm vòng lặp.
• Vòng lặp
Khái niệm này học sinh đã được làm quen bước đầu trong §1 Khái niệm thuật toán, phần này Stoán 10 giới thiệu rõ hơn và đầy đủ hơn về khái niệm và các loại vòng lặp.
Trong thực tế ta thường gặp những bài toán mà khi giải cần lặp đi lặp lại nhiều lần cùng một thao tác, một phép toán. Trong thuật toán việc lặp lại đó được thể hiện trong sơ đồ khối bởi một dãy khép kín các công việc. Phần lặp lại này tạo thành một vòng lặp.
[6, tr 132 – 133]
Một cách cụ thể hơn, “mỗi vòng lặp là một nhóm các thao tác, tính toán, kiểm tra được lặp đi lặp lại một số lần hữu hạn. Vòng lặp này sẽ kết thúc dựa trên các giá trị một hộp quyết định là đúng hay sai”. Hai dạng vòng lặp được giới thiệu ở đây là lặp với điều kiện biết trước và lặp với điều kiện chưa biết trước. Thuật toán Euclide tìm UCLN của hai số và thuật toán tính tổng các số nguyên dương từ 1 đến N là hai ví dụ minh họa cho hai dạng vòng lặp được Stoán 10 nêu ra.
Trước hết xem xét thuật toán Euclicde về tìm UCLN của hai số. Các thao tác “đổi chỗ hai số”, “thay số thứ nhất bởi hiệu số thứ nhất với số thứ hai” được thay bằng phép gán.
[6, tr 134]
Thuật toán tính tổng này chưa hề xuất hiện ở các bài trước. Với mục đích minh họa cho khái niệm vòng lặp, Stoán 10 chỉ giới thiệu sơ đồ khối thuật toán tính tổng S như sau:
41 “Điều đầu tiên ta gán cho T giá trị 0 và cho biến i chạy từ 1 đến N mỗi lần tăng 1 đơn vị. Tại mỗi bước ta tính tổng T+i và gắn giá trị đó cho T. Lặp lại công việc đó cho đến khi i > N thì kết thúc”.
[6, tr 135]
• Các bước xây dựng thuật toán
Một vấn đề quan trọng khác được trình bày ở đây là phương pháp xây dựng thuật toán. Từ việc trình bày các khái niệm cơ bản, các ví dụ đơn giản ban đầu về thuật toán thì đến đây Stoán 10 mới trình bày một cách cụ thể quá trình hay nói cách khác là phương pháp xây dựng thuật toán. Việc xây dựng một thuật toán cho một bài toán bao gồm các bước sau:
Phân tích. Đây là bước phân tích các giả thiết kết luận của bài toán, tìm ra lời giải bằng toán học cho bài toán rồi chia lời giải toán học đó ra thành các bước thực hiện liên tiếp.
Chọn các biến. Từ các bước giải được chỉ ra ở trên tiến hành chọn các biến mà giá trị thay đổi theo các bước cho đến bước cuối cùng.
Lập sơ đồ khối. Sau khi đã tìm được lời giải toán học cho bài toán dưới dạng các bước cụ thể và dựa trên các biến đã chọn thì công việc tiếp theo là vẽ các hộp thể hiện các công việc cần tiến hành ở mỗi bước và nối các hộp với nhau bằng các mũi tên thể hiện hướng đi của các bước liên tiếp. Sơ đồ khối được lập ra lúc này có thể hơi thô, nghĩa là có một số hộp chứa một số công việc nào đó, rồi sau đó chi tiết hóa ra dần dần.
Trong các bước liệt kê ở trên, HS đã được làm quen với hai bước phân tích và chọn các biến thông qua hai bài trước. Trong quá trình phân tích để tìm lời giải bài toán, HS cần chỉ ra lời giải toán học của bài toán. Như vậy, Stoán 10 quan tâm đến các bài toán mà trước đó HS đã biết lời giải toán học. Việc xây dựng thuật toán chỉ là liệt kê các bước giải, chọn các biến và biễu diễn dưới dạng sơ đồ khối. Nhưng không phải từ lời giải toán học nào ta cũng có thể chuyển sang thuật toán để cài đặt trên MT. Và đối với những bài toán chưa có sẵn lời giải toán học hoặc là từ lời giải toán học không thể chuyển trực tiếp thành thuật toán thì phải xử lí như thế nào? Điều này không được Stoán 10 đề cập đến.
42
Đến đây, Stoán 10 minh họa quá trình xây dựng thuật toán gồm ba bước như trên với thuật toán giải và biện luận phương trình bậc hai 2
0
ax +bx+ =c .
• Phân tích: Việc giải và biện luận phương trình bậc hai là bài toán quen thuộc với học sinh được Stoán giới thiệu trong chương II và chương III nên trong bước đầu tiên phân tích không trình bày lời giải với các bước giải cụ thể nữa mà chỉ chia việc giải biện luận bài toán trên thành hai trường hợp đó là khi a=0 và a≠0.
• Chọn các biến. Ở đây ngoài ba biến a, b, c được nhập từ bàn phím còn có thêm các biến x biểu thị nghiệm của phương trình. Trường hợp phương trình có hai nghiệm thì ta còn có thêm các biến x x1, 2, khi phương trình vô nghiệm ta có thêm biến y là một chuỗi kí tự để ghi các kết quả như: vô nghiệm, nghiệm là số tùy ý,…
• Lập sơ đồ khối. Như đã nói trong phần phân tích, ở đây Stoán trình bày việc lập sơ đồ khối cho hai trường hợp của bài toán căn cứ từ phương pháp giải và biện luận phương trình bậc nhất ở chương II và phương trình bậc hai ở chương III.
Và cuối cùng, để hoàn tất công việc cần ghép hai thuật toán trong hình 67 và 68 thành thuật toán giải và biện luận phương trình bậc hai hoàn chỉnh.
[6, tr 136 – 137]
2.2.2 Phần bài tập
Gồm 5 bài tập như sau:
Bài 1: Lập thuật toán tính tổng các số chẵn từ 2 đến 1000.
Bài 2: Lập thuật toán giải phương trình trùng phương 4 2
0
+ + =
ax bx c , a≠0 dựa trên thuật toán giải phương trình bậc hai trong hình 69, SGK Đại số 10.
Bài 3: Lập thuật toán giải và biện luận bất phương trình ax+b>0 Bài4: Lập thuật toán giải và biện luận bất phương trình bậc hai
43
ax2+bx+ >c 0, a≠0
Bài 5: Lập thuật toán viết số hạng thứ 50 trong dãy số Phibônaxi.
[6, tr 138]
Cũng giống như ở bài thứ nhất, các bài tập trong phần này cũng tập trung vào lập thuật toán giải các bài toán mà HS đã biết cách giải cụ thể (bài 2, 3 và 4), bài 5 dựa trên thuật toán đã được xây dựng ở bài trước. Tuy không yêu cầu tường minh, nhưng khi chúng tôi xem xét phần lời giải được trình bày trong sách bài tập đều thể hiện thuật toán dưới dạng sơ đồ khối và quá trình xây dựng được thực hiện theo 3 bước đã nêu trong bài học.
Như vậy từ bài đầu tiên về khái niệm thuật toán, từ lời giải toán học của bài toán rồi liệt kê lại một cách chi tiết các bước theo một trình tự nhất định cho ta thuật toán giải bài toán đó. Sau đó, khi đã nắm được mô hình hoạt động của máy tính, thuật toán được trình bày lại một cách ngắn gọn hơn với sự xuất hiện của biến và phép gán. Và cuối cùng tổng kết lại quá trình hay phương pháp xây dựng thuật toán thông qua ba bước cơ bản: phân tích (đưa ra lời giải toán học, chia nhỏ lời giải đó thành các bước), lựa chọn các biến và lập sơ đồ khối.
Các tổ chức toán học liên quan đến phương pháp xây dựng thuật toán.
Trong bài này chỉ có duy nhất một kiểu nhiệm vụ như sau: Kiểu nhiệm vụ 2 1 T : Lập thuật toán • Kĩ thuật 2 1 τ : - Phân tích:
+ Tìm lời giải toán học của bài toán. + Chia nhỏ lời giải thành các bước nhỏ. - Lựa chọn các biến
- Lập sơ đồ khối:
+ Vẽ các hộp thể hiện công việc tại mỗi bước.
+ Nối các hộp bằng các mũi tên chỉ hướng thực hiện trên sơ đồ khối.
• Công nghệ 2 1
θ : Các bước xây dựng thuật toán
Các bài tập liên quan đến kiểu nhiệm vụ này: bài tập 1, 2, 3, 4, 5 trang 138.
44
- SToán 10 giới thiệu các bước xây dựng thuật toán cho bài toán đã có sẵn lời giải toán học. Vấn đề là nếu bài toán chưa có sẵn lời giải toán học thì làm thế nào để xây dựng được thuật toán.
- Stoán 10 giới thiệu hai dạng phép gán: gán giá trị cho biểu thức và hoán đổi giá trị hai biến. Tuy nhiên, quá trình thực hiện việc hoán đổi giá trị hai biến không được nhắc đến.
- Kiểu nhiệm vụ chạy thuật toán không còn xuất hiện ở bài này.
Kết luận chương 2
Như vậy, trong chương này chúng tôi đã làm rõ mối quan hệ thể chế đối với thuật toán trong dạy học Toán phổ thông, mà cụ thể là trong dạy học Toán lớp 10. Cụ thể:
- Stoán 10 chỉ giới thiệu khái niệm thuật toán mà không giới thiệu các tính chất của thuật toán.
- Việc xây dựng thuật toán giải một bài toán được thực hiện qua 3 bước: phân tích (tìm lời giải toán học của bài toán và chia lời giải thành các bước liên tiếp), chọn các biến, lập sơ đồ khối (vẽ các hộp thể hiện các công việc cần tiến hành ở mỗi bước và nối chúng lại bằng các mũi tên thể hiện đường đi của các bước liên tiếp). Các bước này được giới thiệu dần dần qua các bài và cuối cùng tổng kết lại thành phương pháp xây dựng thuật toán.
- Các bài toán được đề cập trong các phần ví dụ cũng như bài tập đa số là các bài toán quen thuộc mà học sinh đã biết lời giải toán học của bài toán. Riêng đối với bài toán tìm UCLN của hai số nguyên dương a, b và bài toán tính tổng n số tự nhiên đầu tiên thì có sư khác biệt.
+ Đối với bài toán tìm UCLN của a và b, ngoài thuật toán được xây dựng dựa trên lời giải toán học mà HS đã biết trong chương trình toán lớp 6 (phân tích a và b ra thừa số nguyên tố) thì Stoán 10 giới thiệu thêm thuật toán Euclide mà không loại bỏ thuật toán kia. Theo chúng tôi, việc giới thiệu thuật toán Euclide là vì khi các số a và b lớn thì việc phân tích ra thừa số nguyên tố là rất khó khăn và đây là thuật toán đầu tiên của toán học mà không phải nhằm mục đích giới thiệu phương pháp mới trong giải quyết bài toán.
+ Đối với bài toán tính tổng n số nguyên dương đầu tiên, Stoán 10 giới thiệu thuật toán mới về tính tổng nhờ vào biến đếm i để minh họa cho khái niệm vòng lặp.
Qua đó cho phép chúng tôi khẳng định: Khi thuật toán được giới thiệu trong dạy học toán phổ thông thì thể chế dạy học toán phổ thông chỉ quan tâm đến các các bài toán đã có lời giải toán học hoặc là HS đã được giới thiệu lời giải toán học trong các nội dung trước đó.
45
- Với mỗi bài toán được Stoán 10 đưa ra làm ví dụ minh họa đều có bảng minh họa các kết quả thực hiện trong các bước, tuy nhiên không có hiện diện của máy tính trong việc thực hiện các bước của thuật toán mà tất cả đều được thực hiện bằng tay. Hay nói cách khác, yếu tố công cụ không được thể chế quan tâm đến.
Từ những kết luận trên dẫn chúng tôi đến với câu hỏi:
- Trong thể chế dạy học Tin học phổ thông hiện nay, khi Tin học được dạy tách rời với Toán học thì việc giới thiệu các vấn đề liên quan đến thuật toán và việc giải bài toán trên máy tính như thế nào? Liệu rằng lúc này thể chế dạy học Tin học quan tâm đến các bài toán đã có sẵn lời giải toán học hay là các bài toán chưa có sẵn lời giải toán học?
- Yếu tố công cụ (MT) có được chú trọng hay không?
Trong phân tích thể chế dạy học tin học phổ thông ở chương sau chúng tôi sẽ cố gắng trả lời cho những câu hỏi trên và trả lời cho câu hỏi Q2:
Q2: Mối quan hệ thể chế (thể chế dạy học Tin học phổ thông) đối với thuật toán có những đặc trưng cơ bản nào? Bước chuyển từ lời giải toán học sang lời giải tin học của một bài toán được thực hiện hay không, nếu có thì được thực hiện như thế nào? Bước chuyển đó tác động như thế nào đến việc hình thành tri thức về thuật toán, tri thức tin học ở học sinh?
46
CHƯƠNG 3: MỐI QUAN HỆ THỂ CHẾ ĐỐI VỚI THUẬT TOÁN TRONG DẠY HỌC TIN HỌC GIAI ĐOẠN 2006 ĐẾN NAY
Mục tiêu của chương
Chúng tôi tiến hành nghiên cứu chương 3 này nhằm làm rõ mối quan hệ thể chế dạy học tin học phổ thông hiện nay (giai đoạn 2006 đến nay) đối với thuật toán trả lời cho câu hỏi nghiên cứu Q2:
Q2: Mối quan hệ thể chế (thể chế dạy học Tin học phổ thông) đối với thuật toán có những đặc trưng cơ bản nào? Bước chuyển từ lời giải toán học sang lời giải tin học của một bài toán được thực hiện hay không, nếu có thì được thực hiện như thế nào? Bước chuyển đó tác động như thế nào đến việc hình thành tri thức về thuật toán, tri thức tin học ở học sinh?
Song song với quá trình phân tích các ví dụ minh họa cho thuật toán chúng tôi tìm hiểu xem các bài toán đó có tồn tại trong thể chế dạy học toán phổ thông hiện nay và yêu cầu của thể chế đối với bài toán đó, trả lời cho một phần câu hỏi Q4.
Để làm rõ các vấn đề trên, chúng tôi tiến hành phân tích trên các tài liệu sau: