Qua thực tế giảng dạy ở trường và qua trao đổi với đồng nghiệp, tôi nhận thấy rằng trong toàn bộ chương trình Tin học 10 thì bài 4 _”Bài toán và thuật toán” có nội dung hay nhưng khó và
Trang 11 MỞ ĐẦU
- Lí do chọn đề tài
Như chúng ta đã biết Tin học là một bộ môn học mới được đưa vào giảng dạy chính thức ở các trường phổ thông Đối với các em học sinh, có thể nói đây
là một hành trang giúp các em vững bước đi tới tương lai_tương lai của thế hệ thời đại công nghệ thông tin bùng nổ Tuy nhiên, đối với học sinh lớp 10 mới làm quen với chương trình Tin học nên các em còn nhiều bỡ ngỡ Vì vậy, quá trình dạy và học bộ môn Tin học trong nhà trường gặp nhiều khó khăn Đây là một môn khoa học mới mang tính trừu tượng nhưng học sinh cũng rất có hứng thú tìm hiểu
Qua thực tế giảng dạy ở trường và qua trao đổi với đồng nghiệp, tôi nhận thấy rằng trong toàn bộ chương trình Tin học 10 thì bài 4 _”Bài toán và thuật toán” có nội dung hay nhưng khó và khô khan, đặc biệt là việc mô tả các thuật toán để biểu diễn vào máy tính, cho dù đó là bài toán quen thuộc Cũng là từ việc thăm lớp dự giờ của các đồng nghiệp, với tình hình kết quả học tập của học sinh, cộng với tinh thần say mê nghề nghiệp, tôi muốn chia sẻ một kinh nghiệm nhỏ để giúp chúng ta cùng tham khảo trong quá trình dạy học Đó là kinh
nghiệm phối hợp nhiều phương pháp trong giờ dạy để giúp các em học tốt hơn
về “Bài toán và thuật toán” trong sách Tin học 10 Cụ thể tôi muốn nhấn mạnh ở đây là phương pháp dùng giáo án điện tử do giáo viên biên soạn để trình chiếu bài giảng, kết hợp với thuyết trình, vấn đáp và mô phỏng các dẫn chứng cụ thế cho học sinh hiểu bài
Tôi xin trình bày phương pháp giảng dạy của mình thông qua một số ví dụ
về bài giảng cụ thể trong chương trình Tin học lớp 10, đó là bài “Tìm hiểu về bài toán và thuật toán” Đây được coi là bài học khó trong chương trình sách giáo khoa lớp 10 và có liên quan chặt chẽ đến kiến thức lớp 11 sau này
- Mục đích nghiên cứu
Đề tài được thực hiện nhằm mục đích đưa ra một số kinh nghiệm trong việc phối hợp một số phương pháp trong giờ dạy học để giúp học sinh có cái nhìn trực quan, hiểu và nắm bắt sâu hơn để học tốt hơn về “Bài toán và thuật toán” trong chương trình Tin học lớp 10 Từ đó, qua mỗi phần học, tiết học học sinh thích thú với kiến thức mới, qua đó hiểu được các kiến thức đã học trên lớp, đồng thời giúp các em thấy được tầm quan trọng của vấn đề và việc ứng dụng của kiến thức trước hết là đáp ứng những yêu cầu của môn học, và sau đó là ứng dụng thực tiễn vào đời sống xã hội
- Đối tượng nghiên cứu
+ Đối tượng nghiên cứu của đề tài là phối hợp một số phương pháp, mô hình trong giờ dạy để tạo sự hứng thú, tích cực cho học sinh giúp lĩnh hội kiến thức một cách tốt nhất để đem lại hiệu quả cao
Trang 2+ Học sinh vận dụng tốt các kiến thức đã học nhằm rèn cho học sinh kỹ năng tư duy, chủ động và sáng tạo
+ Đối tượng nghiên cứu là học sinh khối 10 của trường PT Nguyễn Mộng Tuân năm học 2016-2017
- Phương pháp nghiên cứu
+ Tìm, đọc, nghiên cứu các tài liệu đến vấn đề đặt ra để tìm cơ sở khoa
học cho đề tài và tìm ra các giải pháp phù hợp với tình hình thực tế khi dạy bài:
“Bài toán và thuật toán”, từ đó rút ra kinh nghiệm áp dụng
+ Điều tra, đối thoại để tìm hiểu thực trạng của học sinh và tìm ra biện pháp thiết thực để giải quyết thực trạng đó qua trao đổi với đồng nghiệp
+ Dự giờ, rút kinh nghiệm, học hỏi đồng nghiệp
+ Kiểm tra, đối chiếu, so sánh qua việc thực hiện phương pháp mới ở một
số lớp và không áp dụng ở một số lớp
+ Phân tích, tổng hợp kết quả thu được trong thực tế để thấy được hiệu quả của đề tài
+ Giúp học sinh nắm vững hai khái niệm then chốt về Bài toán và thuật toán, nắm được các tính chất của thuật toán và cách diễn tả thuật toán bằng hai cách là liệt kê và sơ đồ khối
+ Cần rèn luyện cho học sinh kỹ năng liên hệ thực tế, liên hệ với bộ môn toán học và vận dụng kiến thức đó để rút ra kết luận bài học
+ Soạn trước bài giảng: “Tìm hiểu về bài toán và thuật toán” trên máy tính bằng phần mềm Powerpoint , cùng với việc kết hợp mô phỏng thuật toán được chạy bằng chương trình Flash Player 7
2 NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận của sáng kiến kinh nghiệm
Trước đây phương pháp dạy học của chúng ta đơn thuần chỉ là thuyết trình, vấn đáp trên lớp Nhưng trong vài năm gần đây các trường phổ thông đó được trang bị phòng học máy tính (Computer) và máy chiếu (Projector) tại các lớp học, vì vậy chúng ta có điều kiện xây dựng “giáo án điện tử” để trình chiếu bài, kết hợp với việc dựng một số mô hình hỗ trợ cho nội dung bài học
“Bài toán và thuật toán” là một bài học khó trong chương trình SGK_Tin học 10 và có liên quan đến kiến thức lớp 11 Để viết được một thuật toán trên một loại ngôn ngữ nào đó thì trước hết yêu cầu học sinh phải nắm được thuật toán của bài toán đó Như vậy, các em vừa phải biết suy luận giỏi như toán, lại còn phải biết cách trình bày từng bước một cách lôgic Các em quen với cách áp dụng một quy luật, một công thức mà chưa quen với việc phải thực hiện từng bước lôgic, khoa học sao cho máy tính hiểu Vì thế, giáo viên cần tích cực tìm tòi, sáng tạo trong bài dạy nhằm tăng thêm phần sinh động, gây hứng thú cho học sinh thì bài học mới đem lại kết quả cao
Trang 3Từ kinh nghiệm của bản thân, qua trao đổi với tổ, nhóm chuyên môn tôi xin trình bày phương pháp giảng dạy của mình thông qua một ví dụ về một bài giảng cụ thể trong chương trình Tin học 10, đó là bài “Tìm hiểu về bài toán và thuật toán”
2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
Bài toán và thuật toán là một bài lý thuyết nhưng lại liên quan đến bài tập trong chương trình Tin học 10 Do đó, nếu học sinh hiểu được khái niệm bài toán, thuật toán và phân biệt giữa chúng thì cũng chưa thể hình dung được cách thức làm việc của máy tính Do đó vẫn đặt ra cho học sinh một câu hỏi: Vậy với một bài toán như thế, chỉ cần đưa ra một thuật toán cho nó thì bằng cách nào mà máy tính có thể cho ta kết quả một cách nhanh chóng và hiệu quả Đó mới là câu hỏi lớn trong suốt quá trình học của học sinh, nếu giáo viên chưa áp dụng được phương pháp dạy học mới_bằng “giáo án điện tử”, minh họa và mô phỏng qua các hình ảnh Chính vì thế, học sinh luôn phản ánh với giáo viên rằng bộ môn này khó và trừu tượng Khi kiểm tra với mức độ đề tương đương trong SGK, các
em vẫn cảm thấy mơ hồ và đạt kết quả không cao
Chất lượng kiểm tra sau khi học xong bài “Bài toán và thuật toán” môn Tin 10 ở trường PT Nguyễn Mộng Tuân tương đối thấp Và nhiều học sinh còn chưa chủ động, chưa có thái độ tích cực xây dựng bài trong “Bài toán và thuật toán” Bên cạnh đó, cũng có nhiều học sinh cho rằng đây là nội dung khó hiểu
và thường gặp khó khăn khi vận dụng các bài đã học để giải quyết các bài toán
2.3 Giải pháp đã sử dụng để giải quyết vấn đề
2.3.1 Giải pháp cụ thể
2.3.1.1 Giải pháp 1: Khảo sát thực tế
Giáo viên đưa ra đề kiểm tra 1 tiết đối với lớp 10A2 (có 45 HS) như sau:
Bài 1: Viết thuật toán tìm Max của dãy số gồm N số nguyên từ a1,a2, aN.
Bài 2: Viết thuật toán tìm UCLN của hai số nguyên dương A=25 và B=15
Bài 3: Viết thuật toán sắp xếp bằng tráo đổi để sắp xếp dãy a1,a2……aN thành dãy không tăng (tức dãy giảm dần)
Kết quả kiểm tra như sau:
Trang 4
Đối với các em học sinh, hầu như chỉ mới làm được Bài 1, Bài 2, Bài 3 ở việc xác định Input và Output Còn để hiểu và viết được thuật toán cho bài thì quả là khó khăn với các em
2.3.1.2 Giải pháp 2: Chuẩn bị
- Về phương pháp:
+ Giáo viên soạn trước bài giảng “Bài toán và thuật toán” trên máy tính được biểu diễn bằng phần mềm trình chiếu Powerpoint
+ Sưu tầm được một số mô hình bằng flash hỗ trợ cho việc dạy học
+ Kết hợp thêm với phương pháp thuyết trình và vấn đáp, cho một số em lên bảng làm mẫu khi cần biểu diễn thuật toán tìm Max và thuật toán sắp xếp
+ Giáo viên nên chuẩn bị thêm một số bài tập để rèn luyện thêm kỹ năng biểu diễn thuật toán cho học sinh
- Về phương tiện dạy học
+ Giáo viên nên chuẩn bị một máy tính để bàn hoặc máy tính xách tay, một máy chiếu Nếu có điều kiện thì máy chủ của giáo viên nối với tất cả các máy con của học sinh để tiện quan sát
+ Học sinh chuẩn bị sách, vở, bút, thước…
2.3.2 Các bước thực hiện bài giảng "Tìm hiểu bài toán và thuật toán”
2.3.2.1 Hoạt động 1: Giúp học sinh hiểu rõ khái niệm "Bài toán" trong Tin học (Tài liệu bồi dưỡng giáo viên thực hiện chương trình Tin 10)
Giáo viên đặt vấn đề bằng cách đưa ra các ví dụ để học sinh quan sát:
- Bài toán 1: Cho dãy số nguyên dương từ a1,a2……an Viết thuật toán tìm giá trị lớn nhất của dãy
- Bài toán 2: Tìm UCLN của hai số nguyên dương A=25 và B=15
- Bài toán 3: Cho dãy số nguyên dương từ a1,a2……an Viết thuật toán sắp xếp bằng tráo đổi để sấp xếp dãy trên thành dãy không tăng (dãy giảm dần)
Phát vấn học sinh: Em hãy xác định dữ kiện ban đầu và kết quả của mỗi
bài toán sẽ có dạng gì ? (Dạng số, hình ảnh, hay văn bản ?)
Học sinh trả lời:
Ở bài toán 1 Cho dãy số nguyên
dương a1,a2,… an
Giá trị lớn nhất của dãy
Ở bài toán 2 M, N là hai số nguyên
dương
UCLN của hai số nguyên dương
Ở bài toán 3 Cho dãy số nguyên
dương a1,a2……an
Sắp xếp thành dãy không tăng
Phát vấn học sinh: Em hãy nhận xét sự giống và khác nhau giữa bài toán
trong Tin học và bài toán trong Toán học?
Học sinh trả lời: Bài toán trong Toán học yêu cầu chúng ta giải cụ thể để
tìm ra kết quả, còn bài toán trong Tin học yêu cầu máy tính giải và đưa ra kết
Trang 5quả cho chúng ta Giáo viên gợi ý thêm: Khi cô giáo ra một đề toán và yêu cầu chúng ta giải, vậy lúc này đối tượng giải bài toán này là ai? Học sinh sẽ trả lời chính là các em hay nói cách khác chính là Con người
Giáo viên liên hệ từ Con người Máy tính
Từ đây Giáo viên trình chiếu khái niệm Bài toán trong Tin học : Là một
việc nào đó mà ta muốn máy tính thực hiện để từ thông tin đầu vào (dữ kiện) máy tính cho ta kết quả mong muốn
- Nh
- Những dữ kiện của bài toán được gọi là Input (đầu vào)
- Kết quả máy tính trả ra được gọi là Output (đầu ra)
Sau đó giáo viên yêu cầu học sinh tìm lại Input và Output của 3 ví dụ trên
Như vậy, khái niệm bài toán không chỉ bó hẹp trong phạm vi môn toán,
mà phải được hiểu như là một vấn đề cần giải quyết trong thực tế, để từ những
dữ kiện đã cho máy tính tìm ra kết quả cho chúng ta
2.3.2.2 Hoạt động 2: Giúp học sinh hiểu rõ khái niệm "Thuật toán" trong Tin học
+ Bước 1 : Giáo viên nêu tình huống gợi động cơ:
Làm thế nào để từ Input của bài toán, máy tính tìm cho ta Output ?
Học sinh trả lời: Ta cần tìm cách giải bài toán và làm cho máy tính hiểu được
cách giải đó
Đến đây sẽ có em thắc mắc: Như vậy chúng ta vẫn phải giải bài toán mà
có khi còn phức tạp hơn trong Toán học ?
Giáo viên giải thích: Nếu như trong Toán học chúng ta phải giải trực tiếp giải từng bài để lấy kết quả, thì ở đây chúng ta chỉ cần tìm cách giải bài toán tổng quát và máy tính sẽ giải cho ta một lớp các bài toán đồng dạng
Ví dụ: Bài toán giải phương trình bậc 2 với 3 hệ số a,b,c bất kỳ, bài toán tìm diện tích tam giác với độ dài 3 cạnh được nhập bất kỳ, bài toán tìm UCLN, bài toán tính chu vi và diện tích hình vuông
Toán học
Giả thiết
Kết luận
Tin học
Thông tin đưa vào máy Thông tin muốn lấy từ máy
Thuật ngữ
Input Output
Bài toán
Input Output
Thuật toán
Trang 6+ Bước 2: Giỏo viờn đưa ra khỏi niệm thuật toỏn và cỏc tớnh chất của một thuật
toỏn:
Khỏi niệm: “Thuật toỏn để giải một bài toỏn là một dóy hữu hạn cỏc thao tỏc được sắp xếp theo một trỡnh tự xỏc định sao cho sau khi thực hiện dóy cỏc thao tỏc ấy, từ thụng tin đầu vào (Input) của bài toỏn ta nhận được kết quả (Output) cần tỡm”
+ Bước 3: Giới thiệu cho học sinh 2 cỏch biểu diễn một thuật toỏn
- Cỏch l: Liệt kờ cỏc bước: Chớnh là dựng ngụn ngữ tự nhiờn để diễn tả cỏc bước cần làm khi giải một bài toỏn bằng mỏy tớnh
- Cỏch 2: Dựng sơ đồ khối
Một số quy ước khi biểu diễn thuật toỏn bằng sơ đồ khối: (Cú thể trỡnh chiếu cho học sinh như sau)
Quy ư ớc các khối trong sơ đồ thuật toán
Bắtưđầu thuật toán.
Dùng để nhập và xuấtưdữ liệu.
Dùng để gánưgiá trịưvà tínhưtoán.
Xét điều kiện rẽ nhánhưtheo một trong hai điềuưkiện đúng,ưsai.
Kết thúc thuật toán.ư
BĐ
ĐK
đ S
KT
Cách 2:ưVẽ sơ đồ khối
Giỏo viờn nhắc học sinh phải nhớ cỏc quy ước trờn để biểu diễn thuật toỏn được chớnh xỏc
2.3.2.3.Hoạt động 3: Giới thiệu và hướng dẫn học sinh mụ tả, biểu diễn thuật toỏn của một số bài toỏn điển hỡnh (Trọng tõm)
a Bài toỏn 1: Tỡm Max của một dóy số gồm N số nguyờn a 1 , a 2 , a 3 ,…, a N
(Tài liệu theo Chuẩn kiến thức và kĩ năng Tin học 10 )
* í tưởng:
- Khởi tạo Max= a1
Ở đõy giỏo viờn cú thể phỏt vấn học sinh: Vỡ sao lại khởi tạo Max= a1? Về nguyờn tắc cú thể dựng bất kỡ số hạng nào của dóy để khởi tạo cho biến Max
Trang 7Nhưng như vậy là không hiệu quả vì lúc đó phải khởi tạo biến chỉ số i là 1 (thêm một phép toán tăng i và thêm một phép toán không cần thiết là so sánh giá trị
Max với số hạng đã dùng để khởi tạo biến Max).
- Duyệt từ đầu dãy đến cuối dãy, sau đó mỗi lần, tùy kết quả so sánh với
ai, nếu ai >Max thì gán Max bằng ai, cuối cùng sẽ tìm được Max
Đầu tiên, xét số hạng a2 (i=2), tiếp theo xét số hạng a3 (i=3),…cho đến số hạng an.
Học sinh cần bắt đầu làm quen dần với cách thay đổi giá trị của biến (trong thuật toán này, mỗi lần duyệt i được gán giá trị mới bằng i+1)
Giáo viên nên trình bày thật cặn kẽ, kỹ lưỡng thuật toán này vì nó thể hiện tương đối đủ các khái niệm mà học sinh cần làm quen dần Sách giáo khoa cũng lấy thuật toán này làm ví dụ minh họa các tính chất của thuật toán Trên cơ sở đó
HS dễ tiếp thu hơn các thuật toán tiếp theo
Trình chiếu thuật toán: (Tài liệu theo Sách giáo khoa Tin học 10)
Cách 1: Liệt kê các bước
Bước 1: Nhập N và dãy số nguyên a1, a2, a3,…, aN
Bước 2: Max a1, i 2
Bước 3: Nếu i > N thì đưa ra giá trị Max rồi kết thúc
Bước 4:
4.1: Nếu ai > Max thì Max ai
4.2: i i+1 rồi quay lại bước 3 Cách 2: Biểu diễn bằng sơ đồ
Nhập N và dãy
a1,a2…….an
Max a1, i 2
i > N
ai >
Max Max ai
i i+1
Đưa ra Max rồi kết thúc
Đúng
Sai
Đúng Sai
Trang 8Mô phỏng: Với việc trình chiếu bằng giáo án điện tử, thông qua minh hoạ bằng
ví dụ cụ thể thì các em hầu hết đã hiểu rõ về cách viết thuật toán (Ví dụ như một Slide như sau) Cho biến i chạy từ 2 đến N để so sánh ai với Max, giá trị của Max lần lượt thay đổi theo từng biến chạy i, khi trình chiếu bằng giáo án điện tử học sinh quan sát sẽ hiểu rất rõ giá trị Max tìm được, khi i =12 > N = 11, thì đưa
ra Max cuối cùng = 16, thuật toán kết thúc
2 Khái niệm thuật toán (Algorithm)
Minh họa bằng số liệu cụ thể :
i =
Max =
N = 11
Hoặc ở đây tôi có thể mô phỏng thuật toán được chạy bằng chương trình Flash Player 7 qua mỗi lần duyệt, đầu tiên so sánh Max với a2 Mô hình được minh họa như sau:
Rồi lần lượt so sánh Max với a3, a4, a5 thì sẽ tìm được Max cần tìm
Trang 9b Bài toán 2: Tìm UCLN của hai số nguyên dương A=25 và B=15
(Tài liệu theo sách giáo viên Tin học 10).
* Ý tưởng: Duyệt lần lượt đến khi hai số đó chia hết cho một số lớn nhất
- Trình chiếu và hướng dẫn học sinh 2 cách biểu diễn thuật toán
Cách 1: Liệt kê các bước
Bước 1: Nhập hai số nguyên dương A = 25 và B = 15
Bước 2: Nếu A = B thì UCLN của A và B là A or là B rồi kết thúc
Bước 3: Nếu A > B thì A = 25 – 15 rồi quay lại Bước 2 (A = 10)
Bước 4: Nếu B > A thi B = 15 – 10 rồi quay lại Bước 2 (B = 5)
Bước 4: Nếu A > B thi B = 10 – 5 rồi quay lại Bước 2 (A =5)
Bước 5: Xuất UCLN của A = 25 và B = 15 là 5 rồi kết thúc
Cách 2: Biểu diễn bằng sơ đồ khối
Duyệt lần thứ nhất:
A = 25 và B =15 A > B; A = A – B (25 -15) A = 10
Lần duyệt thứ nhất ta thấy A =10 và B = 15 nên A < B vì thế ta chuyển sang lần duyệt thứ hai
Nhập A= 25,B=15
A, B rồi (kết thúc)
B = B - A
Đúng
Đúng
Sai Sai
Trang 10Duyệt lần thứ hai:
Sau lần duyệt lần thứ hai:
A = 10 và B =15 A < B; B = B – A (15 -10) B = 5
Lần duyệt thứ hai ta thấy A =10 và B = 5 nên A < B vì thế ta chuyển sang lần duyệt thứ 3
Nhập A= 25, B=15
A = B
Đưa ra UCLN của A, B rồi (kết thúc)
B = 15 - 10
Đúng
Sai
Đúng Sai