# Hướng dẫn sử dụng CAS cho Giảng viên (GV) ## 1. Đăng nhập: Nhập `Email` và `Password` của GV, click `Log in` để đăng nhập. Hệ thống chuyển đến màn hình mặc định `Dashboard`, bạn sẽ thấy tất cả đề thi ở chế độ công khai đang có đã được tạo từ các GV khác. Click `tên GV` ở góc phải trên cùng, chọn `Instructor Dashboard` để đi đến Dashboard riêng của bạn. Đề thi và bài tập mà bạn tạo sẽ hiển thị ở đây, bạn có toàn quyền quản lý chúng. ![](https://i.imgur.com/TTL58iN.jpg) > **[Quan trọng] Lưu ý trình tự thực hiện:** > - Trường hợp cần tạo đề thi **mới**: đầu tiên bạn cần khởi tạo đề thi và các thông tin về đề thi trước (hướng dẫn tại mục 1), sau đó bạn mới khởi tạo bài tập (hướng dẫn tại mục 2). Lý do là vì khi bạn khởi tạo bài tập sẽ có mục chọn bài tập này nằm trong đề thi nào, nên nếu trong dữ liệu lúc đó chưa có đề thi bạn cần thì buộc phải thoát ra để trở về bước tạo mới đề thi. > - Trường hợp đã **có sẵn đề thi**, muốn tạo thêm bài tập: lúc này bạn bỏ qua bước tạo mới đề thi, đi thẳng đến bước khởi tạo bài tập (hướng dẫn tại mục 2). ![](https://i.imgur.com/hFk2swL.jpg) --- ## 2. Tạo đề thi (contest) ### 2.1. Khởi tạo đề thi Tại màn hình mặc định `Contests`, click `Create New`. Bạn chưa tạo đề thi nào nên chưa có dữ liệu (No data). ![](https://i.imgur.com/xRalUgA.jpg) Hoàn thành tất cả các mục và click `Create`. Bạn có thể quay lại chỉnh sửa các mục này sau. > **Lưu ý:** > - Vì các mục này là bắt buộc điền (*) nên nếu chọn Create nhưng bỏ trống dù chỉ một mục thì sẽ không cho lưu. Màn hình sẽ hiện viền đỏ tại khung đó và thông báo Form Validation Failed. > - Thứ tự hiển thị các đề thi trên màn hình Dashboard của GV và HV được sắp xếp mặc định theo **thứ tự thời gian mở đề (Available From)**. ![](https://i.imgur.com/6ce0MBT.jpg) **Contest title:** tên đề thi. **No end time:** thiết lập thời gian kết thúc. > **Giải thích ý nghĩa việc có Thời gian kết thúc:** > - Thời gian kết thúc là để phục vụ cho mục đích tính điểm. HV click nộp bài (submit) trên hệ thống trước thời gian kết thúc đề thì sẽ có điểm. Ngược lại, HV nộp bài sau thời gian kết thúc thì không được tính điểm, chỉ được biết trạng thái đúng hoặc sai. > - Như vậy, với các đề thi được thiết lập không có thời gian kết thúc (No end time) thì HV nộp bài vào thời điểm nào cũng sẽ luôn có điểm. - Trạng thái mặc định là có thời gian kết thúc. Lúc này bạn cần thiết lập ngày giờ bắt đầu (Valid from) và ngày giờ kết thúc (To): - Thiết lập ngày: có thể nhập thủ công vào ô ngày theo định dạng mẫu hoặc click chọn ngày trên ô lịch. - Thiết lập giờ: đưa con trỏ chuột vào ô giờ, có thể nhập thủ công hoặc kéo lên xuống để chọn giờ. Click `OK` để lưu. Click `Cancel` để hủy. - Click `OK` để lưu. Click `Clear` để thiết lập lại từ đầu. - Ví dụ tạo đề thi bắt đầu từ ngày 25/11/2020 lúc 04h15 đến ngày 07/12/2020 lúc 19h30: ![](https://i.imgur.com/PeSBSkX.jpg) - Sau khi lưu trông như sau: ![](https://i.imgur.com/OwLnLlO.jpg) - Nếu muốn tạo đề thi không có thời gian kết thúc, click vào thanh trượt (khi đó sẽ được kéo sang phải và hiển thị màu xanh dương). Lúc này bạn chỉ cần thiết lập ngày giờ bắt đầu (Valid from). - Cách thiết lập tương tự bên trên. Ngoài ra nếu muốn bắt đầu ngay thì chọn `Now`. Ví dụ: ![](https://i.imgur.com/pGocLa7.jpg) - Sau khi lưu trông như sau: ![](https://i.imgur.com/LsmpptK.jpg) **Publish:** hiển thị lên Dashboard của học viên - Trạng thái mặc định là cho phép hiển thị lên Dashboard của học viên (This contest is listed on student dashboard). - Ngược lại, nếu vì lý do nào đó bạn muốn ẩn đề thi này đi (Student can not see this no matter what) thì click vào thanh trượt (khi đó sẽ được kéo sang trái và dòng chữ chuyển sang màu xanh dương). - Ví dụ: ![](https://i.imgur.com/wxUPTg8.jpg) **Content:** mô tả thêm về đề thi - Có thể thêm các thông tin như chủ đề cuộc thi là gì? gồm những phần nào? cách tính điểm? các mô tả khác ... - Ngoài ra, CAS cho phép trình bày markdown. Điều này giúp việc trình bày công thức toán học dễ dàng hơn. Ví dụ: ![](https://i.imgur.com/nOTKIkK.jpg) **Tạo mẫu 1 đề thi:** Điền đầy đủ các mục rồi click `Create`. ![](https://i.imgur.com/Kg3vaC7.jpg) Nếu hệ thống chuyển đến màn hình Dashboard tức là bạn đã tạo thành công. ![](https://i.imgur.com/2iwXMtG.jpg) (Bonus) Đề thi này sẽ hiển thị trên màn hình tài khoản học viên trông như sau: ![](https://i.imgur.com/ZPvDKOP.jpg) --- ### 2.2. Chỉnh sửa đề thi Tại màn hình Contests, chọn đề thi muốn chỉnh sửa, click `Edit`. ![](https://i.imgur.com/b1wVuMc.jpg) Trong trường hợp bạn tạo nhiều đề thi, để tiết kiệm thời gian bạn có thể gõ một phần của tên đề thi vào khung `Type to search` rồi gõ `Enter`. ![](https://i.imgur.com/sG8btKH.jpg) Màn hình hiện ra giống với màn hình lúc bạn click `Create New`. Sau khi chỉnh sửa, click `Update` để cập nhật các thay đổi. Giả sử thay đổi ngày giờ mở đề thi AI Entrance Test rồi click `Update`. ![](https://i.imgur.com/xbUfD1x.jpg) Hệ thống tự động chuyển về lại màn hình Contests, tức là bạn đã chỉnh sửa thành công (ở ví dụ trên, chú ý thời gian mở đề đã được cập nhật lại). ![](https://i.imgur.com/Q7qlwi8.jpg) --- ### 2.3. Xóa đề thi Tại màn hình Contests, chọn đề thi muốn xóa, click `Delete`. ![](https://i.imgur.com/uUgMIyB.jpg) Xuất hiện hộp thoại, click `Confirm` để xóa, click `Cancel` để hủy thao tác. ![](https://i.imgur.com/TnQvYv5.jpg) --- ## 3. Tạo bài tập (problem) ### 3.1. Khởi tạo bài tập Tại màn hình mặc định `Contests`, click `Problems` để chuyển đến màn hình khởi tạo và quản lý bài tập. Bạn chưa tạo bài tập nào nên chưa có dữ liệu (No data). ![](https://i.imgur.com/WYmibuK.jpg) Click `Create New` để tạo bài tập mới. ![](https://i.imgur.com/crwjqFW.jpg) Hoàn thành các mục sau rồi click `Save` để lưu hoặc click `Cancel` để hủy. Bạn có thể quay lại chỉnh sửa các mục này sau. > **Lưu ý:** > - Vì các mục này là bắt buộc điền (*) nên nếu chọn Create nhưng bỏ trống dù chỉ một mục thì sẽ có hiển thị báo lỗi tại mục đó và thông báo lỗi trên màn hình Form Validation Failed. > - Thứ tự hiển thị của danh sách bài tập (problem list) trên Dashboard GV và màn hình khi HV làm đề được sắp xếp mặc định theo **thứ tự khởi tạo bài tập**. GV lưu ý điều này để tạo danh sách bài tập phục vụ cho ý đồ của mình. Ví dụ muốn tạo danh sách bài tập từ bài dễ nhất đến bài khó nhất, hoặc tạo danh sách bài tập gom theo từng chủ đề kiến thức, ... ![](https://i.imgur.com/UuNcQ5P.jpg) ![](https://i.imgur.com/cg83YwR.jpg) **Contest:** bài tập này thuộc đề thi nào. Click chuột vào dấu mũi tên chỉ xuống, chọn đề thi mà bạn muốn lưu bài tập này. **Difficulty:** độ khó của bài tập trên thang 1 đến 5. Mẹo: nên tạo danh sách bài tập có độ khó tăng dần. Điều này có thể có ích cho HV của bạn. **Title:** tên bài tập. Mẹo: nên chọn tên thể hiện đúng yêu cầu đề. Điều này giúp tiết kiệm thời gian cho việc tìm kiếm và phân loại, ... sau này. **Short description:** mô tả ngắn (ví dụ như bài tập này rèn cho HV của bạn những kỹ năng nào? cần những kiến thức gì để giải bài này? các mô tả khác, ...). **Content:** đề bài. > **Lưu ý:** > - CAS cho phép trình bày markdown. Điều này giúp GV viết công thức toán học dễ dàng và trực quan hơn. > - Nội dung nên súc tích, trình bày rõ ràng, đúng chính tả, đảm bảo HV đọc hiểu đúng đề bài. - Đối với loại hình bài tập là Coding (Type: `Coding`). Một bài tập lập trình lý tưởng nên có đầy đủ các thông tin sau: - *Input format:* định dạng dữ liệu đầu vào. Gồm: có những thành phần đầu vào nào? kiểu dữ liệu là gì? cách nhập như thế nào? ý nghĩa của chúng?/ đại diện cho thông tin gì? ... - *Output format:* định dạng dữ liệu đầu ra. Gồm: có những thành phần đầu ra nào? kiểu dữ liệu là gì? cách in ra màn hình như thế nào? ... - *Constraints:* các ràng buộc cho biến số nếu có. - *Sample testcase:* trường hợp kiểm thử mẫu, với dữ liệu đầu vào này thì đầu ra là gì. HV kiểm chương trình mình viết bằng cách copy paste đầu vào của trường hợp kiểm thử rồi thực thi xem có giống với kết quả mẫu không. Do đó GV lưu ý cung cấp trường hợp kiểm thử mẫu chính xác và kèm theo giải thích. Tùy vào bài toán mà GV cung cấp thêm các trường hợp kiểm thử biên. - Tùy vào phong cách soạn đề của GV mà tên các thuật ngữ này có thể thay đổi hoặc được lồng vào nội dung đề, miễn sao đảm bảo có đầy đủ các thành phần trên là được. > - Lưu ý cách viết sample testcase hoặc thông tin quan trọng khác (do GV hoặc người soạn đề cân nhắc) bỏ trong dấu ```. Xem ví dụ sau để hình dung rõ hơn: ![](https://i.imgur.com/8yTlYLe.jpg) - Đối với loại hình bài tập là Trắc nghiệm 1 đáp án đúng hoặc nhiều đáp đúng (Type: `Single Choice` hoặc `Multiple Choices`) - GV có thể án chừng trình độ HV đang ở đâu mà có thể viết rõ ra là câu này là Chọn 1 đáp án đúng hay Chọn nhiều đáp án đúng. - Ví dụ Trắc nghiệm 1 đáp án: ![](https://i.imgur.com/ni2SaKF.jpg) - Ví dụ Trắc nghiệm nhiều đáp án: ![](https://i.imgur.com/Bd28EMh.jpg) - Đối với loại hình bài tập là tự điền đáp án (Type: `Free Text`): - Nếu đây là câu hỏi có tính điểm (xem thêm mục Scoring Type bên dưới) thì bạn cần viết thêm hướng dẫn điền đáp án giống với định dạng đáp án bạn soạn. Điều này giúp tránh việc HV mỗi người điền mỗi kiểu, do đó hệ thống dễ dàng chấm được bài làm của HV. - Nếu các câu hỏi chỉ để lấy thông tin, không tính điểm thì bạn không cần viết hướng dẫn điền đáp án. - Ví dụ cách viết đề bài cho câu hỏi điền đáp án có tính điểm: ![](https://i.imgur.com/moPgbXK.jpg) **Type:** loại hình bài tập. Có 4 loại hình: bài tập lập trình (`Coding`), trắc nghiệm 1 đáp án đúng (`Single Choice`), trắc nghiệm nhiều đáp án đúng (`Multiple Choices`), tự điền đáp án (`Free Text`). Click chuột vào dấu mũi tên chỉ xuống để chọn. ![](https://i.imgur.com/vL0QOqu.jpg) **Scoring Type:** hình thức tính điểm. Có 3 hình thức điểm: đúng hết mới có điểm (`Normal (win all points or zero)`), đúng được bao nhiêu đáp án thì có bấy nhiêu điểm (`Partial (win points for every correct choice)`), không tính điểm cho câu này (`No point for this problem`). Click chuột vào dấu mũi tên chỉ xuống để chọn. ![](https://i.imgur.com/eCRtkUF.jpg) - Nếu chọn có tính điểm (`Normal` hoặc `Partial`), lúc này bạn cần điền 2 mục sau: - *Scoring-Add:* mặc định là cộng 1 điểm. Bạn có thể click chuột vào, nhập lại số điểm bạn muốn. - *Scoring-Minus:* mặc định là không trừ điểm (trừ 0). Bạn có thể click chuột vào, nhập lại số điểm bạn muốn. > **Lưu ý:** > - Nếu chọn loại câu hỏi là điền đáp án (Type: `Free text`) thì chỉ được chọn hình thức tính điểm `Normal` hoặc `No point for this problem`. - Chọn không tính điểm thì hệ thống sẽ tự động làm mất 2 mục Scoring-Add và Scoring-Minus: ![](https://i.imgur.com/kD1pPFo.jpg) **Scoring Tags:** thẻ tính điểm, dùng để phục vụ cho việc đánh điểm, thống kê, ... sau này. - Click chuột vào `+ New Tag` để thiết lập thẻ mới. - Tên tag hợp lệ sẽ có format như sau: - 26 chữ cái tiếng Anh viết thường [a-z]. - Dấu chấm `.` dùng để phân cấp và dấu `_` để nối từ. - Ví dụ: `math.basic.linear_algebra`, `python.basic`, `python.machine_learning`, `python.machine_learning.numpy` ![](https://i.imgur.com/ivegYgk.jpg) **Answer:** đáp án. > **Lưu ý:** - CAS cho phép trình bày markdown. Điều này giúp GV viết công thức toán học dễ dàng và trực quan hơn. - Cẩn thận với cú pháp viết đáp án ở từng loại hình bài tập, đường phân cách và dấu cách. - Đối với bài tập lập trình (Type: `Coding`): - Từng input/ output phải bỏ trong cặp 3 dấu ```. - Xong 1 testcase phải gõ 3 lần dấu `-` để tạo đường phân cách. Ví dụ: ![](https://i.imgur.com/a2iDhbp.jpg) ![](https://i.imgur.com/RsyolcW.jpg) - Nếu đó là **testcase cuối** thì bạn không tạo đường phân cách nữa, vì lúc này hệ thống ngầm hiểu đây là testcase trống và sẽ báo lỗi. ![](https://i.imgur.com/Ag6NU7B.jpg) > **Lưu ý:** > - Bộ testcases cần phải bao quát hết các trường hợp biên của bài toán. > - Khi nhập thủ công hoặc copy paste testcase thì cần **cẩn thận với dấu cách**,chương trình sẽ báo lỗi nếu bị dư hoặc thiếu dấu cách. Để tiện cho việc kiểm tra dấu cách, CAS ký hiệu dấu cách bằng ký hiệu như hình bên dưới: > ![](https://i.imgur.com/h0MoCA0.jpg) - Đối với bài tập Trắc nghiệm 1 đáp án đúng hoặc nhiều đáp đúng (Type: `Single Choice` hoặc `Multiple Choices`): - > Lưu ý: Trắc nghiệm 1 đáp án đúng chỉ được chọn cách tính điểm là `Normal` hoặc `No point for this problem`. - Viết đáp án trắc nghiệm theo định dạng sau: chú ý đến các dấu cách. Đáp án đúng thì bạn viết chữ x thường vào khung []. Bạn không cần phải đánh thứ tự A, B, C, ... Thứ tự hiển thị các đáp án chính là thứ tự bạn nhập các đáp án. ``` - [ ] đáp án 1. --- - [x] đáp án 2. --- - [ ] đáp án 3. --- - [x] đáp án 4. ``` Ví dụ nhập đáp án cho Trắc nghiệm 1 đáp án đúng: ![](https://i.imgur.com/DpyBdqA.jpg) Ví dụ nhập đáp án cho Trắc nghiệm nhiều đáp án đúng: ![](https://i.imgur.com/cpbuDHn.jpg) - Đối với bài tập tự điền đáp án (Type: `Free Text`): - >Lưu ý: Tự điền đáp án đúng chỉ được chọn cách tính điểm là `Normal` hoặc `No point for this problem`. - Nếu là câu tính điểm (`Normal`) thì bạn điền đáp án vào. - >Lưu ý: để đảm bảo HV viết đúng với định dạng đáp án của bạn, để hệ thống so khớp và tính điểm thì bạn nhớ viết hướng dẫn kèm ví dụ điền định dạng đáp án trong đề bài. Ví dụ bạn soạn đáp án trông như sau: ![](https://i.imgur.com/Ddfso4F.jpg) thì bạn có thể viết hướng dẫn trong đề bài (mục `Content`) như sau: ![](https://i.imgur.com/REQB6lF.jpg) - Ngược lại, khi chọn không tính điểm bạn không cần phải điền đáp án, màn hình khi đó trông như sau: ![](https://i.imgur.com/z7HXuNl.jpg) **Các bài tập sau khi tạo xong hiển thị trên màn hình HV như sau:** - Bài tập lập trình: ![](https://i.imgur.com/tsPGDA8.jpg) - Bài tập Trắc nghiệm 1 đáp án đúng: ![](https://i.imgur.com/Ekk0pcS.jpg) - Bài tập Trắc nghiệm nhiều đáp án đúng: ![](https://i.imgur.com/YTV7XGt.jpg) - Bài tập Tự điền đáp án: ![](https://i.imgur.com/zAv0Ggk.jpg) --- ### 3.2. Chỉnh sửa bài tập > **Lưu ý:** không cho phép chỉnh sửa mục `Contest` (lưu vị trí bài tập) và mục `Type` (loại hình câu hỏi) Tại màn hình Problems, chọn đề thi muốn chỉnh sửa, click `Edit`. ![](https://i.imgur.com/DsAGTRT.jpg) Trong trường hợp bạn tạo nhiều bài tập, để tiết kiệm thời gian bạn có thể gõ một phần của tên bài tập vào khung `Type to search` rồi gõ `Enter`. ![](https://i.imgur.com/nls7hJj.jpg) Màn hình hiện ra giống với màn hình lúc bạn click `Create New` để tạo bài tập mới. Sau khi chỉnh sửa, click `Save` để cập nhật các thay đổi, hoặc click `Cancel` để hủy. --- ### 3.3. Xóa bài tập Tại màn hình Problems, chọn bài tập muốn xóa, click `Delete`. ![](https://i.imgur.com/zw6lLhT.jpg) Xuất hiện hộp thoại, click `Confirm` để xóa, click `Cancel` để hủy thao tác. ![](https://i.imgur.com/LuIPfS0.jpg) ## 4. Các tính năng hỗ trợ khác: ### 4.1. Bộ lọc (filter): Ngoài việc dùng khung `Type to search` để tìm kiếm, bạn còn có thể tìm kiếm theo bộ lọc. Tại màn hình Dashboard `Contests` và `Problems` đều có bộ lọc xếp theo thứ tự tăng dần hoặc giảm dần (click chuột để chọn mũi tên lên hoặc mũi tên xuống) tương ứng với kiểu thông tin từng mục. ![](https://i.imgur.com/LKUKO5b.jpg) ![](https://i.imgur.com/w4hiMOb.jpg)