SlideShare a Scribd company logo
1 of 107
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP. HỒ CHÍ MINH
Cao Thị Hải Yến
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
LUẬN VĂN THẠC SĨ GIÁO DỤC HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS. TS. NGUYỄN CHÍ THÀNH
Thành phố Hồ Chí Minh - 2013
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP. HỒ CHÍ MINH
Cao Thị Hải Yến
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
Chuyên ngành: Lí luận và phương pháp dạy học bộ môn Toán
Mã số: 60 14 01 11
LUẬN VĂN THẠC SĨ GIÁO DỤC HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS. TS. NGUYỄN CHÍ THÀNH
Thành phố Hồ Chí Minh – 2013
1
LỜI CẢM ƠN
Trước tiên, tôi xin bày tỏ lòng biết ơn sâu sắc đến PGS. TS. Nguyễn Chí Thành, người
đã nhiệt tình hướng dẫn và giúp đỡ tôi hoàn thành luận văn này.
Tôi xin chân thành cảm ơn đến quý thầy, cô: PGS. TS. Lê Thị Hoài Châu, PGS.TS. Lê
Văn Tiến, TS. Trần Lương Công Khanh, TS. Lê Thái Bảo Thiên Trung, TS. Vũ Như Thư
Hương, TS. Nguyễn Thị Nga về những bài giảng Didactic Toán sinh động và đầy ý nghĩa.
Tôi xin chân thành cảm ơn Phòng Sau Đại học, Khoa Toán - Tin trường Đại học Sư
phạm Thành phố Hồ Chí Minh đã tạo những điều kiện học tập tốt nhất cho chúng tôi.
Tôi cũng xin chân thành cảm ơn:
Ban Giám hiệu cùng các thầy, cô trong tổ Tin học TrườngTHPT Trần Phú đã tạo điều
kiện, giúp đỡ tôi tiến hành thực nghiệm.
Tôi cũng xin gửi lời cảm ơn đến các bạn lớp didactic Toán khóa 22 vì những sẻ chia,
giúp đỡ trong thời gian học tập.
Cuối cùng, tôi hết lòng cảm ơn gia đình đã quan tâm và động viên suốt quá trình học
tập của tôi.
Cao Thị Hải Yến
2
MỤC LỤC
LỜI CẢM ƠN .............................................................................................................. 1
MỤC LỤC .................................................................................................................... 2
DANH MỤC CÁC TỪ VIẾT TẮT............................................................................ 4
MỞ ĐẦU....................................................................................................................... 5
1. Ghi nhận ban đầu và câu hỏi xuất phát........................................................................5
2. Mục đích và phạm vi nghiên cứu ..................................................................................8
3. Khung lý thuyết tham chiếu và phương pháp nghiên cứu..........................................9
4. Tổ chức luận văn...........................................................................................................10
CHƯƠNG 1: THUẬT TOÁN – MỘT NGHIÊN CỨU TRI THỨC LUẬN........ 11
1.1. Thế nào là vấn đề - bài toán......................................................................................11
1.2. Thuật toán và các phương pháp biễu diễn thuật toán ...........................................13
1.3. Biến và lệnh gán .........................................................................................................18
1.4. Cấu trúc cơ bản của thuật toán ................................................................................20
1.5. Một số phương pháp giải quyết vấn đề - bài toán...................................................24
1.6. Vai trò của công cụ tính toán....................................................................................28
CHƯƠNG 2: MỐI QUAN HỆ THỂ CHẾ ĐỐI VỚI THUẬT TOÁN TRONG
DẠY HỌC TOÁN PHỔ THÔNG GIAI ĐOẠN 1990 – 2000................................ 30
2.1. Khái niệm thuật toán.................................................................................................31
2.1.1 Phần lý thuyết.........................................................................................................31
2.1.2. Phần bài tập ...........................................................................................................35
2.2. Ngôn ngữ biểu diễn thuật toán .................................................................................38
2.2.1 Phần lý thuyết.........................................................................................................38
2.2.2 Phần bài tập ............................................................................................................42
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............................................. 46
3.1. Bài toán và thuật toán trong [M].............................................................................47
3.1.1. Khái niệm bài toán ................................................................................................48
3.1.2. Khái niệm thuật toán .............................................................................................49
3.1.3. Một số ví dụ về thuật toán.....................................................................................53
3.1.4 Các tổ chức tin học................................................................................................61
CHƯƠNG 4: THỰC NGHIỆM ............................................................................... 66
4.1. Mục đích và giả thuyết nghiên cứu ..........................................................................66
4.2. Giới thiệu thực nghiệm..............................................................................................66
3
4.2.1. Hình thức thực nghiệm:.........................................................................................66
4.2.2. Bài toán thực nghiệm ............................................................................................66
4.2.3. Dàn dựng kịch bản ................................................................................................67
4.3. Phân tích tiên nghiệm................................................................................................69
4.3.1. Biến tình huống và biến didactic...........................................................................69
4.3.2. Các chiến lược có thể ............................................................................................70
4.3.3. Phân tích kịch bản .................................................................................................72
4.4 Phân tích hậu nghiệm.................................................................................................75
KẾT LUẬN ................................................................................................................ 88
TÀI LIỆU THAM KHẢO ........................................................................................ 90
PHỤ LỤC ................................................................................................................... 91
4
DANH MỤC CÁC TỪ VIẾT TẮT
SGK: Sách giáo khoa
SGV: Sách giáo viên
GV: Giáo viên
HS: Học sinh
UCLN: Ước chung lớn nhất
MT: Máy tính
MTCT: Máy tính cầm tay
5
MỞ ĐẦU
1. Ghi nhận ban đầu và câu hỏi xuất phát
Toán học và Tin học là hai ngành khoa học có liên quan chặt chẽ mật thiết với nhau.
Trong toán học, để giải một bài toán chúng ta cần nghiên cứu giả thiết đã cho, tìm ra những
phương pháp có thể có để giải, lựa chọn phương pháp thích hợp nhất (có thể là phương pháp
ngắn gọn nhất, cũng có thể là dễ hiểu nhất đối với người làm) và tiến hành giải bài toán đó.
Trước đây, con người tự mình giải quyết tất cả những bài toán mà họ bắt gặp. Cùng với sự
phát triển của xã hội, con người tìm cách sáng tạo ra các công cụ giúp họ giải quyết những
vấn đề trong cuộc sống, và máy tính điện tử ra đời. Ban đầu máy tính điện tử chỉ giúp con
người tính toán những phép tính đơn giản như cộng trừ nhân chia các số, đặc biệt là giữa
những con số có giá trị lớn. Dần dần, cùng với sự phát triển của các loại ngôn ngữ lập trình,
con người cải tiến chiếc máy tính điện tử sao cho nó có khả năng giải quyết những bài toán
phức tạp hơn như kiểm tra một số nguyên có phải là số nguyên tố không, tìm số lớn nhất
trong dãy các số nguyên, và không những trên lĩnh vực tính toán mà trên nhiều lĩnh vực
khác nhau, nhiều loại dữ liệu khác nhau: các số liệu, hình ảnh, âm thanh, … Trong các lĩnh
vực đó, chúng tôi quan tâm đến việc lập trình giải các bài toán toán học.
Máy tính dưới sự điều khiển của con người (thông qua các chương trình, phần mềm
được con người lập trình sẵn trong máy tính) có thể giải quyết rất nhiều bài toán phức tạp
trong thời gian ngắn, không hề biết mệt mỏi hay ảnh hưởng bởi sự tác động của các yếu tố
khách quan, trong khi đó, con người không thể làm được, hoặc làm được trong khoảng thời
gian lớn và tốn nhiều công sức. Nhưng con người lại có khả năng phản ứng linh hoạt với
những tình huống bất ngờ, và xét cho đến cùng con người là nhân tố quyết định khả năng
giải quyết các vấn đề, bài toán của MT. Vì vậy trong nghiên cứu này, chúng tôi quan tâm
đến quá trình mà con người “ra lệnh” cho MT giải quyết các vấn đề, bài toán.
Với những ứng dụng đa dạng và phong phú trong nhiều lĩnh vực, Tin học bắt đầu
được đưa vào giảng dạy ở chương trình phổ thông ở hầu hết các nước. Theo Nguyễn Chí
Thành (2005), tại Pháp và Việt Nam, Tin học được đưa vào trường phổ thông theo hai hình
thức:
- Đưa các yếu tố Tin học vào môn Tin học với tư cách là môn học độc lập;
- Đưa các yếu tố Tin học vào môn Toán học;
6
Ở Việt Nam, khác với Toán học là môn học xuyên suốt trong chương trình phổ
thông, môn Tin học mới được đưa vào giảng dạy ở trường phổ thông từ những năm 1990.
Trong chương trình cải cách giáo dục năm 1990 (từ 1990 đến trước 2000) Tin học được đưa
vào dạy lồng ghép với môn toán, trong chương IV: Khái niệm sơ đẳng về tin học và thuật
toán - đại số lớp 10 (Trần Văn Hạo, Nxb Giáo dục - 1990). Đến chương trình cải cách giáo
dục 2006, Tin học xuất hiện trong chương trình phổ thông với tư cách là môn học độc lập và
là môn học chính khóa.
Cũng theo Báo cáo của uỷ ban nghiên cứu Dacunha-Castelle, 1989:
Chúng tôi không nghĩ rằng Tin học phải được giảng dạy như một môn (lí thuyết) riêng biệt ở
cấp bậc phổ thông. Thật vậy, Tin học dạy ở trình độ này sẽ chưa các nguy cơ liên quan đến
sự hình thức hoá và nó sẽ còn nghiêm trọng hơn cả những cái có thể có bên Toán học. Lập
luận cho rằng một số học sinh yếu kém trong môn Toán học có thể sẽ khá hơn khi học Tin
.học không có nhiều cơ sở lí thuyết. Ngược lại, việc dẫn nhập các phương tiện Tin học có
thể « cứu vãn » các học sinh có khó khăn và khuyến khích các em khác khi học toán.
[11, tr 254]
Từ đó dẫn chúng tôi đến câu hỏi: Việc đưa tin học vào giảng dạy trong chương trình
phổ thông với tư cách là một môn học độc lập ảnh hưởng như thế nào đến việc học tập môn
Toán và môn Tin học của học sinh ở bậc phổ thông? Học sinh có nhận thấy mối liên hệ mật
thiết giữa hai môn học này hay không?
Như đã nói ở trên, việc giải một bài toán trong toán học thì chỉ cần đưa ra một
phương pháp hay thuật toán giải và tiến hành giải theo thuật toán để tìm đáp án là bài toán
đã được giải xong. Tuy nhiên, để MT giải được bài toán đó, từ lời giải toán học được đưa ra,
con người cần phải viết một chương trình hoàn chỉnh theo một ngôn ngữ lập trình nào đó rồi
biên dịch thành ngôn ngữ máy và cài đặt vào MT, khi đó MT mới hiểu và giải quyết được
bài toán.
Vậy thế nào là lời giải toán học, thế nào là lời giải tin học? Chúng tôi đã cố gắng tìm
hiểu các nguồn tài liệu để trả lời cho câu hỏi trên. Tuy nhiên, qua những tài liệu mà chúng
tôi có được, chúng tôi không tìm được định nghĩa “lời giải toán học” và “lời giải tin học”.
Vì vậy, chúng tôi xin đưa ra định nghĩa lời giải toán học và lời giải tin học như sau:
- Lời giải toán học là lời giải của một bài toán dựa trên các kiến thức toán học sao
cho tìm được kết quả cho bài toán sau khi kết thúc lời giải mà con người có thể
hiểu được.
7
- Lời giải tin học là lời giải của một bài toán được biễu diễn bằng một thuật toán
hoặc chương trình sao cho có thể cài đặt được trên MT và cho kết quả bài toán.
Xét bài toán: Với a là số nguyên lớn hơn 2 cho trước, tính tổng:
1 1 1 1
...
1 2 50
S
a a a a
= + + + +
+ + +
Có nhiều cách để tính tổng trên, một lời giải toán học được đưa ra để tính tổng trên là
quy đồng mẫu số tất cả các số hạng rồi cộng các phân số cùng mẫu, hoặc ta có thể tính tổng
S bằng cách thực hiện phép cộng dồn từ trái sang phải đến số hạng cuối cùng thì ta có tổng
cần tính (vẫn dùng quy đồng mẫu số các phân số):
2 1 2 1
( 1) ( 1)
1 1 1 1 1 1 1 1
... ...
1 2 50 1 2 50
a a
a a a a
S
a a a a a a a a
+ +
+ +
= + + + + = + + + +
+ + + + + + 

Tuy nhiên, nếu lập trình để MT giải quyết bài toán này theo lời giải toán học trên thì MT sẽ
không hiểu được “quy đồng” là gì? Lời giải tin học của bài toán này dựa trên việc xây dựng
vòng lặp để tính tổng như sau:
Phát biểu lại bài toán:
Tính tổng
1 1 1 1
...
1 2
S
a a a a N
= + + + +
+ + +
với 1;50N =
Để tính tổng này ta sẽ không thực hiện gán giá trị S cho biểu thức
1 1 1 1
...
1 2a a a a N
+ + + +
+ + +
nữa mà sẽ thực hiện cộng dồn từng giá trị của các số hạng vào
tổng S bằng cách sử dụng vòng lặp. Việc tính tổng kết thúc khi 50N > .
Và thuật toán để giải bài toán trên như sau:
Bước 1: Khởi tạo S và N;
1 ; 0S N
a
← ←
Bước 2: 1N N← + ;
Bước 3: Nếu 50N > thì chuyển đến bước 5;
Bước 4: ( )1S S a N← + + rồi quay lại bước 2;
Bước 5: In ra S và kết thúc.
Sau đó thuật toán này sẽ được viết thành chương trình trong một ngôn ngữ nào đó để
máy tính thực hiện việc tính tổng.
8
Nếu như không có MT, khi các số hạng của tổng được tăng lên đến 100, 1000, … số
hạng hay khi giá trị của a lớn thì con người sẽ mất rất nhiều thời gian và công sức để có thể
tính được tổng trên, và đôi khi có thể không tính được giá trị của tổng. Tuy nhiên, với sự hỗ
trợ của công cụ tính toán là MT, thông qua việc xây dựng chương trình tính tổng xuất phát
từ thuật toán trên, ta có thể tính tổng S với số lượng số hạng bất kỳ giá trị a nguyên bất kỳ
chỉ trong khoảng thời gian rất ngắn.
Từ một bài toán cụ thể thì chưa thể kết luận được điều gì. Tuy nhiên chúng tôi nhận
thấy rằng dường như từ lời giải toán học sang thuật toán trong ngôn ngữ lập trình (lời giải
tin học) có một bước chuyển. Bước chuyển đó là không dễ dàng đối với những người làm
công việc lập trình, đặc biệt là đối với học sinh phổ thông - đối tượng mới được làm quen
với tin học và lập trình trong tin học.
Vì vậy, câu hỏi chúng tôi đặt ra ở đây là: Học sinh phổ thông sẽ làm như thế nào để
chuyển từ lời giải toán học của bài toán trên sang lời giải tin học khi mà Toán học và Tin
học được tách thành hai môn học chính khóa?
Tất cả những điều trên dẫn chúng tôi đến việc nghiên cứu “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”.
Từ những ghi nhận trên, chúng tôi phát biểu lại các câu hỏi ban đầu như sau:
- Giữa lời giải toán học và lời giải tin học của một bài toán có gì giống và khác nhau?
- Liệu rằng học sinh có nhận thấy sự cần thiết hay điều gì dẫn học sinh tới việc sử
dụng tin học để giải quyết các bài toán toán học?
- Học sinh gặp phải khó khăn, chướng ngại và sai lầm gì khi 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? Trong quá trình giảng dạy tin học giáo viên
quan tâm như thế nào đến việc hình thành bước chuyển đó?
- 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 tin học có
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?
- Vai trò của ngôn ngữ thuật toán?
2. Mục đích và phạm vi nghiên cứu
Việc nghiên cứu bước chuyển từ lời giải toán học sang lời giải tin học có thể xem xét
ở nhiều phạm vi khác nhau: trong chương trình và SGK, trong thực hành giảng dạy của GV,
trong thực hành giải toán của HS. Trong phạm vi của luận văn này, chúng tôi tập trung vào
9
việc nghiên cứu 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 trong
chương trình và SGK Tin học PT hiện hành.
Cụ thể, chúng tôi sẽ:
- Làm rõ 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 ở bậc
trung học phổ thông (nếu có) và ảnh hưởng của nó đến việc hình thành tri thức về thuật toán
và tin học ở học sinh.
- Phân tích sự lựa chọn của chương trình và SGK Toán học và Tin học để biết sự lựa
chọn này có ảnh hưởng như thế nào đến việc hình thành bước chuyển đó. Những khó khăn,
chướng ngại và sai lầm của học sinh khi 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.
- Những bài toán được giải quyết trong tin học có tồn tại trong toán học và yêu cầu của
hai thể chế đối với bài toán đó.
3. Khung lý thuyết tham chiếu và phương pháp nghiên cứu
3.1. Khung lý thuyết tham chiếu
Nội dung đề tài liên quan đến cả hai lĩnh vực Toán học và Tin học. Vì vậy việc chọn
một khung lý thuyết phù hợp để tham chiếu cho việc nghiên cứu là rất quan trọng. Ở đây,
chúng tôi muốn ứng dụng lý thuyết Didactic toán, cụ thể: lý thuyết nhân chủng học, chướng
ngại và sai lầm, lý thuyết tình huống, hợp đồng didactic trong việc nghiên cứu dạy học Tin
học.
Dựa trên khung lý thuyết tham chiếu đã chọn, chúng tôi phát biểu lại câu hỏi nghiên
cứu như sau:
Q1: Ở cấp độ tri thức luận, thuật toán và ngôn ngữ thuật toán có những đặc trưng cơ
bản nào?
Q2: Mối quan hệ thể chế (thể chế dạy học toán học PT giai đoạn 1990 – 2000 và thể
chế dạy học tin học PT hiện nay) đố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?
Q3: Trong thể chế dạy học toán học trung học phổ thông hiện nay, tồn tại hay không
những kiểu nhiệ m vụ liên quan đến thuật toán? Có những bài toán toán học nào được viết
dưới dạng thuật toán để chuyển sang bài toán tin học? Và ngược lại, những bài toán được
10
giải quyết trong tin học có tồn tại trong thể chế dạy học toán học không? Nếu tồn tại ở cả
hai thể chế thì những mong đợi thể chế của hai môn học đối với bài toán đó có gì giống và
khác nhau?
Q4: Học sinh gặp phải khó khăn, chướng ngại và sai lầm gì khi 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?
3.2 Phương pháp nghiên cứu
• Tiến hành nghiên cứu lý thuyết thuật toán và các phương pháp giải quyết vấn đề - bài
toán trên máy tính được đề cập trong tài liệu: Hoàng Kiếm, Giải một bài toán tin học như
thế nào?,tập 1, Nxb Giáo dục. Tìm hiểu mối quan hệ giữa thuật toán và công cụ tính toán
qua công trình nghiên cứu của Nguyễn Chí Thành (2005) để trả lời cho câu hỏi Q1.
• Tiến hành phân tích làm rõ đặc trưng mối quan hệ thể chế đối với thuật toán để trả lời
cho câu hỏi Q2. Chúng tôi tiến hành phân tích hai thể chế:
- Thể chế dạy học Toán học phổ thông giai đoạn 1990 – 2000.
- Thể chế dạy học Tin học phổ thông giai đoạn hiện hành.
• Phân tích giáo khoa Toán hiện hành để tìm hiểu những bài toán trong chương trình
toán phổ thông được viết dưới dạng ngôn ngữ thuật toán và sự tồn tại của các bài toán được
đề cập trong tin học trong chương trình toán phổ thông, những mong đợi của hai thể chế đối
với bài toán đó (nếu có) để trả lời cho câu hỏi Q3.
• Để trả lời cho câu hỏi Q4: Tiến hành thực nghiệm trên học sinh để biết được những
khó khăn và chướng ngại, sai lầm mà học sinh gặp phải khi thực hiện bước chuyển từ lời
giải theo ngôn ngữ toán học sang thuật toán trong tin học thông qua phần mềm Algobox.
4. Tổ chức luận văn
Phần mở đầu
Chương 1: Thuật toán trong giáo trình bậc đại học.
Chương 2: Mối quan hệ thể chế đối vối thuật toán trong dạy học toán học lớp 10 giai
đoạn 1999 – 2000.
Chương 3: Mối quan hệ thể chế đối với thuật toán trong dạy học toán học và tin học lớp
10 giai đoạn 2006 đến nay.
Chương 4: Thực nghiệm.
Kết luận
Tài liệu tham khảo
11
CHƯƠNG 1: THUẬT TOÁN – MỘT NGHIÊN CỨU TRI THỨC
LUẬN
Mục tiêu của chương
Trong chương này chúng tôi sẽ đi làm rõ những vấn đề liên quan đến thuật toán trong
tin học và các phương pháp giải quyết vấn đề - bài toán được trình bày trong giáo trình
“Giải một bài toán trên máy tính như thế nào?”, tập 1của tác giả Hoàng Kiếm, Nxb Giáo
dục. Qua đó làm cơ sở tham chiếu cho các phân tích ở chương 2 và chương 3.
1.1. Thế nào là vấn đề - bài toán
Theo Hoàng Kiếm, Giải một bài toán trên máy tính như thế nào?, Nxb Giáo dục,
hiểu một cách đơn giản vấn đề là “những vướng mắc, khó khăn trong cuộc sống mà chúng
ta cần giải quyết” và dưới góc nhìn khoa học thì “vấn đề thường được thể hiện dưới dạng
một bài toán” còn “bài toán là một loại vấn đề mà để giải quyết nó, chúng ta phải ít nhiều
cần đến tính toán như các bài toán trong vật lý, hóa học, xây dựng, kinh tế, …”
Trong một thời kỳ dài, các nhà khoa học đều cho rằng “mọi vấn đề đều có thể biểu
diễn dưới dạng một bài toán”. Hơn thế nữa, khi đại số đang ở đỉnh cao của sự phát triển,
Descartes phát biểu rằng: “tất cả mọi bài toán đều có thể quy về bài toán đại số, từ đó, việc
giải toán chỉ là vấn đề của giải phương trình”. Và vì vậy, ở thời kỳ này các nhà khoa học
trong tất cả các lĩnh vực đều cố gắng biểu diễn các bài toán trong lĩnh vực của mình dưới
dạng các phương trình toán học. Tuy nhiên cùng với sự phát triển của khoa học kỹ thuật, các
nhà khoa học cũng dần nhận thức được rằng Toán học không phải là công cụ vạn năng để
giải quyết mọi vấn đề.
Về sau, Pythagore chia những vấn đề mà con người cần giải quyết ra làm hai loại:
Theorem và Problem. Trong đó:
- Theorem là vấn đề cần được khẳng định tính đúng sai.
- Problem là vấn đề cần tìm giải pháp để đạt được một mục tiêu xác định từ những
điều kiện ban đầu nào đó.
Sau đó các nhà nghiên cứu lại cho rằng, hai loại vấn đề mà Pythagore đưa ra đều có
thể được diễn đạt bằng sơ đồ sau:
12
Trong đó:
A là giả thuyết hoặc điều kiện ban đầu
B là kết luận hoặc mục tiêu cần đạt
“⇒” là suy luận, giải pháp cần xác định.
Tuy nhiên trên thực tế, không phải lúc nào ta cũng gặp những vấn đề mà A và B
được xác định rõ ràng, chính xác. Vì vậy, nếu xét theo tính rõ ràng của vấn đề thì người ta
chia vấn đề thành 4 loại: Loại 1 là các vấn đề - bài toán với thông tin về A và B rất rõ ràng,
loại 2 có mục tiêu không rõ ràng, loại 3 có giả thiết không rõ ràng và cuối cùng là loại 4 với
cả giả thiết và mục tiêu đều không rõ ràng.
Việc giải quyết các vấn đề - bài toán nhanh hay chậm, đơn giản hay phức tạp là phụ
thuộc nhiều yếu tố khác nhau. Có những vấn đề được giải quyết thông qua nhiều quá trình
phức tạp và cũng có những vấn đề tưởng chừng như rất đơn giản nhưng để giải quyết nó đôi
khi con người phải lặp đi lặp lại các thao tác giống nhau dẫn đến sự nhàm chán. Vì vậy sự ra
đời của MT đã giúp cho con người giải quyết các vấn đề - bài toán một cách đơn giản hơn.
Bởi vì so với con người, MT có thể tính toán một khối lượng phép tính rất lớn với tốc độ
cực nhanh, chính xác mà không hề biết “mệt mỏi” hay nhàm chán.
Tuy nhiên, như đã nói trong phần mở đầu, không phải là MT tự bản thân nó có khả
năng thực hiện những tính toán đó, mà con người chính là nhân tố quyết định cho quá trình
giải quyết các vấn đề - bài toán của máy tính. MT chỉ thực hiện các quá trình tính toán theo
các yêu cầu của con người được cài đặt sẵn trong chương trình của máy. Nhưng MT lại
không hiểu được ngôn ngữ của con người, mà chỉ hiểu những yêu cầu dưới dạng những con
số nhị phân 0 và 1.
Ban đầu (trong các thế hệ MT đầu tiên) để hướng dẫn cho MT thực hiện các yêu cầu
của mình con người phải “ra lệnh” cho MT bằng ngôn ngữ máy, tuy nhiên việc này tốn quá
nhiều công sức. Sau này con người sáng tạo ra một loại ngôn ngữ “dễ chịu” hơn mà ta
thường gọi là ngôn ngữ bậc cao. Ngôn ngữ bậc cao gần giống với tiếng Anh nên việc ra lệnh
bằng ngôn ngữ này dễ dàng hơn so với ngôn ngữ máy. Có nhiều loại ngôn ngữ bậc cao khác
nhau, trong đó phải kể đến ngôn ngữ Basic, Pascal và C.
Với sự ra đời của ngôn ngữ bậc cao, việc ra lệnh cho MT không còn phức tạp như
trước nữa. Lúc này, việc quá trình giải quyết một vấn đề - bài toán nào đó bắt đầu từ việc
xác định bài toán, nghĩa là xác định dữ liệu vào, ra và các yêu cầu đối với thuật toán rồi lựa
chọn cấu trúc dữ liệu phù hợp với dữ liệu vào ra của bài toán. Tiếp đó là xây dựng thuật
13
toán, lập trình, kiểm thử và cuối cùng là tối ưu chương trình. Sau khi xây dựng được một
chương trình hoàn thiện, chương trình sẽ được biên dịch thành ngôn ngữ máy và cài đặt vào
MT. Chúng tôi sẽ không đi sâu vào chi tiết tất cả các quá trình trên mà tập trung nghiên cứu
thuật toán và việc xây dựng thuật toán.
1.2. Thuật toán và các phương pháp biễu diễn thuật toán
Từ “thuật toán” (Algorithm) xuất phát từ tên một nhà toán học người Trung Á là Abu
Abd - Allah ibn Musa al’Khwarizmi. Ông là tác giả một cuốn sách về số học, trong đó ông
đã dùng phương pháp mô tả rất rõ ràng, mạch lạc cách giải những bài toán. Sau này, phương
pháp mô tả cách giải của ông đã được xem là một chuẩn mực và được nhiều nhà toán học
khác tuân theo. Từ Algorithm ra đời dựa theo cách phiên âm tên của ông.
Trong từ điển bách khoa toàn thư, Hebeinstrait đưa ra định nghĩa sau đây cho “thuật
toán”:
Thuật toán là một dãy hữu hạn các quy tắc cần áp dụng trong một thứ tự nhất định cho một số
hữu hạn các dữ liệu, để sau một số bước hữu hạn có thể đi đến một kết quả, và điều đó không
phụ thuộc vào các dữ liệu.
[11, tr 258]
Còn trong khoa học về máy tính, “thuật toán được định nghĩa là một dãy hữu hạn các
bước không mập mờ và có thể thực thi được, quá trình hành động theo các bước này phải
dừng và cho kết quả như mong muốn”, [8, tr 50].
 Các tính chất cơ bản của thuật toán:
Thuật toán có ba tính chất cơ bản là tính xác định, hữu hạn, tính đúng. Trong đó, số
bước hữu hạn của thuật toán và tính chất dừng của nó được gọi chung là tính hữu hạn. Số
bước hữu hạn của thuật toán là một tính chất khá hiển nhiên. Tính “không mập mờ” và “có
thể thực thi được” gọi chung là tính xác định.
Ngoài những đặc trưng trên, thuật toán còn có những đặc trưng khác như sau:
Thứ nhất, đầu vào và đầu ra. Mọi thuật toán cho dù đơn giản hay phức tạp đến đâu
cũng phải nhận dữ liệu đầu vào, xử lý nó và cho ra kết quả cuối cùng.
Thứ hai, tính hiệu quả. Tính hiệu quả được đánh giá dựa trên một số tiêu chuẩn như
khối lượng tính toán, không gian và thời gian khi thuật toán được thi hành. Đây là yếu tố
quyết định để đánh giá, chọn lựa cách giải quyết vấn đề - bài toán trên thực tế. Phương pháp
phổ biến nhất để đánh giá thuật toán là độ phức tạp của thuật toán.
14
Khi viết thuật toán để giải quyết một bài toán nào đó thì thông thường thuật toán phải
áp dụng được cho mọi trường hợp chứ không phải chỉ một vài trường hợp riêng lẻ của bài
toán. Đó chính là tính tổng quát của thuật toán. Chẳng hạn thuật toán giải phương trình bậc
hai bằng Delta luôn áp dụng được cho mọi số thực a, b, c. Tuy nhiên, trong thực tế không
phải lúc nào người ta cũng xây dựng được các thuật toán tổng quát, mà đôi khi chỉ xây dựng
được thuật toán áp dụng cho một số trường hợp hay cho một dạng đặc trưng của bài toán mà
thôi.
 Các phương pháp biểu diễn thuật toán
Thuật toán là phương pháp biểu diễn lời giải của bài toán dưới một góc độ nào đó, vì
vậy cũng cần phải tuân theo một số quy tắc nào đó. Để biểu diễn thuật toán, người ta thường
dùng 3 phương pháp sau:
- Dùng ngôn ngữ tự nhiên.
- Dùng lưu đồ - sơ đồ khối (flowchart).
- Dùng mã giải (ngôn ngữ giả lập trình).
• Ngôn ngữ tự nhiên
Đó là cách biểu diễn thuật toán bằng ngôn ngữ thường ngày, liệt kê các bước của
thuật toán. Phương pháp này không yêu cầu người viết thuật toán cũng như người đọc phải
nắm các quy tắc nào cả. Tuy nhiên cách biểu diễn này thường dài dòng, không thể hiện rõ
cấu trúc thuật toán, đôi lúc gây hiểu lầm và khó hiểu cho người đọc. Vì vậy để dễ đọc,
người ta thường viết các bước con lùi vào bên phải và đánh số bước theo quy tắc phân cấp
như 1, 1.1, 1.1.1.
Chẳng hạn thuật toán Euclide tìm UCLN của hai số nguyên được biễu diễn như sau:
15
[8, tr 58]
• Lưu đồ - sơ đồ khối
Đây là một công cụ trực quan để diễn đạt các thuật toán. Việc biểu diễn bằng sơ đồ
khối sẽ giúp người đọc theo dõi được sự phân cấp các trường hợp và quá trình xử lý của
thuật toán, thường sử dụng trong những thuật toán rắc rối phức tạp và khó theo dõi được quá
trình xử lý.
Việc biểu diễn thuật toán bằng sơ đồ khối yêu cầu người viết cần phân biệt hai loại
thao tác, đó là thao tác lựa chọn dựa theo một điều kiện nào đó và thao tác hành động (hay
thao tác xử lý).
• Thao tác chọn lựa được biểu diễn bằng một hình thoi, bên trong chứa biểu
thức điều kiện.
• Thao tác xử lý được biểu diễn bằng một hình chữ nhật, bên trong chứa nội
dung xử lý, chẳng hạn:
• Đường đi.
Khi biểu diễn thuật toán bằng ngôn ngữ tự nhiên ta mặc định hiểu rằng quá trình thực
hiện diễn ra theo trình tự từ bước trước sang bước sau và chỉ nhảy tới bước nào đó khi có
yêu cầu. Đối với việc biểu diễn bằng sơ đồ khối, các bước được thể hiện bằng hình vẽ và có
thể đặt các hình vẽ này ở vị trí bất kỳ nên cần phải có phương pháp để thể hiện trình tự thực
hiện các thao tác.
Theo đó hai bước kế tiếp nhau được nối bằng một cung, trên cung có mũi tên chỉ
hướng thực hiện. Như vậy việc thực hiện các thao tác trên sơ đồ khối tuân theo chỉ dẫn của
đường mũi tên.
Từ thao tác lựa chọn có thể có đến hai hướng đi, một hướng ứng với điều kiện thỏa
và hướng còn lại ứng với điều kiện không thõa. Do vậy ta dùng hai cung xuất phát từ các
đỉnh hình thoi, trên mỗi cung có ký hiệu Đ/S hoặc Yes/No để chỉ hướng đi ứng với hai
trường hợp thõa điều kiện và không thõa điều kiện đặt ra.
0∆ >a = b
Tăng i lên 1 Chọn một hộp bất kỳ
16
Ví dụ: thuật toán giải phương trình bậc hai được biểu diễn bằng sơ đồ khối.
[8,
tr 62]
• Điểm cuối
Điểm cuối là điểm khởi đầu và kết thúc của thuật toán được biểu diễn bằng hình ôvan
bên trong có ghi chữ “Bắt đầu” (Begin) hoặc “Kết thúc” (End). Điểm cuối chỉ có cung đi ra
(điểm khởi đầu) hoặc chỉ có cung đi vào (điểm kết thúc).
Ngoài ra, việc biểu diễn thuật toán bằng sơ đồ khối là khá cồng kềnh nên trong môt
số thuật toán phức tạp, trên sơ đồ khối thường được chia thành nhiều phần khác nhau, và
các phần đó được nối với nhau bằng các điểm nối (connector). Khi sơ đồ biểu diễn thuật
toán quá lớn, phải trình bày trên nhiều trang giấy, người ta phải dùng các điểm nối phần sơ
đồ từ trang này sang trang khác, đó gọi là điểm nối sang trang (off – page – connector). Bên
trong các điểm nối đặt một ký hiệu để biết được sự liên hệ giữa các điểm nối hay các điểm
nối sang trang.
17
[8, tr 63]
• Ngôn ngữ giả lập trình (mã giả)
Một nhược điểm của việc biểu diễn thuật toán bằng sơ đồ khối là sự cồng kềnh, dù
chỉ để mô tả một thuật toán nhỏ ta cũng phải cần đến một không gian rất lớn. Hơn thế nữa
sơ đồ khối chỉ phân biệt hai loại thao tác là thao tác lựa chọn và thao tác rẽ nhánh trong quá
trình xử lý, nhưng trong thực tế còn có thêm các thao tác lặp. Vì vậy ta sử dụng một phương
pháp biểu diễn thuật toán khác, đó chính là dùng ngôn ngữ giả lập trình (mã giả).
Khi sử dụng thuật toán bằng ngôn ngữ giả lập trình, ta sẽ vay mượn các cú pháp của
một ngôn ngữ lập trình nào đó và dùng một phần ngôn ngữ tự nhiên để thể hiện thuật toán.
Tất nhiên, mọi ngôn ngữ lập trình đều có những thao tác cơ bản là xử lý, rẽ nhánh và lặp. Từ
Điểm nối sang trang (off - page - connector)
Điểm nối giữa các phần khác nhau của sơ đồ.
18
thuật toán người ta cần phải viết thành chương trình trong một ngôn ngữ lập trình cụ thể và
biên dịch thành ngôn ngữ máy. Vì vậy, việc dùng ngôn ngữ giả lập trình vừa tận dụng được
các khái niệm trong ngôn ngữ lập trình, vừa giúp người cài đặt dễ dàng nắm bắt nội dung
thuật toán. Và một khi đã vay mượn cú pháp và khái niệm của ngôn ngữ lập trình nào đó thì
chắc chắn rằng ngôn ngữ giả lập trình sẽ bị phụ thuộc vào ngôn ngữ lập trình (NNLT) đó.
Sau đây là một ví dụ về biểu diễn thuật toán bằng ngôn ngữ giả lập trình:
[8, tr 64 ]
1.3. Biến và lệnh gán
Để biễu diễn thuật toán ngắn gọn hơn, người ta sử dụng các biến - nơi lưu trữ giá trị.
Trong tin học, mỗi biến bất kì đều có ba thuộc tính cơ bản: tên, kiểu biến và giá trị hiện tại
mà biến đang lưu giữ. Giá trị của biến có thể thay đổi trong quá trình thực hiện chương
trình, tuy nhiên kiểu biến và tên biến không thay đổi. Chẳng hạn, nếu biến A lưu trữ giá trị
số nguyên thì nó không thể lưu trữ giá trị số thực hay chuỗi kí tự.
Mỗi biến đều có tên riêng để phân biệt với các biến khác. Trong các chương trình,
tùy vào từng ngôn ngữ lập trình khác nhau mà có những yêu cầu đối với việc đặt tên biến
nhưng đều tuân thủ một nguyên tắc chung là ngắn gọn và dễ nhớ.
Biến có thể thay đổi giá trị trong quá trình thực hiện chương trình. Để thay đổi giá trị
của biến, ta sử dụng lệnh gán với cú pháp như sau:
Biến:=<biểu thức>
Lệnh gán không phải là phép so sánh giữa hai biểu thức mà là thao tác tính giá trị
biểu thức bên phải lệnh gán và đặt kết quả này vào biến ở bên trái lệnh gán. Lệnh gán làm
thay đổi giá trị hiện tại của biến và không thể nào lấy lại giá trị này của biến. Chẳng hạn, xét
19
bài toán: “Cho hai biến A và B. Hãy thực hiện lệnh gán sao cho giá trị của hai biến A và B
hoán đổi cho nhau”.
Nếu thực hiện hoán đổi bằng hai lệnh gán: A:=B; B:=A thì sau lệnh gán thứ nhất giá
trị ban đầu của A đã mất, thay vào đó là giá trị của B, sau lệnh gán thứ hai B vẫn có giá trị là
B. Như vậy việc hoán đổi không thành công.
Để thực hiện việc hoán đổi này, ta xem xét bài toán hoán đổi nước trong hai ly A và
B. Việc hoán đổi sẽ được thực hiện cùng với một ly TẠM có dung tích bằng hai ly A và B
như sau:
Quay trở lại với bài toán hoán đổi giá trị hai biến A và B, việc hoán đổi sẽ được thực
hiện thông qua 3 lệnh gán:
Tam:=A; A:=B; B:=Tam;
Ngoài ra, có thể thực hiện việc hoán đổi bằng ba câu lệnh gán sau:
A:= A+B; B:=A-B; A:=A-B;
Tuy nhiên, trên thực tế người ta không bao giờ dùng cách này mà dùng cách hoán đổi giá trị
hai biến bằng biến trung gian Tam.
Như vậy, có phép gán được sử dụng để gán giá trị cho biểu thức, biến hay hoán đổi
giá trị hai biến cho nhau.
20
1.4. Cấu trúc cơ bản của thuật toán
Một vấn đề nữa mà chúng tôi muốn đề cập đến trong chương này, đó là cấu trúc cơ
bản của thuật toán.
Dù biễu diễn thuật toán bằng ngôn ngữ tự nhiên, sơ đồ khối hay dùng ngôn ngữ giả
lập trình thì việc xây dựng thuật toán đều dựa trên ba cấu trúc cơ bản: cấu trúc tuần tự, cấu
trúc rẽ nhánh và cấu trúc lặp. Đây cũng là cấu trúc cơ bản của một chương trình.
• Cấu trúc tuần tự
Đây được xem như là cấu trúc được mặc định trong MT, các thao tác được thực hiện
tuần tự từ thao tác đầu tiên đến thao tác cuối cùng. Nếu thuật toán có n bước thì việc thực
hiện sẽ được tiến hành từ bước đầu tiên đến bước thứ n.
• Cấu trúc rẽ nhánh
Cấu trúc rẽ nhánh có hai dạng cơ bản là rẽ nhánh có điều kiện và rẽ nhánh không có
điều kiện.
o Cấu trúc rẽ nhánh có điều kiện bao gồm hai dạng:
Dạng 1, rẽ nhánh đơn (hay còn gọi là rẽ nhánh dạng khuyết). Nghĩa là chỉ thực hiện
rẽ nhánh khi biểu thức logic đúng. Nếu biểu thức logic sai thì thực hiện bước kế tiếp của
thuật toán.
[8, tr 148]
Dạng 2, rẽ nhánh đôi (hay còn gọi là rẽ nhánh dạng đủ). Nghĩa là nếu biểu thức
logic đúng hay sai thì đều thực hiện công việc đối với trường hợp đúng hoặc sai tương ứng.
21
[8, tr 148]
Trong thực tế có nhiều lúc ta còn gặp những dạng rẽ nhánh không chỉ là xét một biểu
thức logic với hai trường hợp tương ứng là đúng, sai mà còn dựa vào giá trị một biểu thức
số học, ứng với mỗi giá trị của biểu thức ta lại có một xử lý riêng.
Nó được phát biểu như sau:
[8, tr 157]
Và biễu diễn dưới dạng sơ đồ khối như sau:
22
[8, tr 157]
o Cấu trúc rẽ nhánh không có điều kiện
Khác với rẽ nhánh có điều kiện, rẽ nhánh không có điều kiện không dựa trên một
biểu thức điều kiện nào mà chỉ đơn thuần thay đổi thứ tự thực hiện tuần tự của chương trình.
• Cấu trúc lặp
Đối với máy tính, cấu trúc lặp là một trong ba cấu trúc cơ bản của máy tính. Đặc biệt
đối với các tính toán gần đúng vì chỉ cần một phép toán cộng và phép lặp, MT đã có thể
thực hiện mọi phép toán khác từ nhân, chia cho đến lũy thừa, rút căn, sin, cos, … Máy tính
phân biệt hai cấu trúc lặp, đó là lặp xác định và lặp không xác định.
o Cấu trúc lặp xác định được sử dụng khi ta “biết trước” số lần lặp trước khi
thục hiện. “Biết trước” ở đây phải hiểu theo kiểu số lần lặp có thể tính được theo tham số
nào đó của bài toán. Chẳng hạn như việc tính tổng S với hằng số n cho trước:
1
1 1 1 1
1 ...
2 3
n
i
S
n i=
= + + + + =∑ hay việc tính x
e , x là số thực cho trước với độ chính xác nhỏ
hơn hằng số ε cho trước bằng công thức:
2
1 ...
1! 2! !
n
x x x x
e
n
= + + + + . Trong trường hợp này
ta chỉ biết quá trình tính toán sẽ dừng lại khi tính đến số hạng thứ n nào đó và số hạng này
có giá trị tuyệt đối nhỏ hơn hằng số ε :
!
n
x
n
ε<
Đối với NNLT Pascal, lặp với số lần biết trước bắt đầu với từ khóa for. Có hai kiểu
vòng lặp for, một kiểu là for “tăng” nghĩa là biến đếm bắt đầu tại một giá trị bắt đầu “start”,
sau đó tăng dần từng đơn vị cho đến khi lớn hơn giá trị kết thúc “stop”. Một kiểu là for
“giảm”, nghĩa là biến đếm bắt đầu tại một giá trị bắt đầu và giảm dần cho đến khi nhỏ hơn
giá trị kết thúc. Hai dạng vòng lặp for được thể hiện bằng sơ đồ khối như sau:
23
[7, tr 172]
o Cấu trúc lặp không xác định, nghĩa là số lần
lặp không thể xác định bằng công thức tính toán nào trước
khi bước vào vòng lặp. Trong NNLT Pascal có hai loại cấu
trúc lặp không xác định là While và Repeat … Until được
biễu diễn bằng sơ đồ khối như sau:
Trong đó, vòng lặp “While … do” thực hiện <lệnh> cho đến khi “điều kiện thi hành” không
thõa.
Sau đây là một
đoạn chương
trình trong
NNLT Pascal
24
thực hiện phép chia nguyên a cho b bằng các phép trừ.
Đối với vòng lặp Repeat … until, thay vì kiểm tra điều kiện
trước ngay đầu vòng lặp như While … do, vòng lặp Repeat kiểm
tra điều kiện sau khi thân vòng lặp được thực hiện một lần.
So với vòng lặp While, vòng lặp Repeat … until đơn giản hơn
vì nó gần gũi với suy nghĩ con người – bao giờ cũng làm trước rồi
mới kiểm tra sau.
1.5. Một số phương pháp giải quyết vấn đề - bài toán
Chúng tôi đặt ra một câu hỏi là “Từ bộ Input và Output” của một vấn đề - bài toán,
dựa trên những yếu tố nào để xây dựng một thuật toán phù hợp để giải quyết vấn đề - bài
toán đó?
Về cơ bản, việc giải quyết vấn đề - bài toán bằng máy tính được thực hiện bằng hai
phương pháp: phương pháp trực tiếp và phương pháp gián tiếp.
Phương pháp trực tiếp được sử dụng khi xác định được lời giải qua các công thức,
hệ thức, định luật hay qua các bước căn bản để có được lời giải. Lúc này việc giải quyết vấn
đề trên máy tính chỉ là sự chuyển đổi lời giải từ ngôn ngữ thông thường sang ngôn ngữ lập
trình.
Về cơ bản, phương pháp trực tiếp gồm 3 loại. Loại thứ nhất dùng để biễu diễn cho
các bài toán đã có lời giải chính xác bằng một công thức toán học nào đó. Loại thứ hai là
biểu diễn cho các bài toán có công thức giải gần đúng (như các công thức tính gần đúng sin,
cos, giải phương trình siêu việt, …). Loại cuối cùng là biểu diễn các lời giải không tường
minh bằng kỹ thuật đệ quy.
Chẳng hạn như bài toán tính tổng n số tự nhiên đầu tiên. Bài toán này nhà toán học
Gauss đã đưa ra công thức giải tổng quát, việc giải bài toán này trên máy tính chỉ còn là
biễu diễn lại công thức giải theo các quy tắc của máy tính mà thôi. Hay như việc giải
phương trình bậc hai, khi viết thuật toán ta chỉ việc biễu diễn lại cách tính giá trị Delta và
công thức nghiệm trong các trường hợp nghiệm kép, hai nghiệm phân biệt.
Tuy nhiên quá trình chuyển đổi từ các lời giải có sẵn sang chương trình không phải
lúc nào cũng dễ dàng. Và nếu không nắm vững các quy tắc chuyển đổi hay quy ước của
ngôn ngữ lập trình thì khi máy tính chạy chương trình sẽ cho kết quả sai lệch với kết quả
25
mong muốn, đôi khi quá trình tính toán cũng khác xa so với lời giải được mô tả trước đó.
Việc biểu diễn lời giải vấn đề - bài toán thành chương trình trên máy tính diễn ra theo các
quá trình: chuyển đổi dữ liệu bài toán thành dữ liệu chương trình, chuyển đổi quá trình tính
toán của bài toán thành các cấu trúc của chương trình, phân chia vấn đề bài toán ban đầu
thành những vấn đề - bài toán nhỏ hơn, biễu diễn các tính toán không tường minh bằng đệ
quy. Các quá trình đó được thực hiện dựa trên các nguyên lý sau:
Nguyên lý 1: Dữ liệu của bài toán sẽ được biểu diễn lại dưới dạng các biến của
chương trình thông qua các quy tắc xác định của ngôn ngữ lập trình cụ thể.
Nguyên lý 2 (Định lý Bohn-Jacopini): Mọi quá trình tính toán đều có thể mô tả và
thực hiện dựa trên ba cấu trúc cơ bản: cấu trúc tuần tự, cấu trúc rẽ nhánh và cấu trúc lặp.
Nguyên lý 3: Chương trình tính toán theo các biểu thức chính xác không đồng nhất
với quá trình tính toán chính xác về mặt hình thức.
Nguyên lý 4: Mọi quá trình tính toán gần đúng đều dựa trên cấu trúc lặp với tham số
xác định.
Nguyên lý 5: Mọi vấn đề bài toán lớn đều có thể giải quyết bằng cách phân chia
thành những vấn đề bài toán nhỏ hơn.
Nguyên lý 6: quá trình đệ quy trong máy tính không đơn giản như các biểu thức quy
nạp toán học.
Phương pháp gián tiếp được sử dụng khi chưa tìm ra lời giải chính xác của vấn đề.
Đây cũng là cách tiếp cận chủ yếu của loài người. Phương pháp này đưa ra các giải pháp
mang tính chất đặc trưng của máy tính và dựa trên sức mạnh tính toán của máy tính để giải
quyết các bài toán.
 Phương pháp đầu tiên được sử dụng để đi tìm lời giải gián tiếp cho một bài toán là
phương pháp thử sai. Phương pháp này nghe có vẻ rất tầm thường, tuy nhiên nó lại đóng vai
trò hết sức rất quan trọng việc giải quyết các vấn đề - bài toán. Khi xây dựng lời giải bài
toán theo phương pháp thử - sai, người ta thường dựa vào 3 nguyên lý cơ bản sau:
• Nguyên lý duyệt toàn bộ hoặc vét cạn toàn bộ. Nguyên lý đã được nhà bác học
Edison sử dụng để tìm ra vật liệu thích hợp làm dây tóc bóng đèn điện đầu tiên của nhân
loại và cũng được sử dụng trong nhiều các phát minh của mình. Nguyên lý này thực tế rất
đơn giản, để giải quyết một vấn đề - bài toán nào đó ta chỉ cần liệt kê tất cả các trường hợp
có thể xảy ra của bài toán sau đó lần lượt đi kiểm tra tất cả các trường hợp đó để tìm ra lời
giải chính xác cho bài toán. Chẳng hạn như để liệt kê các số nguyên tố trong khoảng từ m
26
đến n, ta liệt kê tất cả các số nguyên k trong khoảng từ m đến n rồi đi kiểm tra các số
nguyên k đó có phải là số nguyên tố không bằng cách chia số đó cho các số tự nhiên từ 2
cho đến k-1.
Nguyên lý này có một nhược điểm cơ bản là sẽ tiêu tốn rất nhiều thời gian khi gặp
phải các vấn đề - bài toán có tập các khả năng lớn. Vì vậy một nguyên lý khác được ưu tiên
sử dụng lúc này là nguyên lý ngẫu nhiên.
• Nguyên lý ngẫu nhiên. Nguyên lý này dựa trên việc thử một số khả năng được
chọn một cách ngẫu nhiên trong tập các khả năng. Khả năng tìm ra lời giải đúng hoặc gần
đúng của phương pháp này tùy thuộc vào chiến lược chọn ngẫu nhiên và một số điều kiện
cụ thể của bài toán.
Trong một số vấn đề xác định, việc áp dụng nguyên lý ngẫu nhiên đã giúp đưa ra
được lời giải rất tốt, đôi khi là lời giải tối ưu. Sau này người ta phát triển nguyên lý này
thành một phương pháp mới gọi là phương pháp Monté – Carlos. Và trên thực tế phương
pháp này cũng giúp cho con người tìm được lời giải cho nhiều bài toán quan trọng mà trước
đó vẫn chưa tìm được.
Cùng với sự ra đời và phát triển của máy tính, việc giải toán theo nguyên lý ngẫu
nhiên ngày càng được chú trọng nghiên cứu và phát triển mạnh mẽ, trong số đó có một
phương pháp nổi bật là phương pháp Genetic. Phương pháp này giải quyết bài toán bằng
phương pháp mô phỏng quá trình chọn lọc và thích nghi của tự nhiên.
• Nguyên lý mê cung
Nguyên lý này được áp dụng khi chúng ta không biết được chính xác “hình dạng”
của lời giải mà phải xây dựng dần lời giải qua từng bước giống như tìm đường ra khỏi một
mê cung. Giống như khi đang ở trong mê cung, khi phải lựa chọn đường đi tiếp theo từ một
ngã rẽ ta buộc phải chọn một con đường bất kỳ để đi tiếp. Nếu đi vào ngõ cụt thì ta đánh
dấu con đường đó và quay lại ngã rẽ và chọn hướng đi khác.
Một điều dễ nhận thấy ở phương pháp thử sai này đó là sự may rủi. Nghĩa là việc tìm
được lời giải hay không, thời gian tìm kiếm lời giải tùy thuộc rất nhiều vào từng vấn đề.
Cùng với đó, đối với một số bài toán, phương pháp này đòi hỏi một khối lượng thời gian
khổng lồ cho việc thực hiện các phép thử để cho ra kết quả. Vì vậy, một phương pháp khác
được sử dụng là các phương pháp Heuristic.
 Các phương pháp Heuristic
27
Các thuật toán Heuristic được xây dựng dựa trên một số nguyên lý đơn giản như vét
cạn thông minh, nguyên lý tối ưu cục bộ (Greedy), nguyên lý hướng đích, nguyên lý sắp thứ
tự, …
 Các phương pháp trí tuệ nhân tạo
Phương pháp thử - sai và Heuristic nói chung đều có một điểm chung cơ bản là dựa
trên trí thông minh của con người để giải bài toán, máy tính chỉ đóng vai trò thực thi mà
thôi. Phương pháp trí tuệ nhân tạo lại khác, nó dựa vào trí thông minh của máy tính. Trong
phương pháp này người ta sẽ đưa vào máy tính trí thông minh nhân tạo giúp máy tính bắt
chước một phần khả năng suy luận như con người để từ đó khi gặp một vấn đề, máy tính sẽ
dựa trên những điều nó đã được “học” để tự đưa ra phương án giải quyết vấn đề.
Một ví dụ kinh điển được Hoàng Kiếm đưa ra cho phương pháp trí tuệ nhân tạo này
là bài toán đong nước. Cụ thể như sau:
Có hai bình đựng nước là B5 có dung tích 5 lít và B8 có dung tích 8 lít. Hãy chỉ ra cách đong
để có được 2 lít nước. Các thao tác có thể thực hiện được là:
1. Hứng đầy nước vào bình B5 hoặc B8.
2. Đổ hết nước trong một bình.
3. Đổ nước từ bình này sang bình kia cho đến lúc bình kia đầy.
[7, tr 28]
Lời giải theo phương pháp trí tuệ nhân tạo được đưa ra như sau: Thay vì tìm lời giải
bằng cách tìm trình tự đổ nước, người ta đưa ra các luật sau và để cho máy tính tự tìm lời
giải thông qua các luật này.
Luật 1: B8 rỗng thì đổ đầy B8.
Luật 2: B5 đầy thì đổ hết nước trong B5.
Luật 3: Nếu B5 chưa đầy nước thì đổ nước trong bình B8 sang bình B5 cho đến lúc
B5 đầy.
Dựa trên các luật được đưa ra ở trên, quá trình suy luận để đưa đến kết quả được mô
tả như sau:
28
[8, tr 29]
Tuy rằng có thể giải quyết vấn đề - bài toán bằng phương pháp gián tiếp và trực tiếp,
tuy nhiên chúng tôi vẫn không tìm thấy được trong các tài liệu kĩ thuật xây dựng thuật toán
cho một bài toán.
Việc giải quyết các vấn đề - bài toán trên MT không thể không nhắc đến công cụ
tính toán.
1.6. Vai trò của công cụ tính toán
Quay trở lại với bài toán tính tổng S mà chúng tôi giới thiệu trong phần mở đầu, giữa
lời giải toán học và lời giải tin học (dưới dạng thuật toán) có một khoảng cách nhất định.
Nếu không có sự xuất hiện của MT thì chỉ cần lời giải toán học (quy đồng rồi cộng các phân
số cùng mẫu). Nhưng nếu muốn MT giải quyết bài toán này thì ta không thể sử dụng lời giải
toán học đó để cài đặt trên MT mà sử dụng lời giải tin học được xây dựng dựa vào vòng lặp
để tính tổng. Nghĩa là giữa lời giải toán học và lời giải tin học của một bài toán có một
khoảng cách nhất định. Và dĩ nhiên người dùng không ý thức được điều đó khi không có sự
xuất hiện của công cụ tính toán. Và cho dù là người dùng đưa ra lời giải tin học cho bài toán
nhưng nếu không có hiện diện của MT thì lời giải là chấp nhận được (chấp nhận theo ý thức
con người), chỉ khi cài đặt chương trình lên MT thì người dùng mới nhận thấy những vấn đề
chưa tường minh trong lời giải đó và cần phải chỉnh sửa để hoàn thiện lời giải tin học.
Trong công trình nghiên cứu (2005), Nguyễn Chí Thành đã chỉ ra mối quan hệ giữa
tính toán số, thuật toán và công cụ tính toán như sau:
• Tính toán số và công cụ tính toán
Một phần khá quan trọng của tính toán lặp có thể được trao cho một hay nhiều công cụ tính
toán. Các công cụ này cho phép người vận hành có thể thực hiện công việc tính toán nhờ vào
thuật toán được tường minh hay được kết tinh trong một công cụ tính toán, ví dụ như bảng số,
bàn tính, máy tính bỏ túi không lập trình được, v.v. Khả năng có thể trao việc tính toán lặp
như vậy được khai thác khi các nhà làm chương trình tìm cách đưa một công cụ tính toán mới
trong DHTPT để nhấn mạnh việc thu được các kết quả cụ thể của các tính toán số.
29
Việc đưa công cụ tính toán vào các thể chế dạy học môn toán như DHTPT dẫn đến sự phát
sinh có tính thể chế. Sự phát sinh này sẽ tổ chức lại các tri thức và các kĩ thuật tính toán số.
Ngược lại, ta cũng có thể dự đoán rằng việc đưa các yếu tố của lý thuyết thuật toán và lập
trình có thể làm thay đổi việc chủ thể hoá công cụ tính toán số và sự đảm trách của thể chế đối
với việc thu được kết qủa cụ thể trong tính toán.
[11, tr 257]
Trong chương 2 và chương 3 chúng tôi cố gắng tìm hiểu thể chế dạy học Toán học (giai
đoạn 1990 – 2000) và thể chế dạy học Tin học hiện hành quan tâm thế nào đến yếu tố công
cụ, tác động của yếu tố công cụ đối với quá trình dạy học thuật toán.
Kết luận chương 1
Trong chương này chúng tôi đã làm rõ các vấn đề cơ bản sau:
- Thuật toán và các vấn đề có liên quan (biễu diễn thuật toán, tính chất thuật toán) làm
cơ sở so sánh đối chiếu cho chương 2 và chương 3.
- Các phương pháp giải quyết vấn đề trên MT. Việc xây dựng thuật toán hay lời giải
cho vấn đề - bài toán bằng máy tính dựa vào hai phương pháp cơ bản là phương pháp
trực tiếp và phương pháp gián tiếp hay tìm kiếm lời giải. Phương pháp trực tiếp được
sử dụng khi xác định được lời giải qua các công thức, hệ thức, định luật hay qua các
bước căn bản để có được lời giải. Lúc này việc giải quyết vấn đề trên máy tính chỉ là
sự chuyển đổi lời giải từ ngôn ngữ thông thường sang thuật toán rồi từ đó chuyển
sang ngôn ngữ lập trình một ngôn ngữ lập trình nào đó. Khi không xác định được lời
giải qua các công thức, định luật, … thì sử dụng phương pháp gián tiếp thông qua các
nguyên lý của ba phương pháp cơ bản là thử sai, Heuritic và trí tuệ nhân tạo. Tuy
nhiên chúng tôi không tìm thấy một kĩ thuật hay thuật toán nào cho việc xây dựng
thuật toán giải một bài toán.
Từ đó dẫn chúng tôi đến câu hỏi: Trong thể chế dạy học Toán học giai đoạn 1990 –
2000 và thể chế dạy học Tin học phổ thông hiện nay, các yếu tố về thuật toán và phương
pháp xây dựng thuật toán cho một bài toán được giới thiệu như thế nào? Yếu tố công cụ
(MT) có được hai thể chế quan tâm không?
Để trả lời cho câu hỏi đó, chúng tôi tiến hành nghiên cứu chươn 2: Mối quan hệ thể chế với
thuật toán trong dạy học toán PT giai đoạn 1990 – 2000.
30
CHƯƠNG 2: MỐI QUAN HỆ THỂ CHẾ ĐỐI VỚI THUẬT TOÁN
TRONG DẠY HỌC TOÁN PHỔ THÔNG GIAI ĐOẠN 1990 – 2000
Mục tiêu của chương
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 giai
đoạn 1990 – 2000, trả lời cho một phần câu hỏi Q2:
Q2: Mối quan hệ thể chế đố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?
Bây giờ, chúng tôi tiến hành phân tích chương IV, SGK Đại số 10 giai đoạn 1990 –
2000 để tìm hiểu xem các khái niệm mở đầu về tin học và thuật toán được trình bày như thế
nào? Qua đó làm cơ sở để so sánh đối chiếu với khái niệm về thuật toán và các vấn đề có
liên quan được trình bày trong SGK Tin học 10 (Chương trình cải cách 2006). Sỡ dĩ chúng
tôi chọn SGK Đại số 10 giai đoạn 1990 – 2000 là vì trong giai đoạn này Tin học được đưa
vào lồng ghép trong Toán học, cụ thể ở chương IV. Trong giai đoạn trước đó (giai đoạn
trước 1990), Tin học chưa được đưa vào giảng dạy trong chương trình phổ thông, trong
chương trình cải cách 2006 thì Tin học được đưa vào giảng dạy đại trà trong cả nước với vai
trò là môn học chính khóa.
Giai đoạn 1990 – 2000 có ba bộ SGK được lưu hành trong cả nước của các nhóm tác
giả khác nhau, chúng tôi chọn bộ sách do Trần Văn Hạo chủ biên để tiến hành nghiên cứu
của mình vì đây là bộ sách giới thiệu đầy đủ và chi tiết về thuật toán và các vấn đề liên
quan. Cụ thể chúng tôi tiến hành phân tích trên hai tài liệu chính sau:
- Trần Văn Hạo, Phan Trương Dần, Hoàng Mạnh Để, Trần Thành Minh, Đại số 10,
Nxb Giáo dục 1998.
- Trần Văn Hạo, Phan Trương Dần, Trần Thành Minh, Bài tập Đại số 10, Nxb Giáo
dục 1998.
Trong chương trình toán phổ thông giai đoạn 1990 – 2000, một số khái niệm cơ bản
về tin học và thuật toán được giới thiệu trong chương 4: Khái niệm sơ đẳng về tin học và
thuật toán, gồm các bài như sau:
§1 Khái niệm thuật toán
§2 Mô hình hoạt động của máy tính điện tử
31
§3 Ngôn ngữ sơ đồ khối
§4 Sai số và thuật toán xấp xỉ với một sai số cho trước
Trước hết, chúng tôi tìm hiểu khái niệm thuật toán được giới thiệu trong §1 Khái
niệm thuật toán.
2.1. Khái niệm thuật toán
2.1.1 Phần lý thuyết
Trước khi đến với khái niệm thuật toán, Stoán 10 (SGK Đại số 10 – 1998) giới thiệu
mở đầu về thông tin, xử lý thông tin và khái niệm tin học là gì? Bắt đầu với việc giới thiệu
khái niệm Tin học là gì?
Tin học là ngành khoa học nghiên cứu về quá trình lưu trữ và xử lý thông tin một cách tự
động bằng máy tính điện tử.
[6, tr 111]
Vậy làm thế nào mà máy tính có thể lưu trữ và xử lý thông tin một cách tự động? Để
làm được điều đó người ta phải “căn cứ vào bài toán cần giải quyết, tạo ra một loạt các câu
lệnh, mỗi lệnh là một chỉ thị làm một công việc cụ thể nào đó, các lệnh này sắp theo một
trình tự nhất định mô tả quá trình giải quyết bài toán đó rồi đưa vào máy”, [6, tr 111]. Máy
tính sẽ thực hiện các lệnh đó một cách máy móc cho đến kết quả cuối cùng. Chẳng hạn như
việc xác định tính axit của một dung dịch bằng giấy quỳ, dựng đường trung trực của một
đoạn thẳng AB bằng thước kẻ và compa hay giải và biện luận phương trình bậc hai được
minh họa trong các thí dụ trang 111. Các thí dụ này đơn giản là chỉ ra các lệnh một cách
tuần tự để giải quyết các bài toán đó.
Từ việc đưa ra các ví dụ minh họa danh sách hữu hạn các lệnh cần phải làm theo
từng bước để giải một bài toán, Stoán 10 đưa ra khái niệm thuật toán như sau:
Một danh sách hữu hạn các lệnh cần phải làm theo từng bước một để giải quyết một bài toán
được gọi là thuật toán giải bài toán đó.
[6, tr 112]
Lấy ví dụ đối với thuật toán tìm ước chung lớn nhất (UCLN) của hai số. Trước tiên SToán
10 giới thiệu thuật toán giải mà học sinh đã được học trong chương trình toán lớp 6:
32
[6, tr 112]
Stoán 10 cũng nói thêm, thuật toán này tuy đơn giản nhưng khi các số cần tìm UCLN
khá lớn thì ngay ở bước 1 phân tích các số đó thành thừa số nguyên tố đã là rất khó khăn.
Từ đó Stoán 10 giới thiệu một thuật toán khác để tìm UCLN của hai số mà không cần phải
phân tích chúng thành thừa số nguyên tố. Đó chính là thuật toán Euclide, một trong những
thuật toán đầu tiên của toán học.
Việc xây dựng thuật toán bắt đầu bằng việc phân tích: “xuất phát từ việc xét 2 là ước
chung của 90 và 54 thì 2 cũng là ước chung của hiệu hai số đó. Từ đó mọi ước chung của 90
và 54 cũng là ước chung của hiệu 90-54 và ngược lại mọi ước chung của 54 và 36 cũng là
ước chung của tổng 54+36. Từ đó để tìm UCLN của 90 và 54 ta chỉ cần tìm UCLN của 36
và 54 là cặp số nhỏ hơn cặp số ban đầu.”
Trên cơ sở đó, thuật toán Euclide tìm UCLN của hai số được đưa ra như sau:
[6, tr 113 - 114]
Trong thuật toán này, có sự xuất hiện của một phép toán mới đó là phép gán (trong
tin học) ở bước 3 và bước 4. Ở bước 4 là phép gán giá trị một biểu thức cho một biến nhưng
Stoán 10 trình bày phép gán đó bằng cách mô tả quá trình thực hiện của phép gán: “Trừ số
33
thứ nhất cho số thứ hai và thay số thứ nhất bởi hiệu đó”. Ở bước 3, phép gán hoán đổi giá trị
hai biến cho nhau.
Để minh họa cho thuật toán, Stoán 10 giới thiệu bảng theo dõi thuật toán Euclide
trong bảng sau:
[6, tr 114]
Ở đây chúng tôi nhận thấy rằng, mặc dù là minh họa cho các bước thực hiện trong
thuật toán nhưng lại không có sự hiện diện của máy tính.
Một thuật toán khác được giới thiệu trong phần này là thuật toán viết số tìm được
trước tiên trong dãy Phibônaxi lớn hơn 500 (Sau này để cho ngắn gọn chúng tôi gọi tắt đây
là thuật toán dãy số Phibônaxi).
Vì trước đó học sinh chưa được học về dãy số Phibonaxi, nên trước khi tìm thuật
toán, Stoán 10 giới thiệu về dãy số và quy tắc để tìm số hạng tiếp theo khi biết các số hạng
đứng trước nó. Quy tắc đó được thể hiện thông qua bảng sau:
[6, tr 115]
34
Từ quy tắc và bảng mô tả trên xây dựng nên thuật toán viết số tìm được trước tiên
trong dãy Phibonaxi lớn hơn 500 được thể hiện bằng sơ đồ khối.
[6, tr 116]
Với ví dụ này HS được làm quen với một cách diễn tả thuật toán mới, đó là biểu diễn
thuật toán bằng sơ đồ khối: “Sơ đồ khối gồm những khung hay những hộp mà hình dạng
của nó sẽ định rõ loại công việc hay chỉ thị mà máy tính cần thực hiện”.
Stoán 10 không giới thiệu một cách đầy đủ về sơ đồ khối mà chỉ là giải thích cho HS
hiểu về các hình khối được sử dụng trong sơ đồ khối bao gồm: hộp hình thoi, hình chữ nhật
và “bắt đầu”, “kết thúc”. Sau đó, Stoán 10 quay trở lại với thuật toán Euclide được trình bày
ở phần trước nhưng trong phần này được mô tả lại bằng sơ đồ khối.
Ngoài các khái niệm trên, thông qua hai thuật toán được biểu diễn bằng sơ đồ khối
này còn có sự xuất hiện khái niệm mới nữa – khái niệm vòng lặp: “trong sơ đồ khối hình 53
ta thấy mũi tên ra khỏi hộp số 5 và quay lại làm công việc như cũ từ hộp số 2. Phần lặp lại
này tạo thành một vòng lặp tức là một dãy khép kín các công việc, trong ấy có ít nhất một
công việc là phép kiểm nghiệm điều kiện, dùng để xác định sự kết thúc vòng lặp”.
Một điều mà chúng tôi nhận thấy qua hai thuật toán được trình bày dưới dạng sơ đồ
khối nêu trên đó là các công việc được thể hiện trong các hình khối được mô tả rất chi tiết
bằng ngôn ngữ tự nhiên giống như khi diễn tả thuật toán bằng các bước. Nghĩa là việc biểu
diễn thuật toán bằng sơ đồ khối ở đây chỉ là thay các bước bởi các hình khối chứa nội dung
công việc và chiều mũi tên để chỉ thứ tự thực hiện các thao tác mà chưa hề có sự xuất hiện
của các biến, các phép toán. Hơn nữa, Stoán 10 trình bày thuật toán bằng sơ đồ khối trước
rồi mới giải thích các kí hiệu, hình khối dùng trong sơ đồ khối . Như vậy Stoán 10 muốn HS
35
hiểu thế nào là biểu diễn thuật toán bằng sơ đồ khối mà chưa đi sâu vào việc làm thế nào để
biểu diễn thuật toán bằng sơ đồ khối.
Phép gán - thay số này bởi số kia cũng xuất hiện ngầm ẩn trong thuật toán dãy
Phibonaxi, ở bước 4: “giáng cấp số cuối thành áp cuối” và ở bước 5 là “lấy tổng vừa tính coi
là số cuối.”
2.1.2. Phần bài tập
Gồm 6 bài tập như sau:
Bài 1: Nêu các thông tin nhận được khi gặp các biển báo giao thông sau đây
Bài 2: Một học sinh kiểm tra xe đạp để chuẩn bị đi cắm trại ngày chủ nhật, thấy bánh xe bị
xẹp. Bơm lên, bánh xe vẫn bị xẹp. Thông tin nhận được là: ruột xe bị thủng. Có mấy cách xử
lý thông tin đó:
1Mượn chiếc xe khác.
2Mang ra tiệm sửa xe.
3Tự vá lấy ruột xe.
Hãy mô tả chi tiết quy trình xử lí theo cách thứ ba đó (bao gồm: dụng cụ và vật liệu chuẩn bị,
các bước tiến hành theo một thứ tự nhất định).
Bài 3: Hãy trình bày thuật toán giải bài toán sau:
Dựng đường phân giác của một góc xOy bằng thước kẻ và compa.
Bài 4: Viết thuật toán vẽ đồ thị hàm số =y a x căn cứ vào đồ thị hàm số y=ax.
Bài 5: Hai học sinh A và B chơi trò chơi như sau: Có 15 que diêm, hai người lần lượt đi, mỗi
lần mỗi người được lấy 1, 2 hoặc 3 que diêm. Người nào phải lấy que diêm cuối cùng thì
thua. Chứng tỏ rằng nếu học sinh A là người đi trước và đi theo thuật toán sau:
Bước 1: A lấy 2 que diêm.
Bước 2: Sau khi B lấy x que diêm ( )1 3≤ ≤x thì A lấy 4-x que diêm.
Lặp lại bước 2, thì A sẽ thắng, nghĩa là B phải lấy que diêm cuối cùng.
36
Bài 6: Chứng tỏ rằng nếu trong trò chơi ở bài tập 5 lúc đầu có 20 que diêm thì học sinh A
chơi theo thuật toán đó không thắng. Hãy đổi thuật toán để học sinh A đi trước sẽ thắng.
[6, tr 119]
Trong số những bài tập này thì chỉ có bài tập đầu tiên không liên quan đến thuật toán,
các bài tập còn lại đều tập trung hướng vào thuật toán. Cũng giống như cách trình bày khái
niệm thuật toán là bắt đầu làm quen với việc liệt kê một dãy có thứ tự các bước để thực hiện
một công việc nào đó (bài 2), đến việc viết thuật toán giải quyết một bài toán nào đó (bài 3,
4) và sau đó là thực hiện các công việc theo các bước đã chỉ ra. Hơn thế nữa, hai bài tập yêu
cầu học sinh viết thuật toán là các bài toán học sinh đã gặp trong toán học và đã có cách giải
cụ thể, HS chỉ cần dựa trên cách giải đã có liệt kê lại theo thứ tự từng bước tạo nên thuật
toán. Hai bài tập 5 và 6 về trò chơi lấy que diêm, bài toán này HS chưa có công thức hay lời
giải cụ thể. Mặt khác trong nội dung lý thuyết trình bày ở trên cũng chưa trình bày cụ thể
cách thức hay một phương pháp nào để xây dựng thuật toán để giải một bài toán cho nên hai
bài tập này chỉ yêu cầu HS thực hiện theo thuật toán được cho sẵn để đi đến kết quả của trò
chơi và dựa trên thuật toán đó xây dựng thuật toán khác sao cho kết quả trò chơi không thay
đổi khi thay đổi số que diêm.
Các tổ chức toán học gắn với khái niệm thuật toán
• T1: Trình bày (viết) thuật toán giải bài toán mà HS đã biết lời giải toán học.
Ví dụ: Thuật toán Euclide và thuật toán dãy Phibonaxi được giới thiệu trong mục 2.
Khái niệm thuật toán. Sơ đồ khối ở phần b và c.
Bài 3: (Stoán 10 tr 119) Hãy trình bày thuật toán giải bài toán sau:
Dựng đường phân giác của một góc xOy bằng thước kẻ và compa.
Lời giải mong đợi được Sách bài tập toán 10 đưa ra ở trang 182 như sau:
Thuật toán dựng đường phân giác của góc xOy bằng thước kẻ và compa:
1. Đặt đầu nhọn ccompa tại O.
2. Mở compa một độ tùy ý và quay compa cắt Ox tại A, Oy tại B.
3. Đặt đầu nhọn tại A, đầu kia tại B và quay compa.
4. Đặt đầu nhọn tại B, đầu kia tại A và quay compa.
5. Dùng thước kẻ nối giao điểm của hai đường tròn với O (ba điểm này thẳng hàng).
Đó là đường phân giác.
[7, tr 182]
Bài 4: (Stoán 10 tr 119) Viết thuật toán vẽ đồ thị hàm số =y a x căn cứ vào đồ thị
hàm số y=ax.
37
Ngoài ra ở phần ôn tập chương, có 4 bài tập yêu cầu viết bằng lời các lệnh liên tiếp của
thuật toán.
Dựa trên lời giải được đưa ra ở Sách bài tập Toán 10, chúng tôi đưa ra kĩ thuật như
sau:
Kĩ thuật 1τ :
- Tìm lời giải toán học của bài toán
- Chia lời giải tìm được thành các bước nhỏ theo trình tự nhất định ta có được
thuật toán giải bài toán đó được biểu diễn dưới dạng liệt kê các bước.
Công nghệ 1θ : khái niệm thuật toán.
• T2: Chạy thuật toán (Thực hiện thuật toán)
Các bài tập liên quan đến kiểu nhiệm vụ này:
Bài 6: Chứng tỏ rằng nếu trong trò chơi ở bài tập 5 lúc đầu có 20 que diêm thì học
sinh A chơi theo thuật toán đó không thắng. Hãy đổi thuật toán để học sinh A đi trước sẽ
thắng.
Đối với kiểu nhiệm vụ này, kĩ thuật khá đơn giản là: lần lượt thực hiện các bước theo
trình từ được mô tả trong thuật toán và ghi lại kết quả sau từng bước thực hiện.
• T3: Chứng minh tính đúng đắn của thuật toán. Nghĩa là kiểm tra từ dữ liệu vào
của bài toán, sau khi thuật toán ta nhận được kết quả như mong muốn.
Bài toán thuộc kiểu nhiệm vụ này:
Bài 5: Hai học sinh A và B chơi trò chơi như sau: Có 15 que diêm, hai người lần lượt
đi, mỗi lần mỗi người được lấy 1, 2 hoặc 3 que diêm. Người nào phải lấy que diêm cuối
cùng thì thua. Chứng tỏ rằng nếu học sinh A là người đi trước và đi theo thuật toán sau:
Bước 1: A lấy 2 que diêm.
Bước 2: Sau khi B lấy x que diêm ( )1 3≤ ≤x thì A lấy 4-x que diêm.
Lặp lại bước 2, thì A sẽ thắng, nghĩa là B phải lấy que diêm cuối cùng.
Lời giải mong đợi được Sách bài tập toán 10 đưa ra ở trang 182 như sau:
5.Học sinh A muốn thắng thì phải buộc cho học sinh B lấy que diêm cuối cùng.
Sau bước 1, số que diêm còn lại là 13.
38
Sau bước 2, khi B đã bốc x que và A lấy 4-x que thì còn lại 9 que và đến lượt B. Tiếp tục
bước 2 một lần nữa, số que diêm còn lại là 5 que và lại đến lượt B.
Tiếp tục bước 2 một lần nữa thì còn lại một que diêm và B phải lấy que diêm cuối cùng này.
[7, tr 182]
Kĩ thuật và Công nghệ: vắng mặt.
• Nhận xét:
- Như vậy phần này Stoán 10 đã giới thiệu các vấn đề cơ bản nhất về thuật toán, biễu
diễn thuật toán.
- Các bài toán được giới thiệu là những bài toán đã có lời giải toán học. Để xây dựng
thuật toán, từ lời giải đó chia thành các bước theo một thứ tự nhất định.
- Có hai tổ chức toán học gắn liền với ba kiểu nhiệm vụ viết thuật toán, chạy thuật
toán và chứng minh tính đúng đắn của thuật toán. Trong đó, đối với kiểu nhiệm vụ
viết thuật toán, các bài toán đơn giản đã có lời giải toán học.
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
TỔNG ←CUỐI + Á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
0ax 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 0a = và 0a ≠ .
• 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 1 2,x x , 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 , 0≠a 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
2
0, 0+ + > ≠ax bx c a
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.
• Nhận xét:
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?
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học
Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học

More Related Content

What's hot

Một số biện pháp giúp học sinh trung bình, yếu học tốt môn hóa học lớp 11 chư...
Một số biện pháp giúp học sinh trung bình, yếu học tốt môn hóa học lớp 11 chư...Một số biện pháp giúp học sinh trung bình, yếu học tốt môn hóa học lớp 11 chư...
Một số biện pháp giúp học sinh trung bình, yếu học tốt môn hóa học lớp 11 chư...https://www.facebook.com/garmentspace
 
XÂY DỰNG VÀ SỬ DỤNG BÀI GIẢNG E-LEARNING TRONG DẠY HỌC ĐỊA LÍ ĐỊA PHƯƠNG THÀN...
XÂY DỰNG VÀ SỬ DỤNG BÀI GIẢNG E-LEARNING TRONG DẠY HỌC ĐỊA LÍ ĐỊA PHƯƠNG THÀN...XÂY DỰNG VÀ SỬ DỤNG BÀI GIẢNG E-LEARNING TRONG DẠY HỌC ĐỊA LÍ ĐỊA PHƯƠNG THÀN...
XÂY DỰNG VÀ SỬ DỤNG BÀI GIẢNG E-LEARNING TRONG DẠY HỌC ĐỊA LÍ ĐỊA PHƯƠNG THÀN...nataliej4
 
Một số biện pháp nâng cao hiệu quả dạy học hóa học chương oxi lưu huỳnh lớp...
Một số biện pháp nâng cao hiệu quả dạy học hóa học chương oxi   lưu huỳnh lớp...Một số biện pháp nâng cao hiệu quả dạy học hóa học chương oxi   lưu huỳnh lớp...
Một số biện pháp nâng cao hiệu quả dạy học hóa học chương oxi lưu huỳnh lớp...https://www.facebook.com/garmentspace
 
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...jackjohn45
 
Luận văn: Tổ chức hoạt động trải nghiệm sáng tạo trong dạy học môn Tự nhiên v...
Luận văn: Tổ chức hoạt động trải nghiệm sáng tạo trong dạy học môn Tự nhiên v...Luận văn: Tổ chức hoạt động trải nghiệm sáng tạo trong dạy học môn Tự nhiên v...
Luận văn: Tổ chức hoạt động trải nghiệm sáng tạo trong dạy học môn Tự nhiên v...Viết thuê trọn gói ZALO 0934573149
 
đề Tài nghiên cứu khoa học sư phạm ứng dụng nâng cao hứng thú học tập môn toá...
đề Tài nghiên cứu khoa học sư phạm ứng dụng nâng cao hứng thú học tập môn toá...đề Tài nghiên cứu khoa học sư phạm ứng dụng nâng cao hứng thú học tập môn toá...
đề Tài nghiên cứu khoa học sư phạm ứng dụng nâng cao hứng thú học tập môn toá...jackjohn45
 
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...https://www.facebook.com/garmentspace
 
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...https://www.facebook.com/garmentspace
 
Xây dựng dự án thư viện điện tử cho các trường trung học phổ thông và tiểu học
Xây dựng dự án thư viện điện tử cho các trường trung học phổ thông và tiểu họcXây dựng dự án thư viện điện tử cho các trường trung học phổ thông và tiểu học
Xây dựng dự án thư viện điện tử cho các trường trung học phổ thông và tiểu họcsunflower_micro
 
Xây dựng tiến trình dạy tự học một số kiến thức trong phần “quang hình” vật...
Xây dựng tiến trình dạy   tự học một số kiến thức trong phần “quang hình” vật...Xây dựng tiến trình dạy   tự học một số kiến thức trong phần “quang hình” vật...
Xây dựng tiến trình dạy tự học một số kiến thức trong phần “quang hình” vật...https://www.facebook.com/garmentspace
 

What's hot (14)

Bồi dưỡng năng lực giải quyết vấn đề cho học sinh trong dạy học chương mắt
Bồi dưỡng năng lực giải quyết vấn đề cho học sinh trong dạy học chương mắtBồi dưỡng năng lực giải quyết vấn đề cho học sinh trong dạy học chương mắt
Bồi dưỡng năng lực giải quyết vấn đề cho học sinh trong dạy học chương mắt
 
Một số biện pháp giúp học sinh trung bình, yếu học tốt môn hóa học lớp 11 chư...
Một số biện pháp giúp học sinh trung bình, yếu học tốt môn hóa học lớp 11 chư...Một số biện pháp giúp học sinh trung bình, yếu học tốt môn hóa học lớp 11 chư...
Một số biện pháp giúp học sinh trung bình, yếu học tốt môn hóa học lớp 11 chư...
 
Đề tài: Giáo dục hoà nhập cho trẻ tự kỉ khu vực miền núi phía Bắc
Đề tài: Giáo dục hoà nhập cho trẻ tự kỉ khu vực miền núi phía BắcĐề tài: Giáo dục hoà nhập cho trẻ tự kỉ khu vực miền núi phía Bắc
Đề tài: Giáo dục hoà nhập cho trẻ tự kỉ khu vực miền núi phía Bắc
 
XÂY DỰNG VÀ SỬ DỤNG BÀI GIẢNG E-LEARNING TRONG DẠY HỌC ĐỊA LÍ ĐỊA PHƯƠNG THÀN...
XÂY DỰNG VÀ SỬ DỤNG BÀI GIẢNG E-LEARNING TRONG DẠY HỌC ĐỊA LÍ ĐỊA PHƯƠNG THÀN...XÂY DỰNG VÀ SỬ DỤNG BÀI GIẢNG E-LEARNING TRONG DẠY HỌC ĐỊA LÍ ĐỊA PHƯƠNG THÀN...
XÂY DỰNG VÀ SỬ DỤNG BÀI GIẢNG E-LEARNING TRONG DẠY HỌC ĐỊA LÍ ĐỊA PHƯƠNG THÀN...
 
Một số biện pháp nâng cao hiệu quả dạy học hóa học chương oxi lưu huỳnh lớp...
Một số biện pháp nâng cao hiệu quả dạy học hóa học chương oxi   lưu huỳnh lớp...Một số biện pháp nâng cao hiệu quả dạy học hóa học chương oxi   lưu huỳnh lớp...
Một số biện pháp nâng cao hiệu quả dạy học hóa học chương oxi lưu huỳnh lớp...
 
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...
 
Luận văn: Tổ chức hoạt động trải nghiệm sáng tạo trong dạy học môn Tự nhiên v...
Luận văn: Tổ chức hoạt động trải nghiệm sáng tạo trong dạy học môn Tự nhiên v...Luận văn: Tổ chức hoạt động trải nghiệm sáng tạo trong dạy học môn Tự nhiên v...
Luận văn: Tổ chức hoạt động trải nghiệm sáng tạo trong dạy học môn Tự nhiên v...
 
đề Tài nghiên cứu khoa học sư phạm ứng dụng nâng cao hứng thú học tập môn toá...
đề Tài nghiên cứu khoa học sư phạm ứng dụng nâng cao hứng thú học tập môn toá...đề Tài nghiên cứu khoa học sư phạm ứng dụng nâng cao hứng thú học tập môn toá...
đề Tài nghiên cứu khoa học sư phạm ứng dụng nâng cao hứng thú học tập môn toá...
 
Phát triển năng lực nhận thức thế giới theo quan điểm không gian
Phát triển năng lực nhận thức thế giới theo quan điểm không gianPhát triển năng lực nhận thức thế giới theo quan điểm không gian
Phát triển năng lực nhận thức thế giới theo quan điểm không gian
 
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...
 
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
 
Xây dựng dự án thư viện điện tử cho các trường trung học phổ thông và tiểu học
Xây dựng dự án thư viện điện tử cho các trường trung học phổ thông và tiểu họcXây dựng dự án thư viện điện tử cho các trường trung học phổ thông và tiểu học
Xây dựng dự án thư viện điện tử cho các trường trung học phổ thông và tiểu học
 
Đề tài: Dạy mỹ thuật theo hướng tiếp cận phát triển năng lực, HOT
Đề tài: Dạy mỹ thuật theo hướng tiếp cận phát triển năng lực, HOTĐề tài: Dạy mỹ thuật theo hướng tiếp cận phát triển năng lực, HOT
Đề tài: Dạy mỹ thuật theo hướng tiếp cận phát triển năng lực, HOT
 
Xây dựng tiến trình dạy tự học một số kiến thức trong phần “quang hình” vật...
Xây dựng tiến trình dạy   tự học một số kiến thức trong phần “quang hình” vật...Xây dựng tiến trình dạy   tự học một số kiến thức trong phần “quang hình” vật...
Xây dựng tiến trình dạy tự học một số kiến thức trong phần “quang hình” vật...
 

Similar to Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học

dạy học hệ thức lượng trong tam giác theo các bước khảo sát toán học.pdf
dạy học hệ thức lượng trong tam giác theo các bước khảo sát toán học.pdfdạy học hệ thức lượng trong tam giác theo các bước khảo sát toán học.pdf
dạy học hệ thức lượng trong tam giác theo các bước khảo sát toán học.pdfSngNguyn718617
 
Luận văn: Sử dụng tiếp cận đa chiều để hiểu khái niệm trong đánh giá trình độ...
Luận văn: Sử dụng tiếp cận đa chiều để hiểu khái niệm trong đánh giá trình độ...Luận văn: Sử dụng tiếp cận đa chiều để hiểu khái niệm trong đánh giá trình độ...
Luận văn: Sử dụng tiếp cận đa chiều để hiểu khái niệm trong đánh giá trình độ...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
SÁNG KIẾN SỬ DỤNG KỸ THUẬT 5W1H TRONG DẠY HỌC CHỦ ĐỀ 6 MỘT SỐ NỀN VĂN MINH TR...
SÁNG KIẾN SỬ DỤNG KỸ THUẬT 5W1H TRONG DẠY HỌC CHỦ ĐỀ 6 MỘT SỐ NỀN VĂN MINH TR...SÁNG KIẾN SỬ DỤNG KỸ THUẬT 5W1H TRONG DẠY HỌC CHỦ ĐỀ 6 MỘT SỐ NỀN VĂN MINH TR...
SÁNG KIẾN SỬ DỤNG KỸ THUẬT 5W1H TRONG DẠY HỌC CHỦ ĐỀ 6 MỘT SỐ NỀN VĂN MINH TR...Nguyen Thanh Tu Collection
 
SÁNG KIẾN DẠY HỌC STEM ĐỂ THIẾT KẾ MỘT SỐ CHỦ ĐỀ TRONG DẠY – HỌC CHƯƠNG TRÌNH...
SÁNG KIẾN DẠY HỌC STEM ĐỂ THIẾT KẾ MỘT SỐ CHỦ ĐỀ TRONG DẠY – HỌC CHƯƠNG TRÌNH...SÁNG KIẾN DẠY HỌC STEM ĐỂ THIẾT KẾ MỘT SỐ CHỦ ĐỀ TRONG DẠY – HỌC CHƯƠNG TRÌNH...
SÁNG KIẾN DẠY HỌC STEM ĐỂ THIẾT KẾ MỘT SỐ CHỦ ĐỀ TRONG DẠY – HỌC CHƯƠNG TRÌNH...Nguyen Thanh Tu Collection
 
DẠY HỌC SINH HỌC THPT THEO ĐỊNH HƯỚNG STEM (GDPT 2018) Bài học STEM 10, 11 Cấ...
DẠY HỌC SINH HỌC THPT THEO ĐỊNH HƯỚNG STEM (GDPT 2018) Bài học STEM 10, 11 Cấ...DẠY HỌC SINH HỌC THPT THEO ĐỊNH HƯỚNG STEM (GDPT 2018) Bài học STEM 10, 11 Cấ...
DẠY HỌC SINH HỌC THPT THEO ĐỊNH HƯỚNG STEM (GDPT 2018) Bài học STEM 10, 11 Cấ...Nguyen Thanh Tu Collection
 
MỘT SỐ BIỆN PHÁP RÈN LUYỆN NĂNG LỰC GIAO TIẾP TOÁN HỌC CHO HỌC SINH QUA DẠY H...
MỘT SỐ BIỆN PHÁP RÈN LUYỆN NĂNG LỰC GIAO TIẾP TOÁN HỌC CHO HỌC SINH QUA DẠY H...MỘT SỐ BIỆN PHÁP RÈN LUYỆN NĂNG LỰC GIAO TIẾP TOÁN HỌC CHO HỌC SINH QUA DẠY H...
MỘT SỐ BIỆN PHÁP RÈN LUYỆN NĂNG LỰC GIAO TIẾP TOÁN HỌC CHO HỌC SINH QUA DẠY H...Nguyen Thanh Tu Collection
 
Thiết kế bài toán hình học gắn với thực tiễn trong dạy học hình học ở trường ...
Thiết kế bài toán hình học gắn với thực tiễn trong dạy học hình học ở trường ...Thiết kế bài toán hình học gắn với thực tiễn trong dạy học hình học ở trường ...
Thiết kế bài toán hình học gắn với thực tiễn trong dạy học hình học ở trường ...Man_Ebook
 
SÁNG KIẾN PHÁT TRIỂN NĂNG LỰC TOÁN HỌC VÀO THỰC TIỄN NHẰM TĂNG HỨNG THÚ HỌC T...
SÁNG KIẾN PHÁT TRIỂN NĂNG LỰC TOÁN HỌC VÀO THỰC TIỄN NHẰM TĂNG HỨNG THÚ HỌC T...SÁNG KIẾN PHÁT TRIỂN NĂNG LỰC TOÁN HỌC VÀO THỰC TIỄN NHẰM TĂNG HỨNG THÚ HỌC T...
SÁNG KIẾN PHÁT TRIỂN NĂNG LỰC TOÁN HỌC VÀO THỰC TIỄN NHẰM TĂNG HỨNG THÚ HỌC T...Nguyen Thanh Tu Collection
 
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...https://www.facebook.com/garmentspace
 
Luận văn: Tổ chức dạy học khám phá phần " Quang Hình Học" Vật Lý 11 với sự hỗ...
Luận văn: Tổ chức dạy học khám phá phần " Quang Hình Học" Vật Lý 11 với sự hỗ...Luận văn: Tổ chức dạy học khám phá phần " Quang Hình Học" Vật Lý 11 với sự hỗ...
Luận văn: Tổ chức dạy học khám phá phần " Quang Hình Học" Vật Lý 11 với sự hỗ...Dịch vụ viết bài trọn gói ZALO: 0936 885 877
 

Similar to Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học (20)

dạy học hệ thức lượng trong tam giác theo các bước khảo sát toán học.pdf
dạy học hệ thức lượng trong tam giác theo các bước khảo sát toán học.pdfdạy học hệ thức lượng trong tam giác theo các bước khảo sát toán học.pdf
dạy học hệ thức lượng trong tam giác theo các bước khảo sát toán học.pdf
 
Luận văn: Sử dụng tiếp cận đa chiều để hiểu khái niệm trong đánh giá trình độ...
Luận văn: Sử dụng tiếp cận đa chiều để hiểu khái niệm trong đánh giá trình độ...Luận văn: Sử dụng tiếp cận đa chiều để hiểu khái niệm trong đánh giá trình độ...
Luận văn: Sử dụng tiếp cận đa chiều để hiểu khái niệm trong đánh giá trình độ...
 
SÁNG KIẾN SỬ DỤNG KỸ THUẬT 5W1H TRONG DẠY HỌC CHỦ ĐỀ 6 MỘT SỐ NỀN VĂN MINH TR...
SÁNG KIẾN SỬ DỤNG KỸ THUẬT 5W1H TRONG DẠY HỌC CHỦ ĐỀ 6 MỘT SỐ NỀN VĂN MINH TR...SÁNG KIẾN SỬ DỤNG KỸ THUẬT 5W1H TRONG DẠY HỌC CHỦ ĐỀ 6 MỘT SỐ NỀN VĂN MINH TR...
SÁNG KIẾN SỬ DỤNG KỸ THUẬT 5W1H TRONG DẠY HỌC CHỦ ĐỀ 6 MỘT SỐ NỀN VĂN MINH TR...
 
Luận văn: Phát triển năng lực suy luận thống kê cho học sinh lớp 10
Luận văn: Phát triển năng lực suy luận thống kê cho học sinh lớp 10Luận văn: Phát triển năng lực suy luận thống kê cho học sinh lớp 10
Luận văn: Phát triển năng lực suy luận thống kê cho học sinh lớp 10
 
Luận văn: Phát triển năng lực suy luận thống kê cho học sinh lớp 10
Luận văn: Phát triển năng lực suy luận thống kê cho học sinh lớp 10Luận văn: Phát triển năng lực suy luận thống kê cho học sinh lớp 10
Luận văn: Phát triển năng lực suy luận thống kê cho học sinh lớp 10
 
SÁNG KIẾN DẠY HỌC STEM ĐỂ THIẾT KẾ MỘT SỐ CHỦ ĐỀ TRONG DẠY – HỌC CHƯƠNG TRÌNH...
SÁNG KIẾN DẠY HỌC STEM ĐỂ THIẾT KẾ MỘT SỐ CHỦ ĐỀ TRONG DẠY – HỌC CHƯƠNG TRÌNH...SÁNG KIẾN DẠY HỌC STEM ĐỂ THIẾT KẾ MỘT SỐ CHỦ ĐỀ TRONG DẠY – HỌC CHƯƠNG TRÌNH...
SÁNG KIẾN DẠY HỌC STEM ĐỂ THIẾT KẾ MỘT SỐ CHỦ ĐỀ TRONG DẠY – HỌC CHƯƠNG TRÌNH...
 
Luận Văn Thạc Sĩ Giáo Dục Học Chuyên Ngành Vật Lý
Luận Văn Thạc Sĩ Giáo Dục Học Chuyên Ngành Vật LýLuận Văn Thạc Sĩ Giáo Dục Học Chuyên Ngành Vật Lý
Luận Văn Thạc Sĩ Giáo Dục Học Chuyên Ngành Vật Lý
 
DẠY HỌC SINH HỌC THPT THEO ĐỊNH HƯỚNG STEM (GDPT 2018) Bài học STEM 10, 11 Cấ...
DẠY HỌC SINH HỌC THPT THEO ĐỊNH HƯỚNG STEM (GDPT 2018) Bài học STEM 10, 11 Cấ...DẠY HỌC SINH HỌC THPT THEO ĐỊNH HƯỚNG STEM (GDPT 2018) Bài học STEM 10, 11 Cấ...
DẠY HỌC SINH HỌC THPT THEO ĐỊNH HƯỚNG STEM (GDPT 2018) Bài học STEM 10, 11 Cấ...
 
MỘT SỐ BIỆN PHÁP RÈN LUYỆN NĂNG LỰC GIAO TIẾP TOÁN HỌC CHO HỌC SINH QUA DẠY H...
MỘT SỐ BIỆN PHÁP RÈN LUYỆN NĂNG LỰC GIAO TIẾP TOÁN HỌC CHO HỌC SINH QUA DẠY H...MỘT SỐ BIỆN PHÁP RÈN LUYỆN NĂNG LỰC GIAO TIẾP TOÁN HỌC CHO HỌC SINH QUA DẠY H...
MỘT SỐ BIỆN PHÁP RÈN LUYỆN NĂNG LỰC GIAO TIẾP TOÁN HỌC CHO HỌC SINH QUA DẠY H...
 
Thiết kế bài toán hình học gắn với thực tiễn trong dạy học hình học ở trường ...
Thiết kế bài toán hình học gắn với thực tiễn trong dạy học hình học ở trường ...Thiết kế bài toán hình học gắn với thực tiễn trong dạy học hình học ở trường ...
Thiết kế bài toán hình học gắn với thực tiễn trong dạy học hình học ở trường ...
 
SÁNG KIẾN PHÁT TRIỂN NĂNG LỰC TOÁN HỌC VÀO THỰC TIỄN NHẰM TĂNG HỨNG THÚ HỌC T...
SÁNG KIẾN PHÁT TRIỂN NĂNG LỰC TOÁN HỌC VÀO THỰC TIỄN NHẰM TĂNG HỨNG THÚ HỌC T...SÁNG KIẾN PHÁT TRIỂN NĂNG LỰC TOÁN HỌC VÀO THỰC TIỄN NHẰM TĂNG HỨNG THÚ HỌC T...
SÁNG KIẾN PHÁT TRIỂN NĂNG LỰC TOÁN HỌC VÀO THỰC TIỄN NHẰM TĂNG HỨNG THÚ HỌC T...
 
Luận văn: Khả năng phát triển bài toán mới của học sinh khi học hình học ở t...
Luận văn:  Khả năng phát triển bài toán mới của học sinh khi học hình học ở t...Luận văn:  Khả năng phát triển bài toán mới của học sinh khi học hình học ở t...
Luận văn: Khả năng phát triển bài toán mới của học sinh khi học hình học ở t...
 
Luận văn: Phát triển bài toán mới của học sinh khi học hình học, HAY
Luận văn: Phát triển bài toán mới của học sinh khi học hình học, HAYLuận văn: Phát triển bài toán mới của học sinh khi học hình học, HAY
Luận văn: Phát triển bài toán mới của học sinh khi học hình học, HAY
 
Đề tài: Sử dụng bài FCI để khảo sát sai lầm của học sinh, HOT
Đề tài: Sử dụng bài FCI để khảo sát sai lầm của học sinh, HOTĐề tài: Sử dụng bài FCI để khảo sát sai lầm của học sinh, HOT
Đề tài: Sử dụng bài FCI để khảo sát sai lầm của học sinh, HOT
 
Đề tài khảo sát học sinh về các định luật của Newton, ĐIỂM 8, HAY
Đề tài  khảo sát học sinh về các định luật của Newton, ĐIỂM 8, HAYĐề tài  khảo sát học sinh về các định luật của Newton, ĐIỂM 8, HAY
Đề tài khảo sát học sinh về các định luật của Newton, ĐIỂM 8, HAY
 
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
Sử dụng bài fci để khảo sát các quan niệm sai lầm của học sinh thpt và giáo v...
 
Luận văn: Thiết kế và sử dụng e-book hỗ trợ quá trình dạy học, 9đ
Luận văn: Thiết kế và sử dụng e-book hỗ trợ quá trình dạy học, 9đLuận văn: Thiết kế và sử dụng e-book hỗ trợ quá trình dạy học, 9đ
Luận văn: Thiết kế và sử dụng e-book hỗ trợ quá trình dạy học, 9đ
 
Luận văn: Nghiên cứu về cấp số nhân trong dạy Toán THPT, HOT
Luận văn: Nghiên cứu về cấp số nhân trong dạy Toán THPT, HOTLuận văn: Nghiên cứu về cấp số nhân trong dạy Toán THPT, HOT
Luận văn: Nghiên cứu về cấp số nhân trong dạy Toán THPT, HOT
 
Luận văn: Tổ chức dạy học khám phá phần Quang Hình Học Vật Lý 11
Luận văn: Tổ chức dạy học khám phá phần Quang Hình Học Vật Lý 11Luận văn: Tổ chức dạy học khám phá phần Quang Hình Học Vật Lý 11
Luận văn: Tổ chức dạy học khám phá phần Quang Hình Học Vật Lý 11
 
Luận văn: Tổ chức dạy học khám phá phần " Quang Hình Học" Vật Lý 11 với sự hỗ...
Luận văn: Tổ chức dạy học khám phá phần " Quang Hình Học" Vật Lý 11 với sự hỗ...Luận văn: Tổ chức dạy học khám phá phần " Quang Hình Học" Vật Lý 11 với sự hỗ...
Luận văn: Tổ chức dạy học khám phá phần " Quang Hình Học" Vật Lý 11 với sự hỗ...
 

More from Dịch vụ viết bài trọn gói ZALO 0917193864

Danh sách 200 đề tài luận văn thạc sĩ tài chính ngân hàng, từ sinh viên giỏi
Danh sách 200 đề tài luận văn thạc sĩ tài chính ngân hàng, từ sinh viên giỏiDanh sách 200 đề tài luận văn thạc sĩ tài chính ngân hàng, từ sinh viên giỏi
Danh sách 200 đề tài luận văn thạc sĩ tài chính ngân hàng, từ sinh viên giỏiDịch vụ viết bài trọn gói ZALO 0917193864
 

More from Dịch vụ viết bài trọn gói ZALO 0917193864 (20)

200 de tai khoa luạn tot nghiep nganh tam ly hoc
200 de tai khoa luạn tot nghiep nganh tam ly hoc200 de tai khoa luạn tot nghiep nganh tam ly hoc
200 de tai khoa luạn tot nghiep nganh tam ly hoc
 
Danh sách 200 đề tài luận văn tốt nghiệp ngành khách sạn,10 điểm
Danh sách 200 đề tài luận văn tốt nghiệp ngành khách sạn,10 điểmDanh sách 200 đề tài luận văn tốt nghiệp ngành khách sạn,10 điểm
Danh sách 200 đề tài luận văn tốt nghiệp ngành khách sạn,10 điểm
 
Danh sách 200 đề tài luận văn thạc sĩ ngân hàng, hay nhất
Danh sách 200 đề tài luận văn thạc sĩ ngân hàng, hay nhấtDanh sách 200 đề tài luận văn thạc sĩ ngân hàng, hay nhất
Danh sách 200 đề tài luận văn thạc sĩ ngân hàng, hay nhất
 
Danh sách 200 đề tài luận văn thạc sĩ ngữ văn, hay nhất
Danh sách 200 đề tài luận văn thạc sĩ ngữ văn, hay nhấtDanh sách 200 đề tài luận văn thạc sĩ ngữ văn, hay nhất
Danh sách 200 đề tài luận văn thạc sĩ ngữ văn, hay nhất
 
Danh sách 200 đề tài luận văn thạc sĩ ô tô, 10 điểm
Danh sách 200 đề tài luận văn thạc sĩ ô tô, 10 điểmDanh sách 200 đề tài luận văn thạc sĩ ô tô, 10 điểm
Danh sách 200 đề tài luận văn thạc sĩ ô tô, 10 điểm
 
Danh sách 200 đề tài luận văn thạc sĩ quản lý giáo dục mầm non, mới nhất
Danh sách 200 đề tài luận văn thạc sĩ quản lý giáo dục mầm non, mới nhấtDanh sách 200 đề tài luận văn thạc sĩ quản lý giáo dục mầm non, mới nhất
Danh sách 200 đề tài luận văn thạc sĩ quản lý giáo dục mầm non, mới nhất
 
Danh sách 200 đề tài luận văn thạc sĩ quản trị rủi ro, hay nhất
Danh sách 200 đề tài luận văn thạc sĩ quản trị rủi ro, hay nhấtDanh sách 200 đề tài luận văn thạc sĩ quản trị rủi ro, hay nhất
Danh sách 200 đề tài luận văn thạc sĩ quản trị rủi ro, hay nhất
 
Danh sách 200 đề tài luận văn thạc sĩ tài chính ngân hàng, từ sinh viên giỏi
Danh sách 200 đề tài luận văn thạc sĩ tài chính ngân hàng, từ sinh viên giỏiDanh sách 200 đề tài luận văn thạc sĩ tài chính ngân hàng, từ sinh viên giỏi
Danh sách 200 đề tài luận văn thạc sĩ tài chính ngân hàng, từ sinh viên giỏi
 
Danh sách 200 đề tài luận văn thạc sĩ tiêm chủng mở rộng, 10 điểm
Danh sách 200 đề tài luận văn thạc sĩ tiêm chủng mở rộng, 10 điểmDanh sách 200 đề tài luận văn thạc sĩ tiêm chủng mở rộng, 10 điểm
Danh sách 200 đề tài luận văn thạc sĩ tiêm chủng mở rộng, 10 điểm
 
danh sach 200 de tai luan van thac si ve rac nhua
danh sach 200 de tai luan van thac si ve rac nhuadanh sach 200 de tai luan van thac si ve rac nhua
danh sach 200 de tai luan van thac si ve rac nhua
 
Kinh Nghiệm Chọn 200 Đề Tài Tiểu Luận Chuyên Viên Chính Trị Hay Nhất
Kinh Nghiệm Chọn 200 Đề Tài Tiểu Luận Chuyên Viên Chính Trị Hay NhấtKinh Nghiệm Chọn 200 Đề Tài Tiểu Luận Chuyên Viên Chính Trị Hay Nhất
Kinh Nghiệm Chọn 200 Đề Tài Tiểu Luận Chuyên Viên Chính Trị Hay Nhất
 
Kho 200 Đề Tài Bài Luận Văn Tốt Nghiệp Ngành Kế Toán, 9 điểm
Kho 200 Đề Tài Bài Luận Văn Tốt Nghiệp Ngành Kế Toán, 9 điểmKho 200 Đề Tài Bài Luận Văn Tốt Nghiệp Ngành Kế Toán, 9 điểm
Kho 200 Đề Tài Bài Luận Văn Tốt Nghiệp Ngành Kế Toán, 9 điểm
 
Kho 200 Đề Tài Luận Văn Ngành Thủy Sản, từ các trường đại học
Kho 200 Đề Tài Luận Văn Ngành Thủy Sản, từ các trường đại họcKho 200 Đề Tài Luận Văn Ngành Thủy Sản, từ các trường đại học
Kho 200 Đề Tài Luận Văn Ngành Thủy Sản, từ các trường đại học
 
Kho 200 đề tài luận văn ngành thương mại điện tử
Kho 200 đề tài luận văn ngành thương mại điện tửKho 200 đề tài luận văn ngành thương mại điện tử
Kho 200 đề tài luận văn ngành thương mại điện tử
 
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểmKho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
 
Kho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Giáo Dục Tiểu Học
Kho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Giáo Dục Tiểu HọcKho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Giáo Dục Tiểu Học
Kho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Giáo Dục Tiểu Học
 
Kho 200 đề tài luận văn tốt nghiệp ngành luật, hay nhất
Kho 200 đề tài luận văn tốt nghiệp ngành luật, hay nhấtKho 200 đề tài luận văn tốt nghiệp ngành luật, hay nhất
Kho 200 đề tài luận văn tốt nghiệp ngành luật, hay nhất
 
Kho 200 đề tài luận văn tốt nghiệp ngành quản trị văn phòng, 9 điểm
Kho 200 đề tài luận văn tốt nghiệp ngành quản trị văn phòng, 9 điểmKho 200 đề tài luận văn tốt nghiệp ngành quản trị văn phòng, 9 điểm
Kho 200 đề tài luận văn tốt nghiệp ngành quản trị văn phòng, 9 điểm
 
Kho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Sư Phạm Tin Học
Kho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Sư Phạm Tin HọcKho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Sư Phạm Tin Học
Kho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Sư Phạm Tin Học
 
Kho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Xuất Nhập Khẩu
Kho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Xuất Nhập KhẩuKho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Xuất Nhập Khẩu
Kho 200 Đề Tài Luận Văn Tốt Nghiệp Ngành Xuất Nhập Khẩu
 

Recently uploaded

60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docxasdnguyendinhdang
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...ChuThNgnFEFPLHN
 
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...Nguyen Thanh Tu Collection
 
[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...
[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...
[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...VnTh47
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfXem Số Mệnh
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Chương 6: Dân tộc - Chủ nghĩa xã hội khoa học
Chương 6: Dân tộc - Chủ nghĩa xã hội khoa họcChương 6: Dân tộc - Chủ nghĩa xã hội khoa học
Chương 6: Dân tộc - Chủ nghĩa xã hội khoa họchelenafalet
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phươnghazzthuan
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoidnghia2002
 
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem Số Mệnh
 
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdfGiáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf4pdx29gsr9
 
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vnGiới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vnKabala
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận Hạn
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận HạnTử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận Hạn
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận HạnKabala
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...Nguyen Thanh Tu Collection
 
Hướng dẫn viết tiểu luận cuối khóa lớp bồi dưỡng chức danh biên tập viên hạng 3
Hướng dẫn viết tiểu luận cuối khóa lớp bồi dưỡng chức danh biên tập viên hạng 3Hướng dẫn viết tiểu luận cuối khóa lớp bồi dưỡng chức danh biên tập viên hạng 3
Hướng dẫn viết tiểu luận cuối khóa lớp bồi dưỡng chức danh biên tập viên hạng 3lamluanvan.net Viết thuê luận văn
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfXem Số Mệnh
 

Recently uploaded (20)

60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
 
[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...
[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...
[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Chương 6: Dân tộc - Chủ nghĩa xã hội khoa học
Chương 6: Dân tộc - Chủ nghĩa xã hội khoa họcChương 6: Dân tộc - Chủ nghĩa xã hội khoa học
Chương 6: Dân tộc - Chủ nghĩa xã hội khoa học
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
 
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
 
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdfGiáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
 
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vnGiới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
Giới Thiệu Về Kabala | Hành Trình Thấu Hiểu Bản Thân | Kabala.vn
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận Hạn
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận HạnTử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận Hạn
Tử Vi Là Gì Học Luận Giải Tử Vi Và Luận Đoán Vận Hạn
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
 
Hướng dẫn viết tiểu luận cuối khóa lớp bồi dưỡng chức danh biên tập viên hạng 3
Hướng dẫn viết tiểu luận cuối khóa lớp bồi dưỡng chức danh biên tập viên hạng 3Hướng dẫn viết tiểu luận cuối khóa lớp bồi dưỡng chức danh biên tập viên hạng 3
Hướng dẫn viết tiểu luận cuối khóa lớp bồi dưỡng chức danh biên tập viên hạng 3
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
 

Luận văn: Bước chuyển từ lời giải Toán học sang lời giải Tin học

  • 1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM TP. HỒ CHÍ MINH Cao Thị Hải Yến 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 LUẬN VĂN THẠC SĨ GIÁO DỤC HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS. NGUYỄN CHÍ THÀNH Thành phố Hồ Chí Minh - 2013
  • 2. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM TP. HỒ CHÍ MINH Cao Thị Hải Yến 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 Chuyên ngành: Lí luận và phương pháp dạy học bộ môn Toán Mã số: 60 14 01 11 LUẬN VĂN THẠC SĨ GIÁO DỤC HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS. NGUYỄN CHÍ THÀNH Thành phố Hồ Chí Minh – 2013
  • 3. 1 LỜI CẢM ƠN Trước tiên, tôi xin bày tỏ lòng biết ơn sâu sắc đến PGS. TS. Nguyễn Chí Thành, người đã nhiệt tình hướng dẫn và giúp đỡ tôi hoàn thành luận văn này. Tôi xin chân thành cảm ơn đến quý thầy, cô: PGS. TS. Lê Thị Hoài Châu, PGS.TS. Lê Văn Tiến, TS. Trần Lương Công Khanh, TS. Lê Thái Bảo Thiên Trung, TS. Vũ Như Thư Hương, TS. Nguyễn Thị Nga về những bài giảng Didactic Toán sinh động và đầy ý nghĩa. Tôi xin chân thành cảm ơn Phòng Sau Đại học, Khoa Toán - Tin trường Đại học Sư phạm Thành phố Hồ Chí Minh đã tạo những điều kiện học tập tốt nhất cho chúng tôi. Tôi cũng xin chân thành cảm ơn: Ban Giám hiệu cùng các thầy, cô trong tổ Tin học TrườngTHPT Trần Phú đã tạo điều kiện, giúp đỡ tôi tiến hành thực nghiệm. Tôi cũng xin gửi lời cảm ơn đến các bạn lớp didactic Toán khóa 22 vì những sẻ chia, giúp đỡ trong thời gian học tập. Cuối cùng, tôi hết lòng cảm ơn gia đình đã quan tâm và động viên suốt quá trình học tập của tôi. Cao Thị Hải Yến
  • 4. 2 MỤC LỤC LỜI CẢM ƠN .............................................................................................................. 1 MỤC LỤC .................................................................................................................... 2 DANH MỤC CÁC TỪ VIẾT TẮT............................................................................ 4 MỞ ĐẦU....................................................................................................................... 5 1. Ghi nhận ban đầu và câu hỏi xuất phát........................................................................5 2. Mục đích và phạm vi nghiên cứu ..................................................................................8 3. Khung lý thuyết tham chiếu và phương pháp nghiên cứu..........................................9 4. Tổ chức luận văn...........................................................................................................10 CHƯƠNG 1: THUẬT TOÁN – MỘT NGHIÊN CỨU TRI THỨC LUẬN........ 11 1.1. Thế nào là vấn đề - bài toán......................................................................................11 1.2. Thuật toán và các phương pháp biễu diễn thuật toán ...........................................13 1.3. Biến và lệnh gán .........................................................................................................18 1.4. Cấu trúc cơ bản của thuật toán ................................................................................20 1.5. Một số phương pháp giải quyết vấn đề - bài toán...................................................24 1.6. Vai trò của công cụ tính toán....................................................................................28 CHƯƠNG 2: MỐI QUAN HỆ THỂ CHẾ ĐỐI VỚI THUẬT TOÁN TRONG DẠY HỌC TOÁN PHỔ THÔNG GIAI ĐOẠN 1990 – 2000................................ 30 2.1. Khái niệm thuật toán.................................................................................................31 2.1.1 Phần lý thuyết.........................................................................................................31 2.1.2. Phần bài tập ...........................................................................................................35 2.2. Ngôn ngữ biểu diễn thuật toán .................................................................................38 2.2.1 Phần lý thuyết.........................................................................................................38 2.2.2 Phần bài tập ............................................................................................................42 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............................................. 46 3.1. Bài toán và thuật toán trong [M].............................................................................47 3.1.1. Khái niệm bài toán ................................................................................................48 3.1.2. Khái niệm thuật toán .............................................................................................49 3.1.3. Một số ví dụ về thuật toán.....................................................................................53 3.1.4 Các tổ chức tin học................................................................................................61 CHƯƠNG 4: THỰC NGHIỆM ............................................................................... 66 4.1. Mục đích và giả thuyết nghiên cứu ..........................................................................66 4.2. Giới thiệu thực nghiệm..............................................................................................66
  • 5. 3 4.2.1. Hình thức thực nghiệm:.........................................................................................66 4.2.2. Bài toán thực nghiệm ............................................................................................66 4.2.3. Dàn dựng kịch bản ................................................................................................67 4.3. Phân tích tiên nghiệm................................................................................................69 4.3.1. Biến tình huống và biến didactic...........................................................................69 4.3.2. Các chiến lược có thể ............................................................................................70 4.3.3. Phân tích kịch bản .................................................................................................72 4.4 Phân tích hậu nghiệm.................................................................................................75 KẾT LUẬN ................................................................................................................ 88 TÀI LIỆU THAM KHẢO ........................................................................................ 90 PHỤ LỤC ................................................................................................................... 91
  • 6. 4 DANH MỤC CÁC TỪ VIẾT TẮT SGK: Sách giáo khoa SGV: Sách giáo viên GV: Giáo viên HS: Học sinh UCLN: Ước chung lớn nhất MT: Máy tính MTCT: Máy tính cầm tay
  • 7. 5 MỞ ĐẦU 1. Ghi nhận ban đầu và câu hỏi xuất phát Toán học và Tin học là hai ngành khoa học có liên quan chặt chẽ mật thiết với nhau. Trong toán học, để giải một bài toán chúng ta cần nghiên cứu giả thiết đã cho, tìm ra những phương pháp có thể có để giải, lựa chọn phương pháp thích hợp nhất (có thể là phương pháp ngắn gọn nhất, cũng có thể là dễ hiểu nhất đối với người làm) và tiến hành giải bài toán đó. Trước đây, con người tự mình giải quyết tất cả những bài toán mà họ bắt gặp. Cùng với sự phát triển của xã hội, con người tìm cách sáng tạo ra các công cụ giúp họ giải quyết những vấn đề trong cuộc sống, và máy tính điện tử ra đời. Ban đầu máy tính điện tử chỉ giúp con người tính toán những phép tính đơn giản như cộng trừ nhân chia các số, đặc biệt là giữa những con số có giá trị lớn. Dần dần, cùng với sự phát triển của các loại ngôn ngữ lập trình, con người cải tiến chiếc máy tính điện tử sao cho nó có khả năng giải quyết những bài toán phức tạp hơn như kiểm tra một số nguyên có phải là số nguyên tố không, tìm số lớn nhất trong dãy các số nguyên, và không những trên lĩnh vực tính toán mà trên nhiều lĩnh vực khác nhau, nhiều loại dữ liệu khác nhau: các số liệu, hình ảnh, âm thanh, … Trong các lĩnh vực đó, chúng tôi quan tâm đến việc lập trình giải các bài toán toán học. Máy tính dưới sự điều khiển của con người (thông qua các chương trình, phần mềm được con người lập trình sẵn trong máy tính) có thể giải quyết rất nhiều bài toán phức tạp trong thời gian ngắn, không hề biết mệt mỏi hay ảnh hưởng bởi sự tác động của các yếu tố khách quan, trong khi đó, con người không thể làm được, hoặc làm được trong khoảng thời gian lớn và tốn nhiều công sức. Nhưng con người lại có khả năng phản ứng linh hoạt với những tình huống bất ngờ, và xét cho đến cùng con người là nhân tố quyết định khả năng giải quyết các vấn đề, bài toán của MT. Vì vậy trong nghiên cứu này, chúng tôi quan tâm đến quá trình mà con người “ra lệnh” cho MT giải quyết các vấn đề, bài toán. Với những ứng dụng đa dạng và phong phú trong nhiều lĩnh vực, Tin học bắt đầu được đưa vào giảng dạy ở chương trình phổ thông ở hầu hết các nước. Theo Nguyễn Chí Thành (2005), tại Pháp và Việt Nam, Tin học được đưa vào trường phổ thông theo hai hình thức: - Đưa các yếu tố Tin học vào môn Tin học với tư cách là môn học độc lập; - Đưa các yếu tố Tin học vào môn Toán học;
  • 8. 6 Ở Việt Nam, khác với Toán học là môn học xuyên suốt trong chương trình phổ thông, môn Tin học mới được đưa vào giảng dạy ở trường phổ thông từ những năm 1990. Trong chương trình cải cách giáo dục năm 1990 (từ 1990 đến trước 2000) Tin học được đưa vào dạy lồng ghép với môn toán, trong chương IV: Khái niệm sơ đẳng về tin học và thuật toán - đại số lớp 10 (Trần Văn Hạo, Nxb Giáo dục - 1990). Đến chương trình cải cách giáo dục 2006, Tin học xuất hiện trong chương trình phổ thông với tư cách là môn học độc lập và là môn học chính khóa. Cũng theo Báo cáo của uỷ ban nghiên cứu Dacunha-Castelle, 1989: Chúng tôi không nghĩ rằng Tin học phải được giảng dạy như một môn (lí thuyết) riêng biệt ở cấp bậc phổ thông. Thật vậy, Tin học dạy ở trình độ này sẽ chưa các nguy cơ liên quan đến sự hình thức hoá và nó sẽ còn nghiêm trọng hơn cả những cái có thể có bên Toán học. Lập luận cho rằng một số học sinh yếu kém trong môn Toán học có thể sẽ khá hơn khi học Tin .học không có nhiều cơ sở lí thuyết. Ngược lại, việc dẫn nhập các phương tiện Tin học có thể « cứu vãn » các học sinh có khó khăn và khuyến khích các em khác khi học toán. [11, tr 254] Từ đó dẫn chúng tôi đến câu hỏi: Việc đưa tin học vào giảng dạy trong chương trình phổ thông với tư cách là một môn học độc lập ảnh hưởng như thế nào đến việc học tập môn Toán và môn Tin học của học sinh ở bậc phổ thông? Học sinh có nhận thấy mối liên hệ mật thiết giữa hai môn học này hay không? Như đã nói ở trên, việc giải một bài toán trong toán học thì chỉ cần đưa ra một phương pháp hay thuật toán giải và tiến hành giải theo thuật toán để tìm đáp án là bài toán đã được giải xong. Tuy nhiên, để MT giải được bài toán đó, từ lời giải toán học được đưa ra, con người cần phải viết một chương trình hoàn chỉnh theo một ngôn ngữ lập trình nào đó rồi biên dịch thành ngôn ngữ máy và cài đặt vào MT, khi đó MT mới hiểu và giải quyết được bài toán. Vậy thế nào là lời giải toán học, thế nào là lời giải tin học? Chúng tôi đã cố gắng tìm hiểu các nguồn tài liệu để trả lời cho câu hỏi trên. Tuy nhiên, qua những tài liệu mà chúng tôi có được, chúng tôi không tìm được định nghĩa “lời giải toán học” và “lời giải tin học”. Vì vậy, chúng tôi xin đưa ra định nghĩa lời giải toán học và lời giải tin học như sau: - Lời giải toán học là lời giải của một bài toán dựa trên các kiến thức toán học sao cho tìm được kết quả cho bài toán sau khi kết thúc lời giải mà con người có thể hiểu được.
  • 9. 7 - Lời giải tin học là lời giải của một bài toán được biễu diễn bằng một thuật toán hoặc chương trình sao cho có thể cài đặt được trên MT và cho kết quả bài toán. Xét bài toán: Với a là số nguyên lớn hơn 2 cho trước, tính tổng: 1 1 1 1 ... 1 2 50 S a a a a = + + + + + + + Có nhiều cách để tính tổng trên, một lời giải toán học được đưa ra để tính tổng trên là quy đồng mẫu số tất cả các số hạng rồi cộng các phân số cùng mẫu, hoặc ta có thể tính tổng S bằng cách thực hiện phép cộng dồn từ trái sang phải đến số hạng cuối cùng thì ta có tổng cần tính (vẫn dùng quy đồng mẫu số các phân số): 2 1 2 1 ( 1) ( 1) 1 1 1 1 1 1 1 1 ... ... 1 2 50 1 2 50 a a a a a a S a a a a a a a a + + + + = + + + + = + + + + + + + + + +   Tuy nhiên, nếu lập trình để MT giải quyết bài toán này theo lời giải toán học trên thì MT sẽ không hiểu được “quy đồng” là gì? Lời giải tin học của bài toán này dựa trên việc xây dựng vòng lặp để tính tổng như sau: Phát biểu lại bài toán: Tính tổng 1 1 1 1 ... 1 2 S a a a a N = + + + + + + + với 1;50N = Để tính tổng này ta sẽ không thực hiện gán giá trị S cho biểu thức 1 1 1 1 ... 1 2a a a a N + + + + + + + nữa mà sẽ thực hiện cộng dồn từng giá trị của các số hạng vào tổng S bằng cách sử dụng vòng lặp. Việc tính tổng kết thúc khi 50N > . Và thuật toán để giải bài toán trên như sau: Bước 1: Khởi tạo S và N; 1 ; 0S N a ← ← Bước 2: 1N N← + ; Bước 3: Nếu 50N > thì chuyển đến bước 5; Bước 4: ( )1S S a N← + + rồi quay lại bước 2; Bước 5: In ra S và kết thúc. Sau đó thuật toán này sẽ được viết thành chương trình trong một ngôn ngữ nào đó để máy tính thực hiện việc tính tổng.
  • 10. 8 Nếu như không có MT, khi các số hạng của tổng được tăng lên đến 100, 1000, … số hạng hay khi giá trị của a lớn thì con người sẽ mất rất nhiều thời gian và công sức để có thể tính được tổng trên, và đôi khi có thể không tính được giá trị của tổng. Tuy nhiên, với sự hỗ trợ của công cụ tính toán là MT, thông qua việc xây dựng chương trình tính tổng xuất phát từ thuật toán trên, ta có thể tính tổng S với số lượng số hạng bất kỳ giá trị a nguyên bất kỳ chỉ trong khoảng thời gian rất ngắn. Từ một bài toán cụ thể thì chưa thể kết luận được điều gì. Tuy nhiên chúng tôi nhận thấy rằng dường như từ lời giải toán học sang thuật toán trong ngôn ngữ lập trình (lời giải tin học) có một bước chuyển. Bước chuyển đó là không dễ dàng đối với những người làm công việc lập trình, đặc biệt là đối với học sinh phổ thông - đối tượng mới được làm quen với tin học và lập trình trong tin học. Vì vậy, câu hỏi chúng tôi đặt ra ở đây là: Học sinh phổ thông sẽ làm như thế nào để chuyển từ lời giải toán học của bài toán trên sang lời giải tin học khi mà Toán học và Tin học được tách thành hai môn học chính khóa? Tất cả những điều trên dẫn chúng tôi đến việc nghiên cứu “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”. Từ những ghi nhận trên, chúng tôi phát biểu lại các câu hỏi ban đầu như sau: - Giữa lời giải toán học và lời giải tin học của một bài toán có gì giống và khác nhau? - Liệu rằng học sinh có nhận thấy sự cần thiết hay điều gì dẫn học sinh tới việc sử dụng tin học để giải quyết các bài toán toán học? - Học sinh gặp phải khó khăn, chướng ngại và sai lầm gì khi 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? Trong quá trình giảng dạy tin học giáo viên quan tâm như thế nào đến việc hình thành bước chuyển đó? - 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 tin học có 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? - Vai trò của ngôn ngữ thuật toán? 2. Mục đích và phạm vi nghiên cứu Việc nghiên cứu bước chuyển từ lời giải toán học sang lời giải tin học có thể xem xét ở nhiều phạm vi khác nhau: trong chương trình và SGK, trong thực hành giảng dạy của GV, trong thực hành giải toán của HS. Trong phạm vi của luận văn này, chúng tôi tập trung vào
  • 11. 9 việc nghiên cứu 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 trong chương trình và SGK Tin học PT hiện hành. Cụ thể, chúng tôi sẽ: - Làm rõ 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 ở bậc trung học phổ thông (nếu có) và ảnh hưởng của nó đến việc hình thành tri thức về thuật toán và tin học ở học sinh. - Phân tích sự lựa chọn của chương trình và SGK Toán học và Tin học để biết sự lựa chọn này có ảnh hưởng như thế nào đến việc hình thành bước chuyển đó. Những khó khăn, chướng ngại và sai lầm của học sinh khi 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. - Những bài toán được giải quyết trong tin học có tồn tại trong toán học và yêu cầu của hai thể chế đối với bài toán đó. 3. Khung lý thuyết tham chiếu và phương pháp nghiên cứu 3.1. Khung lý thuyết tham chiếu Nội dung đề tài liên quan đến cả hai lĩnh vực Toán học và Tin học. Vì vậy việc chọn một khung lý thuyết phù hợp để tham chiếu cho việc nghiên cứu là rất quan trọng. Ở đây, chúng tôi muốn ứng dụng lý thuyết Didactic toán, cụ thể: lý thuyết nhân chủng học, chướng ngại và sai lầm, lý thuyết tình huống, hợp đồng didactic trong việc nghiên cứu dạy học Tin học. Dựa trên khung lý thuyết tham chiếu đã chọn, chúng tôi phát biểu lại câu hỏi nghiên cứu như sau: Q1: Ở cấp độ tri thức luận, thuật toán và ngôn ngữ thuật toán có những đặc trưng cơ bản nào? Q2: Mối quan hệ thể chế (thể chế dạy học toán học PT giai đoạn 1990 – 2000 và thể chế dạy học tin học PT hiện nay) đố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? Q3: Trong thể chế dạy học toán học trung học phổ thông hiện nay, tồn tại hay không những kiểu nhiệ m vụ liên quan đến thuật toán? Có những bài toán toán học nào được viết dưới dạng thuật toán để chuyển sang bài toán tin học? Và ngược lại, những bài toán được
  • 12. 10 giải quyết trong tin học có tồn tại trong thể chế dạy học toán học không? Nếu tồn tại ở cả hai thể chế thì những mong đợi thể chế của hai môn học đối với bài toán đó có gì giống và khác nhau? Q4: Học sinh gặp phải khó khăn, chướng ngại và sai lầm gì khi 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? 3.2 Phương pháp nghiên cứu • Tiến hành nghiên cứu lý thuyết thuật toán và các phương pháp giải quyết vấn đề - bài toán trên máy tính được đề cập trong tài liệu: Hoàng Kiếm, Giải một bài toán tin học như thế nào?,tập 1, Nxb Giáo dục. Tìm hiểu mối quan hệ giữa thuật toán và công cụ tính toán qua công trình nghiên cứu của Nguyễn Chí Thành (2005) để trả lời cho câu hỏi Q1. • Tiến hành phân tích làm rõ đặc trưng mối quan hệ thể chế đối với thuật toán để trả lời cho câu hỏi Q2. Chúng tôi tiến hành phân tích hai thể chế: - Thể chế dạy học Toán học phổ thông giai đoạn 1990 – 2000. - Thể chế dạy học Tin học phổ thông giai đoạn hiện hành. • Phân tích giáo khoa Toán hiện hành để tìm hiểu những bài toán trong chương trình toán phổ thông được viết dưới dạng ngôn ngữ thuật toán và sự tồn tại của các bài toán được đề cập trong tin học trong chương trình toán phổ thông, những mong đợi của hai thể chế đối với bài toán đó (nếu có) để trả lời cho câu hỏi Q3. • Để trả lời cho câu hỏi Q4: Tiến hành thực nghiệm trên học sinh để biết được những khó khăn và chướng ngại, sai lầm mà học sinh gặp phải khi thực hiện bước chuyển từ lời giải theo ngôn ngữ toán học sang thuật toán trong tin học thông qua phần mềm Algobox. 4. Tổ chức luận văn Phần mở đầu Chương 1: Thuật toán trong giáo trình bậc đại học. Chương 2: Mối quan hệ thể chế đối vối thuật toán trong dạy học toán học lớp 10 giai đoạn 1999 – 2000. Chương 3: Mối quan hệ thể chế đối với thuật toán trong dạy học toán học và tin học lớp 10 giai đoạn 2006 đến nay. Chương 4: Thực nghiệm. Kết luận Tài liệu tham khảo
  • 13. 11 CHƯƠNG 1: THUẬT TOÁN – MỘT NGHIÊN CỨU TRI THỨC LUẬN Mục tiêu của chương Trong chương này chúng tôi sẽ đi làm rõ những vấn đề liên quan đến thuật toán trong tin học và các phương pháp giải quyết vấn đề - bài toán được trình bày trong giáo trình “Giải một bài toán trên máy tính như thế nào?”, tập 1của tác giả Hoàng Kiếm, Nxb Giáo dục. Qua đó làm cơ sở tham chiếu cho các phân tích ở chương 2 và chương 3. 1.1. Thế nào là vấn đề - bài toán Theo Hoàng Kiếm, Giải một bài toán trên máy tính như thế nào?, Nxb Giáo dục, hiểu một cách đơn giản vấn đề là “những vướng mắc, khó khăn trong cuộc sống mà chúng ta cần giải quyết” và dưới góc nhìn khoa học thì “vấn đề thường được thể hiện dưới dạng một bài toán” còn “bài toán là một loại vấn đề mà để giải quyết nó, chúng ta phải ít nhiều cần đến tính toán như các bài toán trong vật lý, hóa học, xây dựng, kinh tế, …” Trong một thời kỳ dài, các nhà khoa học đều cho rằng “mọi vấn đề đều có thể biểu diễn dưới dạng một bài toán”. Hơn thế nữa, khi đại số đang ở đỉnh cao của sự phát triển, Descartes phát biểu rằng: “tất cả mọi bài toán đều có thể quy về bài toán đại số, từ đó, việc giải toán chỉ là vấn đề của giải phương trình”. Và vì vậy, ở thời kỳ này các nhà khoa học trong tất cả các lĩnh vực đều cố gắng biểu diễn các bài toán trong lĩnh vực của mình dưới dạng các phương trình toán học. Tuy nhiên cùng với sự phát triển của khoa học kỹ thuật, các nhà khoa học cũng dần nhận thức được rằng Toán học không phải là công cụ vạn năng để giải quyết mọi vấn đề. Về sau, Pythagore chia những vấn đề mà con người cần giải quyết ra làm hai loại: Theorem và Problem. Trong đó: - Theorem là vấn đề cần được khẳng định tính đúng sai. - Problem là vấn đề cần tìm giải pháp để đạt được một mục tiêu xác định từ những điều kiện ban đầu nào đó. Sau đó các nhà nghiên cứu lại cho rằng, hai loại vấn đề mà Pythagore đưa ra đều có thể được diễn đạt bằng sơ đồ sau:
  • 14. 12 Trong đó: A là giả thuyết hoặc điều kiện ban đầu B là kết luận hoặc mục tiêu cần đạt “⇒” là suy luận, giải pháp cần xác định. Tuy nhiên trên thực tế, không phải lúc nào ta cũng gặp những vấn đề mà A và B được xác định rõ ràng, chính xác. Vì vậy, nếu xét theo tính rõ ràng của vấn đề thì người ta chia vấn đề thành 4 loại: Loại 1 là các vấn đề - bài toán với thông tin về A và B rất rõ ràng, loại 2 có mục tiêu không rõ ràng, loại 3 có giả thiết không rõ ràng và cuối cùng là loại 4 với cả giả thiết và mục tiêu đều không rõ ràng. Việc giải quyết các vấn đề - bài toán nhanh hay chậm, đơn giản hay phức tạp là phụ thuộc nhiều yếu tố khác nhau. Có những vấn đề được giải quyết thông qua nhiều quá trình phức tạp và cũng có những vấn đề tưởng chừng như rất đơn giản nhưng để giải quyết nó đôi khi con người phải lặp đi lặp lại các thao tác giống nhau dẫn đến sự nhàm chán. Vì vậy sự ra đời của MT đã giúp cho con người giải quyết các vấn đề - bài toán một cách đơn giản hơn. Bởi vì so với con người, MT có thể tính toán một khối lượng phép tính rất lớn với tốc độ cực nhanh, chính xác mà không hề biết “mệt mỏi” hay nhàm chán. Tuy nhiên, như đã nói trong phần mở đầu, không phải là MT tự bản thân nó có khả năng thực hiện những tính toán đó, mà con người chính là nhân tố quyết định cho quá trình giải quyết các vấn đề - bài toán của máy tính. MT chỉ thực hiện các quá trình tính toán theo các yêu cầu của con người được cài đặt sẵn trong chương trình của máy. Nhưng MT lại không hiểu được ngôn ngữ của con người, mà chỉ hiểu những yêu cầu dưới dạng những con số nhị phân 0 và 1. Ban đầu (trong các thế hệ MT đầu tiên) để hướng dẫn cho MT thực hiện các yêu cầu của mình con người phải “ra lệnh” cho MT bằng ngôn ngữ máy, tuy nhiên việc này tốn quá nhiều công sức. Sau này con người sáng tạo ra một loại ngôn ngữ “dễ chịu” hơn mà ta thường gọi là ngôn ngữ bậc cao. Ngôn ngữ bậc cao gần giống với tiếng Anh nên việc ra lệnh bằng ngôn ngữ này dễ dàng hơn so với ngôn ngữ máy. Có nhiều loại ngôn ngữ bậc cao khác nhau, trong đó phải kể đến ngôn ngữ Basic, Pascal và C. Với sự ra đời của ngôn ngữ bậc cao, việc ra lệnh cho MT không còn phức tạp như trước nữa. Lúc này, việc quá trình giải quyết một vấn đề - bài toán nào đó bắt đầu từ việc xác định bài toán, nghĩa là xác định dữ liệu vào, ra và các yêu cầu đối với thuật toán rồi lựa chọn cấu trúc dữ liệu phù hợp với dữ liệu vào ra của bài toán. Tiếp đó là xây dựng thuật
  • 15. 13 toán, lập trình, kiểm thử và cuối cùng là tối ưu chương trình. Sau khi xây dựng được một chương trình hoàn thiện, chương trình sẽ được biên dịch thành ngôn ngữ máy và cài đặt vào MT. Chúng tôi sẽ không đi sâu vào chi tiết tất cả các quá trình trên mà tập trung nghiên cứu thuật toán và việc xây dựng thuật toán. 1.2. Thuật toán và các phương pháp biễu diễn thuật toán Từ “thuật toán” (Algorithm) xuất phát từ tên một nhà toán học người Trung Á là Abu Abd - Allah ibn Musa al’Khwarizmi. Ông là tác giả một cuốn sách về số học, trong đó ông đã dùng phương pháp mô tả rất rõ ràng, mạch lạc cách giải những bài toán. Sau này, phương pháp mô tả cách giải của ông đã được xem là một chuẩn mực và được nhiều nhà toán học khác tuân theo. Từ Algorithm ra đời dựa theo cách phiên âm tên của ông. Trong từ điển bách khoa toàn thư, Hebeinstrait đưa ra định nghĩa sau đây cho “thuật toán”: Thuật toán là một dãy hữu hạn các quy tắc cần áp dụng trong một thứ tự nhất định cho một số hữu hạn các dữ liệu, để sau một số bước hữu hạn có thể đi đến một kết quả, và điều đó không phụ thuộc vào các dữ liệu. [11, tr 258] Còn trong khoa học về máy tính, “thuật toán được định nghĩa là một dãy hữu hạn các bước không mập mờ và có thể thực thi được, quá trình hành động theo các bước này phải dừng và cho kết quả như mong muốn”, [8, tr 50].  Các tính chất cơ bản của thuật toán: Thuật toán có ba tính chất cơ bản là tính xác định, hữu hạn, tính đúng. Trong đó, số bước hữu hạn của thuật toán và tính chất dừng của nó được gọi chung là tính hữu hạn. Số bước hữu hạn của thuật toán là một tính chất khá hiển nhiên. Tính “không mập mờ” và “có thể thực thi được” gọi chung là tính xác định. Ngoài những đặc trưng trên, thuật toán còn có những đặc trưng khác như sau: Thứ nhất, đầu vào và đầu ra. Mọi thuật toán cho dù đơn giản hay phức tạp đến đâu cũng phải nhận dữ liệu đầu vào, xử lý nó và cho ra kết quả cuối cùng. Thứ hai, tính hiệu quả. Tính hiệu quả được đánh giá dựa trên một số tiêu chuẩn như khối lượng tính toán, không gian và thời gian khi thuật toán được thi hành. Đây là yếu tố quyết định để đánh giá, chọn lựa cách giải quyết vấn đề - bài toán trên thực tế. Phương pháp phổ biến nhất để đánh giá thuật toán là độ phức tạp của thuật toán.
  • 16. 14 Khi viết thuật toán để giải quyết một bài toán nào đó thì thông thường thuật toán phải áp dụng được cho mọi trường hợp chứ không phải chỉ một vài trường hợp riêng lẻ của bài toán. Đó chính là tính tổng quát của thuật toán. Chẳng hạn thuật toán giải phương trình bậc hai bằng Delta luôn áp dụng được cho mọi số thực a, b, c. Tuy nhiên, trong thực tế không phải lúc nào người ta cũng xây dựng được các thuật toán tổng quát, mà đôi khi chỉ xây dựng được thuật toán áp dụng cho một số trường hợp hay cho một dạng đặc trưng của bài toán mà thôi.  Các phương pháp biểu diễn thuật toán Thuật toán là phương pháp biểu diễn lời giải của bài toán dưới một góc độ nào đó, vì vậy cũng cần phải tuân theo một số quy tắc nào đó. Để biểu diễn thuật toán, người ta thường dùng 3 phương pháp sau: - Dùng ngôn ngữ tự nhiên. - Dùng lưu đồ - sơ đồ khối (flowchart). - Dùng mã giải (ngôn ngữ giả lập trình). • Ngôn ngữ tự nhiên Đó là cách biểu diễn thuật toán bằng ngôn ngữ thường ngày, liệt kê các bước của thuật toán. Phương pháp này không yêu cầu người viết thuật toán cũng như người đọc phải nắm các quy tắc nào cả. Tuy nhiên cách biểu diễn này thường dài dòng, không thể hiện rõ cấu trúc thuật toán, đôi lúc gây hiểu lầm và khó hiểu cho người đọc. Vì vậy để dễ đọc, người ta thường viết các bước con lùi vào bên phải và đánh số bước theo quy tắc phân cấp như 1, 1.1, 1.1.1. Chẳng hạn thuật toán Euclide tìm UCLN của hai số nguyên được biễu diễn như sau:
  • 17. 15 [8, tr 58] • Lưu đồ - sơ đồ khối Đây là một công cụ trực quan để diễn đạt các thuật toán. Việc biểu diễn bằng sơ đồ khối sẽ giúp người đọc theo dõi được sự phân cấp các trường hợp và quá trình xử lý của thuật toán, thường sử dụng trong những thuật toán rắc rối phức tạp và khó theo dõi được quá trình xử lý. Việc biểu diễn thuật toán bằng sơ đồ khối yêu cầu người viết cần phân biệt hai loại thao tác, đó là thao tác lựa chọn dựa theo một điều kiện nào đó và thao tác hành động (hay thao tác xử lý). • Thao tác chọn lựa được biểu diễn bằng một hình thoi, bên trong chứa biểu thức điều kiện. • Thao tác xử lý được biểu diễn bằng một hình chữ nhật, bên trong chứa nội dung xử lý, chẳng hạn: • Đường đi. Khi biểu diễn thuật toán bằng ngôn ngữ tự nhiên ta mặc định hiểu rằng quá trình thực hiện diễn ra theo trình tự từ bước trước sang bước sau và chỉ nhảy tới bước nào đó khi có yêu cầu. Đối với việc biểu diễn bằng sơ đồ khối, các bước được thể hiện bằng hình vẽ và có thể đặt các hình vẽ này ở vị trí bất kỳ nên cần phải có phương pháp để thể hiện trình tự thực hiện các thao tác. Theo đó hai bước kế tiếp nhau được nối bằng một cung, trên cung có mũi tên chỉ hướng thực hiện. Như vậy việc thực hiện các thao tác trên sơ đồ khối tuân theo chỉ dẫn của đường mũi tên. Từ thao tác lựa chọn có thể có đến hai hướng đi, một hướng ứng với điều kiện thỏa và hướng còn lại ứng với điều kiện không thõa. Do vậy ta dùng hai cung xuất phát từ các đỉnh hình thoi, trên mỗi cung có ký hiệu Đ/S hoặc Yes/No để chỉ hướng đi ứng với hai trường hợp thõa điều kiện và không thõa điều kiện đặt ra. 0∆ >a = b Tăng i lên 1 Chọn một hộp bất kỳ
  • 18. 16 Ví dụ: thuật toán giải phương trình bậc hai được biểu diễn bằng sơ đồ khối. [8, tr 62] • Điểm cuối Điểm cuối là điểm khởi đầu và kết thúc của thuật toán được biểu diễn bằng hình ôvan bên trong có ghi chữ “Bắt đầu” (Begin) hoặc “Kết thúc” (End). Điểm cuối chỉ có cung đi ra (điểm khởi đầu) hoặc chỉ có cung đi vào (điểm kết thúc). Ngoài ra, việc biểu diễn thuật toán bằng sơ đồ khối là khá cồng kềnh nên trong môt số thuật toán phức tạp, trên sơ đồ khối thường được chia thành nhiều phần khác nhau, và các phần đó được nối với nhau bằng các điểm nối (connector). Khi sơ đồ biểu diễn thuật toán quá lớn, phải trình bày trên nhiều trang giấy, người ta phải dùng các điểm nối phần sơ đồ từ trang này sang trang khác, đó gọi là điểm nối sang trang (off – page – connector). Bên trong các điểm nối đặt một ký hiệu để biết được sự liên hệ giữa các điểm nối hay các điểm nối sang trang.
  • 19. 17 [8, tr 63] • Ngôn ngữ giả lập trình (mã giả) Một nhược điểm của việc biểu diễn thuật toán bằng sơ đồ khối là sự cồng kềnh, dù chỉ để mô tả một thuật toán nhỏ ta cũng phải cần đến một không gian rất lớn. Hơn thế nữa sơ đồ khối chỉ phân biệt hai loại thao tác là thao tác lựa chọn và thao tác rẽ nhánh trong quá trình xử lý, nhưng trong thực tế còn có thêm các thao tác lặp. Vì vậy ta sử dụng một phương pháp biểu diễn thuật toán khác, đó chính là dùng ngôn ngữ giả lập trình (mã giả). Khi sử dụng thuật toán bằng ngôn ngữ giả lập trình, ta sẽ vay mượn các cú pháp của một ngôn ngữ lập trình nào đó và dùng một phần ngôn ngữ tự nhiên để thể hiện thuật toán. Tất nhiên, mọi ngôn ngữ lập trình đều có những thao tác cơ bản là xử lý, rẽ nhánh và lặp. Từ Điểm nối sang trang (off - page - connector) Điểm nối giữa các phần khác nhau của sơ đồ.
  • 20. 18 thuật toán người ta cần phải viết thành chương trình trong một ngôn ngữ lập trình cụ thể và biên dịch thành ngôn ngữ máy. Vì vậy, việc dùng ngôn ngữ giả lập trình vừa tận dụng được các khái niệm trong ngôn ngữ lập trình, vừa giúp người cài đặt dễ dàng nắm bắt nội dung thuật toán. Và một khi đã vay mượn cú pháp và khái niệm của ngôn ngữ lập trình nào đó thì chắc chắn rằng ngôn ngữ giả lập trình sẽ bị phụ thuộc vào ngôn ngữ lập trình (NNLT) đó. Sau đây là một ví dụ về biểu diễn thuật toán bằng ngôn ngữ giả lập trình: [8, tr 64 ] 1.3. Biến và lệnh gán Để biễu diễn thuật toán ngắn gọn hơn, người ta sử dụng các biến - nơi lưu trữ giá trị. Trong tin học, mỗi biến bất kì đều có ba thuộc tính cơ bản: tên, kiểu biến và giá trị hiện tại mà biến đang lưu giữ. Giá trị của biến có thể thay đổi trong quá trình thực hiện chương trình, tuy nhiên kiểu biến và tên biến không thay đổi. Chẳng hạn, nếu biến A lưu trữ giá trị số nguyên thì nó không thể lưu trữ giá trị số thực hay chuỗi kí tự. Mỗi biến đều có tên riêng để phân biệt với các biến khác. Trong các chương trình, tùy vào từng ngôn ngữ lập trình khác nhau mà có những yêu cầu đối với việc đặt tên biến nhưng đều tuân thủ một nguyên tắc chung là ngắn gọn và dễ nhớ. Biến có thể thay đổi giá trị trong quá trình thực hiện chương trình. Để thay đổi giá trị của biến, ta sử dụng lệnh gán với cú pháp như sau: Biến:=<biểu thức> Lệnh gán không phải là phép so sánh giữa hai biểu thức mà là thao tác tính giá trị biểu thức bên phải lệnh gán và đặt kết quả này vào biến ở bên trái lệnh gán. Lệnh gán làm thay đổi giá trị hiện tại của biến và không thể nào lấy lại giá trị này của biến. Chẳng hạn, xét
  • 21. 19 bài toán: “Cho hai biến A và B. Hãy thực hiện lệnh gán sao cho giá trị của hai biến A và B hoán đổi cho nhau”. Nếu thực hiện hoán đổi bằng hai lệnh gán: A:=B; B:=A thì sau lệnh gán thứ nhất giá trị ban đầu của A đã mất, thay vào đó là giá trị của B, sau lệnh gán thứ hai B vẫn có giá trị là B. Như vậy việc hoán đổi không thành công. Để thực hiện việc hoán đổi này, ta xem xét bài toán hoán đổi nước trong hai ly A và B. Việc hoán đổi sẽ được thực hiện cùng với một ly TẠM có dung tích bằng hai ly A và B như sau: Quay trở lại với bài toán hoán đổi giá trị hai biến A và B, việc hoán đổi sẽ được thực hiện thông qua 3 lệnh gán: Tam:=A; A:=B; B:=Tam; Ngoài ra, có thể thực hiện việc hoán đổi bằng ba câu lệnh gán sau: A:= A+B; B:=A-B; A:=A-B; Tuy nhiên, trên thực tế người ta không bao giờ dùng cách này mà dùng cách hoán đổi giá trị hai biến bằng biến trung gian Tam. Như vậy, có phép gán được sử dụng để gán giá trị cho biểu thức, biến hay hoán đổi giá trị hai biến cho nhau.
  • 22. 20 1.4. Cấu trúc cơ bản của thuật toán Một vấn đề nữa mà chúng tôi muốn đề cập đến trong chương này, đó là cấu trúc cơ bản của thuật toán. Dù biễu diễn thuật toán bằng ngôn ngữ tự nhiên, sơ đồ khối hay dùng ngôn ngữ giả lập trình thì việc xây dựng thuật toán đều dựa trên ba cấu trúc cơ bản: cấu trúc tuần tự, cấu trúc rẽ nhánh và cấu trúc lặp. Đây cũng là cấu trúc cơ bản của một chương trình. • Cấu trúc tuần tự Đây được xem như là cấu trúc được mặc định trong MT, các thao tác được thực hiện tuần tự từ thao tác đầu tiên đến thao tác cuối cùng. Nếu thuật toán có n bước thì việc thực hiện sẽ được tiến hành từ bước đầu tiên đến bước thứ n. • Cấu trúc rẽ nhánh Cấu trúc rẽ nhánh có hai dạng cơ bản là rẽ nhánh có điều kiện và rẽ nhánh không có điều kiện. o Cấu trúc rẽ nhánh có điều kiện bao gồm hai dạng: Dạng 1, rẽ nhánh đơn (hay còn gọi là rẽ nhánh dạng khuyết). Nghĩa là chỉ thực hiện rẽ nhánh khi biểu thức logic đúng. Nếu biểu thức logic sai thì thực hiện bước kế tiếp của thuật toán. [8, tr 148] Dạng 2, rẽ nhánh đôi (hay còn gọi là rẽ nhánh dạng đủ). Nghĩa là nếu biểu thức logic đúng hay sai thì đều thực hiện công việc đối với trường hợp đúng hoặc sai tương ứng.
  • 23. 21 [8, tr 148] Trong thực tế có nhiều lúc ta còn gặp những dạng rẽ nhánh không chỉ là xét một biểu thức logic với hai trường hợp tương ứng là đúng, sai mà còn dựa vào giá trị một biểu thức số học, ứng với mỗi giá trị của biểu thức ta lại có một xử lý riêng. Nó được phát biểu như sau: [8, tr 157] Và biễu diễn dưới dạng sơ đồ khối như sau:
  • 24. 22 [8, tr 157] o Cấu trúc rẽ nhánh không có điều kiện Khác với rẽ nhánh có điều kiện, rẽ nhánh không có điều kiện không dựa trên một biểu thức điều kiện nào mà chỉ đơn thuần thay đổi thứ tự thực hiện tuần tự của chương trình. • Cấu trúc lặp Đối với máy tính, cấu trúc lặp là một trong ba cấu trúc cơ bản của máy tính. Đặc biệt đối với các tính toán gần đúng vì chỉ cần một phép toán cộng và phép lặp, MT đã có thể thực hiện mọi phép toán khác từ nhân, chia cho đến lũy thừa, rút căn, sin, cos, … Máy tính phân biệt hai cấu trúc lặp, đó là lặp xác định và lặp không xác định. o Cấu trúc lặp xác định được sử dụng khi ta “biết trước” số lần lặp trước khi thục hiện. “Biết trước” ở đây phải hiểu theo kiểu số lần lặp có thể tính được theo tham số nào đó của bài toán. Chẳng hạn như việc tính tổng S với hằng số n cho trước: 1 1 1 1 1 1 ... 2 3 n i S n i= = + + + + =∑ hay việc tính x e , x là số thực cho trước với độ chính xác nhỏ hơn hằng số ε cho trước bằng công thức: 2 1 ... 1! 2! ! n x x x x e n = + + + + . Trong trường hợp này ta chỉ biết quá trình tính toán sẽ dừng lại khi tính đến số hạng thứ n nào đó và số hạng này có giá trị tuyệt đối nhỏ hơn hằng số ε : ! n x n ε< Đối với NNLT Pascal, lặp với số lần biết trước bắt đầu với từ khóa for. Có hai kiểu vòng lặp for, một kiểu là for “tăng” nghĩa là biến đếm bắt đầu tại một giá trị bắt đầu “start”, sau đó tăng dần từng đơn vị cho đến khi lớn hơn giá trị kết thúc “stop”. Một kiểu là for “giảm”, nghĩa là biến đếm bắt đầu tại một giá trị bắt đầu và giảm dần cho đến khi nhỏ hơn giá trị kết thúc. Hai dạng vòng lặp for được thể hiện bằng sơ đồ khối như sau:
  • 25. 23 [7, tr 172] o Cấu trúc lặp không xác định, nghĩa là số lần lặp không thể xác định bằng công thức tính toán nào trước khi bước vào vòng lặp. Trong NNLT Pascal có hai loại cấu trúc lặp không xác định là While và Repeat … Until được biễu diễn bằng sơ đồ khối như sau: Trong đó, vòng lặp “While … do” thực hiện <lệnh> cho đến khi “điều kiện thi hành” không thõa. Sau đây là một đoạn chương trình trong NNLT Pascal
  • 26. 24 thực hiện phép chia nguyên a cho b bằng các phép trừ. Đối với vòng lặp Repeat … until, thay vì kiểm tra điều kiện trước ngay đầu vòng lặp như While … do, vòng lặp Repeat kiểm tra điều kiện sau khi thân vòng lặp được thực hiện một lần. So với vòng lặp While, vòng lặp Repeat … until đơn giản hơn vì nó gần gũi với suy nghĩ con người – bao giờ cũng làm trước rồi mới kiểm tra sau. 1.5. Một số phương pháp giải quyết vấn đề - bài toán Chúng tôi đặt ra một câu hỏi là “Từ bộ Input và Output” của một vấn đề - bài toán, dựa trên những yếu tố nào để xây dựng một thuật toán phù hợp để giải quyết vấn đề - bài toán đó? Về cơ bản, việc giải quyết vấn đề - bài toán bằng máy tính được thực hiện bằng hai phương pháp: phương pháp trực tiếp và phương pháp gián tiếp. Phương pháp trực tiếp được sử dụng khi xác định được lời giải qua các công thức, hệ thức, định luật hay qua các bước căn bản để có được lời giải. Lúc này việc giải quyết vấn đề trên máy tính chỉ là sự chuyển đổi lời giải từ ngôn ngữ thông thường sang ngôn ngữ lập trình. Về cơ bản, phương pháp trực tiếp gồm 3 loại. Loại thứ nhất dùng để biễu diễn cho các bài toán đã có lời giải chính xác bằng một công thức toán học nào đó. Loại thứ hai là biểu diễn cho các bài toán có công thức giải gần đúng (như các công thức tính gần đúng sin, cos, giải phương trình siêu việt, …). Loại cuối cùng là biểu diễn các lời giải không tường minh bằng kỹ thuật đệ quy. Chẳng hạn như bài toán tính tổng n số tự nhiên đầu tiên. Bài toán này nhà toán học Gauss đã đưa ra công thức giải tổng quát, việc giải bài toán này trên máy tính chỉ còn là biễu diễn lại công thức giải theo các quy tắc của máy tính mà thôi. Hay như việc giải phương trình bậc hai, khi viết thuật toán ta chỉ việc biễu diễn lại cách tính giá trị Delta và công thức nghiệm trong các trường hợp nghiệm kép, hai nghiệm phân biệt. Tuy nhiên quá trình chuyển đổi từ các lời giải có sẵn sang chương trình không phải lúc nào cũng dễ dàng. Và nếu không nắm vững các quy tắc chuyển đổi hay quy ước của ngôn ngữ lập trình thì khi máy tính chạy chương trình sẽ cho kết quả sai lệch với kết quả
  • 27. 25 mong muốn, đôi khi quá trình tính toán cũng khác xa so với lời giải được mô tả trước đó. Việc biểu diễn lời giải vấn đề - bài toán thành chương trình trên máy tính diễn ra theo các quá trình: chuyển đổi dữ liệu bài toán thành dữ liệu chương trình, chuyển đổi quá trình tính toán của bài toán thành các cấu trúc của chương trình, phân chia vấn đề bài toán ban đầu thành những vấn đề - bài toán nhỏ hơn, biễu diễn các tính toán không tường minh bằng đệ quy. Các quá trình đó được thực hiện dựa trên các nguyên lý sau: Nguyên lý 1: Dữ liệu của bài toán sẽ được biểu diễn lại dưới dạng các biến của chương trình thông qua các quy tắc xác định của ngôn ngữ lập trình cụ thể. Nguyên lý 2 (Định lý Bohn-Jacopini): Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên ba cấu trúc cơ bản: cấu trúc tuần tự, cấu trúc rẽ nhánh và cấu trúc lặp. Nguyên lý 3: Chương trình tính toán theo các biểu thức chính xác không đồng nhất với quá trình tính toán chính xác về mặt hình thức. Nguyên lý 4: Mọi quá trình tính toán gần đúng đều dựa trên cấu trúc lặp với tham số xác định. Nguyên lý 5: Mọi vấn đề bài toán lớn đều có thể giải quyết bằng cách phân chia thành những vấn đề bài toán nhỏ hơn. Nguyên lý 6: quá trình đệ quy trong máy tính không đơn giản như các biểu thức quy nạp toán học. Phương pháp gián tiếp được sử dụng khi chưa tìm ra lời giải chính xác của vấn đề. Đây cũng là cách tiếp cận chủ yếu của loài người. Phương pháp này đưa ra các giải pháp mang tính chất đặc trưng của máy tính và dựa trên sức mạnh tính toán của máy tính để giải quyết các bài toán.  Phương pháp đầu tiên được sử dụng để đi tìm lời giải gián tiếp cho một bài toán là phương pháp thử sai. Phương pháp này nghe có vẻ rất tầm thường, tuy nhiên nó lại đóng vai trò hết sức rất quan trọng việc giải quyết các vấn đề - bài toán. Khi xây dựng lời giải bài toán theo phương pháp thử - sai, người ta thường dựa vào 3 nguyên lý cơ bản sau: • Nguyên lý duyệt toàn bộ hoặc vét cạn toàn bộ. Nguyên lý đã được nhà bác học Edison sử dụng để tìm ra vật liệu thích hợp làm dây tóc bóng đèn điện đầu tiên của nhân loại và cũng được sử dụng trong nhiều các phát minh của mình. Nguyên lý này thực tế rất đơn giản, để giải quyết một vấn đề - bài toán nào đó ta chỉ cần liệt kê tất cả các trường hợp có thể xảy ra của bài toán sau đó lần lượt đi kiểm tra tất cả các trường hợp đó để tìm ra lời giải chính xác cho bài toán. Chẳng hạn như để liệt kê các số nguyên tố trong khoảng từ m
  • 28. 26 đến n, ta liệt kê tất cả các số nguyên k trong khoảng từ m đến n rồi đi kiểm tra các số nguyên k đó có phải là số nguyên tố không bằng cách chia số đó cho các số tự nhiên từ 2 cho đến k-1. Nguyên lý này có một nhược điểm cơ bản là sẽ tiêu tốn rất nhiều thời gian khi gặp phải các vấn đề - bài toán có tập các khả năng lớn. Vì vậy một nguyên lý khác được ưu tiên sử dụng lúc này là nguyên lý ngẫu nhiên. • Nguyên lý ngẫu nhiên. Nguyên lý này dựa trên việc thử một số khả năng được chọn một cách ngẫu nhiên trong tập các khả năng. Khả năng tìm ra lời giải đúng hoặc gần đúng của phương pháp này tùy thuộc vào chiến lược chọn ngẫu nhiên và một số điều kiện cụ thể của bài toán. Trong một số vấn đề xác định, việc áp dụng nguyên lý ngẫu nhiên đã giúp đưa ra được lời giải rất tốt, đôi khi là lời giải tối ưu. Sau này người ta phát triển nguyên lý này thành một phương pháp mới gọi là phương pháp Monté – Carlos. Và trên thực tế phương pháp này cũng giúp cho con người tìm được lời giải cho nhiều bài toán quan trọng mà trước đó vẫn chưa tìm được. Cùng với sự ra đời và phát triển của máy tính, việc giải toán theo nguyên lý ngẫu nhiên ngày càng được chú trọng nghiên cứu và phát triển mạnh mẽ, trong số đó có một phương pháp nổi bật là phương pháp Genetic. Phương pháp này giải quyết bài toán bằng phương pháp mô phỏng quá trình chọn lọc và thích nghi của tự nhiên. • Nguyên lý mê cung Nguyên lý này được áp dụng khi chúng ta không biết được chính xác “hình dạng” của lời giải mà phải xây dựng dần lời giải qua từng bước giống như tìm đường ra khỏi một mê cung. Giống như khi đang ở trong mê cung, khi phải lựa chọn đường đi tiếp theo từ một ngã rẽ ta buộc phải chọn một con đường bất kỳ để đi tiếp. Nếu đi vào ngõ cụt thì ta đánh dấu con đường đó và quay lại ngã rẽ và chọn hướng đi khác. Một điều dễ nhận thấy ở phương pháp thử sai này đó là sự may rủi. Nghĩa là việc tìm được lời giải hay không, thời gian tìm kiếm lời giải tùy thuộc rất nhiều vào từng vấn đề. Cùng với đó, đối với một số bài toán, phương pháp này đòi hỏi một khối lượng thời gian khổng lồ cho việc thực hiện các phép thử để cho ra kết quả. Vì vậy, một phương pháp khác được sử dụng là các phương pháp Heuristic.  Các phương pháp Heuristic
  • 29. 27 Các thuật toán Heuristic được xây dựng dựa trên một số nguyên lý đơn giản như vét cạn thông minh, nguyên lý tối ưu cục bộ (Greedy), nguyên lý hướng đích, nguyên lý sắp thứ tự, …  Các phương pháp trí tuệ nhân tạo Phương pháp thử - sai và Heuristic nói chung đều có một điểm chung cơ bản là dựa trên trí thông minh của con người để giải bài toán, máy tính chỉ đóng vai trò thực thi mà thôi. Phương pháp trí tuệ nhân tạo lại khác, nó dựa vào trí thông minh của máy tính. Trong phương pháp này người ta sẽ đưa vào máy tính trí thông minh nhân tạo giúp máy tính bắt chước một phần khả năng suy luận như con người để từ đó khi gặp một vấn đề, máy tính sẽ dựa trên những điều nó đã được “học” để tự đưa ra phương án giải quyết vấn đề. Một ví dụ kinh điển được Hoàng Kiếm đưa ra cho phương pháp trí tuệ nhân tạo này là bài toán đong nước. Cụ thể như sau: Có hai bình đựng nước là B5 có dung tích 5 lít và B8 có dung tích 8 lít. Hãy chỉ ra cách đong để có được 2 lít nước. Các thao tác có thể thực hiện được là: 1. Hứng đầy nước vào bình B5 hoặc B8. 2. Đổ hết nước trong một bình. 3. Đổ nước từ bình này sang bình kia cho đến lúc bình kia đầy. [7, tr 28] Lời giải theo phương pháp trí tuệ nhân tạo được đưa ra như sau: Thay vì tìm lời giải bằng cách tìm trình tự đổ nước, người ta đưa ra các luật sau và để cho máy tính tự tìm lời giải thông qua các luật này. Luật 1: B8 rỗng thì đổ đầy B8. Luật 2: B5 đầy thì đổ hết nước trong B5. Luật 3: Nếu B5 chưa đầy nước thì đổ nước trong bình B8 sang bình B5 cho đến lúc B5 đầy. Dựa trên các luật được đưa ra ở trên, quá trình suy luận để đưa đến kết quả được mô tả như sau:
  • 30. 28 [8, tr 29] Tuy rằng có thể giải quyết vấn đề - bài toán bằng phương pháp gián tiếp và trực tiếp, tuy nhiên chúng tôi vẫn không tìm thấy được trong các tài liệu kĩ thuật xây dựng thuật toán cho một bài toán. Việc giải quyết các vấn đề - bài toán trên MT không thể không nhắc đến công cụ tính toán. 1.6. Vai trò của công cụ tính toán Quay trở lại với bài toán tính tổng S mà chúng tôi giới thiệu trong phần mở đầu, giữa lời giải toán học và lời giải tin học (dưới dạng thuật toán) có một khoảng cách nhất định. Nếu không có sự xuất hiện của MT thì chỉ cần lời giải toán học (quy đồng rồi cộng các phân số cùng mẫu). Nhưng nếu muốn MT giải quyết bài toán này thì ta không thể sử dụng lời giải toán học đó để cài đặt trên MT mà sử dụng lời giải tin học được xây dựng dựa vào vòng lặp để tính tổng. Nghĩa là giữa lời giải toán học và lời giải tin học của một bài toán có một khoảng cách nhất định. Và dĩ nhiên người dùng không ý thức được điều đó khi không có sự xuất hiện của công cụ tính toán. Và cho dù là người dùng đưa ra lời giải tin học cho bài toán nhưng nếu không có hiện diện của MT thì lời giải là chấp nhận được (chấp nhận theo ý thức con người), chỉ khi cài đặt chương trình lên MT thì người dùng mới nhận thấy những vấn đề chưa tường minh trong lời giải đó và cần phải chỉnh sửa để hoàn thiện lời giải tin học. Trong công trình nghiên cứu (2005), Nguyễn Chí Thành đã chỉ ra mối quan hệ giữa tính toán số, thuật toán và công cụ tính toán như sau: • Tính toán số và công cụ tính toán Một phần khá quan trọng của tính toán lặp có thể được trao cho một hay nhiều công cụ tính toán. Các công cụ này cho phép người vận hành có thể thực hiện công việc tính toán nhờ vào thuật toán được tường minh hay được kết tinh trong một công cụ tính toán, ví dụ như bảng số, bàn tính, máy tính bỏ túi không lập trình được, v.v. Khả năng có thể trao việc tính toán lặp như vậy được khai thác khi các nhà làm chương trình tìm cách đưa một công cụ tính toán mới trong DHTPT để nhấn mạnh việc thu được các kết quả cụ thể của các tính toán số.
  • 31. 29 Việc đưa công cụ tính toán vào các thể chế dạy học môn toán như DHTPT dẫn đến sự phát sinh có tính thể chế. Sự phát sinh này sẽ tổ chức lại các tri thức và các kĩ thuật tính toán số. Ngược lại, ta cũng có thể dự đoán rằng việc đưa các yếu tố của lý thuyết thuật toán và lập trình có thể làm thay đổi việc chủ thể hoá công cụ tính toán số và sự đảm trách của thể chế đối với việc thu được kết qủa cụ thể trong tính toán. [11, tr 257] Trong chương 2 và chương 3 chúng tôi cố gắng tìm hiểu thể chế dạy học Toán học (giai đoạn 1990 – 2000) và thể chế dạy học Tin học hiện hành quan tâm thế nào đến yếu tố công cụ, tác động của yếu tố công cụ đối với quá trình dạy học thuật toán. Kết luận chương 1 Trong chương này chúng tôi đã làm rõ các vấn đề cơ bản sau: - Thuật toán và các vấn đề có liên quan (biễu diễn thuật toán, tính chất thuật toán) làm cơ sở so sánh đối chiếu cho chương 2 và chương 3. - Các phương pháp giải quyết vấn đề trên MT. Việc xây dựng thuật toán hay lời giải cho vấn đề - bài toán bằng máy tính dựa vào hai phương pháp cơ bản là phương pháp trực tiếp và phương pháp gián tiếp hay tìm kiếm lời giải. Phương pháp trực tiếp được sử dụng khi xác định được lời giải qua các công thức, hệ thức, định luật hay qua các bước căn bản để có được lời giải. Lúc này việc giải quyết vấn đề trên máy tính chỉ là sự chuyển đổi lời giải từ ngôn ngữ thông thường sang thuật toán rồi từ đó chuyển sang ngôn ngữ lập trình một ngôn ngữ lập trình nào đó. Khi không xác định được lời giải qua các công thức, định luật, … thì sử dụng phương pháp gián tiếp thông qua các nguyên lý của ba phương pháp cơ bản là thử sai, Heuritic và trí tuệ nhân tạo. Tuy nhiên chúng tôi không tìm thấy một kĩ thuật hay thuật toán nào cho việc xây dựng thuật toán giải một bài toán. Từ đó dẫn chúng tôi đến câu hỏi: Trong thể chế dạy học Toán học giai đoạn 1990 – 2000 và thể chế dạy học Tin học phổ thông hiện nay, các yếu tố về thuật toán và phương pháp xây dựng thuật toán cho một bài toán được giới thiệu như thế nào? Yếu tố công cụ (MT) có được hai thể chế quan tâm không? Để trả lời cho câu hỏi đó, chúng tôi tiến hành nghiên cứu chươn 2: Mối quan hệ thể chế với thuật toán trong dạy học toán PT giai đoạn 1990 – 2000.
  • 32. 30 CHƯƠNG 2: MỐI QUAN HỆ THỂ CHẾ ĐỐI VỚI THUẬT TOÁN TRONG DẠY HỌC TOÁN PHỔ THÔNG GIAI ĐOẠN 1990 – 2000 Mục tiêu của chương 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 giai đoạn 1990 – 2000, trả lời cho một phần câu hỏi Q2: Q2: Mối quan hệ thể chế đố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? Bây giờ, chúng tôi tiến hành phân tích chương IV, SGK Đại số 10 giai đoạn 1990 – 2000 để tìm hiểu xem các khái niệm mở đầu về tin học và thuật toán được trình bày như thế nào? Qua đó làm cơ sở để so sánh đối chiếu với khái niệm về thuật toán và các vấn đề có liên quan được trình bày trong SGK Tin học 10 (Chương trình cải cách 2006). Sỡ dĩ chúng tôi chọn SGK Đại số 10 giai đoạn 1990 – 2000 là vì trong giai đoạn này Tin học được đưa vào lồng ghép trong Toán học, cụ thể ở chương IV. Trong giai đoạn trước đó (giai đoạn trước 1990), Tin học chưa được đưa vào giảng dạy trong chương trình phổ thông, trong chương trình cải cách 2006 thì Tin học được đưa vào giảng dạy đại trà trong cả nước với vai trò là môn học chính khóa. Giai đoạn 1990 – 2000 có ba bộ SGK được lưu hành trong cả nước của các nhóm tác giả khác nhau, chúng tôi chọn bộ sách do Trần Văn Hạo chủ biên để tiến hành nghiên cứu của mình vì đây là bộ sách giới thiệu đầy đủ và chi tiết về thuật toán và các vấn đề liên quan. Cụ thể chúng tôi tiến hành phân tích trên hai tài liệu chính sau: - Trần Văn Hạo, Phan Trương Dần, Hoàng Mạnh Để, Trần Thành Minh, Đại số 10, Nxb Giáo dục 1998. - Trần Văn Hạo, Phan Trương Dần, Trần Thành Minh, Bài tập Đại số 10, Nxb Giáo dục 1998. Trong chương trình toán phổ thông giai đoạn 1990 – 2000, một số khái niệm cơ bản về tin học và thuật toán được giới thiệu trong chương 4: Khái niệm sơ đẳng về tin học và thuật toán, gồm các bài như sau: §1 Khái niệm thuật toán §2 Mô hình hoạt động của máy tính điện tử
  • 33. 31 §3 Ngôn ngữ sơ đồ khối §4 Sai số và thuật toán xấp xỉ với một sai số cho trước Trước hết, chúng tôi tìm hiểu khái niệm thuật toán được giới thiệu trong §1 Khái niệm thuật toán. 2.1. Khái niệm thuật toán 2.1.1 Phần lý thuyết Trước khi đến với khái niệm thuật toán, Stoán 10 (SGK Đại số 10 – 1998) giới thiệu mở đầu về thông tin, xử lý thông tin và khái niệm tin học là gì? Bắt đầu với việc giới thiệu khái niệm Tin học là gì? Tin học là ngành khoa học nghiên cứu về quá trình lưu trữ và xử lý thông tin một cách tự động bằng máy tính điện tử. [6, tr 111] Vậy làm thế nào mà máy tính có thể lưu trữ và xử lý thông tin một cách tự động? Để làm được điều đó người ta phải “căn cứ vào bài toán cần giải quyết, tạo ra một loạt các câu lệnh, mỗi lệnh là một chỉ thị làm một công việc cụ thể nào đó, các lệnh này sắp theo một trình tự nhất định mô tả quá trình giải quyết bài toán đó rồi đưa vào máy”, [6, tr 111]. Máy tính sẽ thực hiện các lệnh đó một cách máy móc cho đến kết quả cuối cùng. Chẳng hạn như việc xác định tính axit của một dung dịch bằng giấy quỳ, dựng đường trung trực của một đoạn thẳng AB bằng thước kẻ và compa hay giải và biện luận phương trình bậc hai được minh họa trong các thí dụ trang 111. Các thí dụ này đơn giản là chỉ ra các lệnh một cách tuần tự để giải quyết các bài toán đó. Từ việc đưa ra các ví dụ minh họa danh sách hữu hạn các lệnh cần phải làm theo từng bước để giải một bài toán, Stoán 10 đưa ra khái niệm thuật toán như sau: Một danh sách hữu hạn các lệnh cần phải làm theo từng bước một để giải quyết một bài toán được gọi là thuật toán giải bài toán đó. [6, tr 112] Lấy ví dụ đối với thuật toán tìm ước chung lớn nhất (UCLN) của hai số. Trước tiên SToán 10 giới thiệu thuật toán giải mà học sinh đã được học trong chương trình toán lớp 6:
  • 34. 32 [6, tr 112] Stoán 10 cũng nói thêm, thuật toán này tuy đơn giản nhưng khi các số cần tìm UCLN khá lớn thì ngay ở bước 1 phân tích các số đó thành thừa số nguyên tố đã là rất khó khăn. Từ đó Stoán 10 giới thiệu một thuật toán khác để tìm UCLN của hai số mà không cần phải phân tích chúng thành thừa số nguyên tố. Đó chính là thuật toán Euclide, một trong những thuật toán đầu tiên của toán học. Việc xây dựng thuật toán bắt đầu bằng việc phân tích: “xuất phát từ việc xét 2 là ước chung của 90 và 54 thì 2 cũng là ước chung của hiệu hai số đó. Từ đó mọi ước chung của 90 và 54 cũng là ước chung của hiệu 90-54 và ngược lại mọi ước chung của 54 và 36 cũng là ước chung của tổng 54+36. Từ đó để tìm UCLN của 90 và 54 ta chỉ cần tìm UCLN của 36 và 54 là cặp số nhỏ hơn cặp số ban đầu.” Trên cơ sở đó, thuật toán Euclide tìm UCLN của hai số được đưa ra như sau: [6, tr 113 - 114] Trong thuật toán này, có sự xuất hiện của một phép toán mới đó là phép gán (trong tin học) ở bước 3 và bước 4. Ở bước 4 là phép gán giá trị một biểu thức cho một biến nhưng Stoán 10 trình bày phép gán đó bằng cách mô tả quá trình thực hiện của phép gán: “Trừ số
  • 35. 33 thứ nhất cho số thứ hai và thay số thứ nhất bởi hiệu đó”. Ở bước 3, phép gán hoán đổi giá trị hai biến cho nhau. Để minh họa cho thuật toán, Stoán 10 giới thiệu bảng theo dõi thuật toán Euclide trong bảng sau: [6, tr 114] Ở đây chúng tôi nhận thấy rằng, mặc dù là minh họa cho các bước thực hiện trong thuật toán nhưng lại không có sự hiện diện của máy tính. Một thuật toán khác được giới thiệu trong phần này là thuật toán viết số tìm được trước tiên trong dãy Phibônaxi lớn hơn 500 (Sau này để cho ngắn gọn chúng tôi gọi tắt đây là thuật toán dãy số Phibônaxi). Vì trước đó học sinh chưa được học về dãy số Phibonaxi, nên trước khi tìm thuật toán, Stoán 10 giới thiệu về dãy số và quy tắc để tìm số hạng tiếp theo khi biết các số hạng đứng trước nó. Quy tắc đó được thể hiện thông qua bảng sau: [6, tr 115]
  • 36. 34 Từ quy tắc và bảng mô tả trên xây dựng nên thuật toán viết số tìm được trước tiên trong dãy Phibonaxi lớn hơn 500 được thể hiện bằng sơ đồ khối. [6, tr 116] Với ví dụ này HS được làm quen với một cách diễn tả thuật toán mới, đó là biểu diễn thuật toán bằng sơ đồ khối: “Sơ đồ khối gồm những khung hay những hộp mà hình dạng của nó sẽ định rõ loại công việc hay chỉ thị mà máy tính cần thực hiện”. Stoán 10 không giới thiệu một cách đầy đủ về sơ đồ khối mà chỉ là giải thích cho HS hiểu về các hình khối được sử dụng trong sơ đồ khối bao gồm: hộp hình thoi, hình chữ nhật và “bắt đầu”, “kết thúc”. Sau đó, Stoán 10 quay trở lại với thuật toán Euclide được trình bày ở phần trước nhưng trong phần này được mô tả lại bằng sơ đồ khối. Ngoài các khái niệm trên, thông qua hai thuật toán được biểu diễn bằng sơ đồ khối này còn có sự xuất hiện khái niệm mới nữa – khái niệm vòng lặp: “trong sơ đồ khối hình 53 ta thấy mũi tên ra khỏi hộp số 5 và quay lại làm công việc như cũ từ hộp số 2. Phần lặp lại này tạo thành một vòng lặp tức là một dãy khép kín các công việc, trong ấy có ít nhất một công việc là phép kiểm nghiệm điều kiện, dùng để xác định sự kết thúc vòng lặp”. Một điều mà chúng tôi nhận thấy qua hai thuật toán được trình bày dưới dạng sơ đồ khối nêu trên đó là các công việc được thể hiện trong các hình khối được mô tả rất chi tiết bằng ngôn ngữ tự nhiên giống như khi diễn tả thuật toán bằng các bước. Nghĩa là việc biểu diễn thuật toán bằng sơ đồ khối ở đây chỉ là thay các bước bởi các hình khối chứa nội dung công việc và chiều mũi tên để chỉ thứ tự thực hiện các thao tác mà chưa hề có sự xuất hiện của các biến, các phép toán. Hơn nữa, Stoán 10 trình bày thuật toán bằng sơ đồ khối trước rồi mới giải thích các kí hiệu, hình khối dùng trong sơ đồ khối . Như vậy Stoán 10 muốn HS
  • 37. 35 hiểu thế nào là biểu diễn thuật toán bằng sơ đồ khối mà chưa đi sâu vào việc làm thế nào để biểu diễn thuật toán bằng sơ đồ khối. Phép gán - thay số này bởi số kia cũng xuất hiện ngầm ẩn trong thuật toán dãy Phibonaxi, ở bước 4: “giáng cấp số cuối thành áp cuối” và ở bước 5 là “lấy tổng vừa tính coi là số cuối.” 2.1.2. Phần bài tập Gồm 6 bài tập như sau: Bài 1: Nêu các thông tin nhận được khi gặp các biển báo giao thông sau đây Bài 2: Một học sinh kiểm tra xe đạp để chuẩn bị đi cắm trại ngày chủ nhật, thấy bánh xe bị xẹp. Bơm lên, bánh xe vẫn bị xẹp. Thông tin nhận được là: ruột xe bị thủng. Có mấy cách xử lý thông tin đó: 1Mượn chiếc xe khác. 2Mang ra tiệm sửa xe. 3Tự vá lấy ruột xe. Hãy mô tả chi tiết quy trình xử lí theo cách thứ ba đó (bao gồm: dụng cụ và vật liệu chuẩn bị, các bước tiến hành theo một thứ tự nhất định). Bài 3: Hãy trình bày thuật toán giải bài toán sau: Dựng đường phân giác của một góc xOy bằng thước kẻ và compa. Bài 4: Viết thuật toán vẽ đồ thị hàm số =y a x căn cứ vào đồ thị hàm số y=ax. Bài 5: Hai học sinh A và B chơi trò chơi như sau: Có 15 que diêm, hai người lần lượt đi, mỗi lần mỗi người được lấy 1, 2 hoặc 3 que diêm. Người nào phải lấy que diêm cuối cùng thì thua. Chứng tỏ rằng nếu học sinh A là người đi trước và đi theo thuật toán sau: Bước 1: A lấy 2 que diêm. Bước 2: Sau khi B lấy x que diêm ( )1 3≤ ≤x thì A lấy 4-x que diêm. Lặp lại bước 2, thì A sẽ thắng, nghĩa là B phải lấy que diêm cuối cùng.
  • 38. 36 Bài 6: Chứng tỏ rằng nếu trong trò chơi ở bài tập 5 lúc đầu có 20 que diêm thì học sinh A chơi theo thuật toán đó không thắng. Hãy đổi thuật toán để học sinh A đi trước sẽ thắng. [6, tr 119] Trong số những bài tập này thì chỉ có bài tập đầu tiên không liên quan đến thuật toán, các bài tập còn lại đều tập trung hướng vào thuật toán. Cũng giống như cách trình bày khái niệm thuật toán là bắt đầu làm quen với việc liệt kê một dãy có thứ tự các bước để thực hiện một công việc nào đó (bài 2), đến việc viết thuật toán giải quyết một bài toán nào đó (bài 3, 4) và sau đó là thực hiện các công việc theo các bước đã chỉ ra. Hơn thế nữa, hai bài tập yêu cầu học sinh viết thuật toán là các bài toán học sinh đã gặp trong toán học và đã có cách giải cụ thể, HS chỉ cần dựa trên cách giải đã có liệt kê lại theo thứ tự từng bước tạo nên thuật toán. Hai bài tập 5 và 6 về trò chơi lấy que diêm, bài toán này HS chưa có công thức hay lời giải cụ thể. Mặt khác trong nội dung lý thuyết trình bày ở trên cũng chưa trình bày cụ thể cách thức hay một phương pháp nào để xây dựng thuật toán để giải một bài toán cho nên hai bài tập này chỉ yêu cầu HS thực hiện theo thuật toán được cho sẵn để đi đến kết quả của trò chơi và dựa trên thuật toán đó xây dựng thuật toán khác sao cho kết quả trò chơi không thay đổi khi thay đổi số que diêm. Các tổ chức toán học gắn với khái niệm thuật toán • T1: Trình bày (viết) thuật toán giải bài toán mà HS đã biết lời giải toán học. Ví dụ: Thuật toán Euclide và thuật toán dãy Phibonaxi được giới thiệu trong mục 2. Khái niệm thuật toán. Sơ đồ khối ở phần b và c. Bài 3: (Stoán 10 tr 119) Hãy trình bày thuật toán giải bài toán sau: Dựng đường phân giác của một góc xOy bằng thước kẻ và compa. Lời giải mong đợi được Sách bài tập toán 10 đưa ra ở trang 182 như sau: Thuật toán dựng đường phân giác của góc xOy bằng thước kẻ và compa: 1. Đặt đầu nhọn ccompa tại O. 2. Mở compa một độ tùy ý và quay compa cắt Ox tại A, Oy tại B. 3. Đặt đầu nhọn tại A, đầu kia tại B và quay compa. 4. Đặt đầu nhọn tại B, đầu kia tại A và quay compa. 5. Dùng thước kẻ nối giao điểm của hai đường tròn với O (ba điểm này thẳng hàng). Đó là đường phân giác. [7, tr 182] Bài 4: (Stoán 10 tr 119) Viết thuật toán vẽ đồ thị hàm số =y a x căn cứ vào đồ thị hàm số y=ax.
  • 39. 37 Ngoài ra ở phần ôn tập chương, có 4 bài tập yêu cầu viết bằng lời các lệnh liên tiếp của thuật toán. Dựa trên lời giải được đưa ra ở Sách bài tập Toán 10, chúng tôi đưa ra kĩ thuật như sau: Kĩ thuật 1τ : - Tìm lời giải toán học của bài toán - Chia lời giải tìm được thành các bước nhỏ theo trình tự nhất định ta có được thuật toán giải bài toán đó được biểu diễn dưới dạng liệt kê các bước. Công nghệ 1θ : khái niệm thuật toán. • T2: Chạy thuật toán (Thực hiện thuật toán) Các bài tập liên quan đến kiểu nhiệm vụ này: Bài 6: Chứng tỏ rằng nếu trong trò chơi ở bài tập 5 lúc đầu có 20 que diêm thì học sinh A chơi theo thuật toán đó không thắng. Hãy đổi thuật toán để học sinh A đi trước sẽ thắng. Đối với kiểu nhiệm vụ này, kĩ thuật khá đơn giản là: lần lượt thực hiện các bước theo trình từ được mô tả trong thuật toán và ghi lại kết quả sau từng bước thực hiện. • T3: Chứng minh tính đúng đắn của thuật toán. Nghĩa là kiểm tra từ dữ liệu vào của bài toán, sau khi thuật toán ta nhận được kết quả như mong muốn. Bài toán thuộc kiểu nhiệm vụ này: Bài 5: Hai học sinh A và B chơi trò chơi như sau: Có 15 que diêm, hai người lần lượt đi, mỗi lần mỗi người được lấy 1, 2 hoặc 3 que diêm. Người nào phải lấy que diêm cuối cùng thì thua. Chứng tỏ rằng nếu học sinh A là người đi trước và đi theo thuật toán sau: Bước 1: A lấy 2 que diêm. Bước 2: Sau khi B lấy x que diêm ( )1 3≤ ≤x thì A lấy 4-x que diêm. Lặp lại bước 2, thì A sẽ thắng, nghĩa là B phải lấy que diêm cuối cùng. Lời giải mong đợi được Sách bài tập toán 10 đưa ra ở trang 182 như sau: 5.Học sinh A muốn thắng thì phải buộc cho học sinh B lấy que diêm cuối cùng. Sau bước 1, số que diêm còn lại là 13.
  • 40. 38 Sau bước 2, khi B đã bốc x que và A lấy 4-x que thì còn lại 9 que và đến lượt B. Tiếp tục bước 2 một lần nữa, số que diêm còn lại là 5 que và lại đến lượt B. Tiếp tục bước 2 một lần nữa thì còn lại một que diêm và B phải lấy que diêm cuối cùng này. [7, tr 182] Kĩ thuật và Công nghệ: vắng mặt. • Nhận xét: - Như vậy phần này Stoán 10 đã giới thiệu các vấn đề cơ bản nhất về thuật toán, biễu diễn thuật toán. - Các bài toán được giới thiệu là những bài toán đã có lời giải toán học. Để xây dựng thuật toán, từ lời giải đó chia thành các bước theo một thứ tự nhất định. - Có hai tổ chức toán học gắn liền với ba kiểu nhiệm vụ viết thuật toán, chạy thuật toán và chứng minh tính đúng đắn của thuật toán. Trong đó, đối với kiểu nhiệm vụ viết thuật toán, các bài toán đơn giản đã có lời giải toán học. 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 TỔNG ←CUỐI + ÁP CUỐI
  • 41. 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
  • 42. 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:
  • 43. 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.
  • 44. 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 0ax 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 0a = và 0a ≠ . • 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 1 2,x x , 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 , 0≠a 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
  • 45. 43 2 0, 0+ + > ≠ax bx c a 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. • Nhận xét:
  • 46. 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 đó.
  • 47. 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?