1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

72 869 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 2,98 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Để khắc phục phần nào những khó khăn mà học sinh gặp phải trong việc học Lập trình Pascal và nâng cao khả năng tương tác của học sinh với môn học, hướng tới thu hút những học sinh có năn

Trang 1

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

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 3

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 4

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 5

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 6

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 7

6 OER Open educational resources Kho tài nguyên giáo dục mở

7 OECD Organization for Economic

Cooperation and Development

Tổ chức Hợp tác và Phát triển Kinh tế

8 WEF The World Economic Forum Diễn đàn kinh tế thế giới

9 SGK Sách giáo khoa

Trang 8

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 9

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 10

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 11

chưa hiểu được tầm quan trọng của môn học Bên cạnh đó, việc diễn giải lý thuyết dài dòng và viết mã lệnh tách rời với thực hành cũng là lý do khiến học sinh mất kiên nhẫn với môn học

Để khắc phục phần nào những khó khăn mà học sinh gặp phải trong việc học Lập trình Pascal và nâng cao khả năng tương tác của học sinh với môn học, hướng tới thu hút những học sinh có năng lực học tập bộ môn Tin học cũng như đa số học sinh trong các tiết học về lập trình, tôi đã chọn đề tài: “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” phục vụ cho việc hoàn thiện luận văn của mình

Cấu trúc luận văn của tôi bao gồm “Phần mở đầu”, “Phần kết luận” và bốn chương nội dung cụ thể là:

Chương 1: Tổng quan về vấn đề nghiên cứu

Chương này trình bày tổng quan về những vấn đề cơ bản trong dạy và học Pascal

ở trường THPT, giới thiệu phương pháp và một số hướng tiếp cậ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 THPT

Chương 2: Hướng tiếp cận và ứng dụng trong dạy và học Pascal

Chương này tôi tập trung nghiên cứu một số hướng tiếp cận và mô hình học tập

đã và đang được triển khai thành công trong giáo dục như: mô hình Code Hunt với chiến thuật trò chơi hóa, hệ thống dạy học khép kín, mô hình phân loại trí năng của Bloom, và mô hình đánh giá năng lực của Dreyfus Từ những nghiên cứu đó tôi đưa ra những đề xuất về thiết kế nội dung học tập Pascal đồng thời đưa ra phương pháp đánh giá, đo lường kết quả của người học

Chương 3: Xây dựng hệ thống giải quyết bài toán

Trong chương này tôi đưa ra hai nhiệm vụ của bài toán là thiết kế giảng dạy và đánh giá chương trình của người học Từ đó tôi đưa ra bài toán và xây dựng chức năng của phần mềm hỗ trợ dạy và học ngôn ngữ lập trình Pascal

Chương 4: Cài đặt thử nghiệm và kết quả đạt được

Chương này hướng dẫn việc cài đặt và triển khai phần mềm, đồng thời đánh giá việc thực hiện đề tài trong lý thuyết cũng như trong thực tiễn

Trang 12

Chương 1 TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU

1.1 Vấn đề dạy và học ngôn ngữ lập trình Pascal trong trường THPT

Đầu những năm 1970, giáo sư Niclaus Wirth đã công bố sự ra đời của Ngôn ngữ lập trình Pacsal Trong quá trình hình thành và phát triển, Pascal đã phát huy được nhiều ưu điểm của mình và tỏ ra hơn hẳn nhiều ngôn ngữ cấp cao khác [1] Pascal đã trở thành một ngôn ngữ mạnh được ứng dụng rộng rãi trong những năm 80 cả trong lĩnh vực giảng dạy và lập trình chuyên nghiệp

Pascal là ngôn ngữ lập trình bậc cao có các đặc điểm [1]:

Là một ngôn ngữ có định kiểu mạnh mẽ: Mọi biến và hằng của kiểu dữ liệu nào

chỉ được gán các giá trị của đúng kiểu dữ liệu đó, không được tự do đem gán cho các giá trị của kiểu dữ liệu khác Việc định kiểu một cách chặt chẽ như vậy khiến cho người lập trình luôn luôn phải có các biểu thức tương thích với nhau

về kiểu dữ liệu, vì thế rèn luyện cho người học tư duy logic chặt chẽ

 Là một ngôn ngữ thể hiện tư duy lập trình có cấu trúc được thể hiện trên 3 mặt:

 Cấu trúc về mặt dữ liệu: từ dữ liệu đơn giản hoặc có cấu trúc đơn giản người lập trình có thể xây dựng các dữ liệu có cấu trúc phức tạp hơn

 Cấu trúc về mặt lệnh: từ các lệnh chuẩn đã có, người lập trình có thể nhóm chúng lại với nhau và đặt giữa hai từ khóa Begin và End khiến chúng trở thành một ngôn ngữ phức tạp hơn gọi là lệnh hợp thành hay lệnh ghép

 Cấu trúc về mặt chương trình: một chương trình có thể chia thành các chương trình con tổ chức theo hình cây phân cấp Mỗi chương trình con nhằm giải quyết một nhiệm vụ xác định cụ thể Điều này giúp cho người lập trình có thể giải quyết từng phần một, từng khối một và có thể cho nhiều người tham gia lập trình, mỗi người phụ trách một vài khối

 Là ngôn ngữ lập trình rất gần với ngôn ngữ tự nhiên (tiếng Anh) nên mã Pascal trở nên rất sáng sủa, dễ hiểu và dễ sửa chữa

Ngày nay, Pascal ít được sử dụng trong lập trình chuyên nghiệp nhưng là ngôn ngữ sử dụng nhiều trong giảng dạy đặc biệt dành cho những người lần đầu tiên tiếp xúc với lập trình và đây cũng là ngôn ngữ chính thức của kỳ thi Olympic Tin học quốc

tế [2]

Hiểu được những lợi ích ngôn ngữ lập trình Pascal mang lại, Bộ Giáo dục và Đào tạo đã quyết định đưa Pascal vào học phần Tin học Đại cương thuộc các khối ngành Khoa học Tự nhiên, đặc biệt là ngành Công nghệ Thông tin, đồng thời là một môn học trong khối 11 ở các trường THPT trên toàn quốc Môn học này đã phát huy được

Trang 13

những ưu điểm vốn có của nó Tuy nhiên qua quá trình triển khai, nó cũng nhận được nhiều phản hồi của người học như:

 Phần lớn nội dung bài tập trong chương trình Tin học lớp 11 liên quan đến tính toán hoặc thuần về toán học, không gắn liền với thực tiễn, học sinh thường không hiểu lập trình để làm gì ngoài việc tính toán với các con số

 Học sinh sẽ rất khó hình dung được các ứng dụng mà lập trình có thể làm được trong thực tế nếu chỉ căn cứ vào lý thuyết thuần túy từ sách giáo khoa Học sinh luôn đặt ra câu hỏi lập trình Pascal có ứng dụng như thế nào trong thực tế

 Học sinh khó kiểm tra bài làm của mình sau khi lập trình là đúng hay là sai Có thể trên lý thuyết là đúng nhưng thực tế sẽ có những trường hợp thiếu chính xác trong từng ngữ cảnh cụ thể

 Học sinh thường tìm hiểu những ngôn ngữ lập trình đang được quan tâm hiện nay như Java, C++, Python, Theo TIOBE Index, trang chuyên thống kê nhu cầu tuyển dụng lập trình viên dựa trên kết quả tìm kiếm của 25 công cụ tìm kiểm nổi tiếng thế giới như Google, Bing, Yahoo, Wikipedia, Amazon, YouTube và Baidu để thống kê, so sánh và đưa ra xu hướng phát triển thì kết quả công bố tính đến tháng 11 năm 2015 ( hình 1.1), Pascal được xếp thứ 17 về

độ phổ biến Nếu tính theo kết quả đó thì việc lựa chọn Pascal đưa vào giảng dạy sẽ khó thuyết phục học sinh học tập, nghiên cứu và đam mê lâu dài

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

Để giải quyết phần nào những vướng mắc mà học sinh gặp phải, tôi tập trung nghiên cứu vào việc: “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” nhằm tạo sự tương tác giữa người học với môn học, và phát huy tính tích cực, chủ động trong học tập của người học với môn học ngôn ngữ lập trình pascal

Trang 14

1.2 Phát biểu bài toán

Phần mềm được nghiên cứu là một trang web thay cho trình soạn thảo của Pascal như Turbo Pascal, Free Pascal Trang web hỗ trợ người học về cách sử dụng ngôn ngữ lập trình Pascal và thực hành các dạng bài tập, đồng thời cho phép người học biên dịch và kiểm thử các dạng bài tập Pascal ngay trên giao diện của trang web, nếu chương trình của người học đạt yêu cầu hệ thống đưa ra, người học sẽ nhận được lời chúc mừng khích lệ, được cộng điểm và được tiếp tục làm bài có cấp độ thách đố cao hơn Mỗi dạng bài tập người học có thể xem lại, chỉnh sửa lại nhiều lần nhưng hệ thống chỉ tính điểm cho lần đầu tiên mà người học làm đạt yêu cầu

Trang web nhận đầu vào là mã Pascal qua quá trình phân tích mã Pascal, sinh các ca kiểm thử, chương trình sẽ trả về kết quả đúng hoặc sai Nếu kết quả là đúng, hệ thống sẽ mở khóa cho phép người học làm bài tập kế tiếp Nếu kết quả là sai, người học cần chỉnh sửa lại mã Pascal, việc này được lặp đi lặp lại cho đến khi ra kết quả đúng

1.2.1 Quy trình xử lý

Xây dựng Hệ thống gồm những bước cơ bản sau:

 Xây dựng trình soạn thảo pascal trên trang web

 Thiết kế kiểm thử mã pascal của người dùng đã nhập để đưa ra những phản hồi thích hợp

 Xây dựng tài liệu hỗ trợ học tập ngôn ngữ lập trình Pascal từ nguồn tài nguyên

mở

1.2.2 Những khó khăn thách thức

 Pascal là ngôn ngữ lập trình có cấu trúc thuộc dạng mệnh lệnh hiện nay chỉ được sử dụng chủ yếu trong giảng dạy Bắt đầu từ năm 2000, Pascal đã không còn được hỗ trợ phát triển, chính vì thế Pascal gần như không còn được ứng dụng trong ngành công nghiệp phần mềm

 Pascal gặp hạn chế về thư viện hỗ trợ kiểm thử chương trình (so với C/C++ ) Những nghiên cứu và giải pháp kiểm thử cho Pascal hầu như không tiếp cận được, vì thế việc nghiên cứu giải pháp kiểm thử chương trình Pascal của người học được tôi tiến hành theo hướng thủ công với mỗi dạng bài toán sẽ có những hình thức kiểm thử khác nhau

Trang 15

1.3 Hướng tiếp cận

Thực tế cho thấy bối cảnh giáo dục hiện nay đã thay đổi Việc dạy và học không chỉ dừng lại ở việc phát triển tư duy, nhận thức mà còn bao gồm cả phát triển cảm xúc, thái độ và kỹ năng Vì vậy, để xây dựng phần mềm, tôi đã nghiên cứu những

mô hình giáo dục trực tuyến1 có khả năng cung cấp các chương trình và nội dung học tập thích ứng cá nhân hóa, tiếp đến tôi nghiên cứu những nguồn học liệu mở 2 cho các hoạt động sư phạm và những dạng game tương tác, giả lập chất lượng cao3 trợ giúp việc thực hành của học sinh Từ những nghiên cứu này, tôi đã tiếp cận mô hình học tập của codehunt

Code Hunt là một trò chơi trực tuyến giúp người chơi học cách viết mã lệnh Java và C# Chiến thuật trò chơi hóa của Code Hunt đã rất thành công trong việc thu hút sự chú tâm của người học Cách tiếp cận này giúp những người học lần đầu tiếp xúc với lập trình có thể thoải mái vui đùa với những khối lệnh lập trình đơn giản, còn những người thành thạo hơn có thể đưa ra các chiến lược giải quyết vấn đề Toàn bộ công cụ học tập tương tác hiện diện trên trang web dưới dạng các bài tập, cùng với các trợ giúp bằng văn bản hoặc video ngắn giúp cho học sinh bị cuốn hút vào các hoạt động học tập chủ động một cách tự nhiên từ đó dẫn dắt người học đến với các khái niệm và kĩ năng cơ bản của lập trình và thuật toán

1 https://www.codehunt.com/, https://code.org/ , https://www.codecademy.com/,

http://www.dreambox.com/, https://www.knewton.com/, https://www.khanacademy.org/

2 http://www.curriki.org/, https://learnzillion.com/, http://betterlesson.com/, https://www.gooru.org

3

https://www.explorelearning.com/, http://www.simcity.com/en_US/simcityedu,

http://mw.concord.org/

Trang 16

Chương 2 TỔNG QUAN VỀ CODE HUNT VÀ ỨNG DỤNG TRONG

DẠY HỌC PASCAL

2.1 Tổng quan về Code Hunt

2.1.1 Giới thiệu về Code Hunt

Năm 2014, Microsoft công bố một trò chơi trực tuyến mới là Code Hunt Khác với những trò chơi giải trí khác, Code Hunt giúp người chơi học cách viết mã lệnh ngôn ngữ Java hoặc C# Chiến thuật trò chơi hóa của Code Hunt đã rất thành công khi thu hút hơn 150 000 người chơi từ khắp nơi trên thế giới và đạt được kết quả đáng ngạc nhiên khi có đến 99% người chơi quay trở lại trong một tuần sau đó

Điểm thú vị ở Code Hunt là nó được thiết kế giống như một trò chơi viết mã lệnh, nó thách thức người chơi phải suy luận về một vấn đề bí ẩn của bài toán, dựa vào những manh mối là các trường hợp thử nghiệm (Unit test) với một bộ đầu vào và đầu

ra kỳ vọng, người chơi sẽ phải đưa ra giải pháp để chương trình đúng hết với các trường hợp thử nghiệm (test cases)

2.1.2 Chức năng của Code Hunt

Code Hunt cũng giống với những trò chơi khác là nó cung cấp nhiều lĩnh vực

và cấp độ (level) khác nhau Người chơi sẽ viết mã lệnh Java hoặc C# trong một cửa

sổ giống như trình soạn thảo (IDE), để thực thi một công thức hoặc một thuật toán từ chức năng câu đố (Puzzle) của chương trình

Chức năng câu đố cung cấp cho người chơi những tham số đầu vào và kết quả tương ứng, Người chơi sẽ phải kiểm tra xem giải pháp của họ đưa ra có phù hợp hay không bằng cách nhấn vào nút “CAPTURE CODE”, khi nút này được nhấn hệ thống

sẽ thực thi những sự kiện sau [12]:

1 Mã lệnh của người chơi sẽ được gửi đến máy chủ trên nền điện toán đám mây

2 Máy chủ sẽ biên dịch mã lệnh (cung cấp tùy chọn chuyển đổi mã Java sang C#

và ngược lại)

3 Máy chủ sẽ phân tích mã lệnh và so sánh với thuật toán đặt ra

4 Kết quả được trả về và hiện thị cho người chơi

Trang 17

Hình 2.1 Màn hình chính của Code Hunt

Chức năng phân tích mã sẽ hiển thị kết quả là những thông báo lỗi và gợi ý về thuật toán, được đưa ra dưới hình thức là một bộ đầu vào (input), kết quả thực tế (result actual), kết quả kỳ vọng của chương trình (output expected) Nhiệm vụ của người chơi là phải tìm ra được thuật toán hoặc viết những đoạn mã tương đương, sao cho với mỗi bộ đầu vào sẽ có kết quả phù hợp với kỳ vọng của chương trình, lúc đó người chơi sẽ chiến thắng cấp độ này

Hình 2.2 Các lĩnh vực của Code Hunt

Code Hunt sắp xếp các lĩnh vực theo các chủ đề mà người chơi phải tìm hiểu như toán tử số học, vòng lặp, câu điều kiện, các thuật toán, và nhiều chủ đề khác mà người chơi thường gặp trong lĩnh vực lập trình Trong mỗi lĩnh vực là những câu đố được sắp xếp theo cấp độ khó dần Ngay sau khi vượt qua một cấp độ người chơi sẽ chuyển sang cấp độ khó hơn Code Hunt chỉ mở khóa cho lĩnh vực đầu tiên, người

Trang 18

chơi phải vượt qua tất cả các cấp độ trong lĩnh vực này mới được hệ thống mở khóa chuyển sang lĩnh vực tiếp theo

Khi người chơi hoàn thành một cấp độ, Code Hunt sẽ đánh giá kỹ năng của người chơi bằng cách gán số điểm 1, 2, hoặc 3 và phân tích mã lệnh có tinh gọn hay không? Mức 1 - giải pháp còn dài dòng, mức 2- giải pháp mức ở độ trung bình, mức 3 – giải pháp ngắn gọn Mục đích của việc đánh giá kỹ năng là để người chơi phải có ý thức trong việc cải thiện mã lệnh của họ, đánh giá này sẽ được nhân với một giá trị cụ thể ở mỗi cấp độ khác nhau, kết quả của phép tính sẽ là điểm số mà người chơi đạt được ở cấp độ này Người chơi có thể theo dõi sự tiến bộ của họ thông qua tổng số điểm tích lũy và bảng xếp hạng 15 người có tổng số điểm tích lũy cao nhất

2.1.3 Kiến trúc của Code Hunt

Code Hunt là một hệ thống điện toán đám mây được lưu trữ trong Windows Azure Khi người chơi có yêu cầu đến trang www.codehunt.com, hệ thống sẽ được phục vụ từ một ứng dụng điện toán đám mây tương tác với người chơi (front-end) Nếu người chơi đăng nhập vào hệ thống thì chức năng Windows Azure Active Directory Access Control sẽ ủy quyền cho một trong số nhà cung cấp định danh (Microsoft, Facebook, Google, Yahoo) Khi người chơi tham gia vào một cấp độ nào

đó, một ứng dụng điện toán đám mây thực hiện chức năng xử lý hệ thống (back-end) được thực thi ở api.codehunt.com Chức năng xử lý hệ thống sử dụng giao tiếp lập trình ứng dụng (API) phổ biến là REST, nơi thực hiện nhiệm vụ phân tích chương trình thực tế và lưu trữ dữ liệu người dùng trong Windows Azure Store Dữ liệu người dùng được xác thực bởi chuẩn OAuth (Open Authorization)

Hình 2.3 Kiến trúc của Code Hunt

Chức năng front-end và back-end được thiết kế có khả năng mở rộng tối đa, tăng số lượng nhân có sẵn để phục vụ không giới hạn số lượng người đăng nhập

Trang 19

2.2 Ứng dụng mô hình Code Hunt trong dạy học Pascal

2.2.1 Chiến thuật trò chơi hóa (Gamification)

Theo nghiên cứu của Lee và Hammer [13] chiến thuật trò chơi hóa khi được ứng dụng vào dạy học sẽ có tác động đến ba yếu tố tâm lý của người học đó là: Nhận thức, Cảm xúc, vị trí xã hội

Nhận thức: Trò chơi thường được tổ chức thành một hệ thống phức tạp và các

quy tắc cho người chơi khám phá thông qua những hoạt động thử nghiệm lặp đi lặp lại, người chơi sẽ phải quan sát các kết quả, kế hoạch di chuyển tiếp theo của họ, và thực hiện những kế hoạch Trong một thời gian ngắn, mong muốn của người chơi là phải đánh bại mỗi mức độ mà họ đã thử nghiệm

Trò chơi sẽ hướng dẫn người chơi thông qua quá trình chủ động và giữ họ tham gia vào những nhiệm vụ khó hơn Một kỹ thuật thiết kế trò chơi quan trọng là phải cung cấp những thách thức cụ thể nhưng hoàn toàn phù hợp với mức độ kỹ năng của người chơi, và tăng dần sự khó khăn cũng như kỹ năng của người chơi Sự thách đố khó khăn và mục tiêu trước mắt chính là động cơ thúc đẩy người học vượt qua, và đây chính là mục đích mà Chiến thuật trò chơi hóa cung cấp, trò chơi cũng cung cấp nhiều cách thức đạt đến thành công, cho phép học sinh lựa chọn các mục tiêu phụ của chính

họ trong các nhiệm vụ lớn hơn Điều này cũng hỗ trợ động lực và sự tham gia

Chiến thuật trò chơi hóa trong giáo dục có thể thay đổi các quan điểm của học sinh về học tập Học sinh thường được yêu cầu phải học và làm những việc mà đôi khi không hiểu được lợi ích lâu dài của môn học Chiến thuật trò chơi hóa có thể giúp sinh viên đặt câu hỏi, "Nếu tôi muốn vượt qua cấp độ này, tôi phải làm gì?" Chiến thuật trò chơi hóa mang lại cho người học sự rõ ràng, nhiệm vụ hành động và hứa hẹn với họ phần thưởng ngay lập tức thay vì lợi ích lâu dài mơ hồ Trong các trò chơi thiết kế tốt nhất, phần thưởng cho việc giải quyết một vấn đề là một vấn đề khó khăn hơn

Cảm xúc: Trò chơi mang đến một loạt những cảm xúc mạnh mẽ, từ sự tò mò

đến thất vọng với niềm vui, cung cấp nhiều kinh nghiệm cảm xúc tích cực, chẳng hạn như sự lạc quan và niềm tự hào Điều quan trọng, trò chơi cũng giúp người chơi kiên trì thông qua những trải nghiệm cảm xúc tiêu cực và thậm chí biến chúng thành tích cực Bởi vì trò chơi liên quan đến việc thử nghiệm lặp đi lặp lại, người học cũng phải chấp nhận đến sự thất bại lặp đi lặp lại, cách duy nhất để tìm hiểu làm thế nào để chơi các trò chơi là sau mỗi một lần thất bại người chơi cần phải rút ra một kinh nghiệm cho mình Trò chơi duy trì mối quan hệ tích cực với sự thất bại này bằng cách làm cho chu kỳ thông tin phản hồi nhanh chóng với một mức điểm thưởng thấp Ở trường học, thường các mức phần thưởng là cao, khó để đạt được, chu kỳ phản hồi thường kéo dài tính theo tuần, theo tháng, học kỳ hay năm học vì vậy học sinh có ít cơ hội để kiểm tra thử, thi thử mà học sinh sẽ phải học thật, thi thật để đạt được kết quả như mong đợi, và

Trang 20

ngay cả những học sinh giỏi nhất cũng không tránh được sự lo âu, khi phải chờ đợi những cơ hội thi cử khi mà kết quả đạt được không như mong muốn là rất cao

Chiến thuật trò chơi hóa mang đến khả năng phục hồi khi đối mặt với thất bại, bởi thất bại được thiết kế như là một phần cần thiết của học tập Chiến thuật trò chơi hóa có thể rút ngắn chu kỳ phản hồi, cung cấp cho người chơi những phần thưởng nhỏ

để đánh giá những khả năng riêng của họ, và tạo ra một môi trường có nỗ lực, làm chủ, được khen thưởng Ở đó người chơi có thể học để thấy sự thất bại là một cơ hội, thay

vì trở nên bất lực, sợ hãi và cảm giác bị lấn át

Vị trí xã hội: Tham gia vào trò chơi giúp con người được thử nghiệm trong

nhiều dạng nhân vật khác nhau, với nhiều vai trò và khả năng mới, Chiến thuật trò chơi hóa cung cấp uy tín xã hội và công nhận thành tích đạt được của người chơi một cách công khai, thông qua một dạng nhân vật mới với nhiều thành tích sẽ giúp người chơi có những suy nghĩ khác về những khả năng mà họ có thể làm được

Việc kết hợp yếu tố trò chơi và giáo dục sẽ khuyến khích học sinh tham gia vào các hoạt động trong lớp học, giáo viên sẽ được cung cấp những phương tiện giáo dục

và đánh giá học sinh, nhằm tạo ra môi trường học tập vui vẻ, truyển cảm hứng tích cực tới học sinh

Ban đầu Chiến thuật trò chơi hóa được đưa vào để việc củng cố, ghi nhớ kiến thức tô điểm cho bài học, dần dần nó được nghiên cứu để có thể thay thế toàn bộ nội dung học tập nhằm nâng cao sự nhận biết, tác động đến hành vi, nâng cao động lực và thúc đẩy sự tham gia của mọi người

Việc đưa game vào dạy lập trình Pascal có thể giúp học sinh nhận được những kiến thức thiết thực ngay lập tức bởi trong các trò chơi thường bao gồm những sự trải nghiệm được lặp đi lặp lại và vì thế đôi khi người học thường phải đối mặt với những

sự thất bại được lặp lại, với mỗi một lần thất bại người học sẽ phân tích cũng như khắc phục từng lỗi một Và như vậy người học sẽ cố gắng tiếp tục cho tới khi nào mà

họ thành công Từ hành động, nỗ lực lặp đi lặp lại của người học mà vô tình hay chủ động ghi nhớ bài học được lồng ghép trong các trò chơi Việc áp dụng Game giáo dục còn giúp người học được tiếp thêm động lực thông qua việc lĩnh hội cảm xúc, sự chờ đợi, và sự cố gắng

Việc triển khai trò chơi hóa trong giáo dục có tiểm năng rất lớn như: giúp giảm chi phí và cải tiến chất lượng theo các cách thức khác nhau; Tìm kiếm các giải pháp cho các vấn đề cơ bản ở rất nhiều quốc gia như phát triển đội ngũ nhà giáo, mở rộng

cơ hội tiếp cận hạ tầng công nghệ; Cung cấp dịch vụ giáo dục cho số đông dân chúng với chi phí thấp hơn nhiều hoặc cung cấp chất lượng cao hơn với cùng chi phí; Dễ dàng nhân rộng những mô hình tốt ở quy mô lớn; Khai thác dữ liệu để hiểu rõ hơn việc

Trang 21

học của con người; Gia tăng năng suất của giáo viên, giải phóng giáo viên khỏi những công việc tay chân vốn tốn thì giờ như thi cử, chấm bài

Bên cạnh những lợi ích mang lại, việc ứng dụng Chiến thuật trò chơi hóa vào giáo dục có những mặt hạn chế như:

 Việc triển khai phụ thuộc hoàn toàn vào thiết bị công nghệ, nếu không có nền tảng công nghệ thì phương pháp này khó có thể triển khai

 Không phải nội dung nào của bài học cũng phù hợp để có thể đưa vào game

 Đôi khi trò chơi tạo cảm giác khuyến khích người chơi tham gia học tập vì mục đích điểm thưởng và thể hiện bản thân chứ không phải vì thu nhận kiến thức

 Người chơi Game thường muốn được giải trí, tự do chọn lựa trò chơi, được có những khám phá, trải nghiệm riêng của họ Việc áp đặt người học tham gia Game giáo dục trong quá trình học tập sẽ khiến người học cảm giác phải tuân thủ theo một nguyên tắc gò bó không khác kỷ luật trong lớp học là mấy

 Khó để có thể xây dựng một Game giáo dục hấp dẫn như Game giải trí, nếu quá lạm dụng đôi khi có thể xảy ra hiệu ứng ngược, thay vì thu nhận kiến thức người học lại quá đam mê vào yếu tố giải trí của trò chơi, hoặc sự thách đố quá khó cũng dễ người chơi nản chí, bỏ cuộc

Với những mặt tích cực, Chiến thuật trò chơi hóa vẫn đang không ngừng phát triển

và có mặt trong các lĩnh vực của thế giới thực, Chiến thuật trò chơi hóa được dự đoán

sẽ là một phần trong cuộc sống của học sinh trong nhiều năm tới, nó là chìa khóa để khai thác năng lượng, động lực và tiềm năng của học sinh, Chiến thuật trò chơi hóa được ứng dụng để chỉ đạo học tập thông qua trò chơi, chúng cung cấp cho học sinh những phương tiện để trở thành người chơi có thành tích cao và mang đến niềm tin trở thành người chiến thắng trong cuộc sống thực

2.2.2 Thiết kế động viên người học

Theo nghiên cứu của Jensen [14] động lực được xem như là “kích thích (arousal)” và “xung năng (drive)” Sự kích thích phù hợp giúp con người định hướng đến mục tiêu, xung năng là duy trì sự quan tâm để làm một việc đạt được mục tiêu Động lực có tác động lớn đến ý chí và hành vi của con người khi tham gia một vấn đề đặc biệt là học tập, vì vậy trong giáo dục cần thiết phải nghiên cứu về vấn đề làm thế nào để tạo ra, duy trì và gia tăng động lực ở người học

Động lực học tập của học sinh phụ thuộc vào những yếu tố sau [15]:

 Môi trường học tập

 Công nghệ đưa vào giảng dạy

Trang 22

 Phương pháp sư phạm truyền đạt

 Động cơ học tập

 Khả năng tự học hỏi của mỗi học sinh

 Sự thú vị mà môn học mang lại

 Người học sẽ cống hiến được gì nếu theo học lập trình

 Phần thưởng mà người học đạt được

Thực hiện thành công những yếu tố trên có thể mang lại kết quả cho người học như:

 Tăng sự tham gia của người học với môn học

 Thúc đây khả năng tìm tòi và sáng tạo trong môn học

 Có khả năng phát triển sự nghiệp trong lĩnh vực lập trình

 Nắm bắt được hướng đi trong lĩnh vực lập trình

Hình 2.4 Yếu tố tác động đến động lực học tập

Có rất nhiều nguyên nhân gây ra giảm động lực học tập của học sinh, trong đó

có nguyên nhân khá phổ biến đó là: Học sinh nhận thức được bài tập trên lớp hoặc

các nhiệm vụ không có ý nghĩa Học sinh sẽ đặt câu hỏi rằng: Tại sao phải học tập

chăm chỉ khi cảm thấy học tập vấn đề này không để làm gì? Đây là một câu hỏi mang tính cảm quan cá nhân, thay vì cố gắng đưa ra rất nhiều lý lẽ để thuyết phục học sinh

sự tuyệt vời của môn học, chúng ta có thể sử dụng cách thức dễ dàng tác động nhất tới động lực của học sinh thường là thông qua hoạt động học hiệu quả, đồng thời cung cấp các lựa chọn có ý nghĩa vào chương trình học và có một cách đơn giản hơn rất nhiều

đó là sử dụng phần thưởng trong học tập

Trang 23

Theo Jensen [14], bộ não con người được thiết kế để dự đoán, xử lý, thưởng thức và ghi nhớ các phần thưởng Khi con người nghĩ về phần thưởng, họ thường nghĩ theo chiều hướng tích cực

Ví dụ như phần thưởng có thể mang lại niềm vui, tăng tần số hoạt động tìm kiếm có mục đích, duy trì hoạt động học, tăng hoạt động xã hội, tăng cường việc học, tăng khả năng thành công trong học tập kiến thức mới

Não bộ có thể tự tạo ra phần thưởng cho chính nó, những phần thưởng này có khả năng tạo ra chất gây nghiện mạnh tương tự như morphine, alcohol, nicotine, heroin, và cocaine kích thích não bộ không ngừng tìm kiếm cảm giác chiếm lĩnh phần thưởng Bên cạnh đó Não bộ có một xu hướng gắn liền sự trải nghiệm với các nguyên nhân và kết quả hải lòng Nhưng hệ thống tín hiệu khen thưởng ở não bộ là rất khác nhau Một trong những hệ thống đó bao gồm các hành vi dự đoán phần thưởng và một

hệ thống cho sửa chữa lỗi sai Hệ thống thứ nhất tạo ra sự chú tâm tăng dần tỉ lệ với những lời tán dương ngẫu nhiên và hệ thống thứ hai tạo ra kinh nghiệm học tập tốt hơn

Một vấn đề khác về mặt sinh học, bộ não làm quen với phần thưởng rất nhanh chóng Não bộ của con người thích ứng và năng động thay đổi tương ứng với môi trường, điều này có nghĩa là cái được làm tại một thời điểm có thể không cần kéo dài Chúng ta có thể nhanh chóng chuyển từ việc hài lòng với mức thưởng thấp sang mức thưởng cao hơn trong cùng một nhiệm vụ Mỗi phần thưởng có thể phù hợp với học sinh này nhưng lại không phù hợp với học sinh khác vì vậy tất cả các phần thưởng nên được cá nhân hóa

Phần thưởng thường là điều mà ai cũng mong muốn được nhận, có thể sử dụng phần thưởng để tạo động lực trong lớp học, dựa trên những gợi ý sau:

Sử dụng phần thưởng một cách sáng suốt: Nên sử dụng phần thưởng cho

những trường hợp có khả năng đặc biệt, trong thời gian ngắn và có lý do cụ thể,

vì phần thưởng có thể trở nên nhàm chán và thành tích của người học sẽ giảm theo thời gian, khi sử dụng lặp đi lặp lại các phần thưởng

Sử dụng phần thưởng ít giá trị và cụ thể: Sử dụng các sản phẩm ít giá trị kinh tế

là cách thức trao thưởng dễ và lên kế hoạch ngừng trao thưởng sau vài tuần Nếu không, học sinh sẽ quen với việc được trao thưởng và sẽ mất tác dụng

Sử dụng phần thưởng trừu tượng: Các hình thức thừa nhận phần thưởng (giấy

chứng nhận, thư cảm ơn, lời khen) hoặc lễ tôn vinh không liên quan đến tiền bạc (các trò chơi, hoạt động vui chơi, các đặc quyền) là một cách thức thay thế hiệu quả, đặc biệt khi thực hiện những nhiệm vụ khó Các phần thưởng có thể

Trang 24

được trao trong thời gian ngắn, nếu phần thưởng được trao liên tục trong một thời gian dài, chúng có thể gây mất động lực

2.2.3 Thiết kế học tập trải nghiệm

Trong báo cáo “Tầm nhìn mới cho giáo dục: Giải phóng tiềm năng của công nghệ” của Diễn đàn kinh tế thế giới (WEF) [16] để thu hẹp khoảng cách giữa nhóm quốc gia có thu nhập cao trong khối OECD với nhóm các quốc gia có thu nhập thấp nghiên cứu chỉ ra rằng cần phải áp dụng những tiến bộ KH&CN trong giáo dục, nhóm tác giả đề xuất một sáng kiến về một hệ thống giảng dạy khép kín (Close-loop Instructional System) có tích hợp những công nghệ giáo dục tiên tiến vào từng khâu trong chu trình giáo dục từ tạo lập mục tiêu học tập, phát triển chương trình, nội dung học tập và chiến lược giảng dạy, đánh giá quá trình, can thiệp, theo dõi và đo lường kết quả học tập tất cả được kết nối với nhau thành một chu trình:

Hình 2.5 Hệ thống giảng dạy vòng tròn khép kín

Giải pháp công nghệ này vừa tích hợp những công nghệ tiên tiến vào chu trình giáo dục, vừa mở cửa cho những hình thức giảng dạy mới, có đổi mới thực chất trong nội dung và cách thức để gia tăng thời gian học tập, nâng cao chất lượng tương tác và cải thiện hiệu quả giáo dục

Áp dụng hệ thống giảng dạy vòng tròn khép kín vào việc hỗ trợ dạy và học ngôn ngữ lập trình Pascal trong bối cảnh hiện nay, chương trình cung cấp cho người học và giáo viên một kho lưu trữ các nguồn bài giảng và học liệu mở, học sinh có thể bắt đầu phần thực hành bằng cách tiếp cận tập hợp các câu hỏi thách đố từ chương trình, học sinh được khuyến khích sử dụng kiến thức sẵn có của mình để trả lời cho những câu hỏi, qua mỗi bài tập học sinh sẽ được trang bị thêm những kiến thức mới thông qua những câu hỏi thách đố mà mà học sinh phải giải quyết, trong từng giai đoạn giáo viên

có thể xem xét dữ liệu đánh giá về tiến độ của người học, để có thể đưa ra những phương pháp giảng dạy thích hợp bất cứ lúc nào

Trang 25

Trong đó, hệ thống giảng dạy khép kín như là một gợi ý tổng thể về chương trình học tập Pascal, và là mô hình tham khảo về nền tảng công nghệ được tích hợp như thế nào trong các bài học, hoặc cả chương trình để đạt được hiệu quả tốt Mô hình dạy và học Pascal được tôi triển khai bắt đầu chu trình là tạo lập mục tiêu học tập, phát triển chương trình, nội dung học tập và chiến lược giảng dạy, đánh giá quá trình, can thiệp, theo dõi và đo lường kết quả học tập tất cả được kết nối với nhau thành một chu trình như sau:

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

Chuyển đổi phương pháp học truyền thống sang Gamification trong môn lập trình Pascal

Bảng 2.1 Chuyển đổi từ phương pháp học truyền thống sang Gamification Phương pháp tiếp cận truyền thống Phương pháp tiếp cận Game giáo dục Khóa học: Lập trình Pascal

Điểm: Đánh giá người học

Sách giáo khoa

Các chương

Chủ đề

Khóa học: Lập trình Pascal Điểm: Thưởng cho người học Thư viện (bộ công cụ học liệu) Các giai đoạn

Các cấp độ

Trang 26

Người học có thể chọn lựa các giai đoạn phù hợp với cá nhân, Nội dung học tập được tiến hành theo từng giai đoạn (thử nghiệm) như sau:

Hình 2.7 Nội dung học tập được theo từng giai đoạn

Hiện tại hệ thống đã hoàn thiện được nội dung bài tập thử nghiệm ở mức độ cơ bản như sau:

Hình 2.8 Nội dung bài tâp thực nghiệm theo từng giai đoạn

Trang 27

2.2.4 Đánh giá người học theo thang phân loại Bloom và Drefus

Trong lĩnh vực giáo dục, thang phân loại các mức trí năng của Bloom được dùng phổ biến khắp thế giới và được xem là một công cụ quan trong xây dựng mục tiêu giáo dục, đo lường giáo dục, đặt câu hỏi trong giảng dạy và nghiên cứu, xây dựng

và thiết kế bài giảng cũng như hướng dẫn giảng dạy để đạt mục tiêu đã đề ra

Nhà tâm lý giáo dục Benjamin Bloom cùng nhóm nghiên cứu của mình đã phân

loại mục tiêu giáo dục theo hai lĩnh vực tri thức và cảm xúc [17] trong đó lĩnh vực tri

thức được chia thành sáu phạm trù chủ yếu, sắp xếp theo mức độ tăng dần gồm Biết (Knowledge), Hiểu (Comprehension), Ứng dụng (Application), Phân tích (Analysis), Tổng hợp (Synthesis) và Đánh giá (Evaluation)

Nhận thấy cách phân loại của Bloom chưa thật sự hoàn chỉnh, năm 1990 Lorin Anderson, một học trò của Benjamin Bloom, đã cùng một số cộng sự đề xuất điều chỉnh về cấp độ tư duy Trong đó, Có ba sự thay đổi đáng chú ý là cấp độ tư duy thấp nhất là Nhớ thay vì Biết, cấp độ ở mức cao nhất là Tổng hợp được thay thế bằng cấp

độ Sáng tạo, các danh động từ chỉ sáu cấp độ tư duy được thay cho các cấp độ danh từ

Sự điều chỉnh này nhận được sự ủng hộ và công nhận bởi đa số các cơ sở giáo dục, nhất là các trường đại học – nơi đề cao các hoạt động giúp phát triển năng lực sáng tạo của người học

Hình 2.9 Thang phân loại các mức trí năng của Bloom

Trong đó:

Mức độ Nhớ: Kiến thức ở mức độ này bao gồm những thông tin có tính chất

chuyên biệt, mà một người học có thể nhớ hay nhận ra sau khi tiếp nhận Việc học thường bắt đầu từ nhu cầu “muốn biết” và để “biết được cái gì đó”, người học chỉ cần vận dụng trí nhớ, nên thành quả đạt được ở mức ghi nhớ Thường mục tiêu giáo dục không dừng ở việc dạy các tri thức thuộc mức “ghi nhớ” này Trong đo lường giáo dục, thường sử dụng những câu hỏi có dạng Nhắc lại, mô tả, liệt kê, trình bày, chọn lựa, gọi tên, nhận diện một vấn đề

1956 2002

Trang 28

Một ví dụ về việc dạy kiến thức lập trình ở mức “ghi nhớ” là chỉ cho học sinh cách thức khai báo và sử dụng biến trong lập trình, học sinh cần phải nhớ quy tắc này

Mức độ Hiểu có nghĩa là người học cần nắm được ý nghĩa của thông tin, thể

hiện qua khả năng diễn giải, suy diễn, liên hệ Ở mức này, người học có khả năng chỉ

ra ý nghĩa và mối liên hệ giữa các thông tin (hay khái niệm) mà họ đã biết Khi phát biểu một định nghĩa nào đó, tức là người học đã biết đến khái niệm, nhưng để chứng tỏ hiểu, họ phải có khả năng giải thích được các khái niệm trong đó, minh họa bằng các

ví dụ hay hình ảnh, phát biểu lại (rephrase) định nghĩa đó trình bày dưới dạng khác mà không mất đi đặc trưng của khái niệm Những yêu cầu về mức hộ hiểu thường là Giải thích, tóm tắt, phân biệt, mở rộng, khái quát hóa, cho ví dụ, nhận định, so sánh, sắp xếp

Ví dụ về mức này là giải thích cho học sinh biết được vai trò quan trọng của biến trong lập trình là “bộ nhớ” trong chương trình, qua đó học sinh hiểu được biến là một “không gian lưu trữ” tạm thời các dữ liệu

Mức độ Vận dụng: Người học có khả năng áp dụng thông tin đã biết vào một

tình huống, một điều kiện mới, biết sử dụng phương pháp, nguyên lý hay ý tưởng để giải quyết một vấn đề nào đó Vấn đề được giải quyết ở đây phải khác vấn đề đã được thảo luận trên lớp hay trong giáo trình, các kiến thức có thể được đem ra áp dụng vào các vấn đề thực tiễn của người học Để đo lường khả năng ứng dụng, ta có thể sử dụng các bài thực hành hoặc kiểm tra các kĩ năng trong các bài trắc nghiệm (liệt kê các thủ tục, xem xét lỗi có thể phát sinh, lựa chọn giải pháp từ dữ kiện sẵn có)

Ví dụ: sau khi học sinh hiểu được đặc tính “lưu trữ tạm thời” của biến, trong quá trình lập trình, khi chương trình cần lưu trữ dữ liệu nào để tính toán, học sinh sẽ nhớ ra rằng cần phải lưu vào trong biến

Mức độ Phân tích: Người học có khả năng chia các nội dung, các thông tin

thành những phần nhỏ để có thể chỉ ra các yếu tố, các mối liên hệ, các nguyên tắc cấu trúc của chúng Phân tích là khả năng xé nhỏ vấn đề thành các khái niệm thành phần

có quan hệ với nhau để tìm hiểu bản chất của vấn đề Với khả năng phân tích, người học đi đến bản chất của sự vật hay khái niệm, là tiền đề quan trọng để lấy chất liệu tổng hợp hoặc phê phán, từ đó đi tới sáng tạo cái mới Ở mức độ này, thường yêu cầu người học có các kỹ năng như tận dụng, áp dụng, tính toán, chứng minh, giải thích, xây dựng, lập kế hoạch

Ví dụ: trong quá trình viết và chạy chương trình, học sinh có thể thấy chương trình chạy khá chậm so với những chương trình đã viết trước đó Với hiểu biết về

“không gian lưu trữ” với “dung lượng giới hạn”, và toàn bộ quá trình xử lí của máy tính, học sinh có thể hiểu được máy chậm có thể do bộ nhớ bị chiếm dụng nhiều Từ

Trang 29

đó đi đến các xử lí cần thiết để giảm số lượng biến và giới hạn kiểu dữ liệu một cách tối ưu

Mức độ Đánh giá: Người học có khả đưa ra nhận định, phán quyết của bản

thân đối với một vấn đề dựa trên các các tiêu chí đã có Ví dụ: Phản biện một nghiên cứu, một bài báo; đánh giá khả năng thành công của một giải pháp; chỉ ra các điểm yếu của một lập luận Những câu hỏi liên quan đến mức độ Đánh giá là Cho ý kiến, Bình luận, Tổng hợp về các vật liệu, kĩ thuật, khái niệm hay phương pháp Để có được sự đánh giá, thông thường người học phải có khả năng phân tích vấn đề rõ ràng, tổng hợp

và so sánh từ nhiều nguồn, từ đó đưa ra các nhận định cuối cùng Kết quả của đánh giá thường làm xuất hiện các tri thức mới, phủ định các tri thức đã biết, hoặc khẳng định với các căn cứ xác đáng phương pháp hay vật liệu được nghiên cứu

Ví dụ: Lập trình viên có thể đưa ra các đánh giá các phương án lưu trữ dữ liệu trên RAM trên một máy tính như hiện tại, hay lưu trữ dữ liệu trên nhiều máy tính, hoặc kết hợp với việc lưu trữ dữ liệu xử lí trên đĩa cứng để so sánh xem các phương pháp nào hiệu quả hơn về mặt xử lí, và đề xuất các giải pháp hoàn toàn mới tốt hơn

Mức độ Sáng tạo: Người học có khả năng tạo ra cái mới, xác lập thông tin, sự

vật mới trên cơ sở những thông tin, sự vật đã có Ví dụ: Thiết kế một thuật toán mới, xây dựng một giải pháp mới; xây dựng hệ thống các tiêu chí để đánh giá một hoạt động; đề xuất hệ thống các giải pháp nhằm khắc phục những hạn chế; xây dựng cơ sở

lý luận cho một quan điểm; lập kế hoạch tổ chức một sự kiện mới, những yêu cầu về mức độ Sáng tạo thường là Thiết lập, Tổng hợp, Xây dựng, Thiết kế, Đề xuất…

Đối chiếu 6 cấp độ nhận thức đã phân tích với các mục tiêu về Kiến thức, Kỹ năng và Thái độ của người học, chúng ta có thể thấy các mục tiêu giáo dục ở bậc học phổ thông thường dừng ở hai mức Biết-Hiểu; ở bậc học thiên về thực hành (trung cấp, cao đẳng nghề) thì mục tiêu chủ yếu là Biết-Hiểu-Dùng, bậc học đại học thường có thêm các mục tiêu ở mức Phân tích và có thể có Tổng hợp và Đánh giá ở một số môn học Các khóa học sau đại học chủ yếu đặt mục tiêu thuộc hai mức cuối cùng trong thang phân loại Bloom Một trong những mục tiêu phổ quát của giáo dục là khả năng giải quyết vấn đề (problem-solving), vấn đề càng phức tạp thì tri thức và kĩ năng yêu cầu để giải quyết càng cao cấp hơn Khi đó, người học cần có khả năng phân tích sắc bén, tổng hợp tri thức một cách hệ thống, cũng như có khả năng phản biện và đánh giá

để có thể đưa ra giải pháp tốt nhất

Đối với người học, việc tiếp cận các mức trí năng sẽ ảnh hưởng trực tiếp tới phong cách học tập Do vậy giáo viên cần định hướng phong cách học tập tập cho người học để họ đạt được thành quả cao hơn trong học tập

Hình dưới đây mô tả hai phong cách học tập khác nhau khi người học tiếp nhận các loại tri thức khác nhau theo phân loại của Bloom Theo đó, nếu chỉ quan tâm tới

Trang 30

các tri thức thuộc loại Biết và Hiểu, người học đang tiếp cận hời hợt (surface learning), khó thành công trong phát triển năng lực bản thân; để thành công trong học tập, người học cần tiếp cận các mức độ tri thức cao hơn (phong cách deep-learning)

Hình 2.10 Thang phân loại tri thức của Bloom và phong cách học tập

Dreyfus cho rằng, kĩ năng (ví dụ như kĩ năng lập trình) sẽ trải qua năm mức độ trưởng thành: Nhập môn (Novice), Kiến thức căn bản (Advanced Beginner), Có năng lực (Competent), Thành thạo (Proficient), Chuyên gia (Expert) Theo đó, mức thấp nhất thường thấy ở người bắt đầu từ con số không, trước khi học; mức cuối cùng có thể thấy ở những chuyên gia – những người đạt đến trình độ thuần thục về kĩ năng tới mức trực giác Mô hình này chỉ ra rằng, để đạt được mức độ “Chuyên gia”, chúng ta cần phải tích cực luyện tập, tích lũy kinh nghiệm và không ngừng tiếp nhận và cải biến các tri thức mới [18]

Hình 2.11 Thang phân loại năng lực của Dreyfus

Phong cách học hời hợt

Phong cách học sâu

Trang 31

Trong đó:

• Nhập môn (Novice):Khi mới bắt đầu học lập trình người học chưa hề biết gì về

máy tính, người học đang ở “đẳng cấp” “Làm quen” Ở mức này, thầy giáo thường phải chỉ cho người học biết thủ tục chi tiết của tất cả mọi việc từ bật máy tính lên như thế nào, tắt đi làm sao, những thứ đơn giản nhất cũng phải quy trình hóa Đặc trưng cơ bản của mức độ này là việc người học có nhu cầu tuân thủ 100% quy tắc và kế hoạch, không có bài tập yêu cầu “động não”

• Kiến thức căn bản (Advanced Beginner): Người học đã có thể ghi nhớ kiến

thức và sử dụng tương đối linh hoạt Người học được tiếp cận một số tình huống yêu cầu phải tư duy nhưng thông thường các yếu khái niệm chưa được liên kết lại, nên vẫn chưa có khả năng làm việc độc lập mà cần có sự kèm cặp của người có kinh nghiệm hơn, thường xuyên có yêu cầu trợ giúp

• Có năng lực (Competent): Người học đã có thể thích ứng và giải quyết các vấn

đề phức tạp dựa trên những kinh nghiệm sẵn có Tuy nhiên, người học chưa có khả năng tự sửa lỗi cho mình, và chưa có khả năng tự đánh giá mình Với lập trình viên có năng lực đó là đội ngũ có thể tham gia vào quy trình sản xuất, tự mình hoàn tất công việc được giao, là người giải quyết vấn đề, ít khi là người phát hiện vấn đề Ở mức độ này, kĩ năng bắt đầu trở nên thực sự hữu dụng

• Thành thạo (Proficient): Có khả năng liên kết các vấn đề riêng lẻ, học hỏi kinh

nghiệm từ chính mình và từ người khác, người học ở mức độ thành thạo có thể tự sửa sai, nâng cao chất lượng các hoạt động của mình

• Tinh thông (Expert): Đây là mức độ cao nhất của thang năng lực, người học đã

có sẵn trong người các kinh nghiệm, các kĩ xảo, nên có khả năng phản ứng rất nhanh trước các vấn đề gặp phải Sự tinh thông giống như trực giác là kết quả của quá trình tích lũy các mô hình, lý thuyết và các kinh nghiệm lâu dài

Khác với “Phân loại Bloom” là một phương pháp khoa học, mô hình Dreyfus không quan tâm tới yếu tố “khoa học” mà tập trung vào “thực nghiệm” – tức là những quan sát thực tiễn để rút ra các điều bổ ích Có thể Mô hình Dreyfus không mang lại nhiều giá trị học thuật, nhưng lại mang nhiều ý nghĩa thực tiễn và dễ áp dụng

2.3 Kết luận chương 2

Trong chương này, tôi tập trung nghiên cứu và phân tích mô hình Code Hunt một trò chơi trực tuyến giúp người chơi học lập trình Java và C#, đồng thời tôi nghiên cứu những mô hình giáo dục đang được sử dụng trong thiết kế giảng dạy, đánh giá và

-đo lường kết quả học tập trên thế giới, từ đó đưa ra những đề xuất về thiết kế nội dung học tập Pascal Nội dung tiếp theo tôi đi vào phân tích, thiết kế và xây dựng phần mềm

hỗ trợ dạy và học Pascal

Trang 32

Chương 3 XÂY DỰNG HỆ THỐNG GIẢI QUYẾT BÀI TOÁN

3.1 Mô tả và xây dựng bài toán

3.1.1 Mô tả bài toán

Phần mềm hỗ trợ dạy và học ngôn ngữ lập trình Pascal cho học sinh THPT là một trang web thay cho trình soạn thảo của Pascal như Turbo Pascal, Free Pascal, có hai nhiệm vụ chính là thiết kế giảng dạy và đánh giá người học:

 Thiết kế giảng dạy: Bao gồm những chỉ dẫn và hệ thống bài tập được thiết kế giống như sự thách đố người học và cơ chế trao phần thưởng khi vượt qua sự thách đố đó là những thách đố ở mức cao hơn, điểm số, huân chương, sự công nhận

 Thiết kế kiểm thử và Đánh giá người học: Công việc đánh giá được thực hiện theo mỗi bài hoặc mỗi cấp độ (từ đơn giản đến phức tạp) Việc kiểm tra và phát hiện lỗi mã Pascal của người học tiến hành bằng hai phương pháp kiểm thử:

 Kiểm thử hàm/chức năng (Kiểm thử hộp đen)

 Phân tích cấu trúc (Khảo sát thiết kế và mã nguồn hay là kiểm thử hộp trắng tĩnh)

3.1.2 Sơ đồ chức năng của phần mềm

Chức năng của phần mềm gồm 6 chức năng chính như hình:

Hình 3.1 Sơ đồ chức năng của hệ thống

Trang 33

Phần mềm hỗ trợ dạy và học Pascal là một trang web bao gồm sáu chức năng

cơ bản như sau:

 Quản lý học liệu: Phần mềm có khả năng thêm mới, cập nhật, xóa những tài liệu, video, chỉ dẫn về Pascal

 Quản lý bài tập:

 Thêm yêu cầu: Thêm những yêu cầu về bài tập hoặc những chỉ dẫn mới

 Thêm mã biên dịch: Người quản trị/người dạy học có thể thêm mã Pascal vào trình biên dịch tích hợp trực tuyến trên trang web giúp định hướng cách viết chương trình cho học sinh

 Tạo mức điểm thưởng: Với mỗi bài tập có thể tạo mức điểm thưởng khác nhau

 Quản lý tiến trình học:

 Quản lý mã Pascal: Quản lý mã Pascal người học nhập

 Biên dịch: Mã Pascal người học viết sẽ được hệ thống biên dịch, nếu thành công hệ thống sẽ đưa output ra giao diện trang web, nếu chương trình còn lỗi hệ thống sẽ thông báo người học cần phải sửa lại chương trình

 Kiểm thử mã: Mã Pascal được phân tích để xác định có đúng với yêu cầu của hệ thống hay không?

 Đánh giá: Dựa vào kết quả phân tích mã Pascal hệ thống sẽ đánh giá kỹ năng của người học

 Quản lý cấp độ kỹ năng:

 Thêm mới: Thêm mới các cấp độ đánh giá từ ngây thơ đến chuyên gia và cao hơn nữa

 Sửa: Sửa tên các cấp độ cho phù hợp

 xóa: Xóa các cấp độ không phù hợp

 Bảng xếp hạng người học:

 Xem xếp hạng về điểm: người học đạt mức điểm và kỹ năng cao nhất

 Xem xếp hạng về kỹ năng

Trang 34

3.1.3 Thiết kế Cơ sở dữ liệu

Cơ sở dữ liệu của bài toán sử dụng 5 bảng để lưu trữ thông tin của người học, bài tập Pascal, Cấp độ kỹ năng của người học, tài liệu bài giảng về Pascal

Thông tin của người học gồm trường Tên tài khoản, mật khẩu, tên đầy đủ,

điểm, trạng thái kích hoạt

Hình 3.2 CSDL lưu thông tin người học

Bài tập Pascal: gồm mã bài tập, tên bài tập, câu hỏi, câu trả lời, mã nguồn gợi

ý, cấp độ bài tập, với nhiều dạng bài thử nghiệm, người quản trị có thể dễ dàng thay đổi hoặc thêm bớt bài tập phù hợp với tiến trình của người học

Hình 3.3 Cơ sở dữ liệu lưu bài tập của phần mềm

Cấp độ kỹ năng: gồm các trường mã kỹ năng, tên kỹ năng, mức điểm xác định

kỹ năng, mô tả thông tin

Hình 3.4 Cơ sở dữ liệu lưu cấp độ kỹ năng của người học

 Tài liệu Pascal: gồm trường mã tài liệu, tên tài liệu, mã nhúng tài liệu

Trang 35

Hình 3.5 Cơ sở dữ liệu lưu tài liệu học Pascal

 Bài giảng Pascal: Gồm trường mã bài giảng, tên bài giảng, mã nhúng của bài giảng

Hình 3.6 Cơ sở dữ liệu lưu bài giảng về Pascal

3.1.4 Thiết kế Kiểm thử mã Pascal

Việc kiểm tra và phát hiện lỗi mã Pascal của người học được tôi tiến hành bằng hai phương pháp kiểm thử:

 Kiểm thử hàm/chức năng (Kiểm thử hộp đen)

 Phân tích cấu trúc (Khảo sát thiết kế và mã nguồn hay là kiểm thử hộp trắng tĩnh)

a, Kiểm thử hàm chức năng

Kiểm thử hàm dựa trên quan niệm rằng bất kỳ chương trình nào cũng được coi là một hàm ánh xạ các giá trị từ miền dữ liệu đầu vào vào miền dữ liệu đầu ra của nó Khái niệm này được dùng chung trong kỹ thuật khi các hệ thống đều được coi là các hộp đen Chính điều này dẫn đến thuật ngữ kiểm thử hộp đen, trong đó nội dung của hộp đen (việc cài đặt) không được biết/không cần quan tâm, và chức năng của hộp đen được hiểu theo các dữ liệu đầu vào và dữ liệu đầu ra của nó như hình 2.1 Trong thực

tế, chúng ta thường thao tác hiệu quả với những kiến thức về hộp đen Chính điều này

là trung tâm của khái niệm định hướng đối tượng nơi mà các đối tượng được xem xét như là các hộp đen và chúng chỉ tương tác với nhau bằng các lời gọi thông qua các phương thức có thể quan sát được từ bên ngoài[3, tr.10]

Trang 36

Hình 3.7 Một hộp đen kỹ thuật

Kiểm thử hàm (functional testing) là các hoạt động kiểm tra chương trình dựa trên tài liệu mô tả chức năng, yêu cầu phần mềm, hay còn gọi là đặc tả chức năng (functional specification) Đặc tả chức năng là tài liệu mô tả yêu cầu, hành vi của chương trình mong muốn Tài liệu này là cơ sở để chúng ta tiến hành xây dựng các ca kiểm thử, thuật ngữ chuyên môn gọi là thiết kế kiểm thử (test design) và người thực hiện việc này là người thiết kế kiểm thử Thiết kế kiểm thử là hoạt động chính trong kiểm thử hàm Cần nhấn mạnh rằng kiểm thử hàm là việc thiết kế các ca kiểm thử hàm của chương trình chỉ dựa trên đặc tả của chương trình mà không dựa trên việc phân tích mã nguồn của chương trình Kiểm thử hàm còn được gọi với tên khác chính xác hơn là kiểm thử dựa trên đặc tả, hay kiểm thử hộp đen, hay kiểm thử chức năng [1, tr.97]

Phương pháp kiểm thử hộp đen được tôi áp dụng trong việc kiểm tra mã pascal của học sinh ở dạng bài tập thử nghiệm 1, 3, 4, 5

Dạng bài tập thử nghiệm 1: Đưa ra màn hình dòng thông báo bất kỳ

Tôi cần chắc chắn người học biết cách đưa một chuỗi ra màn hình bằng câu lệnh write/writeln, vì thế thay vì thanh tra mã nguồn người học viết tôi chỉ cần tiến hành lấy dữ liệu output đầu ra của chương trình và so sánh với chuỗi đáp án của bài toán lưu trong cơ sở dữ liệu tôi tạo ra, người học có thể viết mã pascal tùy ý miễn sao đảm bảo được việc đưa ra output đúng với chuỗi mà bài tập thử nghiệm yêu cầu

Với dạng bài tập thử nghiệm số 3, 4, 5: Hoàn thiện câu lệnh để nhận được đầu ra như kỳ vọng

Tôi sẽ thực hiện một loạt các quy trình như sau

Bước 1: Ngay khi chương trình của người học được hệ thống biên dịch trả về kết

quả là đúng, tôi tiến hành lấy mã chương trình của người học lưu thành tập tin có tên [username]_exer_[chỉ số bài tập].Pas

Ngày đăng: 27/04/2016, 07:36

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiế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 Sách, tạp chí
Tiêu đề: Ngôn ngữ lập trình Pascal
Tác giả: Quách Tuấn Ngọc
Nhà XB: Nhà xuất bản Thống kê
Năm: 2001
[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 Sách, tạp chí
Tiêu đề: 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
[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 Sách, tạp chí
Tiêu đề: ―Giáo trình kiểm thử phần mềm‖
Tác giả: Phạm Ngọc Hùng, Trương Anh Hoàng, Đặng Văn Hưng
Năm: 2014
[5]. Nguyễn Tiến Dũng, Lê Ngọc Liên (dịch) ―Lý thuyết trò chơi trong kinh doanh‖ Sách, tạp chí
Tiêu đề: Lý thuyết trò chơi trong kinh doanh
Tác giả: Nguyễn Tiến Dũng, Lê Ngọc Liên
[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 Sách, tạp chí
Tiêu đề: ), Giáo trình Turbo PASCAL 7.0
Tác giả: Bùi Thế Tâm
Nhà XB: Nhà xuất bản Giao thông vận tải
Năm: 2004
[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 Sách, tạp chí
Tiêu đề: Cấu trúc dữ liệu
Tác giả: Đỗ Xuân Lôi
Nhà XB: Nhà xuất bản Đại học Quốc gia Hà Nội
Năm: 2006
[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 Sách, tạp chí
Tiêu đề: Tin học 11 (dùng cho học sinh)
Tác giả: 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
Nhà XB: Nhà xuất bản Giáo dục
Năm: 2013
[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 Sách, tạp chí
Tiêu đề: Tin học 11 (dùng cho giáo viên)
Tác giả: 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
Nhà XB: Nhà xuất bản Giáo dục
Năm: 2013
[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 Sách, tạp chí
Tiêu đề: Sổ tay Thuật ngữ Quan hệ Quốc tế
Tác giả: Đào Minh Hồng, Lê Hồng Hiệp
Nhà XB: Khoa QHQT – Đại học KHXH&NV TPHCM
Năm: 2013
[12]. Nikolai Tillmann, R. Nigel Horspool , Daniel Perelman, Tao Xie (2014), Code Hunt: Searching for Secret Code for Fun, Microsoft Research, http://research.microsoft.com/pubs/210651/CodeHunt%20SBST%202014b.pdf Sách, tạp chí
Tiêu đề: Code Hunt: Searching for Secret Code for Fun, Microsoft Research
Tác giả: Nikolai Tillmann, R. Nigel Horspool , Daniel Perelman, Tao Xie
Năm: 2014
[13]. Lee, J. J. & Hammer, J. (2011). Gamification in Education: What, How, Why Bother? Academic Exchange Quarterly, 15(2) Sách, tạp chí
Tiêu đề: Gamification in Education: What, How, Why Bother
Tác giả: Lee, J. J. & Hammer, J
Năm: 2011
[14]. Jensen, E. (1998). Teaching with the brain in mind. Alexandria, Va: Association for Supervision and Curriculum Development Sách, tạp chí
Tiêu đề: Teaching with the brain in mind
Tác giả: Jensen, E
Năm: 1998
[15]. Balraj Kumar, ParulKhurana (2012), Gamification in education – learn computer programming with fun, Department of Computer, Lovely Professional University, Punjab Sách, tạp chí
Tiêu đề: Gamification in education – learn computer programming with fun
Tác giả: Balraj Kumar, Parul Khurana
Nhà XB: Department of Computer, Lovely Professional University
Năm: 2012
[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 Sách, tạp chí
Tiêu đề: A five-stage model of the mental activities involved in directed skill acquisition
Tác giả: Stuart E Dreyfus, Hubert L Dreyfus
Năm: 1980
[19]. Maria Meyerson (2012), Applications of game theory in education, Sierra Nevada College Sách, tạp chí
Tiêu đề: Applications of game theory in education
Tác giả: Maria Meyerson
Năm: 2012
[21]. Kolb D. A. (1981), Learning styles and disciplinary differences. In: A. Chickering (Ed.), The Modern American College. San Francisco: Jossey-Bass Sách, tạp chí
Tiêu đề: The Modern American College
Tác giả: Kolb D. A
Nhà XB: Jossey-Bass
Năm: 1981
[23]. Knowles (1990) The Adult Learner: a Neglected Species (4th ed.), Houston: Gulf Publishing Sách, tạp chí
Tiêu đề: The Adult Learner: a Neglected Species (4th ed.)
[24]. Knowles, (1975), Self-Directed Learning: a Guide for Learners and Teachers. Follet, Chicago Sách, tạp chí
Tiêu đề: Self-Directed Learning: a Guide for Learners and Teachers
Tác giả: Knowles
Nhà XB: Follet, Chicago
Năm: 1975
[25]. Pohl, M. (2000). Learning to Think, Thinking to Learn: Models and Strategies to Develop a Classroom Culture of Thinking.Cheltenham, Vic.: Hawker Brownlow Sách, tạp chí
Tiêu đề: Learning to Think, Thinking to Learn: Models and Strategies to Develop a Classroom Culture of Thinking
Tác giả: Pohl, M
Năm: 2000
[22]. Kolb, D. A(1984), Experiential Learning, London: Prentice Hall Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Màn hình chính của Code Hunt. - 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
Hình 2.1. Màn hình chính của Code Hunt (Trang 17)
Hình 2.2  Các lĩnh vực của Code Hunt - 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
Hình 2.2 Các lĩnh vực của Code Hunt (Trang 17)
Hình 2.3 Kiến trúc của Code Hunt. - 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
Hình 2.3 Kiến trúc của Code Hunt (Trang 18)
Hình 2.8. Nội dung bài tâp thực nghiệm theo từng giai đoạ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
Hình 2.8. Nội dung bài tâp thực nghiệm theo từng giai đoạn (Trang 26)
Hình 2.9. Thang phân loại các mức trí năng của Bloom. - 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
Hình 2.9. Thang phân loại các mức trí năng của Bloom (Trang 27)
Hình 2.10. Thang phân loại tri thức của Bloom và phong cách học tậ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
Hình 2.10. Thang phân loại tri thức của Bloom và phong cách học tập (Trang 30)
3.1.2. Sơ đồ chức năng của phần mềm - 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
3.1.2. Sơ đồ chức năng của phần mềm (Trang 32)
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. - 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
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 (Trang 37)
Hình 3.10. So khớp chuỗi chương trình đưa ra màn hình và kỳ vọng - 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
Hình 3.10. So khớp chuỗi chương trình đưa ra màn hình và kỳ vọng (Trang 39)
Hình 3.11. Hệ thống đánh giá chương trình của người học - 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
Hình 3.11. Hệ thống đánh giá chương trình của người học (Trang 42)
Hình 3.12. Thư mục lưu bài tập của học viê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
Hình 3.12. Thư mục lưu bài tập của học viên (Trang 46)
Hình 3.13. Chức năng Trang chủ của phần mềm. - 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
Hình 3.13. Chức năng Trang chủ của phần mềm (Trang 50)
Hình 3.14. Chức năng quản lý tài liệu - 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
Hình 3.14. Chức năng quản lý tài liệu (Trang 51)
Hình 4.1. Một trình biên dịch - 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
Hình 4.1. Một trình biên dịch (Trang 55)
Hình 4.10. Bài thử nghiệm toán tử số học có đầu ra đúng với kỳ vọng. - 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
Hình 4.10. Bài thử nghiệm toán tử số học có đầu ra đúng với kỳ vọng (Trang 61)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w