Ứng dụng tạo site bài tập cho học sinh THPT trong giải một số bài toán lập trình.. Chương 3: Ứng dụng tạo site bài tập cho học sinh THPT trong việc giảiquyết các bài toán lập trình: Tạo
Trang 1Luận văn:
Tìm hiểu môi trường lập trình online và ứng dụng
Năm 2013.
MỤC LỤC
DANH MỤC HÌNH VẼ 4
LỜI NÓI ĐẦU 6
1 Lý do chọn đề tài 6
2 Mục đích nghiên cứu 6
3 Đối tượng và phạm vi nghiên cứu 7
4 Phương pháp nghiên cứu 7
5 Cấu trúc luận văn 7
Chương 1 TÌM HIỂU VỀ DẠY HỌC LẬP TRÌNH Ở TRƯỜNG PHỔ THÔNG 9
1.1 Vị trí của môn Tin học ở trường phổ thông 9
1.2 Vai trò, đặc điểm của ngôn ngữ lập trình Pascal trong chương trình Tin học lớp 11 9 1.3 Đặc điểm của lập trình online 10
1.3.1 Ưu điểm 11
1.3.2 Nhược điểm 12
1.4 Thực trạng ứng dụng môi trường lập trình online vào việc dạy học ở trường phổ thông hiện nay 12
Chương 2 HOẠT ĐỘNG CỦA TRANG WEB WWW.SCARKY.COM 17
2.1 Sơ lược về Scarky.com 17
2.1.1 Giới thiệu chung 17
2.1.2 Cách để tạo ra và sử dụng những bài toán trên Scarky 19
2.1.3 Các điều khoản sử dụng: Quy tắc, Bảo đảm, Tính pháp lý của Scarky 20
2.2 Cách xây dựng một bài toán lập trình trên http://www.scarky.com/ 21
2.2.1 Basic configuration 22
2.2.2 Logic 23
2.2.3 Additional settings 24
2.3 Cách gửi lời giải cho bài toán lập trình 26
2.3.1 Ví dụ về cách gửi lời giải cho bài toán lập trình 26
Trang 22.3.2 Lưu ý 28
2.4 Cách tạo và gửi lời giải cho bài toán lập trình 29
2.4.1 Xây dựng bài toán 30
2.4.2 Gửi lời giải cho bài toán 35
Chương 3 TẠO SITE BÀI TẬP LẬP TRÌNH CHO HỌC SINH THPT 39
3.1 Ứng dụng tạo site bài tập cho học sinh THPT trong giải một số bài toán lập trình 39 3.1.1 Khái quát về nội dung của site /site/cunghoccungvui 39
3.1.2 Cách hoạt động của site /site/cunghoccungvui 41
3.2 Phân tích một số bài tập trên site /site/cunghoccungvui/ 42
3.2.1 Bài tập cơ bản 42
3.2.1.1 Bài tập về mảng 42
3.2.1.2 Bài tập về xâu 45
3.2.2 Bài tập nâng cao 47
KẾT LUẬN 50
TÀI LIỆU THAM KHẢO 51
PHỤ LỤC 52
1 Giới thiệu về trang web http://spox.spoj.pl 52
1.1 Các tính năng của SPOX 52
1.2 Các điều khoản sử dụng 52
1.3 Cách hoạt động của http://spox.spoj.pl 54
2 Giới thiệu về trang web http://ideone.com 57
2.1 Giới thiệu chung 57
2.2 Điều khoản sử dụng: Nội quy, bảo hành, trách nhiệm pháp lý 59
3 Giới thiệu về trang web http://acm.timus.ru/ 61
3.1 Giới thiệu chung 61
3.2 Cách thức hoạt động của hệ thống trên http://acm.timus.ru/ 61
3.2.1 Chọn bài toán 62
3.2.2 Giải quyết bài toán và gửi lời giải để đánh giá 62
3.2.3 Hệ thống kiểm tra lời giải 63
3.3 Quy tắc tham gia cuộc thi trực tuyến trên http://acm.timus.ru/ 66
Trang 3DANH MỤC HÌNH VẼ
Hình 1.1 Giao diện trang web http://vnoi.info/ 14
Hình 1.2 Hình ảnh của bảng xếp hạng top 10 thành viên xuất sắc trên http://vnoi.info/ 15
Hình 1.3 Giao diện của trang web http://bbone.ideone.com 16
Hình 2.1 Giao diện làm việc của http://www.scarky.com 18
Hình 2.2 Hình thống kê danh sách các bài toán lập trình trên http://www.scarky.com 19
Hình 2.3 Hình thống kê các bài toán mà bạn đã gửi tới http://www.scarky.com 21
Hình 2.4 Giao diện Basic configuration 23
Hình 2.5 Giao diện Logic 24
Hình 2.6 Giao diện Additional settings 25
Hình 2.7 Giao diện đăng nhập khi xây dựng một bài toán lập trình 31
Hình 2.8 Giao diện Basic configuration của bài toán tính tổng 2 số 32
Hình 2.9 Giao diện Logic của bài toán tính tổng 2 số 33
Hình 2.10 Giao diện Additional settings của bài toán tính tổng 2 số nguyên 33
Hình 2.11 Liên kết và mã html được tạo ra sau khi lưu bài toán 35
Hình 2.12 Giao diện Edit challenge của bài toán 35
Hình 2.13 Liên kết để gửi lời giải cho bài toán 36
Hình 2.14 Giao diện nội dung của bài toán tính tổng 2 số nguyên 36
Hình 2.15 Giao diện gửi lời giải cho bài toán tính tổng 2 số nguyên 37
Hình 2.16 Kết quả trả về khi chương trình gặp lỗi 38
Hình 2.17 Kết quả trả về khi chương trình chạy vượt quá thời gian 38
Hình 2.18 Kết quả của chương trình sai 39
Hình 2.19 Kết quả trả về sau khi gửi lời giải đúng 39
Hình 3.1 Giao diện của site sites.google.com/site/cunghoccungvui 41
Hình 3.2 Danh sách bài tập trong trang BT_Mảng 42
Hình 3.3 Danh sách những người có lời giải đúng 43
Trang 4Hình 3.4 Nội dung của Bài toán tìm số lớn nhất 44
Hình 3.5 Nội dung bài toán tính tổng các số chia hết cho 3 hoặc 5 45
Hình 3.6 Nội dung bài toán sắp xếp dãy số theo thứ tự tăng dần 46
Hình 3.7 Nội dung bài toán loại bỏ dấu cách trong xâu 46
Hình 3.8 Nội dung bài toán kiểm tra xâu đối xứng 47
Hình 3.9 Nội dung bài toán đếm số chữ số xuất hiện trong xâu 48
Hình 3.10 Nội dung bài 3.25/SBT 49
Hình 3.11 Nội dung bài 4.22/SBT 50
Hình 3.12 Nội dung bài 4.41/SBT 50
Hình 1 Giao diện bài tập của http://spox.spoj.pl 55
Hình 2 Giao diện gửi lời giải trên http://spox.spoj.pl 56
Hình 3 Thông báo kết quả của lời giải 57
Hình 4 Vị trí của người gửi lời giải cho một bài toán được xếp theo thời gian trong bảng Ranking 57
Hình 5 Hình xếp hạng các thành viên theo điểm trên http://spox.spoj.pl 58
Hình 6 Giao diện trang chủ của trang web http://ideone.com 59
Hình 7 Giao diện web của http://ideone.com/api 60
Hình 8 Giao diện chính của trang web http://acm.timus.ru/ 62
Hình 9 Giao diện Submit solution của trang web http://acm.timus.ru/ 63
Hình 10 Bài toán đọc 2 số nguyên và in ra tổng của chúng 64
Hình 11 Giao diện của bảng Solutions judgement results 65
Trang 5LỜI NÓI ĐẦU
1 Lý do chọn đề tài
Trong thời đại Internet đang phát triển như hiện nay, việc sử dụng Internettrong giảng dạy và học tập là rất cần thiết Internet đã đóng một phần quan trọngtrong lĩnh vực giáo dục Các hệ đào tạo từ xa, học trực tuyến qua mạng, thậm chí
là các chương trình học đào tạo của nước ngoài thông qua Internet đã không cònmới mẻ ở nước ta hiện nay Một phương thức học ảo thông qua việc kết nốiInternet để có thể học và làm bài từ xa có thể coi là một yêu cầu, đòi hỏi của tầnglớp học sinh, sinh viên Học online được xem như thành quả của thế giới thông tinđiện tử toàn cầu hiện nay Đó là sự tương tác thông qua việc sử dụng máy tính vàcác kĩ thuật truyền thông để đào tạo và học tập Xét về mặt tích cực, loại hình nàygiúp ích rất nhiều cho mọi người trong cuộc sống, nhất là lứa tuổi học sinh Các
em có cơ hội được trao đổi, học hỏi, bày tỏ ý kiến và học hỏi kinh nghiệm khitham gia diễn đàn Việc áp dụng loại hình học online sẽ góp phần cải thiện chấtlượng học tập của học sinh Việc học tập không chỉ bó gọn ở trường lớp mà là ởkhắp mọi nơi Mọi người dù ở bất cứ đâu cũng có thể tham gia học tập
Hiện nay có nhiều trang web hỗ trợ việc học trực tuyến cho người học thamgia trực tiếp vào lớp học Các bài giảng, bài tập được thiết kế trước và được đưalên mạng để cho người học chép về học hoặc học trực tiếp trên trang web đó đãđem lại một số hiệu quả nhất định Việc nghiên cứu ứng dụng môi trường onlinevào việc dạy học cũng trở thành đối tượng của nhiều công trình khoa học Và đặcbiệt vẫn chưa có nghiên cứu nào về việc ứng dụng môi trường lập trình onlinetrong dạy học lập trình ở trường phổ thông
Vì những lý do trên, em mạnh dạn chọn đề tài “Nghiên cứu môi trường lậptrình online và ứng dụng” là hướng nghiên cứu cho luận văn của mình
Trang 6- Thiết kế site bài tập cho học sinh để giải quyết một số bài toán pascaltrong chương trình tin học 11.
3 Đối tượng và phạm vi nghiên cứu
- Môi trường lập trình online
- Các bài tập Pascal trong chương trình tin học 11
4 Phương pháp nghiên cứu
- Nghiên cứu lý thuyết: Nghiên cứu môi trường online và ứng dụng của nótrong lĩnh vực học tập hiện nay
- Thu thập, phân tích tài liệu: Tìm hiểu một số trang web lập trình online:lịch sử, cách thức hoạt động…
- Tham khảo ý kiến chuyên gia: Tiếp thu ý kiến đóng góp của các thầy cô,những người có kinh nghiệm trong lĩnh vực tin học
- Thực nghiệm: Ứng dụng việc học lập trình online vào môn tin học 11 ởtrường phổ thông
5 Cấu trúc luận văn
Nội dung chính của luận văn được trình bày trong 4 chương:
Lời nói đầu: Nêu ra lý do chọn đề tài, phương pháp, nội dung tìm hiểu vàmục đích nghiên cứu, cấu trúc đề tài
Chương 1: Tìm hiểu về dạy học lập trình ở trường phổ thông: Nêu vị trí củamôn Tin học ở trường phổ thông, vai trò của ngôn ngữ lập trình Pascal trongchương trình Tin học 11 Khái quát đặc điểm của môi trường online, ưu, nhượcđiểm của việc học trực tuyến và ứng dụng trong dạy học lập trình
Chương 2: Tìm hiểu về cách hoạt động của trang webhttp://blog.scarky.com: Giới thiệu chung về trang web http://blog.scarky.com,trình bày cách xây dựng một bài toán lập trình và cách gửi lời giải cho một bàitoán
Chương 3: Ứng dụng tạo site bài tập cho học sinh THPT trong việc giảiquyết các bài toán lập trình: Tạo site bài tập cho học sinh để giải quyết một số bài
Trang 7Phụ lục: Giới thiệu và trình bày một số trang web khác trong việc làm cácbài toán lập trình
Kết luận: Nêu lên những vấn đề đã tìm hiểu, các công việc chính đã thựchiện được và định hướng áp dụng luận văn vào thực tiễn
Tài liệu tham khảo
Trang 8Chương 1
TÌM HIỂU VỀ DẠY HỌC LẬP TRÌNH Ở TRƯỜNG PHỔ THÔNG
1.1 Vị trí của môn Tin học ở trường phổ thông
Môn tin học ở trường phổ thông trang bị cho học sinh (HS) những hiểu biết
cơ bản về công nghệ thông tin và vai trò của nó trong xã hội hiện đại, phươngpháp giải quyết vấn đề theo quy trình công nghệ và kĩ năng sử dụng máy tính phục
vụ học tập và cuộc sống Tin học có ý nghĩa to lớn đối với sự phát triển trí tuệ, tưduy thuật toán cho người lao động, góp phần hình thành học vấn phổ thông chohọc sinh
Trong hệ thống các môn học ở trường phổ thông, tin học còn hỗ trợ chohoạt động học tập của HS, góp phần làm tăng hiệu quả giáo dục Tin học tạo ramôi trường thuận lợi cho học tập suốt đời và học từ xa, làm cho việc trang bị kiếnthức, kĩ năng và hình thành nhân cách HS không chỉ thực hiện trong khuôn khổcủa nhà trường và các tổ chức đoàn thể, chính trị mà có thể thực hiện ở mọi nơi,mọi lúc Các kiến thức và kĩ năng trong môi trường học tập này thường xuyênđược cập nhật giúp cho HS có khả năng đáp ứng được những đòi hỏi mới nhất của
Turbo Pascal - Đó là một ngôn ngữ lập trình có cú pháp chặt chẽ, đơn giản
và dễ hiểu Pascal được chính thức đưa vào giảng dạy ở trường phổ thông cho HSkhối 11 trong những năm gần đây Nó là ngôn ngữ cơ sở để giới thiệu cho HS làmquen với kĩ thuật xây dựng chương trình
Tuy nhiên đối với phần lớn HS phổ thông đây là một môn học khó Nắm
Trang 9Pascal là rất quan trọng, nhưng để vận dụng nó để xây dựng các chương trình lại làđiều đáng nói Thực tế cho thấy, HS rất lúng túng ở khâu vận dụng xây dựngchương trình cụ thể, không biết làm thế nào và bắt đầu từ đâu.
Trong những năm gần đây, ngành giáo dục ở một số tỉnh đã phần nàokhẳng định được những cố gắng vượt bậc và đã đạt được những thành tích quantrọng trong việc đưa môn Tin học vào nhà trường phổ thông Tuy nhiên, thực tếcho thấy, ở một số trường phổ thông HS không được thực hành trên máy do sốlượng máy tính trên đầu HS còn ít, chất lượng phòng máy kém và người quản lýphòng máy không có trách nhiệm bảo trì Đồng thời, đội ngũ giáo viên tin học cònyếu về chất lượng và mỏng về số lượng Vì vậy, dạy học online là một lựa chọnhợp lý để nâng cao chất lượng dạy học Tin học ở trường phổ thông
1.3 Đặc điểm của lập trình online
Môi trường học tập online là sự kết hợp các đối tượng học tập như cáckhóa học, các bài học ở nhiều mức độ khác nhau với các công cụ truyền thốngthông qua việc kết nối Internet Phương tiện học tập ở đây là các phương tiện hỗtrợ học tập như hình ảnh, các ví dụ minh họa, các tài liệu văn bản…Hiện nay,nhiều chương trình học trực tuyến được xây dựng để có khả năng khuấy động họcviên, khuyến khích, kích thích người học tham gia vào quá trình học tập
Học trực tuyến đã và đang mang lại nhiều kiến thức, thông tin học tậpphong phú, bổ ích, được cập nhật liên tục Nếu người học biết tiếp cận và ôn luyệnthường xuyên theo một kế hoạch và mục tiêu học tập rõ ràng, chắc chắn hiệu quảcủa việc học tập online sẽ là không nhỏ Tuy nhiên, học online không phải là hìnhthức dạy học thay thế các hình thức dạy học truyền thống mà nó chỉ là một lời giải
để mọi người có thêm cơ hội học tập [4]
Học lập trình online nhằm phục vụ nhu cầu muốn học tập và tham khảo củacác bạn yêu thích tin học và muốn tìm hiểu kĩ năng lập trình máy tính Việc lậptrình không thể một sớm một chiều mà thành ngay phải có sự kiên trì, bền bỉ vàham học hỏi thì mới có thể tiến bộ nhanh được Ngày càng có nhiều các trang webdạy học lập trình trực tuyến Các trang được phân chia theo thể loại bài tập, lĩnh
Trang 10vực cần thắc mắc Các bài tập được sắp xếp theo dạng và theo mức độ như bài tập
cơ bản hay nâng cao Người học có thể tham gia học và làm bài trực tiếp Việc họclập trình online đã góp phần hình thành và phát triển tư duy thuật giải
Trong tương lai không xa việc học online sẽ trở nên quen thuộc với tất cảhọc sinh, sinh viên trong cả nước
1.3.1 Ưu điểm
Học online là phương pháp học được ưa chuộng bởi có thể học miễn phíhoặc học phí rất thấp so với việc học ở trung tâm Hơn nữa, hình thức học onlinecũng khá đa dạng, có thể học qua video, powerpoint, hình ảnh hoặc âm thanh, làmbài tập thực hành, bài trắc nghiệm Hình thức học cải tiến sẽ tránh được lối họctruyền thống thụ động Học lập trình theo hình thức trực tuyến có thể thỏa mãnđược nhu cầu học tập và nghiên cứu của tất cả các bạn yêu thích và đam mê vớicông nghệ thông tin trên khắp mọi miền đất nước Do vậy, môi trường học online
có một số ưu điểm nổi bật sau:
- Học online giúp bạn chủ động về mặt thời gian, chi phí thấp, bài họcphong phú đa dạng
- Làm bài tập có thể biết ngay kết quả và rèn luyện khả năng tự học
- Học sinh có thể học bài và làm bài trong thời gian thích hợp tùy chọn
- Không giới hạn về mặt địa lý, học sinh, sinh viên từ các vùng khác nhauđều có thể tham gia làm bài
- Học sinh có thể lựa chọn nội dung bài hay vấn đề bất kì mà mình quantâm và có hứng thú
- Học sinh được tạo điều kiện tham gia diễn đàn, tranh luận qua mạng, cóthể giao tiếp với giáo viên và các bạn khác
- Tài liệu học tập phong phú Các dạng bài tập được đa dạng hóa, đượcminh họa thực tế
- Cung cấp các dạng bài tập nhanh chóng, tiện lợi
Trang 111.3.2 Nhược điểm
Học online đem lại khá nhiều lợi ích, tuy nhiên hình thức học mới này cũng
có nhiều bất cập Đối với những HS học yếu và ham chơi game thì không nên họconline Trong các trang mạng có quá nhiều thứ hấp dẫn, dễ bị mất định hướng nếungười học không có sự xác định cụ thể những kiến thức mình cần thu nạp và thunạp nó như thế nào Khi chọn học bằng phương pháp online, người học phải thực
sự nghiêm túc và quyết tâm cao Chúng ta cần phải xác định rõ mục tiêu học tập
và ôn luyện cụ thể cho vấn đề, tập trung hoàn thiện kĩ năng mà bạn cảm thấy mìnhyếu nhất
Đồng thời, học online không giúp đánh giá được hết trình độ và khả năngcủa học sinh Nhiều học viên có xu hướng không tham gia bài kiểm tra, bài thiđịnh kì, bài thi cuối khoá hoặc không theo dõi, từ chối báo cáo đánh giá của trangweb học trực tuyến dẫn đến không có tính chủ động, tự giác trong học tập [3]
Phương pháp học online là thụ động, nó chỉ nên là sự hỗ trợ, bổ sung chonhững gì được học từ trên lớp Nếu biết kết hợp giữa việc học ở trường lớp vớihọc online thì việc học online có thể sẽ mang lại những lợi ích to lớn
1.4 Thực trạng ứng dụng môi trường lập trình online vào việc dạy học ở trường phổ thông hiện nay
Việc ứng dụng CNTT nhằm đổi mới phương dạy và học theo hướng pháthuy tính tích cực học tập của HS, nâng cao chất lượng dạy và học ngày càng đượctriển khai đầy đủ Một số hoạt động điển hình về ứng dụng CNTT trong dạy họchiện nay như:
Tra cứu thông tin trên mạng internet phục vụ công tác nghiên cứu,nâng cao kiến thức chuyên môn, tìm kiếm và trao đổi tài liệu
Sử dụng phần mềm trong dạy học để tạo bài giảng điện tử như MSPOWERPOINT, VIOLET, …
Sử dụng phần mềm hỗ trợ việc soạn bài, đề thi kiểm tra và đánh giákết quả học tập của HS… được tiện lợi và nhanh chóng
Trang 12Đặc biệt một ứng dụng mới trong dạy và học tin học ở trường phổ thông đó
là khai thác tài nguyên trên mạng Internet như sử dụng diễn đàn, email,… môitrường học tập online như một phương tiện để giao lưu, học hỏi Môi trườngonline cho phép hoạt động dạy và học diễn ra mọi lúc, mọi nơi, trên lớp, ở nhà vẫn
có thể được giao bài tập, vẫn có thể làm bài và trình bày ý kiến của mình
Một phương pháp mới để giúp HS tăng hứng thú khi học lập trình là sửdụng các trang web học lập trình trực tuyến HS có thể tham gia giải bài, trao đổi
và học hỏi kiến thức Ngoài ra, còn có các cuộc thi trực tuyến có thể giúp HS thamgia thử sức và trải nghiệm kích thích tính tự học, đam mê tìm hiểu giải các bàitoán lập trình
http://vnoi.info/ là trang web Olympic Tin học Việt Nam Đây là một trangweb hay và có thể rất quen thuộc với những bạn yêu thích lập trình tham gia cáccuộc thi Olympic Trên http://vnoi.info/ được chia thành năm mục lớn bao gồm:Diễn đàn, Thư viện, VOJ, N và Tool Trên mục diễn đàn, các thành viên có thểtham gia trao đổi, thảo luận hay đóng góp ý kiến về những vấn đề như học tập, thi
cử, giải bài trực tuyến và nhiều vấn đề khác hoặc đơn giản chỉ là đọc tin tức thôngbáo, tán gẫu trao đổi giữa các thành viên [6]
Trang 13Mục thống kê của VNOI sẽ liệt kê cụ thể số thành viên, tổng số bài, số chủ
đề, số nhóm diễn đàn, số chuyên mục….của trang Hiện tại VNOI có tổng sốthành viên là 15406 với tổng số bài là 48179, 5361 số chủ đề, 5 nhóm diễn đàn, 7chuyên mục (cập nhật ngày 20/4/2013) Hơn nữa, VNOI còn đưa ra cụ thể tênthành viên mới nhất, số chủ đề hôm nay, số chủ đề hôm qua, bài trả lời hôm nay…
Một điểm khác của http://vnoi.info/ là có sự xếp hạng giữa các thành viênbằng cách tính điểm của mỗi người Cách tính điểm được dựa trên việc giải bài vàgửi bài toán trên Vnoi http://vnoi.info/ sẽ chỉ ra cụ thể thành viên xuất sắc nhấttrong ngày, thành viên xuất sắc trong tháng và đưa ra top 10 thành viên xuất sắcnhất, Topcoder Việt Nam, đồng thời có bảng liệt kê cụ thể danh tiếng của cácthành viên Điều này sẽ tạo ra tính cạnh tranh, kích thích hứng thú tham gia củacác thành viên trên Vnoi
Hình 1.2 Hình ảnh của bảng xếp hạng top 10 thành viên xuất sắc trên http://
vnoi.info/
Hai trang bài tập chính thức của Vnoi là VOJ và N VOJ là trang giải bàitrực tuyến chính thức của Vnoi, N (Project N) – trang giải bài tập số học của Vnoi.Đối với VOJ, các thành viên có thể tìm bài toán cho mình bằng cách xem danh
Trang 14sách bài tập và cũng có thể tham gia các kì thi VOJ thống kê rất chi tiết danh sáchbài tập, danh sách bài nộp, danh sách các kì thi Đồng thời có mục thống kê, phânloại bài tập, bảng xếp hạng và bảng điểm chi tiết Sau khi tham gia các kì thi củaVOJ, các thành viên có thể xem giải thưởng mình đạt được trong phần Giảithưởng Điều này rất thú vị và mới lạ.
Tương tự đối với trang giải bài tập số học N, bạn cũng có thể xem danhsách bài tập và bảng xếp hạng của các thành viên
Ngoài việc tham gia giải các bài toán có sẵn trên trang web, http://vnoi.info/cũng cho phép người dùng có thể tạo bài và gửi bài toán của mình Cách tạo bài vàgửi bài đối với từng thể loại sẽ được hướng dẫn cụ thể trong mục VOJ và N củaVnoi
http://vnoi.info/ là một trang làm bài lập trình online hay mà các bạn có thểtham gia học tập
Ngoài ra còn có một số trang web học lập trình online khác nhưhttp://spox.spoj.pl, http://bbone.ideone.com [11]
Hình 1.3 Giao diện của trang web http://bbone.ideone.com
Qua tìm hiểu trên, ta thấy sử dụng các trang web có nhúng sẵn trình biêndịch và có sẵn bài tập thường không phù hợp đặc biệt khi sử dụng đại trà cho HS
Trang 15HS, thì GV phải trả phí dịch vụ và cũng thường không chủ động trong thiết kế nộidung giảng dạy Một số trang web lập trình như http://vnoi.info/ có nhiều ưu điểmnhưng có thể là quá khó, chỉ phù hợp với những đối tượng là sinh viên giỏi hay
HS chuyên Tin Vì vậy để có thể kết hợp giữa một website có nhúng sẵn trình biêndịch có tính chuyên biệt cao là điều cần thiết Chương tiếp theo sẽ trình bày chi tiếtmột website như vậy
Trang 16Chương 2
HOẠT ĐỘNG CỦA TRANG WEB WWW.SCARKY.COM
2.1 Sơ lược về Scarky.com
2.1.1 Giới thiệu chung
Scarky.com là một dịch vụ web miễn phí, cho phép người dùng tạo ranhiều dạng bài tập có thể đem vào sử dụng tại blog và trang web cá nhân Nó chophép bạn vừa có thể tạo bài và làm bài Bạn có thể tạo ra rất nhiều bài toán củariêng mình và cũng có thể làm bài, gửi câu trả lời cho nhiều bài toán khác có sẵn.Khi làm việc trên Scarky bạn không cần bắt buộc phải đăng ký tài khoản và nhưthế sẽ không tạo ra ràng buộc, bạn có thể truy nhập vào và làm bài bất cứ lúc nào
có thể [7]
Hình 2.1 Giao diện làm việc của http://www.scarky.com
Không giống như những trang web khác, những bài tập mà bạn có thể tạotrên Scarky rất đa dạng Đó có thể là những bài toán về lập trình, toán học, câu đốhay trò chơi ô chữ Đối với Scarky, người sử dụng có thể tạo ra các bài toán khácnhau theo các cấp độ sau:
Trang 17 Rất đơn giản, ví dụ các trò chơi ô chữ, sudoku, bài toán lập trình và cáccâu đố yêu cầu lời giải đơn giản hay các bài tập dạng toán học.
Khó hơn, chẳng hạn yêu cầu như một visualizer flash kết hợp vớichương trình của riêng bạn (chương trình để kiểm tra các chương trình khác) đượcviết bằng một trong các ngôn ngữ lập trình có sẵn
Rất khó: các bài toán lập trình phức tạp, tương tự như những bài toánbạn có thể tìm thấy trên các trang mạng như SPOJ, CodeChef, TopCoder, UVA OJ
Vậy mục đích của việc tạo ra các bài toán trên Scarky là gì? Scarky đượctạo ra nhằm phục vụ nhu cầu muốn học tập và tham khảo của các bạn yêu thíchtoán học, tin học và có hứng thú với các bài toán lập trình Vì vậy các bài toán trênScarky chỉ có mục đích để học hỏi, trao đổi kinh nghiệm
Chính những điểm khác biệt này mà Scarky đã thu hút được rất nhiều thànhviên tham gia Hiện tại Scarky đã có 687 bài toán về lập trình, 262 bài toán về toánhọc, 125 bài toán câu đố, 127 bài toán về trò chơi số (cập nhật ngày 7/4/2013) Sốlượng thành viên và bài tập trên Scarky ngày càng tăng lên theo từng giờ Ngoài
ra, Scarky.com còn cho phép chia sẻ ý tưởng về bài tập, trò ghép hình và các câu
đố với người học
Hình 2.2 Hình thống kê danh sách các bài toán lập trình trên
http://www.scarky.com
Trang 182.1.2 Cách để tạo ra và sử dụng những bài toán trên Scarky
Để tạo ra bài toán trên Scarky, rất đơn giản, người dùng chỉ cần truy cậpvào địa chỉ trang web http://www.scarky.com/builder và làm theo hướng dẫn tạoyêu cầu Nếu muốn, người dùng cũng có thể xem trước ví dụ tại mụcwww.scarky.com in the Sample challenges Sau khi tạo bài tập, người dùng chỉcần sao chép bài tập đã tạo vào trang web hoặc blog của mình Người sử dụng truycập vào trang web của bạn có thể xem trước bài tập, gửi lời giải, và kiểm tra cáccâu trả lời xếp hạng mục top đầu tiên Ngoài ra, các đường link tới web của bạn vàbài toán sẽ có trong mục Scarky statistics và tất cả những ai ghé thăm Scarky.com
sẽ có cơ hội giải bài toán trên web của bạn Họ cũng có thể bắt chước bài tập củabạn và dùng cho trang web của họ, nhưng họ sẽ không thể xem các chi tiết về bàitập (dữ liệu kiểm tra, đánh giá) Mã bảo vệ bị sao chép sẽ chứa thông tin về ngườitạo ra mã đầu tiên
Sau khi đã xây dựng thành công bài toán, bài toán của bạn sẽ xuất hiệntrong mục số liệu thống kê của Scarky Bạn có thể thấy tên bài toán của mình,những phản hồi hay chính là những lời giải cho bài toán bạn đã đưa ra và thời gianbạn gửi bài toán của mình
Nếu bài toán của bạn không xuất hiện trong mục số liệu thống kê củaScarky thì có hai khả năng:
Thứ nhất, thời gian gửi bài toán chưa đến hoặc đã kết thúc thời gian củabài toán (cả thời gian bắt đầu và kết thúc có thể được thiết lập bởi người xây dựngScarky khi tạo hay chỉnh sửa bài toán)
Thứ hai, khi xây dựng bài toán bạn đã đánh dấu mục Don’t show in
statistics (Không hiển thị trong mục thống kê) chính là bài toán riêng tư, tức là chỉ
riêng bạn được kiểm tra trong khi xây dựng
Còn nếu bài toán của bạn không xuất hiện trong RSS Scarky thì khả năngthứ ba là chưa có một ai gửi lời giải cho bài toán của bạn Những bài toán chỉ xuấthiện trong tin RSS nếu có ít nhất một người đã gửi câu trả lời cho bài toán
Trang 19Tất cả các bài toán mà bạn đã gửi sẽ được thống kê trong một bảng riêngđược gửi tới địa chỉ mail mà bạn đã chọn để liên kết.
Hình 2.3 Hình thống kê các bài toán mà bạn đã gửi tới
http://www.scarky.com 2.1.3 Các điều khoản sử dụng: Quy tắc, Bảo đảm, Tính pháp lý của Scarky
1 Việc thêm các bài tập và dùng nó trong trang web và blog cá nhân là tự
do, miễn phí Tuy nhiên, nếu việc đăng các bài tập để sử dụng vào mục đích kinhdoanh, thương mại thì các nhà cung cấp dịch vụ Scarky.com có quyền tính phídịch vụ với người sử dụng
2 Bên cung cấp dịch vụ Scarky.com không chịu trách nhiệm về nội dungcác bài tập do người dùng tạo ra, hay đối với nội dung bình luận mà người dùngđăng lên scarky
Trang 203 Nghiêm cấm sử dụng dịch vụ Scarky.com vào mục đích tuyên truyềnhình ảnh khiêu dâm, phân biệt chủng tộc, những lời lẽ thô tục, không có văn hóa.Người sử dụng đăng tải nội dung chứa các phần trên có thể phải chịu trách nhiệmtrước pháp lý
4 Theo điều khoản sử dụng, khi tạo các bài tập trên Scarky.com, ngườidùng phải chấp nhận để những người dùng khác trên Scarky.com sao chép bài tập
và sử dụng nó trên các trang Web khác Nhưng những người dùng khác không cóquyền được biết dữ liệu kiểm tra và mã nguồn
5 Bên cung cấp dịch vụ Scarky.com có quyền sử dụng tất cả các bài tậpđược đăng lên, mã nguồn và dữ liệu kiểm tra trong Sacrky.com, với mục đích duytrì, kiểm tra và phát triển dịch vụ của Scarky.com
6 Mặc dù đã cố gắng hết sức, nhưng Scarky.com không thể chắc chắnviệc đảm bảo khả năng tiện ích, ứng dụng và có thể không phù hợp với tất cả mụcđích sử dụng
7 Bên cung cấp dịch vụ Scarky.com không chịu trách nhiệm tài chính haybất cứ điều gì đối với thiệt hại, mất mát do việc sử dụng dịch vụ của Scarky.com,bao gồm những thiệt hại tới phần cứng và phần mềm của người dùng
8 Dịch vụ Scarky.com vận hành theo luật pháp Balan Khi sử dụngScarky.com, người dùng phải đồng ý bị rằng buộc bởi các điều khoản về dịch vụ
và điều khoản hợp lệ trong pháp luật Balan Nghiêm cấm sử dụng dịch vụ củaScarky.com nếu việc sử dụng này vi phạm pháp luật tại nước mà người dùng đangsinh sống, hoặc không tuân theo các điều khoản sử dụng theo quy định của phápluật trong nước của người dùng
9 Bên cung cấp dịch vụ Scarky.com có quyền thay đổi các điều khoảnnày bất cứ lúc nào
2.2 Cách xây dựng một bài toán lập trình trên http://www.scarky.com/
Việc tạo ra một bài toán lập trình trên Scarky là rất đơn giản Dưới đây làcác buớc chúng ta cần xây dựng:
Trang 21Bước 1: Truy nhập vào địa chỉ trang web http://www.scarky.com/builderGiao diện để xây dựng một bài toán lập trình sẽ được hiển thị trong trang web.
Bước 2: Hoàn thành các mục, các yêu cầu sau:
2.2.1 Basic configuration.
Hình 2.4 Giao diện Basic configuration
Hãy điền vào các mục đầu tiên:
bài toán sẽ được hiển thị trong mục số liệu thống kê của Scarky và widget trêntrang web của bạn
Trong bài toán thể loại lập trình, người dùng nên xác định và ghi rõ Input/Outputcủa bài toán, có thể xem trước nội dung bài toán sẽ đăng bằng cách sử dụng nút
lệnh Preview.
Challenge site: quy định địa chỉ trang web mà bạn đi tới để đặt các bài
toán của mình Ví dụ:
http://john.blog.com/2009/07/my-challengehttp://www.my-site.com/my-first-challenge http://www.johns-site.com/some
Trang 22Địa chỉ này sẽ được đặt trong các http://www.scarky.com/stats/sites/ (sốliệu thống kê Scarky) để tất cả thành viên của Scarky sẽ có cơ hội để tìm bài toáncủa bạn trên Scarky và sau đó giải quyết nó trên site của bạn.
http://www.my-site.com Nó sẽ xác định ai là tác giả bài toán Trong Statistics tất
cả các bài toán mà người dùng tạo ra sẽ được nhóm theo địa chỉ này Sử dụng lựa
chọn Use different site nếu muốn sử dụng một địa chỉ khác.
2.2.2 Logic
Hình 2.5 Giao diện Logic
Tiếp theo hoàn thành bốn mục:
chọn, đó là những ngôn ngữ lập trình người dùng được phép sử dụng để gửi các
lời giải của họ Có thể sử dụng lựa chọn: Select all để chọn tất cả các ngôn ngữ mà http://scarky.com cung cấp, hay Deselect all để bỏ lựa chọn.
Input (Dữ liệu vào): Người dùng có thể nhập dữ liệu Input trực tiếp
vào ô thông tin hoặc lựa chọn Upload file để tải lên một tập tin từ máy tính cho dữ
liệu kiểm tra đầu vào Dữ liệu này sẽ được gửi làm tiêu chuẩn cho các dữ liệu vàocủa các chương trình thử nghiệm (đáp án cho các bài toán của bạn)
Output (Dữ liệu ra): Người dùng có thể nhập dữ liệu Output trực tiếp
vào ô thông tin hoặc lựa chọn Upload file để tải lên một tập tin từ máy tính cho dữ
liệu đầu ra chuẩn Dữ liệu đầu ra này sẽ được sử dụng để so sánh với kết quả của
Trang 23 Rank Type (Loại xếp hạng): xác định bảng xếp hạng các đáp án của
người sử dụng sẽ được tính toán như thế nào và hiển thị trong Hall of Fame (bài toán đều có bảng xếp hạng riêng của mình gọi là Hall of Fame ) Các loại xếp
hạng là:
Standard binary, sort by date (Tiêu chuẩn nhị phân, sắp xếp theo
ngày) - kết quả có thể được chấp nhận hay không, mọi lời giải được sắp xếp theongày nộp (lời giải gửi đầu tiên được coi là tốt hơn)
Standard binary, sort by time (Tiêu chuẩn nhị phân, sắp xếp theo thời
gian) - kết quả có thể được chấp nhận hay không, kết quả này được sắp xếp theothời gian thực hiện (chương trình chạy nhanh hơn được coi là tốt hơn)
Standard binary, sort by memory (Tiêu chuẩn nhị phân, sắp xếp theo
bộ nhớ) - cũng tương tự kết quả có thể được chấp nhận hay không, các đáp án đềuđược sắp xếp bởi việc sử dụng bộ nhớ (chương trình sử dụng bộ nhớ ít hơn đượccoi là tốt hơn)
Minimum source length (Chiều dài tối thiểu của nguồn) - kết quả là
chiều dài của mã nguồn, trong byte (chương trình với mã nguồn nhỏ hơn được coi
là tốt hơn)
2.2.3 Additional settings
Hình 2.6 Giao diện Additional settings
Trang 24Và bây giờ phần còn lại của các mục:
án cho các bài toán của bạn Starts right away (bắt đầu ngay lập tức) nghĩa là bài
toán của bạn có thể sẵn sàng ngay lập tức cho các thành viên khác có thể giải bài
Kiểm tra Last forever (kéo dài mãi mãi) nếu bạn muốn để bài toán không bao giờ
kết thúc
Start date (Ngày bắt đầu): xác định thời gian bắt đầu để người dùng có
thể gửi các đáp án cho các bài toán
End date (Ngày kết thúc): xác định thời gian kết thúc mà người dùng có
thể gửi các đáp án cho các bài toán
chọn này nếu bài toán của bạn đang được sử dụng với mục đích thử nghiệm và bạnkhông muốn để bài toán xuất hiện trong trang thống kê bài toánhttp://www.scarky.com/stats/sites/ Bài toán sẽ không được hiển thị trong thống kênhưng nó vẫn sẽ có đầy đủ chức năng Sử dụng tùy chọn này khi bài toán của bạnđang thử nghiệm
Resource: mô tả nguồn gốc của những bài toán Nó có thể là địa chỉ
của một trang web hoặc đánh giá trực tuyến, hoặc đơn giản là tên của bạn Nếu bài toán của bạn dựa trên một trang web đánh giá trực tuyến, chọn tên của nó
từ danh sách thả xuống Nếu bạn chọn lựa chọn bài toán My own challenge (của
riêng tôi) sau đó địa chỉ trang chủ của bạn sẽ được coi như nguồn tài
nguyên Chọn Other (khác) để xác định tài nguyên tùy chỉnh, có thể là địa chỉ của
một trang web đánh giá trực tuyến, tên của bạn
bài toán, Scarky xây dựng sẽ tạo ra liên kết và mã html cho bạn nhập vào emailcủa bạn nếu bạn muốn nhận được các liên kết và mã html của các bài toán
Khi bạn hoàn thành tất cả các lĩnh vực cần thiết, nhấn nút Save challenge
(Lưu bài toán) Bạn sẽ thấy một liên kết và mã HTML được tạo ra Liên kết là cần
Trang 25không bạn sẽ không thể chỉnh sửa các bài toán và giữ nó an toàn để không ai cóthể thay đổi bài toán của bạn Nếu muốn, bạn cũng có thể xem trước ví dụ tại mụcblog.scarky.com in the Sample challenges Sau khi tạo bài tập, bạn chỉ cần saochép bài tập đã tạo vào trang web hoặc blog của mình và thế là xong Người sửdụng truy cập vào trang web của bạn có thể xem trước bài tập, gửi lời giải, vàkiểm tra các câu giải mã xếp hạng mục top đầu tiên
2.3 Cách gửi lời giải cho bài toán lập trình
Trong tab bài toán, nội dung của các bài toán được hiển thị Nội dung củamột bài toán lập trình thường bao gồm: Mô tả vấn đề, Input, và Output của bàitoán
2.3.1 Ví dụ về cách gửi lời giải cho bài toán lập trình
2.3.1.1 Mô tả vấn đề
Người hàng xóm của Harry là một người phụ nữ nuôi rất nhiều mèo Cô ta
đã nhờ Harry mua thức ăn cho những con mèo đó Điều đặc biệt là những con mèonày chỉ ăn bánh rán
Vì vậy, người hàng xóm muốn Harry mang chính xác cho mỗi vật nuôi của
cô một chiếc bánh rán Cô có c con mèo Harry có một ba lô nhưng Harry là mộtcậu bé, cậu chỉ có thể mang được k kg bánh Harry biết rằng mỗi chiếc bánh rántrọng lượng w kg Hãy giúp cậu bé xem có nên quyết định đi đến siêu thị và muathức ăn cho những con mèo hay là bỏ cuộc
t dòng có chứa từ "yes" nếu Harry có khả năng xử lý được nhiệm vụ hoặc
"No" nếu lượng bánh rán quá lớn khiến Harry không mang được
2.3.1.4 Example
Input:
Trang 26Nếu bạn muốn giải bài toán trên, đầu tiên viết một lời giải Sau khi đọc mô
tả về các dữ liệu, những dữ liệu quan trọng của bài toán là: c, k và w
Mã trình trong C++ được bắt đầu bằng:
# Include <stdio.h>
int main () {
Variables:
t: các trường hợp thử nghiệm
c, k, w: dữ liệu đầu vào
Bài toán yêu cầu nhập vào mỗi số nguyên nhỏ hơn hoặc bằng 100 nên sửdụng 32 bit là đủ lớn để xử lý tất cả các trường hợp tính toán (thậm chí có thể sửdụng 16bit là đủ)
}
Và chương trình chính là:
Trang 27printf ("yes \ n");
else
printf ("no \ n");
2.3.2 Lưu ý
Gửi lời giải cho bài toán bằng cách dán mã vào trường văn bản được cung
cấp trong mục Paste the answer here hoặc Upload file (tải các tập tin mã nguồn lên) Bạn có thể kiểm tra tùy chọn Reserve this nick for me cho phép bạn bảo lưu
nick để chỉ có bạn mới có thể sử dụng nó, chỉ cần cung cấp mật khẩu sau khi bạngửi câu trả lời Nick sẽ được dành riêng cho các bạn trên toàn cầu và bạn sẽ có thể
sử dụng nó trong mọi bài toán trên Scarky
Chú ý: Mật khẩu sẽ được mã hóa trong cơ sở dữ liệu của hệ thống nên hãynhớ nó hoặc viết nó xuống, kể từ sau khi bạn gửi câu trả lời của bạn sẽ không cókhả năng để lấy lại mật khẩu Việc đưa ra các mật khẩu là không bắt buộc Nhữngphản hồi và những đề nghị, gợi ý được gửi bởi người dùng không cung cấp mậtkhẩu là vô danh Không ai có thể xem câu trả lời của bạn hoặc xem mã nguồn bạn
đã gửi
Sau khi đã hoàn tất các công việc trên hãy chọn trình ngôn ngữ của bạn và
nhấp vào nút Send solution (Gửi lời giải) Sau đó bạn sẽ thấy một màn hình với kết
quả chương trình của bạn Khi bạn gửi một mã nguồn, chương trình của bạn đượcbiên dịch, chạy và đánh giá trên máy chủ Scarky Vài phút sau khi nộp lời giải,bạn sẽ nhận được kết quả Quá trình này có thể kết thúc bằng nhiều cách:
1 AC - chấp nhận - chương trình của bạn chạy thành công và đã đưa ra mộtcâu trả lời đúng
2 WA - câu trả lời sai - chương trình của bạn chạy thành công, nhưng đãđưa ra một câu trả lời sai
3 TLE - chương trình của bạn vượt quá thời hạn, nó đã được biên dịchthành công nhưng đã không dừng lại trước khi thời hạn kết thúc
4 CE - lỗi biên dịch Chương trình của bạn không thể được biên dịch, lưuý: chỉ có một số ngôn ngữ có thể cung cấp cho CE: lỗi cú pháp trong ngôn ngữ
Trang 28thông dịch có thể dẫn đến WA (Python không kiểm tra cú pháp trước hoặc Perl
-CE chỉ sau khi kiểm tra cú pháp cơ bản)
5 RE - lỗi thời gian chạy chương trình của bạn đã được biên dịch thànhcông, nhưng nó đã thoát với một lỗi, mã số có thể là:
SIGSEGV (tín hiệu 11) – lỗi phổ biến nhất, phân khúc lỗi - chỉ số củamảng, là một từ viết tắt của “segmentation violation” Thường nhận được mộtSIGSEGV khi điều kiện bao gồm dereferencing một null hoặc uninitialized contrỏ, hoặc khi bạn sử dụng một con trỏ cho một mảng, nhưng không kiểm tra kếtthúc của mảng Nó thay đổi giữa các hệ thống cho dù dereferencing một con trỏnull tạo ra `SIGSEGV 'hoặc` SIGBUS'
SIGXFSZ (tín hiệu 25) - giới hạn số lượng đầu ra vượt quá
SIGFPE tín hiệu lỗi dấu chấm động như chia phân số không, vv
SIGABRT (tín hiệu 6) - nêu ra bởi các chương trình chính nó, C + +STL hiện nó theo một số điều kiện
NZEC (exit code khác không) – lỗi với ngôn ngữ thông dịch khác - cónhững lỗi khác mà có thể làm chương trình dừng lại
Khó khăn về bộ nhớ và thời gian cho các đáp án thể loại lập trình: Bộ nhớgiới hạn cho mỗi lời giải là 256MB Giới hạn thời gian cho mỗi lời giải là 5 giây
2.4 Cách tạo và gửi lời giải cho bài toán lập trình
Để gửi một bài toán trên http://scarky.com ta làm các bước như đã trình bàytrong phần xây dựng một bài toán thể loại lập trình
Trang 29Hình 2.7 Giao diện đăng nhập khi xây dựng một bài toán lập trình
Ví dụ ta muốn gửi một bài toán có tên là “Tính tổng của 2 số nguyên A, Bvới A, B nhập từ bàn phím” ta sẽ xây dựng như sau:
2.4.1 Xây dựng bài toán
Trước hết, ta cần xác định được bài toán cần xây dựng Ở đây bài toán mà
ta muốn xây dựng là “Tính tổng của 2 số nguyên A, B với A, B nhập từ bànphím” Sau đó ta điền đầy đủ thông tin về bài toán như: Mô tả vấn đề, Input,Output
Ví dụ bài toán: Tính tổng của 2 số nguyên A, B
Trong mục Basic configuration, ta điền các nội dung sau:
Trang 30Hình 2.8 Giao diện Basic configuration của bài toán tính tổng 2 số
Trang 31Tiếp theo đến mục Logic, chúng ta cần hòan thành bốn nội dung chính:
Hình 2.9 Giao diện Logic của bài toán tính tổng 2 số
Lưu ý ở phần lựa chọn ngôn ngữ (Languages) cho bài toán của mình, ta có
thể lựa chọn đánh dấu tất cả hoặc có thể chỉ lựa chọn một số ngôn ngữ để khingười gửi đáp án có thể lựa chọn ngôn ngữ mình sử dụng để viết mã nguồn
Trong mục Input, Output ta phải điền ví dụ cho kết quả đúng khi chạy
chương trình Nếu không làm đúng mẫu đến khi chạy chương trình sẽ cho ta mộtkết quả sai
Trang 32Hình 2.10 Giao diện Additional settings của bài toán tính tổng 2 số nguyên
Điều thú vị khi xây dựng bài toán trên http://scarky.com đó là có rất nhiềutiện ích mà bạn có thể ứng dụng trong giảng dạy Ví dụ như, khi xây dựng bài toán
trong mục Rank Type (Loại xếp hạng) người gửi có thể sử dụng các lựa chọn
để xác định bảng xếp hạng các đáp án của những người có lời giải cho bài toán tùy
theo mục đích của từng người gửi bài và sẽ được hiển thị trong Hall of Fame Lựa
chọn cách sắp xếp thứ hạng theo Tiêu chuẩn nhị phân, sắp xếp theo ngày - kết quả
có thể được chấp nhận hay không, kết quả được sắp xếp theo ngày nộp (lời giảigửi đầu tiên được coi là tốt hơn) Hay đối với những người gửi bài là giáo viênmuốn phân loại học sinh giỏi dựa vào kết quả của lời giải thì có thể sử dụng lựachọn sắp xếp theo Tiêu chuẩn nhị phân, sắp xếp theo thời gian - kết quả sẽ đượcsắp xếp theo thời gian thực hiện (chương trình chạy nhanh hơn được coi là tốthơn) Ngoài ra có thể lựa chọn sắp xếp theo Tiêu chuẩn nhị phân, sắp xếp theo bộnhớ - cũng tương tự kết quả có thể được chấp nhận hay không, các đáp án đượcsắp xếp bởi việc sử dụng bộ nhớ (chương trình sử dụng bộ nhớ ít hơn được coi làtốt hơn) Hoặc xếp hạng lời giải theo Chiều dài tối thiểu nguồn - kết quả là chiềudài của mã nguồn (chương trình với mã nguồn nhỏ hơn được coi là tốt hơn)
Hơn nữa, nếu muốn kiểm tra mức độ làm bài của HS, người gửi có thể sử
dụng lựa chọn thời gian bằng cách xác định Start date (ngày bắt đầu) và End date
(ngày kết thúc) cho bài toán của mình để bài toán chỉ có thể hoạt động trong mộtkhoảng thời gian cho phép
Trang 33Sau khi hoàn tất các nội dung cần thiết ta chọn nút lệnh Save challenge để
lưu lại bài toán của mình Một liên kết và mã html được tạo ra (hình vẽ)
Hình 2.11 Liên kết và mã html được tạo ra sau khi lưu bài toán
Liên kết là cần thiết để sửa đổi hay xóa các bài toán, vì vậy không để mấtliên kết này nếu không bạn sẽ không thể chỉnh sửa để xóa các bài toán và giữ nó
an toàn nếu không bất cứ ai cũng có thể chỉnh sửa bài toán của bạn
Và sẽ có một thông báo gửi đến địa chỉ mà bạn đã đăng kí để liên kết Bạn
có thể sửa, xóa bài toán của mình