1. Trang chủ
  2. » Công Nghệ Thông Tin

LEAS – MÔ HÌNH CHẤM ĐIỂM TỰ ĐỘNG MÃ CODE LẬP TRÌNH C VÀ C++

23 1,5K 3

Đ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

Tiêu đề Leas – Mô Hình Chấm Điểm Tự Động Mã Code Lập Trình C Và C++
Tác giả Lưu Minh Phúc
Người hướng dẫn ThS. Nguyễn Văn Sơn
Trường học Trường Đại Học Hoa Sen
Chuyên ngành Công nghệ Thông tin
Thể loại Báo cáo nghiên cứu khoa học
Năm xuất bản 2015
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 23
Dung lượng 1,42 MB

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

Nội dung

Với tính đặc thù của các môn lập trình đối với ngành Công nghệ thông tin, việc giảng viên đưa ra bài tập dành cho học sinh là một điều vô cùng cần thiết.. Với khả năng tự động hóa các th

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HOA SEN KHOA KHOA HỌC VÀ CÔNG NGHỆ

BÁO CÁO NGHIÊN CỨU KHOA HỌC

LEAS – MÔ HÌNH CHẤM ĐIỂM TỰ ĐỘNG MÃ

CODE LẬP TRÌNH C VÀ C++

SVTH: Lưu Minh Phúc

Lớp: QL141 Khoa: Khoa học và Công nghệ Năm thứ: 1

Ngành học: Công nghệ Thông tin

Người hướng dẫn: Ths Nguyễn Văn Sơn

Thành phố Hồ Chí Minh, Tháng 6/2015

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HOA SEN

Trang 2

KHOA KHOA HỌC VÀ CÔNG NGHỆ

BÁO CÁO NGHIÊN CỨU KHOA HỌC

LEAS – MÔ HÌNH CHẤM ĐIỂM TỰ ĐỘNG MÃ

CODE LẬP TRÌNH C VÀ C++

SVTH: Lưu Minh Phúc

Người hướng dẫn: Ths Nguyễn Văn Sơn

Thành phố Hồ Chí Minh, Tháng 6/2015

Trang 3

TRÍCH YẾU

Hiện nay, ngành Công nghệ thông tin trên thế giới đang phát triển nhanh, cùng với đó là nhu cầu đào tạo các lớp Công nghệ thông tin ngày càng lớn Với tính đặc thù của các môn lập trình đối với ngành Công nghệ thông tin, việc giảng viên đưa ra bài tập dành cho học sinh là một điều vô cùng cần thiết Tuy nhiên, với việc chấm bài thủ công, để thầy/cô có thể vừa chấm bài cho tất cả sinh viên, vừa có thời gian giảng dạy và nghiên cứu là một điều rất khó khăn Đây cũng là nguyên nhân chúng tôi tiến hành tự động hóa quá trình chấm điểm trong việc giảng dạy các môn lập trình

Ứng dụng chấm điểm tự động có thể cài đặt dễ dàng trong máy tính của giảng viên Với khả năng tự động hóa các thao tác cho điểm, quá trình chấm điểm được thực hiện hoàn toàn khách quan trên các bộ test được xây dựng từ trước bởi giảng viên tùy theo yêu cầu bài tập, không bị ảnh hưởng bởi ý kiến chủ quan hay tâm lý người chấm Trong trường hợp sinh viên muốn tự kiểm tra năng lực cá nhân, việc tự động chấm điểm theo bộ test của giảng viên cũng được thực hiện tự động, nhằm đưa ra kết quả khách quan cho sinh viên

tự đánh giá năng lực học tập của chính mình

Với những khả năng mà ứng dụng chấm điểm tự động mang lại, chúng tôi hy vọng rằng việc giảng dạy các môn lập trình sẽ trở nên nhẹ nhàng hơn cho giảng viên, và phía sinh viên có thể tự mình đánh giá năng lực bản thân

một cách trung thực nhất

Trang 4

MỤC LỤC

TRÍCH YẾU 3

MỤC LỤC 4

Chương 1 MỞ ĐẦU 5

1.1 ĐẶT VẤN ĐỀ 5

1.2 MỤC TIÊU 5

1.3 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 5

1.3.1 Đối tượng nghiên cứu 5

1.3.2 Phạm vi nghiên cứu 5

Chương 2 TÌNH HÌNH NGHIÊN CỨU 6

2.1 THEMIS 6

2.2 MÔ HÌNH CHẤM ĐIỂM TỰ ĐỘNG – LEAS 7

Chương 3 TỔNG QUAN VỀ LEAS 9

3.1 Giao diện và các chức năng chính 9

3.1.1 Màn hình chính 9

3.1.2 Cấu hình đề thi 13

3.1.3 Tủy chỉnh Testcase 14

3.1.4 Cấu hình thời gian và điểm của bộ test 15

3.2 Mô hình xử lý 16

3.3 Các hạn chế hiện tại 17

Chương 4 CÁCH RA ĐỀ VÀ CHẤM ĐIỂM 18

4.1 Cách ra đề 18

4.2 Cách chấm điểm 20

Chương 5 KẾT LUẬN 21

Trang 5

Chương 1 MỞ ĐẦU

1.1 ĐẶT VẤN ĐỀ

Để nâng cao chất lượng dạy và học các môn lập trình, đặc biệt là các môn học lập trình ở năm thứ nhất như “nhập môn lập trình”, “cấu trúc dữ liệu”, “lập trình hướng đối tượng”,… thì trong quá trình học sinh viên cần phải làm rất nhiều bài tập, bài kiểm tra để đánh năng lực học tập một cách liên tục Với việc chấm điểm bằng tay thủ công như hiện nay, giảng viên mất rất nhiều thời gian nhưng cũng rất khó có thể đáp ứng được khối lượng bài tập và bài thi của sinh viên Nhằm hỗ trợ công tác chấm điểm với số lượng lớn các bài tập, bài kiểm tra hoặc bài thi,… một cách tự động, nhanh chóng

và hiệu quả, nhóm chúng tôi đã lựa chọn đề tài này để nghiên cứu và phát triển với hy vọng sẽ tạo ra một hướng mới trong công tác đánh giá các môn học lập trình

1.2 MỤC TIÊU

Nghiên cứu, phát triển hệ thống chấm điểm tự động các môn lập trình nhằm nâng cao chất lượng dạy và học của sinh viên các ngành công nghệ thông tin Dò tìm gian lận, đề cao tính trung thực khi làm bài của sinh viên

1.3 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

1.3.1 Đối tượng nghiên cứu

Nguồn bài tập, bài kiểm tra, bài thi của sinh viên và bộ test của giảng viên, cùng mô hình chấm điểm tự động

1.3.2 Phạm vi nghiên cứu

• Xây dựng mô hình chấm điểm tự động cho các môn học lập trình tại

đại học Hoa Sen

ở nhà của sinh viên

Trang 6

Chương 2 TÌNH HÌNH NGHIÊN CỨU

2.1 THEMIS

Hiện nay, TS Lê Minh Hoàng và Đỗ Đức Đông đã có chương trình chấm điểm tự động mang tên Themis

“Themis là phần mềm chấm bài tự động được phát triển theo yêu cầu

của Cục Khảo thí và Kiểm định chất lượng giáo dục, Bộ Giáo dục và Đào tạo Sản phẩm được thiết kế phục vụ kỳ thi học sinh giỏi Quốc gia hàng năm, nhưng hoàn toàn có thể sử dụng trong tất cả các kỳ thi và bài kiểm tra tin học

Tuy nhiên, khuyết điểm của việc chấm bài bằng “robot” này là khả năng chính xác không cao lắm Chỉ cần đúng đáp số so với bộ test thì được cho là đúng, còn ngược lại đáp số vẫn đúng tuy nhiên có các sai phạm nhỏ ví dụ như

dư mất một dấu cách hay thừa con số 0 thì chương trình lập tức đánh giá là không đúng Lỗi này nghe có vẻ đơn giản, tuy nhiên đối với việc sinh viên

1 Trích từ phần giới thiệu của chương trình Themis

Trang 7

mới tìm hiểu bộ môn Lập trình, cũng không nên quá khắt khe về việc mắc các sai phạm nhỏ như trên

Themis hỗ trợ việc chấm điểm cho rất nhiều loại ngôn ngữ lập trình, điều này dẫn đến việc dung lượng của Themis cũng phải tỉ lệ theo Trong khi một thực tế rõ ràng là nhiều khi người dùng không dùng hết chức năng nhưng lại chẳng có cách nào để giảm dung lượng thừa kia

Hệ thống này không hỗ trợ quản lý điểm sinh viên theo giời gian, mà chỉ dùng để kiểm tra và chấm bài theo một lần Đây là một hạn chế rất lớn đối với việc theo dõi tiến trình học tập của sinh viên tại trường

Vì Themis được thiết kế để dùng cho các cuộc thi tin học, nên việc sử dụng trong môi trường giảng dạy có nhiều mặt không thuận lợi như cách sử dụng, cấu trúc đề thi, cách chấm bài Có các cấu hình mà người dùng không thể thay đổi được, và được coi là mặc định đối với Themis, tuy nhiên chính vì

sự bất biến này mà đôi khi gây khó khăn đối với người sử dụng

2.2 MÔ HÌNH CHẤM ĐIỂM TỰ ĐỘNG – LEAS

Nhóm chúng tôi lấy tên của hệ thống này là LEAS Trong đó, L (Lotus),

E (Evaluation), A (Auto), S (System) Từ đây, chúng tôi sẽ dùng từ LEAS

này thay cho hệ thống chấm điểm tự động

Để áp dụng nghiên cứu này vào các các môn lập trình tại Đại Học Hoa Sen, chúng tôi đã tìm hiểu và thiết kế ứng dụng đúng với các mong muốn của giảng viên cũng như sinh viên Không phủ nhận rằng cách thức hoạt động của LEAS có đôi nét tương đồng với Themis, tuy nhiên đã được đơn giản hóa cho người dùng một cách triệt để nhất

Điểm khác biệt lớn nhất có lẽ là bộ dịch của LEAS so với Themis Trong khi Themis sử dụng G++ thì chúng tôi sử dụng Visual Studio cho việc dịch bài làm của sinh viên Điều này có vài lợi thế nhất định sau:

• LEAS rất nhẹ, vì không phải mang G++ kèm theo trong chương trình

• Tránh sự sai sót khi khai báo thư viện, có thể trên máy thực hành đã chạy nhưng khi biên dịch lại báo lỗi vì sự khác nhau giữa thư viện hai bên

Trang 8

Hiện nay hầu hết tất cả mọi người đều sử dụng Visual Studio cho việc dạy và học lập trình C/C++ Nên việc sử dụng Visual Studio làm bộ dịch là một lựa chọn hoàn toàn chính xác cho công việc trên

Việc sử dụng đề thi và làm bài theo cấu trúc cũng tập cho sinh viên làm quen với việc làm bài theo khuôn mẫu đề thi, để có thể thích ứng dễ dàng với

Trang 9

Chương 3 TỔNG QUAN VỀ LEAS

3.1 Giao diện và các chức năng chính

3.1.1 Màn hình chính

Đây là giao diện chính khi sử dụng LEAS

LEAS có các vùng làm việc sau:

(1): Các chức năng cơ bản của LEAS

(2): Vùng cấu hình đề thi, bộ test và bài làm của sinh viên

(3): Vùng kết quả sau khi cấu hình.

3.1.1.1 Chức năng cơ bản của LEAS

chính dù đang ở bất cứ đâu

Trang 10

(3): Hướng dẫn sử dụng, sẽ tùy vào trang hiện hành để có các hướng dẫn khác nhau

3.1.1.2 Cấu hình

dựa trên thư mục vừa chọn Người dùng có thể xem tổng quan dữ liệu dựa trên các thông báo này

đó không trỏ tới thư mục Visual Studio, thông báo “Không hợp lệ” sẽ xuất hiện Đường dẫn mặc định của Visual Studio 2013 là:

“C:\Program Files (x86)\Microsoft Visual Studio 12.0”

sinh viên và thư mục Testcase (cố định) để chứa các bộ test Xin hãy

xem phần 3.1.3 để hiểu rõ hơn về thư mục này

có tác dụng khi người dùng muốn cập nhật thêm bài làm của sinh viên hay thêm/loại bỏ câu hỏi Thông thường, dữ liệu cấu trúc đề thi

cũ sẽ được lưu trong file PAS_Data.sic (cố định) nằm trong thư mục này Nếu LEAS tìm thấy file PAS_Data.sic, thì sẽ có thông báo như sau xuất hiện:

Trang 11

Nếu người dùng muốn tiếp tục sử dụng dữ liệu cũ của đề thi, chỉ cần nhấn nút đồng ý để tải dữ liệu có

Trường hợp dữ liệu có sẵn nhưng không tồn tại đề thi thì LEAS sẽ bỏ qua đề thi đấy Và trường hợp tồn tại

đề thi nhưng không có trong dữ liệu thì vẫn thêm đề thi ấy vào như bình thường Dữ liệu chính phụ thuộc vào các thư mục chứa trong thư mục chứa dữ liệu và thư mục Testcase trong đó

sẽ tự động quét thư mục đó để cập nhật dữ liệu đề thi và sinh viên mới Lúc này, người dùng cần khóa lựa chọn của mình mới có thể bắt đầu cấu hình đề thi và bài làm của sinh viên

Người dùng đang chọn thư mục chứa dữ liệu

Người dùng đã khóa và xác nhận sẽ dùng thư mục này Lúc này mới có thể

bắt đầu cấu hình đề thi và bài làm của sinh viên

mục 3.1.2 để hiểu rõ hơn

Trang 12

3.1.1.3 Kết quả

trình này, giảng viên có thể xem Thống kê (2) để biết được sinh tổng quan bài làm sinh viên của mình trước khi chấm điểm

Giao diện bảng thống kê thông tin bài làm của sinh viên

Giảng viên có thể cân nhắc việc chấm điểm sau khi xem thống kê sơ

bộ về bài làm của sinh viên của mình

Trang 13

3.1.2 Cấu hình đề thi

Giao diện cấu hình đề thi

Nhìn chung, đề thi sẽ bao gồm 3 phần:

• File: Đây là file CPP mà sinh viên sẽ nộp về cho giảng viên để chấm bài

• Input: Đây là file đầu vào để nạp dữ liệu cho bài làm

• Output: Đây là file mà bài làm sẽ xuất ra sau khi đã xử lý thông tin từ file Input

thư mục nằm trong thư mục Testcase

dữ liệu

Trang 14

3.1.3 Tủy chỉnh Testcase

Giao diện tùy chỉnh testcase Nhìn chung, bộ test sẽ bao gồm 4 thông tin:

• File: Đây là file CPP bài làm và cũng là tên của bộ test

• SL: Số lượng test được dùng để kiểm tra bài làm

• Input: Định dạng tên các file test đầu vào Sẽ được chép vào làm dữ liệu cho bài làm của sinh viên

• Output: Định dạng tên cái file test đầu ra, được sử dụng để so sánh với kết quả từ bài làm của sinh viên

thư mục trong thư mục Testcase

xem mục 3.1.4 để hiểu rõ hơn

Trang 15

(5): Lưu lại thông tin đề thi vào file PAS_Data.sic trong thư mục chứa

dữ liệu

3.1.4 Cấu hình thời gian và điểm của bộ test

Giao diện tùy chỉnh thời gian và số điểm Nhìn chung, một bài test sẽ bao gồm 2 thông tin:

• Time: Thời gian xử lý tối đa cho phép Khi vượt quá thời gian này

mà vẫn chưa có output, bài test sẽ được tính là sai Nếu giá trị này là

0 có nghĩa là không giới hạn thời gian Giảng viên cần phải cẩn thận

vì có khả năng gặp phải các bài bị tình trạng “vòng lặp vô hạn”

• Point: Số điểm dành cho một bài test Hiện tại LEAS chỉ dựa vào số điểm này để tính điểm, nên giảng viên phải cân nhắc số điểm của từng test cho phù hợp với tổng số điểm bài làm và số lượng test

Trang 16

(3): Chỉnh sửa thông số của bài test đang được chọn ở vùng (2)

động thay đổi giá trị của tất cả các bài test thành giá trị hiện hành

PAS_Data.sic, nếu người dùng muốn lưu thì phải quay trở về trang

“Tùy chỉnh Testcase” rồi lưu lại

3.2 Mô hình xử lý

Khi người dùng chọn thư mục Visual Studio, LEAS sẽ kiểm tra hai file

“VsDevCmd.bat” và “vcvarsall.bat”, các bộ cài Visual Studio đều có hai

file trên, nên đó là một cách để xác thực Visual Studio

Khi người dùng chọn thư mục chứa dữ liệu, LEAS sẽ quét thư mục đó dựa trên cấu trúc được quy định ở Chương 4 – Cách ra đề và chấm điểm Sau khi đã tùy chỉnh xong, người dùng có thể dùng chức năng Compile

để dịch tất cả bài làm của sinh viên và xem thống kê để biết sinh viên nào chưa làm bài, làm bài lỗi, nộp thiếu bài các trạng thái đều được liệt kê đầy

đủ Việc dịch bài làm của sinh viên rất nhanh chóng Khi đã đồng ý với thống kê trên, người dùng tiến hành quá trình chấm điểm và xem lại các thông tin của sinh viên cùng với kết quả Toàn bộ quá trình này nhanh hơn gấp nhiều lần so với việc chấm bài thủ công hiện nay

Quá trình xử lý bài tập và dữ liệu đầu vào để xuất ra kết quả bài kiểm tra được thể hiện ở hình dưới Kết quả bài thi của sinh viên được xuất ra dưới dạng Excel bao gồm MSSV và số điểm tổng của sinh viên đó Các dữ liệu này cũng được sao lưu lại để tiến hành so sánh với các đợt chấm bài trước, qua đó thể hiện được sự tiến bộ của sinh viên qua quá trình rèn luyện

và học tập các môn lập trình tại trường

Trang 17

Mô hình xử lý

3.3 Các hạn chế hiện tại

• Cần cài sẵn Visual Studio để có thể sử dụng LEAS

• Sử dụng CMD để dịch bài làm, nên người dùng không thể mở các cửa

sổ CMD khác trong lúc chạy chương trình

• Không hiển thị tiếng việt toàn bộ

Trang 18

Chương 4 CÁCH RA ĐỀ VÀ CHẤM ĐIỂM

4.1 Cách ra đề

Một đề thi cần được chuẩn bị trong hai thư mục:

• Thư mục chứa các bài thi với tên thư mục là Testcase

• Thư mục chứa các bài làm (tạm gọi là thư mục Contestants)

Thư mục chứa các bài thi gồm nhiều thư mục con, mỗi thư mục con là một bài thi với cấu trúc sau:

• Tên thư mục cũng là tên file bài làm mà sinh viên nộp về Bao gồm cả tên file và phần mở rộng

• Trong thư mục đó chứa bộ test cần dùng, mỗi test gồm 2 file (Input và Output – các files này sẽ được copy vào nơi có bài làm của thí sinh để cung cấp dữ liệu khi chạy bài làm của thí sinh), cách tùy chỉnh bộ testcase sẽ được nêu ở phần sau

Thư mục chứa các bài làm gồm nhiều thư

mục con, mỗi thư mục con có tên là MSSV

của chính sinh viên làm bài, và chứa toàn bộ

bài làm của sinh viên tương ứng

Ví dụ: Đề thi gồm có hai bài, hai file cpp

mà sinh viên cần nộp về là “CapSoNhan.cpp”

và “Cong2So.cpp”

Bài “CapSoNhan.cpp” gồm có hai bài test

Còn bài “Cong2So.cpp” chỉ có một bài test

Có 3 sinh viên đã nộp bài là các sinh viên

có mã số “2144960”, “2143108”, “2144344”

Sinh viên “2144960” đã nộp đủ hai bài,

còn 2 sinh viên còn lại mỗi người chỉ nộp một

bài

Ví dụ về thư mục chứa dữ liệu

Trang 19

Ví dụ về bài làm và bộ test

Trang 20

4.2 Cách chấm điểm

Mỗi bài đúng sẽ được cộng tương đương một lượng điểm được quy

định ở “Cấu hình thời gian và điểm” – mục 3.1.4 Tổng số điểm của một bài

là tổng điểm của tất cả các test của bài đó

Trang 21

5.2 Hướng phát triển trong tương lai

− Nâng cấp hệ thống LEAS để có thể chấm được nhiều ngôn ngữ khác nhau

− Chấm điểm trực tuyến (online): Sinh viên có thể nộp bài qua mạng và nhận kết quả bài kiểm tra ngay tức thời

− Kết nối dữ liệu với các hệ thống đã có sẵn trong nhà trường để đồng bộ điểm

Trang 22

TÀI LIỆU THAM KHẢO

1 Chương trình “Themis”, Lê Minh Hoàng và Đỗ Đức Đông, phiên bản 1.1.6.367

2 Microsoft, “Process Class (System.Diagnostics)” Truy cập ngày

Ngày đăng: 05/11/2016, 14:20

TỪ KHÓA LIÊN QUAN

w