ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN MINH HIỀN XÂY DỰNG PHẦN MỀM HỖ TRỢ DẠY VÀ HỌC NGÔN NGỮ LẬP TRÌNH PASCAL CHO HỌC SINH TRUNG HỌC PHỔ THÔNG LUẬN VĂN THẠC SĨ CÔNG NG
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRẦN MINH HIỀN
XÂY DỰNG PHẦN MỀM HỖ TRỢ DẠY
VÀ HỌC NGÔN NGỮ LẬP TRÌNH PASCAL CHO HỌC SINH TRUNG HỌC PHỔ THÔNG
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
HÀ NỘI - 2015
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRẦN MINH HIỀN
XÂY DỰNG PHẦN MỀM HỖ TRỢ DẠY
VÀ HỌC NGÔN NGỮ LẬP TRÌNH PASCAL CHO HỌC SINH TRUNG HỌC PHỔ THÔNG
Chuyên ngành : Kỹ thuật phần mềm
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Cán bộ hướng dẫn khoa học: PGS.TS Trương Anh Hoàng
HÀ NỘI – 2015
Trang 3LỜI CẢM ƠN
Trước tiên, em xin gửi lời cảm ơn chân thành và lòng biết ơn sâu sắc đến thầy giáo hướng dẫn - PGS.TS Trương Anh Hoàng đã tận tình hướng dẫn em trong suốt quá trình thực hiện khóa luận tốt nghiệp
Em cũng xin bày tỏ lời cảm ơn sâu sắc tới các thầy giáo, cô giáo trường Đại học Công nghệ, những người thầy, người cô đã tận tình giảng dạy và truyền đạt cho em những kiến thức, những kinh nghiệm quý báu trong suốt quá trình học tập ở trường Tiếp đến, em xin chân thành cảm ơn các anh chị, thầy cô đồng nghiệp trường THPT Cầu Giấy – Hà Nội đã luôn động viên, giúp đỡ, tạo điều kiện cho em hoàn thành khóa luận tốt nghiệp
Sau cùng, con xin bày tỏ lòng biết ơn tới cha mẹ, anh chị, những người thân trong gia đình và bạn bè đã luôn ở bên cạnh con, giúp con vượt qua khó khăn trong học tập cũng như trong cuộc sống để đi đến cái đích ngày hôm nay
Về luận văn, do thời gian và điều kiện có hạn nên luận văn không tránh khỏi những thiếu sót Tôi rất mong nhận được sự góp ý của bạn bè, thầy cô và những người quan tâm đến đề tài này
Hà nội, ngày 20 tháng 11 năm 2015
Học viên
Trần Minh Hiền
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan luận văn tốt nghiệp “Xây dựng phần mềm hỗ trợ dạy và học ngôn ngữ lập trình Pascal cho học sinh Trung học phổ thông” là công trình nghiên cứu của tôi dưới sự hướng dẫn và định hướng của PGS.TS Trương Anh Hoàng Các số liệu, nội dung tham khảo được trích dẫn có nguồn gốc rõ ràng, tuân thủ tôn trọng quyền tác giả, không vi phạm luật sở hữu trí tuệ và pháp luật Việt Nam Nếu sai, tôi xin chịu hoàn toàn trách nhiệm trước pháp luật
TÁC GIẢ LUẬN VĂN
Trần Minh Hiền
Trang 5MỤC LỤC
LỜICẢMƠN1
LỜI CAM ĐOAN4
MỤC LỤC5
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT7
DANH MỤC HÌNH ẢNH, ĐỒ THỊ8
DANH MỤC BẢNG BIỂU9
PHẦN MỞ ĐẦU 1
Chương 1 TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU 3
1.1 Vấn đề dạy và học ngôn ngữ lập trình Pascal trong trường THPT 3
1.2 Phát biểu bài toán 5
1.2.1 Quy trình xử lý 5
1.2.2 Những khó khăn thách thức 5
1.3 Hướng tiếp cận 6
1.4 Kết luận chương 6
Chương 2 TỔNG QUAN VỀ CODE HUNT VÀ ỨNG DỤNG TRONG DẠY HỌC PASCAL 7
2.1 Tổng quan về Code Hunt 7
2.1.1 Giới thiệu về Code Hunt 7
2.1.2 Chức năng của Code Hunt 7
2.1.3 Kiến trúc của Code Hunt 9
2.2 Ứng dụng mô hình Code Hunt trong dạy học Pascal 10
2.2.1 Chiến thuật trò chơi hóa (Gamification) 10
2.2.2 Thiết kế động viên người học 12
2.2.3 Thiết kế học tập trải nghiệm 15
2.2.4 Đánh giá người học theo thang phân loại Bloom và Drefus 18
2.3 Kết luận chương 2 22
Chương 3 XÂY DỰNG HỆ THỐNG GIẢI QUYẾT BÀI TOÁN 23
3.1 Mô tả và xây dựng bài toán 23
3.1.1 Mô tả bài toán 23
3.1.2 Sơ đồ chức năng của hệ thống 23
3.1.3 Thiết kế Cơ sở dữ liệu 25
Trang 63.1.4 Thiết kế Kiểm thử mã Pascal 26
3.2 Xây dựng phần mềm 30
3.2.1 Xây dựng chức năng trình soạn thảo mã Pascal 31
3.2.2 Xây dựng chức năng lưu và đọc mã Pascal 31
3.2.3 Xây dựng chức năng biên dịch mã Pascal 32
3.2.4 Xây dựng chức năng xem kết quả chạy chương trình 32
3.2.5 Xây dựng chức năng tính điểm và mức kỹ năng 32
3.3 Một số chức năng chính của phần mềm 41
3.3.1 Chức năng trang chủ 41
3.3.2 Chức năng quản lý học liệu 41
3.3.3 Chức năng bảng xếp hạng 43
3.3.4 Chức năng đăng ký 43
3.3.5 Chức năng đăng nhập 43
3.3.6 Chức năng thực hành 44
3.4 Kết luận chương 3 45
Chương 4 CÀI ĐẶT THỬ NGHIỆM VÀ KẾT QUẢ ĐẠT ĐƯỢC 46
4.1 Hướng dẫn cài đặt phần mềm 46
4.1.1 Yêu cầu hạ tầng 46
4.1.2 Cài đặt trình biên dịch trực tuyến 46
4.2 Kết quả thực nghiệm 48
4.2.1 Cơ sở dữ liệu của phần mềm 48
4.2.2 Quản lý học liệu 48
4.2.3 Bài tập thực nghiệm 49
4.3 Thực nghiệm sư phạm và đánh giá kết quả 55
4.3.1 Thực nghiệm sư phạm 55
4.3.2 Đánh giá kết quả thực nghiệm sư phạm 56
4.4 Kết luận chương 4 58
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59
PHỤ LỤC 63
Trang 7DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
STT Ký hiệu/
Cooperation and Development
Tổ chức Hợp tác và Phát triển Kinh tế
Trang 8DANH MỤC HÌNH ẢNH, ĐỒ THỊ
Hình 1.1 Biểu đồ xếp hạng độ phổ biến các ngôn ngữ lập trình tháng 11/2015 4
Hình 2.1 Màn hình chính của Code Hunt 8
Hình 2.2 Các lĩnh vực của Code Hunt 8
Hình 2.3 Kiến trúc của Code Hunt 9
Hình 2.4 Yếu tố tác động đến động lực học tập 13
Hình 2.5 Hệ thống giảng dạy vòng tròn khép kín 15
Hình 2.6 Ứng dụng hệ thống giảng dạy khép kín vào nội dung dạy và học Pascal 16
Hình 2.7 Nội dung học tập được theo từng giai đoạn 17
Hình 2.8 Nội dung bài tâp thực nghiệm theo từng giai đoạn 18
Hình 2.9 Thang phân loại các mức trí năng của Bloom 18
Hình 2.10 Thang phân loại tri thức của Bloom và phong cách học tập 21
Hình 2.11 Thang phân loại năng lực của Dreyfus 21
Hình 3.1 Sơ đồ chức năng của hệ thống 23
Hình 3.2 CSDL lưu thông tin người học 25
Hình 3.3 Cơ sở dữ liệu lưu bài tập của phần mềm 25
Hình 3.4 Cơ sở dữ liệu lưu cấp độ kỹ năng của người học 25
Hình 3.5 Cơ sở dữ liệu lưu tài liệu học Pascal 26
Hình 3.6 Cơ sở dữ liệu lưu bài giảng về Pascal 26
Hình 3.7 Một hộp đen kỹ thuật 27
Hình 3.8 Mã nguồn của người học 28
Hình 3.9 So sánh đầu ra mã pascal người học viết với kỳ vọng của chương trình 28
Hình 3.11 Hệ thống đánh giá chương trình của người học 33
Hình 3.12 Thư mục lưu bài tập của học viên 37
Hình 3.13 Chức năng Trang chủ của phần mềm 41
Hình 3.14 Chức năng quản lý tài liệu 42
Hình 3.15 Chức năng quản lý bài giảng dạng phim 42
Hình 3.16 Chức năng bảng xếp hạng 43
Hình 3.17 Chức năng đăng ký tài khoản mới 43
Hình 3.18 Chức năng đăng nhập 44
Trang 9Hình 3.19 Cơ sở dữ liệu lưu bài tập thử nghiệm 44
Hình 3.20 Chức năng soạn thảo mã Pascal 44
Hình 3.21 Kết quả biên dịch 45
Hình 3.22 Kiểm thử so khớp đầu ra thực tế và kỳ vọng 45
Hình 4.1 Một trình biên dịch 46
Hình 4.2 Công việc của một trình biên dịch 46
Hình 4.3 Cơ sở dữ liệu bài tập 48
Hình 4.4 Chức năng thêm tài liệu 48
Hình 4 5 Thực hành chương trình tự do 49
Hình 4.6 Người học hoàn thành đúng yêu cầu bài tập thử nghiệm số 1 49
Hình 4.7 Bài thử nghiệm số 2 đúng cú pháp nhưng sai với kỳ vọng 50
Hình 4.8 Người học hoàn thành đúng yêu cầu bài tập thử nghiệm số 2 51
Hình 4.9 Gợi ý của bài tập thử nghiệm 3 52
Hình 4.10 Bài thử nghiệm toán tử số học có đầu ra đúng với kỳ vọng 52
Hình 4.11 Người học hoàn thành bài thử nghiệm số 4 53
Hình 4.12 Bài thử nghiệm số 5 đầu ra thực tế chưa khớp với kỳ vọng 53
Hình 4.13 Bài thử nghiệm cầu điều kiện có đầu ra thực tế khớp với kỳ vọng 54
Hình 4.14 Bài thử nghiệm về vòng lặp có đầu ra chưa khớp với kỳ vọng 54
Hình 4.15 Bài thử nghiệm về vòng lặp có đầu ra khớp với kỳ vọng 55
Hình 4.16 Kết quả khảo sát về mức độ hài lòng của học sinh 57
Hình 4.17 Kết quả khảo sát về nội dung kiến thức phần mềm cung cấp 57
Hình 4.18 Khảo sát về khả năng tư duy lập trình 57
Hình 4.19 Kết quả khảo sát kỹ năng phần mềm cung cấp 58
Hình 4.20 Kết quả khảo sát về dự định học lập trình của học sinh 58
DANH MỤC BẢNG BIỂU Bảng 2.1 Chuyển đổi từ phương pháp học truyền thống sang Gamification 16
Trang 101
PHẦN MỞ ĐẦU
Bối cảnh của vấn đề nghiên cứu:
Ngày nay, những thành tựu của Công nghệ thông tin đang được áp dụng trong hầu hết lĩnh vực hoạt động của con người mang lại nhiều hiệu quả to lớn Các kiến thức về lập trình, về cách thức tạo ra các chương trình kỹ thuật số đang dần trở thành một kỹ năng cơ bản cần được trang bị đối với tất cả mọi người Nhiều quốc gia trên thế giới đã đưa lập trình vào chương trình giảng dạy cấp tiểu học và trung học
Trên thế giới, Anh quốc là quốc gia đầu tiên đã đưa việc học lập trình thành môn học bắt buộc trong các trường tiểu học và trung học Bắt đầu từ năm 2014 trẻ em sẽ học lập trình ở độ tuổi 5 đến 16 Ở giai đoạn 1, học sinh học viết chương trình nhỏ, các khía cạnh đơn giản của thuật toán, cài đặt và thực thi trên thiết bị điện tử Trong giai đoạn 2, học sinh được học cách thiết kế và viết các chương trình phức tạp hơn, tương tác với môi trường xung quanh Ở giai đoạn 3 (cấp trung học phổ thông), học sinh học
về đại số Boolean, tư duy thuật toán Giai đoạn 4 tập trung vào sáng tạo và định hướng nghề nghiệp
Việc dạy tin học và lập trình sớm như vậy không chỉ có ích cho toàn bộ học sinh,
mà còn trợ giúp rất lớn cho ngành CNTT và quá trình hiện đại hóa đất nước Hiểu được vai trò của việc dạy tin học và nắm bắt được xu hướng này trên thế giới, Bộ GD&ĐT Việt Nam đã đưa việc học lập trình Pascal vào chương trình và coi đó là khởi đầu cho việc tiếp cận ngôn ngữ lập trình bậc cao Ở cấp THPT, đây cũng là môn học bắt buộc đối với học sinh khối 11
Nói một cách khái quát, Pascal là một trong những ngôn ngữ lập trình có cú pháp khoa học và gần gũi với ngôn ngữ của con người Pascal có ưu điểm trong việc ứng dụng để giải quyết các bài toán trên máy tính, qua đó giúp các em hình dung được sự
ra đời, cấu tạo, hoạt động cũng như ích lợi của các chương trình hoạt động trong máy tính, các máy tự động…
Tính cấp thiết của đề tài
Ngôn ngữ lập trình Pascal có vai trò quan trọng như vậy, nhưng thực tế việc học Pascal ở trường THPT đang diễn ra theo hình thức thầy giảng giải thật kĩ, học trò cố nhớ thật nhiều hay thầy trình chiếu - trò xem Về cơ bản, đây là một phương pháp dạy học lạc hậu, ngay cả khi nó được hỗ trợ bởi các thiết bị công nghệ của thế kỉ 21 Bên cạnh đó, do nhiều yếu tố như năng lực, trình độ của học sinh, quan niệm của người dạy
mà nội dung bài học chỉ dừng lại ở mức độ giới thiệu câu lệnh và những thuật toán lâu đời Các tiết học về lập trình Pascal chưa đi vào ứng dụng thực tiễn khiến học sinh
Trang 1161
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Quách Tuấn Ngọc, 2001 Ngôn ngữ lập trình Pascal, Nhà xuất bản Thống kê, Hà
Nội
[2] Nguyễn Trọng Nghĩa, Báo cáo tham luận: Tạo sự yêu thích và kỹ năng lập trình cho học sinh, THPT chuyên Thái Nguyên
[3] Phạm Ngọc Hùng, Trương Anh Hoàng, Đặng Văn Hưng (2014), ―Giáo trình kiểm thử phần mềm‖ Khoa CNTT- Đại học Công nghệ, ĐHQG Hà Nội
[4] Tạp chí công nghệ giáo dục (1-4), ĐH FPT, Hà Nội
[5] Nguyễn Tiến Dũng, Lê Ngọc Liên (dịch) ―Lý thuyết trò chơi trong kinh doanh‖ [6] Bùi Thế Tâm (2004), Giáo trình Turbo PASCAL 7.0, Nhà xuất bản Giao thông vận
tải, Hà Nội
[7] Đỗ Xuân Lôi (2006), Cấu trúc dữ liệu, Nhà xuất bản Đại học Quốc gia Hà Nội [8] Nguyễn Xuân My, Hồ Sĩ Đàm, Trần Đỗ Hùng, Lê Sỹ Quang (2002), Các vấn đề chọn lọc trong Tin học tập (1,2), Nhà xuất bản Giáo dục, Hà Nội
[9] Hồ Sĩ Đàm, Hồ Cẩm Hà, Trần Đỗ Hùng, Nguyễn Đức Nghĩa, Nguyễn Thanh
Tùng, Ngô Ánh Tuyết (2013), Tin học 11 (dùng cho học sinh), Nhà xuất bản Giáo dục,
Hà Nội
[10] Hồ Sĩ Đàm, Hồ Cẩm Hà, Trần Đỗ Hùng, Nguyễn Đức Nghĩa, Nguyễn Thanh
Tùng, Ngô Ánh Tuyết (2013), Tin học 11 (dùng cho giáo viên) Nhà xuất bản Giáo
dục, Hà Nội,
[11] Đào Minh Hồng, Lê Hồng Hiệp (2013), ―Sổ tay Thuật ngữ Quan hệ Quốc tế Khoa QHQT‖ – Đại học KHXH&NV
TPHCM.http://nghiencuuquocte.net/tag/so-tay-thuat-ngu-qhqt/
Tiếng Anh
[12] Nikolai Tillmann, R Nigel Horspool , Daniel Perelman, Tao Xie (2014), Code
[13] Lee, J J & Hammer, J (2011) Gamification in Education: What, How, Why Bother? Academic Exchange Quarterly, 15(2)
[14] Jensen, E (1998) Teaching with the brain in mind Alexandria, Va: Association
for Supervision and Curriculum Development
Trang 1262
[15] Balraj Kumar, ParulKhurana (2012), Gamification in education – learn computer programming with fun, Department of Computer, Lovely Professional
University, Punjab
[16] WEF(2015), New Vision for Education – Unlocking the potential of technology
[17] Bloom B S., Englehart M D., Furst E J., Hill W H., and Krathwohl D R
(1956), Taxonomy of Educational Objectives: Handbook I—Cognitive Domain,
McKay, New York
[18] Stuart E Dreyfus, Hubert L Dreyfus (1980), A five-stage model of the mental activities involved in directed skill acquisition, California Univ Berkeley Operations
Research Center
[19] Maria Meyerson (2012), Applications of game theory in education, Sierra
Nevada College
http://www3.weforum.org/docs/WEFUSA_NewVisionforEducation_Report2015.pdf
[20] Gee, J P (2008) Learning and games Cambridge, MA: MIT Press
[21] Kolb D A (1981), Learning styles and disciplinary differences In: A Chickering (Ed.), The Modern American College San Francisco: Jossey-Bass
[22] Kolb, D A(1984), Experiential Learning, London: Prentice Hall
[23] Knowles (1990) The Adult Learner: a Neglected Species (4th ed.), Houston: Gulf
Publishing
[24] Knowles, (1975), Self-Directed Learning: a Guide for Learners and Teachers
Follet, Chicago
[25] Pohl, M (2000) Learning to Think, Thinking to Learn: Models and Strategies to Develop a Classroom Culture of Thinking.Cheltenham, Vic.: Hawker Brownlow