Tải bản đầy đủ (.pdf) (22 trang)

THEMIS – CHƯƠNG TRÌNH CHẤM BÀI TỰ ĐỘNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (760.25 KB, 22 trang )

Θέμις Themis – Chương trình chấm bài tự động

l Giới thiệu sản phẩm
¡ Nhu cầu
¡ Cài đặt và khởi động Themis

l Hướng dẫn sử dụng
¡ Chuẩn bị một kỳ thi
¡ Nạp danh sách bài thi
¡ Cấu hình bài thi
¡ Nạp danh sách thí sinh
¡ Cập nhật danh sách bài thi và thí sinh
¡ Đặt cấu hình bộ dịch
¡ Chấm bài
¡ Chấm bài trực tuyến
¡ Xem điểm và kết xuất báo cáo
¡ Tạo mới, Ghi, và Mở kỳ thi cũ
¡ Bảo mật

l Các câu hỏi thường gặp

Giới thiệu về sản phẩm

Nhu cầu về phần mềm

Phần mềm chấm bài tự động là công cụ hỗ trợ quan trọng của ban giám khảo các kỳ thi lập trình. Ưu điểm chính của việc
sử dụng phần mềm chấm bài tự động so với cách chấm truyền thống là:

l Tự động hóa các thao tác cho điểm, tránh sự nhầm lẫn khi lên điểm và xếp hạng
l Quá trình cho đ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, không bị ảnh


hưởng bởi ý kiến chủ quan hay tâm lý người chấm.
l Việc in ấn các bảng biểu, lấy ra các số liệu thống kê được thực hiện hoàn toàn tự động và chính xác. Những số liệu

thống kê đó có thể tích hợp vào các phần mềm khác để làm báo cáo và rút kinh nghiệm cho các kỳ thi sau.
l Sau khi kỳ thi kết thúc, dữ liệu cho kỳ thi có thể cơng bố và các thí sinh khác có thể luyện tập trên các bài thi, sau

đó dùng chương trình chấm tự động để tự đánh giá thay vì phải mời một ban giám khảo để chấm lại. Việc này sẽ
giúp ích cho phong trào học tập tin học, đặc biệt ở các địa phương vùng sâu vùng xa khơng có điều kiện tiếp cận
nhiều với các chuyên gia cũng như các kỳ thi chính thức.

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 dùng cơ chế chấm điểm tự động bằng bộ test

Yêu cầu cấu hình phần mềm và phần cứng: Microsoft Windows XP, Vista, Seven hoặc mới hơn. Microsoft Office Excel
(Từ phiên bản Office 2000 trở lên) nếu cần kết xuất báo cáo ra Excel. Mọi cấu hình phần cứng đủ cài đặt các phần mềm

Trang 1/22 In ngày 24-Feb-19

trên đều có thể chạy Themis.

Cài đặt và khởi động Themis

Cách đơn giản nhất để cài đặt Themis là sử dụng bộ cài đặt, tuy nhiên cũng có thể copy vào máy và chạy bình thường.
Themis được viết và dịch ra mã máy tự nhiên, chỉ một file Themis.exe chạy trực tiếp trên hệ điều hành mà không cần sử
dụng bất kỳ framework hay virtual machine nào cả. Hai thư mục Judgers và Documentation cần copy vào cùng với file
Themis.exe để cung cấp các bộ chấm và tài liệu hướng dẫn sử dụng.

Hai điều cần chú ý khi chạy Themis:


l Trong trường hợp Themis không được cài đặt mà được copy về chạy trên Windows XP, cần khởi động Themis ở
quyền quản trị (administrators) một lần rồi có thể thốt ngay, sau đó muốn chạy Themis ở quyền người dùng nào
cũng được. Nếu sử dụng bộ cài đặt hoặc chạy trên hệ điều hành Windows Vista, Seven hoặc mới hơn thì khơng cần
quan tâm vấn đề này.

l Themis cần chạy trong quyền người dùng hiện tại, không được khởi động Themis bằng chức năng “Run as…” để
chạy trong quyền người dùng khác

Giao diện chính của phần mềm gồm có hệ thống menu, thanh cơng cụ và vùng làm việc. Vùng làm việc có 2 tab: “Bảng
điểm” và “Hướng dẫn”. Tab “Bảng điểm” hiển thị danh sách bài thi, danh sách thí sinh và kết quả chấm dưới dạng bảng.
Tab “Hướng dẫn” là tài liệu hướng dẫn sử dụng, có thể đọc trực tiếp như văn bản này hoặc tra cứu nhanh từ các nút
“Hướng dẫn” đối với các chức năng cụ thể.

Hướng dẫn sử dụng

Chuẩn bị một kỳ thi

Một kỳ thi cần được chuẩn bị trong hai thư mục: Thư mục chứa các bài thi (tạm gọi là thư mục Tasks) và thư mục chứa

Trang 2/22 In ngày 24-Feb-19

các bài làm (tạm gọi là thư mục Contestants).

l Thư mục chứa các bài thi gồm nhiều thư mục con, mỗi thư mục con chứa thông tin về một bài thi với tên thư mục
là tên bài thi. Có bao nhiêu bài thi thì có bấy nhiêu thư mục con.
Mỗi bài thi có thể có nhiều test, mỗi test lại phải đặt trong một thư mục con của thư mục bài thi tương ứng. Bài thi
có bao nhiêu test thì thư mục bài thi đó chứa bấy nhiêu thư mục con.
Trong thư mục của mỗi test, cần chuẩn bị các file dữ liệu của test (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). Ngồi ra cần cung cấp các files kết quả hoặc các
files phụ trợ khác dành cho bộ chấm nếu cần thiết.


l 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à tên một thí sinh và chứa tồn bộ bài
làm của thí sinh tương ứng. Bài làm của thí sinh ứng với mỗi bài thi cần đặt trong file có tên là «Tên bài thi».*, ở
đây * là phần mở rộng do ngôn ngữ và công cụ lập trình quy định. Nếu bài làm của thí sinh khi dịch cần thêm các
files/thư mục phụ trợ ngoài file nguồn do kỳ thi yêu cầu thì file nguồn và các files/thư mục phụ trợ cần nén vào một
file duy nhất: «Tên bài thi».zip.

Ví dụ về thư mục chứa bài thi Ví dụ về thư mục chứa bài làm

l Tasks l Contestants
¡ GCD ¡ BadGuy
n TEST01 n GCD.PAS
n GCD.INP n LARES.PAS
n GCD.OUT n TABLE.PAS
n TEST02 ¡ Jury
n GCD.INP n GCD.JAVA
n GCD.OUT n LARES.CPP
n… n TABLE.PAS
n TEST10
n GCD.INP
n GCD.OUT
¡ LARES
n TEST01
n LARES.INP
n LARES.OUT
n TEST02
n LARES.INP
n LARES.OUT
n…
n TEST09

n LARES.INP
n LARES.OUT
¡ TABLE
n TEST01
n TABLE.INP
n TABLE.ANS
n TEST02
n TABLE.INP
n TABLE.ANS
n…

Trang 3/22 In ngày 24-Feb-19

n TEST20
n TABLE.INP
n TABLE.ANS

Như ví dụ trên có 3 bài thi với tên là GCD, LARES và TABLE. Bài GCD được chấm bằng 10 test, bài LARES được
chấm bằng 9 test và bài TABLE được chấm bằng 20 test. Có 2 thí sinh với tên là BadGuy và Jury. Thí sinh BadGuy nộp
cả 3 bài làm bằng 3 files: GCD.PAS, LARES.PAS và TABLE.PAS. Thí sinh Jury cũng nộp cả 3 bài làm bằng 3 files:
GCD.JAVA, LARES.CPP và TABLE.PAS.

Nạp danh sách bài thi

Như đã chuẩn bị, danh sách bài thi được nạp vào bằng thư mục chứa các bài thi (Tasks). Ví dụ nếu có cấu trúc thư mục:

l Tasks Khi đó nếu người dùng bấm nút (hoặc phím tắt F2) và chọn thư mục
¡ GCD
n TEST01 Tasks, 3 bài với tên là GCD, LARES và TABLE sẽ được nạp vào danh sách:
n TEST02

n… Thao tác nhanh: Một cách khác để nạp danh sách bài thi là kéo thư mục chứa
n TEST10 danh sách bài thi (thư mục Tasks) từ Explorer thả vào một cột bất kỳ trong tab
¡ LARES “Bảng điểm” của vùng làm việc ngoại trừ cột “Thí sinh”
n TEST01
n TEST02
n…
n TEST09
¡ TABLE
n TEST01
n TEST02
n…
n TEST20

Trang 4/22 Chỉ những bài được chọn (có dấu kiểm “✓” bên cạnh tên bài) mới được chấm.
Để chọn/bỏ chọn một bài, bấm chuột phải vào tiêu đề cột hoặc vào cấu hình mỗi
bài thi và đánh dấu/bỏ đánh dấu ơ “Có chấm bài này”)

In ngày 24-Feb-19

Chú ý: Khi nạp danh sách bài thi mới, toàn bộ bảng điểm sẽ bị xóa. Nếu muốn thêm/bớt bài thi bằng cách bổ sung thêm
thư mục con, dùng chức năng cập nhật danh sách bài thi.

Đặt cấu hình bài thi

Việc cấu hình một bài thi được thực hiện bằng cách dùng các menu con trong menu “Bài thi”. Một cách nhanh hơn là
bấm chuột phải vào tiêu đề cột tương ứng với bài thi và chọn menu con “Cấu hình bài thi”.

Cửa sổ cấu hình bài thi hiện ra như sau:

l Các tests: Mỗi thư mục con trong thư mục một bài thi chứa thông tin về một test. Như ví dụ trên, bài LARES có 9

test với tên từ Test01 đến Test09.

l Tên các file dữ liệu: Trước khi chạy chương trình của thí sinh, các file này sẽ được copy vào thư mục hoạt động để
cung cấp dữ liệu cho chương trình. Mỗi test có một bộ file dữ liệu riêng, được đặt trong thư mục của test. Nếu có
nhiều file dữ liệu, các tên file phải ghi cách nhau bởi ký tự "|" (mã số 124). Trường hợp bài chạy không cần file dữ
liệu (chẳng hạn như các dạng bài nộp output only), ơ này có thể để trống.

l Dùng luồng vào chuẩn:Nếu đánh dấu ô này, file dữ liệu đầu tiên trong danh sách sẽ được định hướng làm luồng
vào chuẩn (standard input) khi chạy chương trình của thí sinh. Nếu khơng đánh dấu, luồng vào chuẩn cho chương
trình của thí sinh mặc định là bàn phím và thường khơng được sử dụng khi chấm tự động.

Trang 5/22 In ngày 24-Feb-19

l Tên các file kết quả: Sau khi chạy chương trình của thí sinh, các file này sẽ được bộ chấm sử dụng để phân tích và
chấm điểm. Mỗi test có một bộ file kết quả riêng, được đặt trong thư mục của test giống như các file dữ liệu. Nếu
có nhiều file kết quả, các tên file phải ghi cách nhau bởi ký tự "|" (mã số 124). Nếu bộ chấm không cần cung cấp
tên file kết quả (chẳng hạn như các dạng chấm ngồi với tên file kết quả biết trước), ơ này có thể để trống.

l Dùng luồng ra chuẩn: Nếu đánh dấu ô này, file kết quả đầu tiên trong danh sách sẽ được định hướng làm luồng ra
chuẩn (standard output) khi chạy chương trình của thí sinh. Nếu khơng đánh dấu, luồng ra chuẩn cho chương trình
của thí sinh mặc định là màn hình và thường không được sử dụng khi chấm tự động.

l Chương trình chấm: Có 7 bộ chấm đi kèm với phần mềm. Ngồi ra người sử dụng có thể bổ sung thêm những bộ
chấm khác (Tham khảo trong mục Các câu hỏi thường gặp)
¡ C1LinesWordsIgnoreCase, C2LinesWordsCase, C3WordsIgnoreCase, C4WordsCase: Được áp dụng khi các
file kết quả là file văn bản ASCII. Bộ chấm đối sánh từng file kết quả trong thư mục của mỗi test với file
trùng tên do chương trình của thí sinh tạo ra khi chạy với test đó. Trong các bộ chấm này, hai ký tự mang mã
số 9(dấu tab) và 32(dấu cách) được coi là dấu phân tách từ trên dòng.
¡ C1LinesWordsIgnoreCase: Hai file được coi là khớp nhau (đúng) nếu chúng khớp nhau về danh sách các từ
kể cả về thứ tự của từ trên dòng và thứ tự của dòng chứa từ trong file. Việc so khớp từ không phân biệt chữ

hoa và chữ thường. Việc thừa một số dòng trống cuối file hoặc thừa một số dấu phân tách từ đầu file không
ảnh hưởng tới kết quả, tuy nhiên việc thừa một dòng trống đầu file sẽ làm ảnh hưởng tới kết quả do cơ chế
đối sánh của bộ chấm.
¡ C2LinesWordsCase: Việc đối sánh giống như bộ chấm C1LinesWordsIgnoreCase, nhưng việc so khớp từ có
phân biệt chữ hoa và chữ thường.
¡ C3WordsIgnoreCase: Hai file được coi là khớp nhau (đúng) nếu chúng khớp nhau về danh sách các từ và thứ
tự các từ trong file. Việc so khớp từ không phân biệt chữ hoa và chữ thường. Các từ có thể ghi trên cùng
dòng cách nhau bởi dấu phân tách từ hoặc ghi trên nhiều dòng khác nhau mà không ảnh hưởng tới kết quả.
¡ C4WordsCase: Việc đối sánh giống như bộ chấm C3WordsIgnoreCase, nhưng việc so khớp từ có phân biệt
chữ hoa và chữ thường.
¡ C5Binary: Được áp dụng với mọi loại file kết quả. Bộ chấm đối sánh từng file kết quả trong thư mục của mỗi
test với file trùng tên do chương trình của thí sinh tạo ra khi chạy với test đó. Việc đối sánh được thực hiện
trên từng byte của file
¡ C6AMM2External: Nạp trình chấm ngồi tương thích với AMM2. Trình chấm ngồi được đặt trong thư mục
bài thi tương ứng, có tên là *.exe trong đó * là tên bài thi. Trình chấm ngồi có nhiệm vụ:
Chạy trong thư mục hoạt động, trong đó có các file kết quả của thí sinh đã chạy với một test.
Nhận vào một file văn bản ASCII “COMPAR$R.INP” gồm một dòng duy nhất chứa tên thư mục của test
tương ứng. Tên thư mục đã được mã hóa utf-8, tức là nếu tên thư mục chứa những ký tự có mã số ≥ 128 (ví
dụ tiếng Việt có dấu unicode) thì trình chấm ngồi cần giải mã utf-8 để có được tên thư mục thật sự.
Xuất ra file văn bản ASCII “COMPAR$R.OUT” với khuôn dạng: Dịng 1 có dạng DUNG, SAI,
SAIDINHDANG hoặc DUNGMOTPHAN p với p là một số nguyên trong phạm vi từ 0 tới 100 đánh giá độ
tốt của kết quả. Các dòng tiếp theo là những lời nhận xét về kết quả.
Chú ý: Bộ chấm C6AMM2External chỉ dùng để giữ tính tương thích với những trình chấm ngồi cũ. Nếu
viết những trình chấm ngồi mới, đề nghị sử dụng bộ chấm C7External.
¡ C7External: Nạp trình chấm ngồi. Trình chấm ngồi được đặt trong thư mục bài thi tương ứng, có tên là
Check*.exe trong đó * là tên bài thi.
Khi chương trình của thí sinh chạy xong một test, trình chấm ngồi được kích hoạt và chạy trong thư mục
hoạt động, trong đó có các file kết quả của thí sinh đã chạy với một test.
Trình chấm ngồi được cung cấp luồng vào chuẩn (standard input) gồm 2 dòng: Dòng 1 là tên thư mục chứa


Trang 6/22 In ngày 24-Feb-19

dữ liệu của test. Dòng 2 là tên thư mục đang hoạt động. Tên thư mục đã được mã hóa utf-8, tức là nếu tên thư
mục chứa những ký tự có mã số ≥ 128 (chẳng hạn các ký tự tiếng Việt có dấu unicode) thì trình chấm ngồi
cần giải mã utf-8 để có được tên thư mục thật sự.
Trình chấm ngoài cần đưa ra luồng ra chuẩn (standard output) các nhận xét về kết quả chấm, dòng cuối cùng
của luồng ra chuẩn gồm duy nhất một số thực trong phạm vi từ 0.00 tới 1.00 là đánh giá về điểm. Giá trị này
sẽ được nhân với điểm của test.
Để đưa ra các nhận xét bằng tiếng Việt có dấu unicode, cách làm tương tự như xuất ra một file văn bản utf-8:
Trình chấm ngồi trước tiên phải xuất ra 3 ký tự ASCII mã số 239, 187 và 191 (utf-8 BOM), sau đó là các
thơng báo unicode đã được mã hóa utf-8. Chẳng hạn: Nếu trình chấm ngồi đưa ra thiết bị xuất chuẩn:
Kết quả gần đúng
0.68
Có nghĩa là:
Kết quả gần đúng
0.68
Dĩ nhiên nếu chỉ xuất các ký tự ASCII thì khơng cần quan tâm tới vấn đề này
l Cấu hình bộ test: Thiết lập cho từng test bao gồm: điểm, giới hạn thời gian, giới hạn bộ nhớ của bài làm khi chạy
test đó lúc chấm. Nếu khơng có thiết lập riêng cho test, những thông tin này sẽ lấy từ thiết lập chung.

Chú ý:

l Khi đặt lại cấu hình một bài thi, hệ thống sẽ khuyến cáo người sử dụng xóa điểm của bài thi đó khỏi bảng điểm.
Nếu không có lý do đặc biệt, người sử dụng nên cho phép xóa và chấm lại cho phù hợp với các thiết lập mới của
bài thi

l Nếu bài thi đặt trong thư mục mà hệ thống có quyền ghi. Hệ thống sẽ ghi lên thư mục của mỗi bài thi một file nhỏ
có tên là settings.cfg lưu cấu hình bài thi vừa thiết lập. Nếu kỳ thi khác muốn sử dụng bài thi này với những thiết
lập vừa đặt sẽ khơng cần cấu hình lại.


Nạp danh sách thí sinh

Danh sách thí sinh được nạp vào bằng thư mục chứa các bài làm (Contestants). Như đã chuẩn bị, mỗi thư mục con trong
thư mục này chứa bài làm của một thí sinh trong danh sách. Ví dụ nếu có cấu trúc thư mục:

l Contestants Khi đó nếu người dùng bấm nút (hoặc phím tắt F3) và chọn thư mục
¡ BadGuy
¡ Jury Contestants, 2 thí sinh với mã tên là BadGuy và Jury sẽ được nạp vào danh sách:

Thao tác nhanh: Một cách khác để nạp danh sách thí sinh là kéo thư mục chứa danh
sách thí sinh (thư mục Contestants) từ Explorer thả vào cột “Thí sinh” trong tab “Bảng
điểm”.

Trang 7/22 In ngày 24-Feb-19

Chỉ những thí sinh được chọn (có dấu kiểm “✓” bên cạnh tên thí sinh) mới được chấm
bài.

Chú ý: Khi nạp danh sách thí sinh mới, tồn bộ bảng điểm sẽ bị xóa. Nếu muốn thêm/bớt thí sinh bằng cách bổ sung hay
xóa thư mục con, dùng chức năng cập nhật danh sách thí sinh.

Cập nhật danh sách bài thi và thí sinh

Nút (hay phím tắt F4) dùng để cập nhật lại danh sách bài thi. Mỗi khi thư mục chứa các bài thi có sự thay đổi thư

mục con, nút này sẽ tự động đổi màu để nhắc nhở người dùng cập nhật lại danh sách bài thi.

l Nếu một thư mục của bài thi bị xóa hoặc chuyển khỏi thư mục chứa danh sách bài thi, cột điểm của bài thi đó sẽ bị
loại khỏi vùng làm việc, các cột khác giữ nguyên.


l Nếu một thư mục của bài thi được thêm vào thư mục chứa danh sách bài thi, một cột điểm trống mới ứng với bài
thi mới sẽ được thêm vào, các cột khác giữ nguyên.

l Nếu một thư mục ứng với một bài thi có sự thay đổi về nội dung (chẳng hạn thêm/bớt/thay đổi test), hệ thống vẫn
cập nhật nội dung mới nhưng vẫn giữ nguyên cột điểm cũ do việc đánh giá mức độ thay đổi khá tốn thời gian với
những bài có bộ test lớn. Người dùng sẽ phải cấu hình lại bài thi theo nội dung mới và chấm lại.

Nút (hay phím tắt F5) dùng để cập nhật lại danh sách thí sinh. Mỗi khi thư mục chứa các bài làm của thí sinh có

sự thay đổi thư mục con, nút này sẽ tự động đổi màu để nhắc nhở người dùng cập nhật lại danh sách thí sinh.

l Nếu một thư mục của thí sinh bị xóa hoặc chuyển khỏi thư mục chứa danh sách bài làm, hàng điểm của thí sinh đó
sẽ bị loại khỏi vùng làm việc, các hàng khác giữ nguyên.

Trang 8/22 In ngày 24-Feb-19

l Nếu một thư mục của thí sinh được thêm vào thư mục chứa danh sách bài làm, một hàng điểm trống mới ứng với
thí sinh mới sẽ được thêm vào, các hàng khác giữ nguyên.

l Nếu một thư mục của thí sinh có sự thay đổi về nội dung (chẳng hạn nộp lại bài), hệ thống vẫn cập nhật nội dung
mới nhưng vẫn giữ nguyên hàng điểm cũ do việc đánh giá mức độ thay đổi khá tốn thời gian. Người dùng sẽ phải
chấm lại bài của thí sinh này. Nếu thư mục các bài làm là thư mục chia sẻ để thí sinh nộp bài trong mạng nội bộ, thí
sinh nên tạo một thư mục mới để tránh nhầm lẫn. Phiên bản kế tiếp sẽ có thể chức năng lưu trữ: Mỗi thí sinh khi
chấm bài xong sẽ được nén bài làm lại và đẩy sang cơ sở dữ liệu lưu trữ, thư mục của thí sinh sẽ được xóa ngay sau
đó.

Cấu hình bộ dịch

Bài làm của các thí sinh có thể viết bằng nhiều ngơn ngữ lập trình và nhiều cơng cụ phát triển khác nhau. Tùy theo quy
chế của kỳ thi, có thể cần đặt lại các thơng số của bộ dịch cho chính xác. Ngoài các thiết lập mặc định về bộ dịch, người

dùng có thể bổ sung, loại bỏ các chương trình dịch hoặc sửa đổi tham số dịch mặc định. Để thiết lập cấu hình bộ dịch,

bấm nút (hoặc phím tắt F6). Hộp thoại cấu hình bộ dịch hiện ra gồm một danh sách, chứa các phần mở rộng và

lệnh dịch tương ứng:

Việc dịch bài làm của thí sinh được thực hiện trước khi chấm mỗi bài. Giả sử thí sinh giải bài thi tên là PROBLEM thì
tên bài làm của thí sinh phải có dạng PROBLEM.* với * là phần mở rộng do đề bài hoặc cơng cụ lập trình quy định. Hệ
thống sẽ tìm trong danh sách kể trên phần mở rộng khớp với * và thực hiện lệnh dịch tương ứng để dịch bài của thí sinh
ra thành file khả thi PROBLEM.EXE (file bài làm bằng ngôn ngữ JAVA *.java sẽ được dịch ra thành file *.class).

Nếu thí sinh nộp nhiều bài giải cho một bài thi bằng nhiều ngôn ngữ khác nhau, trong nhiều file khác nhau, thì phần mở
rộng đầu tiên trong danh sách mà hệ thống tìm thấy file sẽ được chọn và chỉ một file tương ứng đó được dịch theo dịng
lệnh tương ứng và chấm. Như ví dụ và danh sách trên, nếu thí sinh nộp cả 4 file: PROBLEM.pas, PROBLEM.cpp,
PROBLEM.java và PROBLEM.exe thì chỉ có file PROBLEM.pas được dịch và chấm

Việc thêm/bớt/thay đổi thứ tự các phần mở rộng có thể thực hiện dễ dàng bằng các phím hướng dẫn trong hộp thoại. Để

Trang 9/22 In ngày 24-Feb-19

soạn thảo, thay đổi lệnh dịch, người dùng gõ trực tiếp vào danh sách.

Trong mỗi lệnh dịch, các thành phần sau đây sẽ được thay thế khi dịch:

l %PATH% sẽ được thay bằng đường dẫn tới bài cần dịch (có cả dấu \ ở cuối)
l %NAME% sẽ được thay bằng tên bài thi
l %EXT% sẽ được thay bằng phần mở rộng trong tên file bài làm của thí sinh

Ví dụ: Nếu thư mục hoạt động là c:\WorkSpace\ và thí sinh nộp bài làm PROBLEM1.pas cho bài thi PROBLEM1. Lệnh
dịch:


"fpc.exe" -o"%PATH%%NAME%.exe" -O2 -XS -Sg "%PATH%%NAME%%EXT%"

khi thực thi sẽ là:

"fpc.exe" -o"c:\WorkSpace\PROBLEM1.exe" -O2 -XS -Sg "c:\WorkSpace\PROBLEM1.pas"

Mỗi lệnh dịch khi thực hiện sẽ chạy trong thư mục chứa chương trình dịch trừ phi cuối dịng lệnh dịch có thêm chỉ dẫn
|@WorkDir="Tên thư mục" để chỉ ra tên thư mục hoạt động khi chạy lệnh dịch. Chỉ dẫn này có ích nếu người dùng đặt
“phịng thi” trong thư mục có tên chứa ký tự unicode nằm ngoài bảng mã ANSI, một số chương trình dịch khơng tương
thích unicode sẽ khơng đọc được tham số dòng lệnh chứa ký tự này. Với chỉ dẫn |@WorkDir="%PATH%", các thành
phần như tên ổ đĩa và thư mục có thể loại bỏ khỏi tham số dịng lệnh và trình dịch khơng cịn bị rắc rối với những ký tự
unicode nữa.

Ví dụ: Nếu thư mục hoạt động là c:\Thi thử\ và thí sinh nộp bài làm PROBLEM1.pas cho bài thi PROBLEM1. Lệnh
dịch:

"fpc.exe" -o"%NAME%.exe" -O2 -XS -Sg %NAME%%EXT%"|@WorkDir="%PATH%"

sẽ chạy trong thư mục c:\Thi thử\ theo tham số:

"fpc.exe" -o" PROBLEM1.exe" -O2 -XS -Sg "PROBLEM1.pas"

(Ký tự “ử” nằm ngoài bảng mã ASCII khơng cịn xuất hiện trong tham số dịng lệnh nữa)

Nếu một dạng file bài làm cần dịch bằng nhiều lệnh tuần tự mới có được file .exe thì người dùng cần làm một tiến trình
chung chạy tuần tự các lệnh dịch rồi đưa tiến trình chung này vào cấu hình bộ dịch. Cách đơn giản nhất là làm một
file .bat. Chẳng hạn như:
"cmd.exe" compiler.bat "%PATH%%NAME%%EXT%"


Khuyến cáo: Nên sử dụng phiên bản mới nhất cho các chương trình dịch bằng cách: Tải về và cài đặt theo đúng hướng
dẫn của nhà phân phối, sau đó sửa lại đường dẫn tới các bộ dịch trong hộp thoại "Cấu hình bộ dịch".
Một số chương trình dịch phổ biến:
FPC cho ngơn ngữ Pascal
GCC/G++ cho ngơn ngữ C/C++
JDK cho ngơn ngữ Java
Trình thơng dịch PYTHON

Trang 10/22 In ngày 24-Feb-19

Chấm bài

Nút (hay phím tắt F9) sẽ mở hộp thoại “Chấm bài”. Chú ý là chỉ những bài làm và bài thi nào đánh dấu kiểm (✓)

mới được chấm. Bộ chấm sẽ được kích hoạt ngay và các thanh tiến trình cho biết đã chấm đến test nào, của bài nào và
của thí sinh nào. Điểm sẽ được cập nhật ngay khi mỗi bài làm của thí sinh được chấm xong

Khi chấm xong mỗi bài nộp, kết quả chấm sẽ được hiện ra ngay trong vùng làm việc ở tab “Bảng điểm”:

l Nếu bài làm của một thí sinh chưa được chấm, ơ điểm của bài và thí sinh tương ứng sẽ trống
l Nếu bài làm khơng được tìm thấy trong thư mục của một thí sinh (do sai tên file hoặc thí sinh khơng nộp bài), ơ

điểm của bài và thí sinh tương ứng sẽ được đánh dấu ∄ (there does not exist)
l Nếu bài làm của thí sinh gặp lỗi khi dịch (do có lỗi cú pháp), ơ điểm của bài và thí sinh tương ứng sẽ được đánh

dấu ℱ (failure)
l Nếu bài làm của thí sinh chạy gặp lỗi nghiêm trọng, khiến hệ thống chấm buộc phải dừng q trình chấm bài đó

một cách bất thường, ô điểm của bài và thí sinh tương ứng sẽ được đánh dấu ⚠ (critical error)
l Nếu bài làm của thí sinh dịch được và chấm xong, ơ điểm của bài và thí sinh tương ứng sẽ hiện điểm kèm theo dấu


✓ (checked)

Chú ý:

l Nếu bài làm viết bằng ngôn ngữ Java (được Themis dịch ra thành file *.class) thì cần có máy ảo JAVA để thực thi
mã bytecode bên trong. Nếu máy có cài JRE, Themis sẽ sử dụng JRE được cài sẵn trên máy. Nếu máy không cài
JRE. Themis sẽ sử dụng JRE trong thư mục JDK\

l Nếu bài làm viết bằng ngôn ngữ Python (thông dịch), Themis sẽ sử dụng Python trong thư mục PYTHON\. Nếu
bạn muốn thay đổi version khác của Python, chỉ cần copy vào thư mục này.

Chấm bài trực tuyến

Trang 11/22 In ngày 24-Feb-19

Trong chế độ chấm trực tuyến, các thí sinh sẽ nộp bài (trực tuyến) vào chung một thư mục gọi là “thư mục nộp bài trực
tuyến” (Online-Submission Directory – OSD). Bất cứ khi nào có bài mới ghi vào OSD, hệ thống sẽ chấm ngay bài đó và
trả về kết quả chấm.

Để thiết lập chế độ chấm trực tuyến:

Bước 1: Thiết lập một kỳ thi (offline) như bình thường, tức là nạp thư mục chứa bài thi và cấu hình bài thi đầy đủ, nạp
thư mục chứa bài làm (có thể rỗng), kiểm tra cấu hình dịch và chế độ bảo mật… Chú ý là để chấm trực tuyến, Themis
phải có quyền ghi lên thư mục chứa bài làm.

Bước 2: Nhấn nút hoặc phím tắt F11 để mở hộp thoại “Thiết lập mơi trường”, sau đó điền tên OSD vào trong ô

“Thư mục nộp bài trực tuyến”:


Các thiết lập như vậy là xong, hệ thống chấm trực tuyến vận hành như sau:

(a) Nộp bài:

Thí sinh (hoặc một phần mềm dịch vụ) ghi bài vào OSD theo quy cách:

*[Mã Thí sinh][Tên bài thi].EXT

Trong đó

l * là một dãy ký tự bất kỳ (do hệ thống nộp bài hoặc thí sinh tự đặt), khơng có ý nghĩa với hệ thống chấm
l Mã thí sinh để xác định thí sinh, nếu mã thí sinh này chưa có trong danh sách thí sinh, hệ thống sẽ tự bổ sung thí

sinh này vào danh sách và tạo thư mục bài làm cho thí sinh đó trong thư mục chứa các bài làm.
l Tên bài thi để xác định bài nộp của thí sinh ứng với bài thi nào, nếu tên bài thi khơng có trong danh sách bài thi đã

thiết lập, bài nộp này bị bỏ qua.

Trang 12/22 In ngày 24-Feb-19

l EXT là phần mở rộng do ngơn ngữ lập trình quy định. Thí sinh chỉ được nộp 1 file cho 1 bài làm. Trường hợp bài
làm của thí sinh cần một số file phụ trợ khác mới chạy được thì cần nén bài làm và tất cả các file phụ trợ vào trong
một file .ZIP, trong trường hợp này phần mở rộng EXT là “ZIP”.

Chú ý: Dấu mở/đóng ngoặc vng là cần thiết, ví dụ nếu thí sinh ABC nộp bài TABLE viết bằng ngơn ngữ Pascal thì tên
file nộp trực tuyến có thể đặt là: 1234[ABC][TABLE].pas

(b) Nhận bài

Ngay khi nhận được bài, hệ thống sẽ chuyển bài nộp 1234[ABC][TABLE].pas vào thư mục chứa bài làm của thí sinh

ABC, bài nộp này sau đó sẽ được đổi tên thành TABLE.pas (những bài nộp trước đây của thí sinh ABC cho bài thi
TABLE sẽ được chuyển vào thư mục con $History)

(c) Chấm bài và báo kết quả

Hệ thống chấm bài TABLE của thí sinh ABC, ghi lại biên bản chấm vào thư mục con “logs” của OSD. Biên bản chấm có
tên file dạng: tên file nộp nối thêm đi .log, như ví dụ này, biên bản chấm sẽ được ghi vào file “1234[ABC]
[TABLE].pas.log”. Thí sinh (hoặc phần mềm dịch vụ) có thể đọc file này lấy kết quả chấm. Nếu thí sinh nộp nhiều lần
bài giải cho một bài thi, điểm của thí sinh trong bảng điểm được lấy từ kết quả chấm bài nộp cuối cùng.

Chú ý kỹ thuật:

l Chức năng chấm bài trực tuyến thường được cho tương tác với một phần mềm nộp bài. Phần mềm nộp bài chạy
trên máy của thí sinh hoặc web service có nhiệm vụ nộp file vào OSD (chứa trên máy chấm) theo đúng quy định
tên file, sau đó chờ biên bản chấm và gửi lại cho thí sinh biết kết quả, đồng thời có thể lưu lại biên bản trong cơ sở
dữ liệu lưu trữ. Yêu cầu duy nhất khi viết phần mềm nộp bài là phải thực hiện đọc/ghi file trong OSD càng nhanh
càng tốt, tránh làm chậm máy chấm. Vì vậy phần mềm nộp bài nên ghi bài nộp lên một thư mục khác, sau khi việc
ghi hoàn tất mới chuyển bài nộp sang OSD.

l Nếu có điều kiện, thiết lập càng nhiều máy chấm trong mạng càng tốt: Kỳ thi trên các máy chấm được cấu hình
như nhau, nhưng mỗi máy chấm có một OSD riêng biệt. Phần mềm nộp bài cần phân phối các bài nộp lên các máy
chấm để giảm thiểu thời gian chờ đợi kết quả, ảnh hưởng tới tiến độ làm bài của thí sinh

Xem điểm và kết xuất báo cáo

Để xem kết quả chấm chi tiết, người dùng có thể nhấn đúp chuột vào một ơ trong bảng điểm. Cửa sổ báo cáo sẽ hiện ra
đủ thông tin về kết quả chấm trên mỗi test:

Trang 13/22 In ngày 24-Feb-19


Nếu người dùng nhấn đúp chuột vào ô chứa tên thí sinh hoặc ơ chứa tổng điểm của một thí sinh, tồn bộ thơng tin về kết
quả chấm bài của thí sinh đó sẽ được báo cáo. Nếu người dùng nhấn đúp chuột vào ô khác, chỉ những thông tin về một
bài thi của thí sinh ứng với ơ đó được báo cáo

Nút (hay phím tắt CTRL+F9) sẽ kết xuất dữ liệu từ cả hai tabs “Tổng hợp” và “Chi tiết” ra Microsoft Excel.

Chức năng này chỉ kích hoạt Excel và kết xuất dữ liệu ra 2 tabsheet của Excel. Việc ghi file excel này vào đâu là do
người dùng quyết định, hệ thống không tự động ghi lại file excel.

Tạo mới, Ghi và Mở kỳ thi cũ In ngày 24-Feb-19

Trang 14/22

Chức năng tạo kỳ thi mới (CTRL+N) sẽ tạo một kỳ thi mới với danh sách bài thi cũng như danh sách thí sinh
rỗng.

Chức năng ghi kỳ thi (CTRL+S) sẽ nén toàn bộ các dữ liệu sau:

l Tồn bộ thư mục bài làm của thí sinh
l Toàn bộ thư mục chứa bài thi
l Các cấu hình bài thi đã thiết lập
l Kết quả chấm bài

vào một file do người dùng tự chọn có phần mở rộng là .contest để lưu trữ thông tin về toàn bộ kỳ thi. Những file chứa
trực tiếp trong thư mục bài làm và bài thi (không đặt trong thư mục con) tuy khơng có nghĩa đối với hệ thống chấm
nhưng cũng sẽ được nén cùng. Người dùng có thể lưu đề bài, bảng xếp giải, các biên bản v.v… trong những file này.

Các file .contest là những file .zip bình thường. Chỉ cần đổi phần mở rộng “.contest” thành “.zip” là bạn có thể bung nén
bằng rất nhiều chương trình thơng dụng (Zip Folder, WinZIP, WinRaR) để sử dụng vào mục đích khác


Chức năng mở kỳ thi (CTRL+O) cho phép người dùng nạp một kỳ thi cũ đã nén bằng chức năng ghi kỳ thi.

File .contest do người dùng nạp vào sẽ được bung nén vào thư mục ThemisContest trong thư mục giải nén. Hệ thống sẽ
tự cập nhật cấu hình bài thi và kết quả chấm của kỳ thi cũ

Chú ý: Khi mở file .contest, một thư mục con ThemisContest sẽ được tạo ra trong thư mục chứa kỳ thi giải nén. Thư mục
này chứa hai thư mục con Tasks và Contestants tương ứng là thư mục chứa bài thi và thư mục chứa bài làm của các thí
sinh. Khơng ghi những thơng tin quan trọng vào thư mục ThemisContest vì mỗi lần mở một file .contest thì thư mục này

sẽ bị xóa và tạo lại. Để đặt lại thư mục chứa kỳ thi giải nén, nhấn nút hoặc phím tắt F11:

Trang 15/22 In ngày 24-Feb-19

Bảo mật

Trong những kỳ thi chính thức, những lỗ hổng bảo mật nếu bị các thí sinh khai thác có thể gây hậu quả nghiêm trọng ảnh
hưởng tới kết quả thi. Trên những máy cài đặt hệ điều hành Windows, nếu sơ ý trong thiết lập hệ thống an ninh thì chỉ
bằng vài dịng lệnh (vơ tình hoặc cố ý) là chương trình của thí sinh có thể thực hiện những tác vụ nguy hiểm, chẳng hạn
như:

l Dị tìm thư mục chứa bài thi, từ đó có thể sửa đổi bộ test, chép đáp án, làm sai lệch trình chấm ngồi…
l Dị tìm thư mục chứa bài làm, xóa hoặc sửa đổi bài làm của mình hoặc thí sinh khác…
l Khởi động lại máy để cài đặt một dịch vụ nhằm vơ hiệu hóa các hệ thống an ninh, từ đó phát tán các thơng tin nội

bộ của kỳ thi.

Phải nói thêm là trong các hệ điều hành Windows cũ hơn thế hệ Windows 2000, những tác vụ trên là không thể ngăn
chặn được.

Themis được thiết kế hệ thống an ninh nhằm vơ hiệu hóa những tác vụ truy cập trái phép có thể gây nguy hiểm. Ngồi

các mơ-đun quản lý các tiến trình và bộ nhớ của Themis, việc kích hoạt chế độ bảo mật có hiệu quả hay khơng cịn cần sự
thiết lập đúng từ phía người sử dụng.

Các bước kích hoạt hệ thống an ninh

Bước 1: Chuẩn bị ít nhất một phân vùng đĩa NTFS. Windows và Themis phải đặt trên một phân vùng đĩa NTFS mà muốn
ghi hay thay đổi cần có quyền quản trị. Những người dùng khác chỉ được phép đọc thư mục và khởi động Themis.
Bản thân hệ điều hành Windows từ phiên bản XP trở lên khi cài đặt đều khuyến cáo người dùng sử dụng các phân vùng
đĩa NTFS. Cách chuyển một phân vùng đĩa từ FAT hay FAT32 sang NTFS khá đơn giản.

Bước 2: Tạo hai người dùng với tên đăng nhập và mật khẩu tùy chọn, tạm gọi là THÍ SINH và GIÁM THỊ.

Trang 16/22 In ngày 24-Feb-19

l THÍ SINH khơng được có quyền quản trị, tức là khơng thuộc nhóm Administrators cũng như Power Users. Có thể
bật Guest account làm THÍ SINH (Xem cách bật/tắt Guest account trên Windows XP, Windows Vista và Windows
Seven)

l THÍ SINH phải được quyền chạy Themis. Ngồi ra phải có tồn quyền kiểm sốt trên thư mục chứa bài thi, thư
mục chứa bài làm và thư mục “phòng thi” (nơi mà bài làm của các thí sinh được copy vào cùng với test để chạy).

l GIÁM THỊ cũng khơng nhất thiết phải là người có quyền quản trị máy. Thậm chí khơng cần phải có quyền truy cập
thư mục bài thi, bài làm và “phịng thi”.

Bước 3: Đăng nhập vào người dùng THÍ SINH, chạy Themis, nhấn nút hoặc phím tắt F7 để mở hộp thoại “Bảo
mật”.

Đánh dấu ơ “Kích hoạt chế độ bảo mật” và điền đủ các thông số: Quyền bảo mật, Mật mã, Tên miền: Các thông số đăng
nhập của người dùng GIÁM THỊ.


Bước 4: Đặt thư mục chứa phòng thi lên phân vùng NTFS: nhấn nút hoặc phím tắt F11:

Trang 17/22 In ngày 24-Feb-19

Trong ơ “Thư mục chứa “phịng thi””, chọn một thư mục trên phân vùng NTFS mà người dùng THÍ SINH có quyền tạo
thư mục con gọi là “phịng thi” và tồn quyền trên thư mục con đó. Khi chấm một test, các file dữ liệu của test, bài làm
của thí sinh, cùng cả file .EXE đã dịch sẽ được chép vào “phòng thi” và chạy ở đây để sinh ra các file kết quả

Việc kích hoạt hệ thống bảo mật chỉ cần như vậy là xong.

Cơ chế bảo mật của Themis có thể tóm tắt như sau:

THÍ SINH và GIÁM THỊ là hai người dùng khác nhau, vì thí sinh khơng có quyền quản trị nên có những vùng dữ liệu
của GIÁM THỊ mà thí sinh khơng thể truy cập được dưới mọi hình thức (đọc, ghi, thêm, xóa, …).

Themis chạy trong phân quyền THÍ SINH và như vậy Themis có đầy đủ quyền như THÍ SINH, tức là tồn quyền trên thư
mục bài thi, bài làm và được tạo lập “phòng thi” trong thư mục đã chỉ định. Tuy nhiên, khác với THÍ SINH là Themis
biết mã đăng nhập của GIÁM THỊ vì vậy có thể truy cập vùng dữ liệu dành riêng của GIÁM THỊ

Trước khi chấm, Themis dùng quyền của THÍ SINH để cho GIÁM THỊ tồn quyền truy cập thư mục bài thi, bài làm và

Trang 18/22 In ngày 24-Feb-19

phịng thi. Bên cạnh đó, Themis cấm ln quyền truy cập thư mục bài thi và thư mục bài làm của THÍ SINH dưới mọi
hình thức.

Khi bắt đầu chấm một test, Themis dùng quyền của GIÁM THỊ để chép một bài làm cùng các file dữ liệu của một test
vào phịng thi. Sau đó bài làm được dịch ra .EXE và chạy với quyền của THÍ SINH. Với quyền này thì các mã lệnh trong
file .EXE khơng thể truy cập thư mục chứa các bài thi và bài làm được nữa


Khi file .EXE đã kết thúc, bộ chấm được kích hoạt chạy trong phân quyền THÍ SINH. Bộ chấm có thể đọc/ghi trên thư
mục chứa test vừa chấm vì Themis đã dùng quyền của GIÁM THỊ mở khóa thư mục chứa test cho THÍ SINH truy cập.
Khi bộ chấm kết thúc, thư mục chứa test sẽ được khóa trở lại.

Sau khi tất cả các bài làm đã được chấm, Themis trả lại toàn quyền truy cập các thư mục bài thi và bài làm cho thí sinh

Tóm lại, khi chế độ bảo mật được kích hoạt, Themis phải chạy với người dùng THÍ SINH để quản lý bộ nhớ và ngắt bài
làm đang chạy khi hết giờ. Bên cạnh đó Themis liên hệ với người dùng GIÁM THỊ để “nhờ” giữ những thư mục bí mật,
đảm bảo các chương trình chạy dưới phân quyền THÍ SINH khơng thể truy cập được.

Các câu hỏi thường gặp

l Làm thế nào để phục hồi cấu hình mặc định?
l Chạy Themis với tham số Themis.exe /clean sẽ phục hồi trạng thái mặc định của các bộ dịch và biến môi trường.

l Làm thế nào để chấm lại chỉ riêng một bài/một thí sinh?
l Bấm nút chuột phải vào ô cần chấm lại, chọn “Chấm lại”.

Nếu ô được chọn ứng với một thí sinh và một bài thi, chỉ riêng bài nộp ứng với bài thi đó của thí sinh được chấm

Trang 19/22 In ngày 24-Feb-19

lại
Nếu ô được chọn chứa mã thí sinh, tồn bộ các bài nộp của thí sinh đó được chấm lại.
Nếu ơ được chọn là tiêu đề cột ứng với một bài thi, toàn bộ bài nộp của các thí sinh ứng với bài thi đó được chấm
lại

l Máy khơng hiển thị được các ký tự đặc biệt, chẳng hạn như các ký hiệu \CheckMark (✓), \ThereDoesNotExist (∄),
\Failure (ℱ), \Critical Error (⚠) đều hiển thị thành ô vuông ?


l Lý do là máy chưa cài đặt các bộ fonts để hiển thị được những ký tự này. Một trong những cách khắc phục là:
1. Cài đặt font LMHGUI nếu hệ thống chưa có font chữ này (font này có trong thư mục chứa Themis khi cài đặt)
2. Bấm F11 để mở hộp thoại “Thiết lập môi trường”, chọn font chữ cho giao diện là LMHGUI.

l Các tham số dịch mặc định lấy theo quy định nào?
l Các tham số dịch của FPC, GCC/G++ được tham khảo từ quy chế của kỳ thi IOI 2011. Các tham số dịch của

JAVAC được tham khảo từ quy chế của kỳ thi ACM WF 2012.

l Có hạn chế nào trong việc đặt tên thư mục không?
l Themis làm việc tốt với bảng mã Unicode, tên thư mục hoàn toàn có thể chứa các ký tự nằm ngồi bảng mã ASCII

mà khơng gặp trở ngại gì. Tuy nhiên người dùng cần chú ý là ba thư mục sau không được phép chứa nhau: thư mục
chứa các bài thi, thư mục chứa các bài làm và thư mục “phòng thi”.

l Thời gian thực hiện của bài làm trong hệ thống chấm không giống thời gian thực hiện của bài làm khi chạy riêng
biệt?

l Thời gian thực thi chương trình tại hai thời điểm khác nhau có sai khác là bình thường nếu thời gian thực thi bị phụ
thuộc một vài tiến trình ngẫu nhiên trong chương trình. Đơi khi thời gian thực thi chương trình bị ảnh hưởng bởi
nhiệt độ CPU và RAM nhưng sai số thời giam trong trường hợp này thường không đáng kể. Sự khác biệt chỉ lớn
khi có các chương trình qt virus hoặc ứng dụng quản lý đĩa đang hoạt động làm giảm tốc độ nhập xuất dữ liệu.
Vì vậy cần tắt các chương trình này trước khi chấm.
Tốc độ của bài làm khi chạy trong hệ thống chấm có thể nhanh hơn so với việc chạy riêng biệt bài làm (khoảng vài
chục milli giây nếu file dữ liệu kích thước ~10MiB). Lý do là hệ thống chấm phải copy các file dữ liệu vào thư
mục hoạt động. Trong quá trình copy, hệ điều hành lưu lại một lượng lớn dữ liệu trong bộ nhớ cache, chương trình
của thí sinh có thể đọc một lượng lớn dữ liệu đó trong bộ nhớ mà khơng cần tới các thao tác đĩa cứng.
Chú ý: Khi chạy bài làm của thí sinh, thời gian bắt đầu tính khi file .exe đã nạp vào bộ nhớ và bắt đầu chạy. Thời
gian nạp file .exe bị ảnh hưởng bởi rất nhiều yếu tố khách quan như vị trí của file trên đĩa, tình trạng phân mảnh
đĩa, các ứng dụng quét virus và quản lý tiến trình, v.v… Vì vậy Themis khơng tính thời gian nạp file .exe vào thời

gian chạy của bài làm.

l Khi xem kết quả chi tiết, có test bài làm chạy quá thời gian nhưng vẫn được hệ thống cho điểm?
l Trước hết cần khẳng định rằng hệ thống đã cho điểm tức là bài làm chạy không quá thời gian. Việc chuẩn bị, dọn

dẹp bộ nhớ trước và sau khi thực hiện bài làm và ngay cả việc bấm giờ cũng tốn thời gian nên mới có sai số này.

Trang 20/22 In ngày 24-Feb-19


×