ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA TRẦN THỊ HOA LÀI ỨNG DỤNG TRỰC QUAN TRONG DẠY LẬP TRÌNH CHO HỌC SINH PHỔ THÔNG Chuyên ngành: Khoa học máy tính Mã số: 8480101 TÓM TẮT LUẬN V
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
TRẦN THỊ HOA LÀI
ỨNG DỤNG TRỰC QUAN TRONG DẠY
LẬP TRÌNH CHO HỌC SINH PHỔ THÔNG
Chuyên ngành: Khoa học máy tính
Mã số: 8480101
TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
Đà Nẵng, Năm 2018
Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
Người hướng dẫn khoa học: PGS.TS Võ Trung Hùng
Phản biện 1 : ……… Phản biện 2 : ………
Luận văn sẽ được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ ký thuật họp tại Trường Đại học Bách khoa
vào ngày … … tháng … … năm 2018
Có thể tìm hiểu luận văn tại:
Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học
Bách khoa
Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách khoa – ĐHĐN
Trang 2Công trình được hoàn thành tại TRƯỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn khoa học: PGS.TS Võ Trung Hùng
Phản biện 1 : PGS.TS Nguyễn Thanh Bình
Phản biện 2 : TS Trần Thế Vũ
Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ họp tại Trường Đại học Bách khoa Đà
Nẵng vào ngày 05 tháng 01 năm 2019
* Có thể tìm hiểu luận văn tại:
- Trung tâm Học liệu và truyền thông, Đại học Đà Nẵng tại
Trường Đại học Bách khoa
- Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách khoa – Đại học Đà Nẵng
Trang 3MỞ ĐẦU
1 Tính cấp thiết của đề tài
Trong thực tế, việc dạy môn lập trình cũng như dạy bồi dưỡng học sinh giỏi môn Tin học cho học sinh phổ thông gặp rất nhiều khó khăn Học sinh xem đây là một môn phụ, không thi tốt nghiệp, không thuộc khối nào khi thi vào các trường đại học Môn lập trình lại là môn học tương đối khó, đòi hỏi phải có ý tưởng về thuật toán, tư duy về toán học…, nên động lực để thúc đẩy học sinh học tập môn này bị hạn chế Nhiều em có năng lực và tư duy thuật toán, có tư duy lập trình nhưng chưa phát huy hết khả năng
đó Do đó, một phương pháp dạy học sinh động để tạo niềm đam
mê và gây hứng thú cho học sinh là rất quan trọng Phương pháp dạy học trực quan là một trong những phương pháp mà giáo viên khi dạy lập trình cần quan tâm hơn để phát huy tính tích cực, khả năng hình thành tư duy tốt và huy động sự tham gia của nhiều giác quan Qua đó, tạo điều kiện dễ hiểu, dễ nhớ và nhớ lâu, làm phát triển năng lực tư duy, năng lực chú ý, năng lực quan sát, khả năng
tò mò của học sinh Đặc biệt việc ứng dụng kỹ thuật trực quan các thuật toán trong dạy lập trình là rất cần thiết, tạo thêm động lực, hứng thú và niềm đam mê cho học sinh khi học môn lập trình Phương pháp dạy học trực quan ngày càng trở nên hữu ích
và trở thành một giáo cụ trực quan rất quan trọng, nó như một tài liệu hướng dẫn trong việc dạy các thuật toán bằng máy tính, giúp học sinh hiểu cấu trúc dữ liệu và thuật toán nhanh hơn
Để tìm hiểu kỹ hơn về một số thuật toán và ứng dụng kỹ thuật trực quan trong quá trình dạy các thuật toán đó, tôi đã chọn
đề tài “Ứng dụng trực quan trong dạy lập trình cho học sinh phổ thông làm đề tài luận văn tốt nghiệp Hy vọng với nghiên
cứu này sẽ là tài liệu tham khảo thiết thực trong ứng dụng dạy học lập trình và bồi dưỡng học sinh giỏi cho học sinh phổ thông
2 Mục tiêu và nhiệm vụ nghiên cứu
a Mục tiêu
Mục tiêu của đề tài là nâng cao chất lượng dạy học một số thuật toán trên đồ thị bằng cách trực quan, đồng thời hỗ trợ cho học sinh trong quá trình tự học một số thuật toán trên đồ thị với các thay đổi trực quan bằng đồ họa Áp dụng kết quả nghiên cứu
Trang 4để tạo động lực và niềm đam mê cho học sinh khi học lập trình
- Mô phỏng thuật toán và quy trình mô phỏng thuật toán
- Các thuật toán: Tìm đường đi ngắn nhất trên đồ thị bằng thuật toán Dijsktra, thuật toán tìm kiếm theo chiều rộng và chiều sâu
3 Đối tượng và phạm vi nghiên cứu
a Đối tượng nghiên cứu
- Cơ sở lý thuyết về phương pháp dạy học trực quan, về đồ
họa máy tính, về cách mô phỏng thuật toán và quy tình mô phỏng thuật toán
- Thuật toán tìm đường đi ngắn nhất trên đồ thị, thuật toán tìm kiếm theo chiều sâu và tìm kiếm theo chiều rộng
b Phạm vi nghiên cứu
Trong khuôn khổ của một luận văn cao học, tôi ch áp dụng cho thuật toán tìm đường đi ngắn nhất trên đồ thị bằng thuật toán Dijsktra và thuật toán tìm kiếm theo chiều sâu và chiều rộng
4 Phương pháp nghiên cứu
Sử dụng hai phương pháp chính là nghiên cứu lý thuyết và nghiên cứu thực nghiệm
a Nghiên cứu thu t
- Các tài liệu về cơ sở lý thuyết: Lý thuyết về thuật toán, về phương pháp dạy học trực quan, lý thuyết về đồ họa máy tính, lý thuyết mô phỏng thuật toán
- Các tài liệu liên quan đến ngôn ngữ lập trình Java
b Nghiên cứu th c nghiệm
Trang 5Xây dựng các chương trình thực nghiệm tính hiệu quả của các giải thuật nghiên cứu
5 Bố cục của luận văn
Luận văn được tổ chức thành 3 chương chính:
Chương 1: Nghiên cứu tổng quan
Giới thiệu về phương pháp dạy học trực quan, về ĐHMT,
về đồ thị và trình bày 3 thuật toán thông thường trên đồ thị: Thuật toán Dijsktra tìm đường đi ngắn nhất, thuật toán tìm kiếm theo chiều rộng và thuật toán tìm kiếm theo chiều sâu
Chương 2: Mô phỏng thuật toán
Giới thiệu về phương pháp mô phỏng thuật toán và áp dụng
để mô phỏng cho 3 thuật toán ở chương 1
Chương 3: Cài đặt thử nghiệm
Trình bày về việc thực hiện cài đặt mô phỏng trực quan các thuật toán ở chương 1 và chương 2
Trang 6CHƯƠNG 1 NGHIÊN CỨU TỔNG QUAN
Chương 1sẽ giới thiệu tổng quan về phương pháp dạy học trực quan, về đồ họa máy tính, về đồ thị và trình bày 3 thuật toán thông thường trên đồ thị: Thuật toán Dijsktra tìm đường đi ngắn nhất, thuật toán tìm kiếm theo chiều rộng và thuật toán tìm kiếm theo chiều sâu
1.1 Phương pháp dạy học trực quan
Dạy học trực quan là PPDH sử dụng những phương tiện trực quan, phương tiện kĩ thuật dạy học trước, trong và sau khi nắm tài liệu mới, khi ôn tập, khi củng cố, hệ thống hóa và kiểm t ra tri thức, kĩ năng, kĩ xảo
PPDH trực quan được thể hiện dưới hình thức là trình bày trực quan và quan sát [11]
+ Kỹ thuật đồ họa điểm
+ Kỹ thuật đồ họa vector
1.2.3 Màn hình đồ họa và một số ứng dụng của đồ họa
1.3 Đồ thị và một số thuật toán trên đồ thị
1.3.1 Đồ thị
1.3.2 Một số thuật toán trên đồ thị
a Tìm kiếm trên đồ thị
b Một số thuật toán trên đồ thị
* Thuật toán tìm đường đi ngắn nhất (Dijsktra)
Trang 7Nếu biểu diễn đồ thị bằng danh sách kề, cả hai thuật toán BFS và DFS đều có độ phức tạp tính toán là O(m+n) = O(max(n,m)), đây là cách cài đặt tốt nhất Nếu ta biểu diễn đồ thị bằng ma trận kề thì độ phức tạp tính toán trong trường hợp này là O(n + n2) = O(n2) [6]
1.4 Tổng kết chương 1
Chương 1 đã giới thiệu tổng quan về phương pháp dạy học trực quan, ưu điểm và hạn chế của phương pháp này, những yêu cầu cơ bản đối với phương pháp dạy học trực quan Ngoài ra, trình bày về các kỹ thuật và ứng dụng của đồ họa máy tính Các kiến thức liên quan đến đồ thị và 3 thuật toán thông thường trên đồ thị,
đó là: thuật toán tìm đường đi ngắn nhất, thuật toán tìm kiếm theo chiều rộng và tìm kiếm theo chiều sâu, độ phức tạp của các thuật toán đó
Trang 8CHƯƠNG 2 MÔ PHỎNG THUẬT TOÁN
Chương 2 trình bày về phương pháp mô phỏng thuật toán, tác dụng của việc mô phỏng thuật toán trong dạy học và các yêu cầu đối với việc mô phỏng thuật toán Đồng thời trình bày cụ thể
về quy trình mô phỏng thuật toán và áp dụng mô phỏng 3 thuật toán: Dijsktra, BFS, DFS
2.1 Phương pháp mô phỏng thuật toán
2.1.1 Khái niệm
2.1.2 Tác dụng của mô phỏng thuật toán trong dạ học
MPTT được sử dụng rộng rãi như công cụ hỗ trợ giảng dạy trong ngành giáo dục Một số nghiên cứu thực nghiệm đã ước lượng hiệu quả của chúng trong giáo dục và kết quả nhận được có thay đổi, tác dụng của việc áp dụng mô phỏng thuật toán trong dạy học được ghi nhận lại như sau:
Các hoạt cảnh MPTT gây hứng thú cho người học, làm tăng tính sáng tạo của người học Sử dụng mô phỏng kết hợp với phương pháp thuyết trình
truyền thống làm tăng tốc độ hiểu biết cho người học Ngoài ra, mô phỏng giúp cho người học dễ hiểu thuật toán hơn thông qua các bước mô phỏng trực quan kết hợp với mã nguồn chương trình [16]
2.1.3 Các êu cầu đối với mô phỏng thuật toán
- Cần phản ánh đúng nội dung thuật toán: Thuật toán được đưa ra mô phỏng phải chính xác, các bước thực hiện thuật toán phải trực quan và phản ánh đúng theo nội dung thuật toán đã đưa
ra để đảm bảo tính đúng đắn của thuật toán
- Mô phỏng phải được thực hiện theo từng bước: thuật toán thường là trừu tượng, nếu để chương trình chạy tự động thì người dùng sẽ khó hiểu Vì vậy, cần phải có chế độ thực hiện mô phỏng thuật toán theo từng bước, để người học có thể quan sát, theo dõi
sự thay đổi giá trị của từng biến, nhờ đó, sẽ giúp cho người học hiểu thuật toán rõ hơn và nhanh hơn
- Mô tả thuật toán phải có tính động: để mô tả trực quan hóa quá trình thực hiện của thuật toán ta nên đưa vào hình ảnh động (có thể có âm thanh) để thể hiện sự thay đổi của dữ liệu trong quá trình thực thi
Trang 92.2 Quy trình mô phỏng thuật toán
2.2.1 Thi t k hệ thống mô phỏng thuật toán
- Các bước phân tích thiết kế gồm:
Hình 2.2 - Sơ đồ các bước thi t k hệ thống mô phỏng thuật
toán
Chi tiết về các bước của quá trình này đã được giới thiệu trong phần 2.2.2 của luận văn này
- Mô hình bài toán mô phỏng:
Hình 1.3 - Mô hình bài toán mô phỏng
Nghiên cứu và
phân tích giải
thuật
Mô phỏng dữ liệu vào và dữ liệu ra
Tách giải thuật thành nhiều bước nhỏ
Tổng hợp các bước thành giải thuật hoàn
ch nh
Chính xác hóa giải thuật (bằng
cách quan sát dữ liệu ra của
+ Tạo dữ liệu trực tiếp
+ Dữ liệu theo mẫu
+ Mô phỏng theo từng bước của thuật toán + Mô phỏng toàn
bộ thuật toán
Kết quả: đồ thị đã được mô phỏng bằng đồ họa thể hiện qua những thay đổi trên hình
vẽ trong mỗi bước thực hiện thuật toán
Trang 102.2.2 Qu trình thi t k mô phỏng thuật toán
a Nghiên cứu và phân tích giải thuật
b Mô phỏng dữ liệu vào và kết quả đầu ra
Ví dụ: với chương trình mô phỏng các thuật toán trên đồ thị, dữ liệu vào sẽ là một đồ thị bao gồm tập các nút và các cạnh nối các nút với nhau Ta sẽ thể hiện các nút là một hình tròn có tên nút được đánh số theo thứ tự và nằm giữa hình tròn Cạnh sẽ nối hai nút của đồ thị bằng một đường thẳng (khi nối thì sẽ xuất hiện hộp thoại để nhập trọng số và trọng số sẽ nằm giữa vị trí giữa của hai nút) Như vậy, đồ thị được xây dựng rất trực quan và người học
có thể quan sát dễ dàng những thay đổi trên đồ thị khi thực hiện các bước của giải thuật
Hình 2-4 - Dữ liệu đầu vào: một đồ thị vô hướng gồm 5 đỉnh, 6
cạnh
Việc đưa dữ liệu vào là một yếu tố quan trọng quyết định tính hiệu quả của mô phỏng thuật toán Nên chương trình mô phỏng cần phải có nhiều cơ chế đưa dữ liệu vào, ví dụ như:
- Đề xuất một số dữ liệu mẫu: Chương trình sẽ chuẩn bị một số dữ liệu mẫu từ trước để người học có thể học thuật toán ngay mà không phải chuẩn bị dữ liệu đầu vào
- Sinh ngẫu nhiên: để cho chương trình tự sinh một đồ thị tùy ý
Trang 11- Nhập dữ liệu thủ công: người học dùng công cụ của chương trình cung cấp để tự tạo đồ thị theo cách của mình Đây là cách để giải quyết các băn khoăn của người học về thuật toán (với trường hợp này thì kết quả sẽ là thế nào? Với đồ thị đặc biệt này thì thuật toán có chạy không?, …)
c Chia thuật toán thành nhiều bước nhỏ rồi mô phỏng theo từng bước
d Tổng hợp mô phỏng theo các bước
Sau khi mô phỏng được từng bước của thuật toán ta tiến hành ghép các bước mô phỏng lại để được mô hình mô phỏng hoàn ch nh
e Chính xác hóa giải thuật
Từ dữ liệu vào, tiến hành chạy theo từng bước, quan sát những thay đổi của cấu trúc dữ liệu sau mỗi bước và quan sát kết quả cuối cùng khi thuật toán đã chạy xong
2.3 Áp dụng mô phỏng một số thuật toán trên đồ thị
2.3.1 Thuật toán tìm đường đi ngắn nhất (Thuật toán Dijsktra)
Áp dụng quy trình mô phỏng thuật toán ở mục 2.2 để thực hiện các bước cho quá trình mô phỏng:
Các bước thiết kế hệ thống mô phỏng: 5 bước
a Nghiên cứu và phân tích giải thuật
b Mô phỏng dữ liệu vào và kết quả đầu ra
Để mô phỏng dữ liệu vào cho bài toán này, tôi đã chọn 2 phương pháp để tạo dữ liệu vào:
Trang 12- Cách thứ nhất: Tạo đồ thị bằng cách thủ công là vẽ các
đ nh và cạnh
- Cách này thì tôi tạo chế độ cho người dùng tự tạo đồ thị với số đ nh và số cạnh theo yêu cầu bài toán
Cách thứ hai: Chọn đồ thị theo mẫu sẵn
c Chia thuật toán thành nhiều bước nhỏ rồi mô phỏng theo từng bước:
Thuật toán của bài toán tìm đường đi ngắn nhất có thể chia thành các bước như ở mục 1.3.2.b Kết hợp với các kỹ năng về đồ họa và các lệnh trong ngôn ngữ lập trình Java, có thể mô phỏng các bước của thuật toán thông qua đoạn trích code (xem phụ lục 1)
d Tổng hợp mô phỏng theo các bước:
e Chính xác hóa giải thuật:
Mô hình bài toán mô phỏng
2.3.2 Thuật toán tìm ki m theo chiều rộng (BFS)
Các bước thiết kế hệ thống mô phỏng:
a Nghiên cứu và phân tích giải thuật
b Mô phỏng dữ liệu vào và kết quả đầu ra
Kết hợp với kiến thức về đồ họa để mô phỏng dữ liệu vào trực quan (xem Phụ lục 2) như sau:
Trang 13Hình 2-9 – Minh họa dữ liệu vào của thuật toán BFS
Dữ liệu vào là số đ nh của đồ thị, các đ nh đầu đ nh cuối để tạo các cạnh của đồ thị và đ nh bắt đầu để duyệt đồ thị
Dữ liệu ra là các đ nh đã được duyệt trên đồ thị
c Chia thuật toán thành nhiều bước nhỏ (đã được trình bày
ở mục 1.3.2b) và được thể hiện trong các chương trình con và chức năng của nó
d Tổng hợp mô phỏng theo các bước:
Mô hình mô phỏng hoàn ch nh trên đồ thị gồm 5 đ nh 7 cạnh như sau:
Trang 14Hình 2-10 – K t quả mô phỏng thuật toán BFS
e Chính xác hóa giải thuật:
Tạo 1 đồ thị đơn giản để mô phỏng nhằm chính xác hóa lại
giải thuật thông qua các phương thức lựa chọn trên chương trình
mô phỏng và duyệt để quan sát kết quả cuối cùng khi thuật toán đã
chạy xong để kiểm tra tính chính xác của giải thuật
Mô hình bài toán mô phỏng:
2.3.3 Thuật toán tìm kiếm theo chiều sâu (DFS)
Các bước thi t k hệ thống mô phỏng:
a Nghiên cứu và phân tích giải thuật
b Mô phỏng dữ liệu vào và kết quả đầu ra
Kết hợp với kiến thức về đồ họa để mô phỏng dữ liệu vào
trực quan (xem phục lục 3) như sau:
Trang 15Hình 2-12 – Minh họa dữ liệu vào cho thuật toán DFS
Dữ liệu vào là số đ nh của đồ thị, các đ nh đầu đ nh cuối để tạo các cạnh của đồ thị và đ nh bắt đầu để duyệt đồ thị
Dữ liệu ra là các đ nh đã được duyệt theo chiều sâu
Hình 2-13 – K t quả minh họa thuật toán DFS
Trang 16c Chia thuật toán thành nhiều bước nhỏ: Được trình bày
tại mục 1.3.2b và thể hiện trong các chương trình con và chức năng của nó
d Tổng hợp mô phỏng theo các bước: Chương trình sau khi
duyệt toàn bộ áp dụng cho đồ thị gồm 5 đ nh 7 cạnh đã cho kết quả trên hình 20
e Chính xác hóa giải thuật:
Tạo 1 đồ thị đơn giản để mô phỏng nhằm chính xác hóa lại giải thuật thông qua các phương thức lựa chọn trên chương trình
mô phỏng và duyệt để quan sát kết quả cuối cùng khi thuật toán đã chạy xong để kiểm tra tính chính xác của giải thuật
Mô hình bài toán mô phỏng:
2.4 Tổng kết chương
Nội dung chương 2 trình bày về phương pháp mô phỏng thuật toán; tác dụng của việc mô phỏng và các yêu cầu đối với việc
mô phỏng thuật toán; quy trình mô phỏng thuật toán và áp dụng
mô phỏng 3 thuật toán trên đồ thị: thuật toán tìm đường đi ngắn nhất, thuật toán tìm kiếm theo chiều rộng và tìm kiếm theo chiều sâu