SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁTRƯỜNG THPT THẠCH THÀNH IV SÁNG KIẾN KINH NGHIỆM ĐỀ TÀI: ỨNG DỤNG PHẦN MỀM CROCODILE ICT 605 VÀO MÔ PHỎNG BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN TRONG TIN HỌC LỚP
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ
TRƯỜNG THPT THẠCH THÀNH IV
SÁNG KIẾN KINH NGHIỆM
ĐỀ TÀI: ỨNG DỤNG PHẦN MỀM CROCODILE ICT 605 VÀO MÔ PHỎNG BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN TRONG TIN HỌC LỚP
10 ĐỂ TẠO HỨNG THÚ HỌC TẬP CHO HỌC SINH VÀ NÂNG CAO CHẤT LƯỢNG HỌC MÔN TIN HỌC Ở TRƯỜNG THPT THẠCH
Trang 2M C L C ỤC LỤC ỤC LỤC
I ĐẶT VẤN ĐỀ 1
II GIẢI QUYẾT VẤN ĐỀ 2
II.1 Cơ sở lý luận của vấn đề 2
II.2 Thực trạng vấn đề 2
II.3 Giải pháp và tổ chức thực hiện 3
II.3.1 Hướng dẫn sử dụng phần mềm crocodile ICT 605 3
II.3.2 Giải pháp thực hiện 5
III KIỂM NGHIỆM 16
III.1 Kết quả nghiên cứu 16
III.2 Hiệu quả sau ứng dụng sáng kiến 16
IV.1 Kết luận 17
IV.2 Đề xuất 18
Trang 3I ĐẶT VẤN ĐỀ
Trong thời đại hiện nay sự bùng nổ thông tin đã tác động lớn đến công cuộcphát triển kinh tế xã hội loài người Với con người của thời đại hiện nay ngoài cáckiến thức về chuyên môn thì hầu hết mọi người luôn sử dụng máy tính như mộtcông cụ trợ giúp
Chính vì vậy ứng dụng công nghệ thông tin vào dạy học đang trở thành tràolưu của nền giáo dục hiện đại Thông qua việc sử dụng các công cụ hỗ trợ làm chobài giảng của giáo viên thêm phong phú và trực quan hơn, giúp các thầy giáo, côgiáo nâng cao được chất lượng dạy học, trang bị cho học sinh kiến thức về côngnghệ thông tin và sử dụng nó như một công cụ học tập
Trong quá trình giảng dạy Tin học THPT, đối với học sinh các huyện miềnnúi và đặc biệt là học sinh trường THPT Thạch Thành 4 thì lập trình được mộtchương trình hoàn chỉnh không phải là điều dễ làm Vậy để học sinh lập trình đượcmột chương trình hoàn chỉnh thì học sinh phải nắm chắc được thuật toán của bàitoán Điều đó chứng tỏ ‘BÀI TOÁN VÀ THUẬT TOÁN’ là bước đệm quan trọng
cho việc lập trình và có mối liên hệ mật thiết với nhau ‘BÀI TOÁN VÀ THUẬT
TOÁN’ là một kiến thức hoàn toàn mới và trừu tượng, nếu chỉ dạy bằng phươngpháp thông thường thì học sinh khó có thể nắm bắt được các nội dung chính vàhiểu rõ được bản chất vấn đề Đó chính là lý do bản thân tôi quyết định lựa chọn đề
tài “ỨNG DỤNG PHẦN MỀM CROCODILE ICT 605 VÀO MÔ PHỎNG BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN TRONG TIN HỌC LỚP 10 ĐỂ TẠO HỨNG THÚ HỌC TẬP CHO HỌC SINH VÀ NÂNG CAO CHẤT LƯỢNG HỌC MÔN TIN HỌC Ở TRƯỜNG THPT THẠCH THÀNH IV” Bởi vì việc
mô phỏng thuật toán với giao diện đồ hoạ rất trực quan, đồng thời người sử dụng
có thể tương tác với hệ thống mô phỏng, giúp người học nhanh chóng hiểu đượcbản chất vấn đề, hiểu được từng thao tác trong thuật toán hoạt động như thế nào,đồng thời đánh giá được tính đúng đắn của thuật toán Ngoài ra mô phỏng còn giúpngười dạy dể dàng truyền đạt được ý tưởng của thuật toán giúp cho quá trình giảngdạy thuận lợi hơn và tạo được hứng thú cho học sinh khi học bài này
Trang 4II GIẢI QUYẾT VẤN ĐỀ
II.1 Cơ sở lý luận của vấn đề
Đảng và Nhà nước ta đã nhận thấy được tầm quan trọng của ngành Tin học và
đã đưa môn học này vào nhà trường phổ thông như những môn khoa học khác bắt đầu từ năm học 2006-2007
Chỉ thị số 55/2008/CT- BGTĐT ngày 30/9/2008 của Bộ trưởng Bộ GDĐT vềtăng cường giảng dạy, đào tạo và ứng dụng công nghệ thông tin trong ngành giáodục giai đoạn 2008-2012
Quyết định 1215/QĐ-BGDĐT năm 2013 về chương trình hành động củangành giáo dục thực hiện chiến lược phát triển giáo dục Việt Nam 2011-2020, kếtluận 51-KL/TW và chỉ thị 02/CT-TTg về đổi mới căn bản, toàn diện giáo dục vàđào tạo do Bộ trưởng Bộ Giáo dục và Đào tạo ban hành
Trong bối cảnh toàn ngành Giáo dục và Đào tạo đang nỗ lực đổi mới phươngpháp dạy học theo hướng phát huy tính tích cực chủ động của học sinh trong hoạt
động học tập Điều 24.2 của Luật giáo dục đã nêu rõ: “Phương pháp giáo dục phổ
thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh” Như vậy, chúng ta có thể thấy định
hướng đổi mới phương pháp dạy học đã được khẳng định, không còn là vấn đềtranh luận Cốt lõi của việc đổi mới phương pháp dạy học ở trường phổ thông làgiúp học sinh hướng tới việc học tập chủ động, chống lại thói quen học tập thụđộng
II.2 Thực trạng vấn đề.
Trang 5sinh gặp phải trong quá trình giảng dạy môn Tin học là:
- Học sinh chưa thực sự hiểu rõ như thế nào là một bài toán trong Tin học
- Để biểu diễn thuật toán cho một bài toán học sinh chưa biết bắt đầu từ đâu
- Rất khó khăn khi viết chương trình cho bài toán cụ thể
- Tất cả những kiến thức trên đều được học sinh tiếp thu một cách thụ động và cònđang rất lúng túng chưa hiểu rõ được bản chất của vấn đề
Nếu không hiểu được bài toán trong tin học là gì thì để xây dựng được mộtthuật toán cho bài toán đó là điều rất khó khăn và để viết được một chương trìnhhoàn chỉnh thì lại càng khó khăn hơn
Nắm bắt được knhững mà khó khăn mà học sinh găp phải bản thân tôi đã
mạnh dạn đề xuất một sáng kiến nhỏ với đề tài: “ỨNG DỤNG PHẦN MỀM CROCODILE ICT 605 VÀO MÔ PHỎNG BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN TRONG TIN HỌC LỚP 10 ĐỂ TẠO HỨNG THÚ HỌC TẬP CHO HỌC SINH VÀ NÂNG CAO CHẤT LƯỢNG HỌC MÔN TIN HỌC Ở TRƯỜNG THPT THẠCH THÀNH IV’’ Phần mềm mô phỏng thuật toán một
cách trực quan, góp phần tạo hứng thú học tập cho học sinh và giúp học sinh hiểu
rõ được bản chât của “ BÀI TOÁN VÀ THUẬT TOÁN”, từ đó nâng cao chất
lượng dạy học môn Tin học ở trường THPT Thạch Thành 4
II.3 Giải pháp và tổ chức thực hiện
II.3.1 Hướng dẫn sử dụng phần mềm crocodile ICT 605
Crocodile ICT là phần mềm trong nhóm phần mềm của hãng Crocodile CliptLtd
(Crocodile Chimistry, Crocodile Physics and Crocodile ICT) Chúng là những phầnmềm được các nhà giáo trong ba lĩnh vực trên đánh giá rất cao bởi những khả năng
hỗ trợ trong dạy học các bộ môn khoa học Hóa học, Vật lí và Tin học
Crocodile ICT là phần mềm hỗ trợ việc hình thành, rèn luyện, phát triển tư duy giảithuật và một số kĩ năng lập trình cơ bản cho học sinh THPT khi học môn Tin học.Nhờ có phần mềm này mà học sinh trở nên hứng thú với môn học hơn, hiệu quảhọc tập được nâng cao rõ rệt
Trang 6Màn hình làm việc của phần mềm Crocodile ICT 605
Sau khi tải, cài đặt thành công bạn mở chương trình lên, màn hình làm việc của
Crocodile ICT 605 có các thành phần cơ bản sau:
- Thanh tiêu đề: Chứa tên chương trình.
- Thanh thực đơn (Menu Bar): Chứa các nhóm lệnh.
- Thanh công cụ chuẩn (Tools): Chứa một số biểu tượng, ô điều khiển và một số
Trang 7Parts Library →Flowcharts→Inputs And Outputs→Get Property;
- Đặt tên biến: Tên biến mặc định là x, nếu bạn muốn đổi tên biến: click chuột vào chữ x, chương trình cho phép bạn xóa x và thay bằng một tên biến khác.
- Kiểu dữ liệu của biến: Sau tên biến là kiểu dữ liệu của biến, bạn click chuột vào Property và chọn kiểu dữ liệu thích hợp cho biến.
tới ô để nhập dữ liệu cho biến.
- Tạo ô để nhập giá trị cho biến: Tại menu lệnh chọn
Parts Library→ Presentation→Input-Outputs→Edit Box;
Nhập chú thích (ví dụ: Nhập hệ số a,…) tại ô Label.
- Thực hiện các phép toán: Tại menu lệnh chọn
Parts Library →Flowcharts→Processes→ Set Variable;
- Thực hiện thao tác so sánh:Tại menu lệnh chọn
Parts Library→Flowcharts→Decisions→ Test;
Mặc định phép so sánh là bằng(=), để thay đổi bạn click chuột vào dấu (=) → menucác phép so sánh xuất hiện và chọn phép so sánh thích hợp
Thay đổi hai nhánh (đúng/sai): Bạn chỉ cần click chuột vào chữa “Y” hoặc chữ “N”thì chương trình sẽ tự động thay đổi cho bạn
- Xuất kết quả: Tại menu lệnh chọn Parts Library → Flowcharts→ Inputs And Outputs →Set Property
tới ô nhận giá trị xuất.
- Tạo ô nhận giá trị xuất: Tại menu lệnh chọn
Parts Libraryà Presentation→ Input-Outputs→ Edit Box;
Nhập chú thích (ví dụ: nghiệm 1, nghiệm 2…) tại ô Label.
Sau khi vẽ xong lưu đồ, bạn nhập giá trị cho biến tại ô nhập giá trị mà bạn đã tạo ở trên, click chuột vào nút start, chương trình chạy và cho ra kết quả tại ô nhận giá
trị xuất.
II.3.2 Giải pháp thực hiện
Hãy bắt đầu với một bài toán đơn giản và gần gũi nhất với học sinh lớp 10
Bài toán 1: Giải phương trình bậc 2 tổng quát: ax 2 + bx +c = 0, (a<>0).
Trang 8 Xác định bài toán
- Input: hệ số a, b, c
- Output: nghiệm phương trình bậc 2: x1, x2
Thuật toán bằng phương pháp liệt kê
- Bước 1: Xác định giá trị a, b, c;
- Bước 2: Tính delta = b2 – 4ac;
- Bước 3: Nếu delta<0 thì phương trình vô nghiệm;
Nếu delta =0 thì phương trình có nghiệm kép x1 =x2 = -b/2a;
Nếu delta >0 thì phương trình có 2 nghiệm phân biệt: x1,2= ;
- Bước 4: Thông báo nghiệm của phương trình;
GV: Từ các bước trên cô sẻ hướng dẫn chi tiết cách để em xây dựng thuật toánbằng phần mềm Crocodile ICT 605
Bước 1: Chọn Parts LibraryStart and stop click Start và kéo thả ra màn
hình làm việc để bắt đầu thuật toán Tại đây ta có thể đặt tên cho thuật toán bằng
cách click vào ô Flowchart_1
Bước 2: Chọn Parts library Inputs and outputs click Get Property và kéo
thả ra màn hình làm việc Click chuột vào x và thay biến x bằng a
Trang 9- Chọn parts library presentasioninput-outputs click vào Edit box và
kéo thả ra màn hình soạn thảo
biến a Làm tương tự đối với 2 biến b và c
Bước 3: Chọn Parts Library
Flowcharts Processes click Set
Trang 10Variable kéo thả ra màn hình để tính delta Thay x = delta, 0=b*b-4*a*c Rồi nối
Nếu điều kiện đúng thì rẽ nhánh theo hướng “Y” Chọn Parts Library
Processes click Set Variable kéo thả ra màn hình Thay x = x1, sqrt(delta))/(2*a) Rồi nối vào sơ đồ Làm tương tự như vậy với x2
0=(-b-Tiếp theo vào Parts LibraryFlowchart Input and Outputs, click chọn Set property kéo thả ra màn hình kết nối vào sơ đồ, thay 0= “x1=”+x1+ “va x2=” +x2.
- Chọn tiếp Parts Library Presentasion Input-Outputs click vào Edit box kéo thả ra màn hình, chọn PropertiesLable gõ: kết luận.
Trang 11Tiếp đến là click chuột vào , kéo thả vào Edit box để liên kết 2 thành phần này
với nhau
Nếu sai thì kiểm tra điều kiện Delta =0 (tương tự như kiểm tra điều kiện delta >0)
- Nếu Delta=0 đúng thì rẽ nhánh theo hướng “Y” Chọn Parts library Inputs and outputs click Set property và kéo thả ra màn hình làm việc Click chuột vào 0 và thay bằng “x”+(-b)/2*a Thực hiện xong ta click vào trên thành phần
Get property kéo thả đến Edit box kết luận để liên kết 2 thành phần này Tiếp tục click vào Property chọn Value.
- Nếu detal =0 sai thì rẽ nhánh theo hướng theo hướng “N” Chọn Parts Library Inputs and Outputs click Set Property và kéo thả ra màn hình làm việc Click chuột vào 0 và thay bằng “ PT vô nghiệm” Thực hiện xong ta click vào trên
thành phần Get Property kéo thả đến Edit box kết luận để liên kết 2 thành phần này Tiếp tục click vào Property chọn Value
Bước 5: Chọn Parts LibraryStart and Stop Click Stop và kéo thả ra màn
hình làm việc để kết nối vào sơ đồ
thuật toán và kết thúc thuật toán
Trong quá trình thực hiện thuật toán, để thấy được sự thay đổi giá trị của các biến
qua từng bước, chọn Parts LibraryFlowcharts Programming Environment.
Trang 12Click chuột vào Monitor box và thực hiện kéo thả ra màn hình Toàn bộ hoạt động
của chương trình sẽ được thể hiện trong hộp thoại sau
Để học sinh thấy rõ được quá trình thực hiện thuật toán qua từng bước thì có thể điều chỉnh tốc độ thực hiện thuật toán bằng cách kéo thả nút lệnh
trên thanh công cụ sau chuẩn
Và đây là kết quả của việc sử dụng phần mềm Crocodile ICT 605
Trang 13 Thực hiện thuật toán với một số bộ test tiêu biểu thì đều cho ra kết quả đúng.
Hãy thực hiện thuật toán bằng cách ấn vào nút Start (Mô phỏng đã ghi trên đĩa)
- Với a=2, b=4, c=-6 x1=1, x2=-3
- Với a= 2, b=1, c=1 Phương trình vô nghiệm
- Với a= 1, b=2, c=1 Phương trình có nghiệm kép: x=1;
Bài toán 2: Tìm ước chung lớn nhất của 2 số nguyên dương M và N
Xác định bài toán
- Input: N, M nguyên dương.
- Output: Ước chung lớn nhất của 2 số nguyên dương M và N.
Thuật toán bằng phương pháp liệt kê.
- Bước 1: Nhập M và N;
- Bước 2: Nếu M=N thì lấy giá trị chung đó làm ước chung lớn nhất rồi chuyển
đến bước 5;
- Bước 3: Nếu M>N thì MM-N rồi quay lại bước 2;
- Bước 4: NN-M rồi quay lại bước 2;
- Bước 5: Đưa ra kết quả ước chung lớn nhất rồi kết thúc;
Trang 14 Sau đây là kết quả sử dụng phần mềm Crocodile ICT 605 để mô phỏng thuật toán cho bài toán trên (Thực hiện thuật toán được ghi trên đĩa)
Thực hiện thuật toán với các bộ test sau và đều cho ra kết quả đúng
Trang 15- Bước 5: Nếu i>[ ] thì thông báo N là nguyên tố rồi kết thúc;
- Bước 6: Nếu N chia hết cho i thì thông báo “N không là nguyên tố” rồi kết thúc
- Bước 7: ii+1 rồi quay lại bước 5;
Thuật toán mô phỏng bằng phần mềm Crocodile ICT 605 và đây là kết quả của viêc mô phỏng đó (Thực hiện thuật toán được ghi trên đĩa)
Thực hiện thuật toán với một số test tiêu biểu thì đều cho ra kết quả đúng
- N= 1 thông báo “N không là nguyên tố”
- N= 3 thông báo “N là nguyên tố”
- N = 29 thông báo “N là nguyên tố”
Bài toán 4: Tìm giá trị lớn nhất của một dãy số nguyên.
Xác định bài toán
- Input: Số nguyên dương N và dãy N số nguyên a1, a2, a3,…, aN
- Output: Giá trị lớn nhất Max của dãy số.
Thuật toán bằng phương pháp liệt kê.
- Bước 1: Nhập N và Dãy 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;
Trang 16- Bước 4: Nếu ai > max thì max ai, i i+1 rồi quay lại bước 3;
Mô phỏng thuật toán bằng phần mềm crocodile ict 605 (Ghi đĩa)
Thực hiện thuật toán với các bộ test sau thì đều cho ra kết quả đúng
- Với A=[18, 26,15,2] thì giá trị lớn nhất là 26
- Với A=[1,20, 2, 8, 3,16] thì giá trị lớn nhất là 20
- Với A=[2,9,5] thì giá trị lớn nhất là 9
Bài toán 5: Bài toán sắp xếp
Cho dãy A gồm N số nguyên a 1, a 2, …a N Cần sắp xếp các số hạng để dãy A trở thành dãy không giảm (tức là số hạng trước không lớn hơn số hạng sau).
Xác định bài toán
- Input: Dãy A gồm N số nguyên a1, a2,…,aN.
- Output: Dãy A được sắp xếp lại thành dãy không giảm.
Trang 17- Bước 5: ii+1;
- Bước 6: Nếu i >M thì quay lại bước 3
- Bước 7: Nếu ai >ai+1 thì tráo đổi ai và ai+1 cho nhau
- Bước 8: Quay lại bước 5
Và đây là kết quả của việc mô phỏng bằng phần mềm crocodile ICT 605
Thực hiện thuật toán với các bộ test sau thì đều cho ra kết quả đúng
- Với N=5, A=[2, 4,1,6,9] thì dãy A sau sắp xếp là: A=[1,2,4,6,9]
- Với N=6, A=[1,20, 2, 8, 3,16] thì dãy A sau sắp xếp là: A=[1,2,3,8,16,20]
- Với N=3, A=[2,9,5] thì dãy A sau sắp xếp là: A=[2,5,9]
Bài toán 6: Bài toán tìm kiếm
Cho dãy A gồm N số nguyên khác nhau: a 1 , a 2 ,…,a N và một số nguyên k, cần biết có hay không chỉ số i (1<= i<=N) mà a i bằng k Nếu có hãy cho biết chỉ số đó
Xác định bài toán
- Input: Dãy A gồm N số nguyên khác nhau a1, a2,…,aN. và số nguyên k;
- Output: Chỉ số i mà ai = k hoặc thông báo “không có số hạng nào của dãy A có giá trị bằng k”
Thuật toán tìm kiếm tuần tự bằng phương pháp liệt kê
- Bước 1: Nhập N và các số hạng a1, a2,…,aN và khoá k
Trang 18K=6 thì cho thông báo “không có số hạng nào bằng k”
Trên đây là một số ví dụ bài toán có sử dụng phần mềm Crocodile ICT 605 để
mô phỏng thuật toán một cách trực quan, tiết học trở nên sôi nổi hơn, không cònnhàm chán nữa và học sinh đã dần hiểu rõ được bản chất của vấn đề
III KIỂM NGHIỆM