Tải bản đầy đủ (.docx) (66 trang)

Tìm hiểu môi trường lập trình online và ứng dụ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 (1006.28 KB, 66 trang )

Luậ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
1 1
DANH MỤC HÌNH VẼ
2 2
LỜ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 Internet
trong giảng dạy và học tập là rất cần thiết. Internet đã đóng một phần quan trọng
trong 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òn
mớ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ối
Internet để 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ầng
lớ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ày
giú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 khi
tham 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ất
lượ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 tham
gia 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 đưa
lê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 online
và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à đặc
biệ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 online
trong 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ập


trình online và ứng dụng” là hướng nghiên cứu cho luận văn của mình.
2. Mục đích nghiên cứu
- Bước đầu tìm hiểu về môi trường học online và ứng dụng của nó trong
việc học lập trình.
- Tìm hiểu về cách hoạt động của một số trang web học lập trình trực tuyến.
3 3
- Thiết kế site bài tập cho học sinh để giải quyết một số bài toán pascal
trong 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ủa
môn Tin học ở trường phổ thông, vai trò của ngôn ngữ lập trình Pascal trong
chươ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 web
: Giới thiệu chung về trang web , 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ài toán.
Chương 3: Ứng dụng tạo site bài tập cho học sinh THPT trong việc giải
quyế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
toán pascal trong chương trình tin học lớp 11.
4 4
Phụ lục: Giới thiệu và trình bày một số trang web khác trong việc làm các
bà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ực
hiệ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
5 5
Chươ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ương
phá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 cho
học sinh.
Trong hệ thống các môn học ở trường phổ thông, tin học còn hỗ trợ cho
hoạ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 ra
mô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ến
thứ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
xã hội [2].
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

Trong chương trình tin học 11, HS được học những kiến thức cơ bản về lập
trình. Các khái niệm về: lập trình, thuật toán, cấu trúc dữ liệu,… Một số khái niệm
về ngôn ngữ lập trình, kĩ năng ban đầu lập trình một số bài toán đơn giản thông
qua một ngôn ngữ lập trình cụ thể đó là Turbo Pascal.
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 HS
khối 11 trong những năm gần đây. Nó là ngôn ngữ cơ sở để giới thiệu cho HS làm
quen 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
vững các thành phần cơ bản, hiểu rõ các yếu tố cú pháp của ngôn ngữ lập trình
6 6
Pascal 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ựng
chươ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ào khẳng
định được những cố gắng vượt bậc và đã đạt được những thành tích quan trọ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òn yế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ọn hợ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ác
khó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ống
thô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ọc
viê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ập

phong 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ện
thườ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ình
thứ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ủa
cá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ập
trì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 web
dạ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
7 7
vự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ọc
lậ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 online
cũng khá đa dạng, có thể học qua video, powerpoint, hình ảnh hoặc âm thanh, làm
bà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ọc
truyề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ới
cô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ọc phong
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 quan tâ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, được minh
họa thực tế.
- Cung cấp các dạng bài tập nhanh chóng, tiện lợi.
8 8
1.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ọc
online. Trong các trang mạng có quá nhiều thứ hấp dẫn, dễ bị mất định hướng nếu
ngườ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à thu
nạ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ình
yếu nhất.
Đồng thời, học online không giúp đánh giá được hết trình độ và khả năng
củ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 trang
web 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 cho
nhữ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ới
họ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át
huy 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 được
triển khai đầy đủ. Một số hoạt động điển hình về ứng dụng CNTT trong dạy học

hiệ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ư MS
POWERPOINT, 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.
9 9
Đặ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ôi
trường học tập online như một phương tiện để giao lưu, học hỏi. Môi trường
online 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 tham
gia 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ài
toán lập trình.
o/ là trang web Olympic Tin học Việt Nam. Đây là một trang
web 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ác
cuộc thi Olympic. Trên o/ đượ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ông
báo, tán gẫu trao đổi giữa các thành viên [6].
Hình 1.1. Giao diện trang web o/
10 10
Mụ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, 7

chuyên mục (cập nhật ngày 20/4/2013). Hơn nữa, VNOI còn đưa ra cụ thể tên
thà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 o/ là có sự xếp hạng giữa các thành viên
bằ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. o/ sẽ chỉ ra cụ thể thành viên xuất sắc nhất
trong 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ắc
nhất, Topcoder Việt Nam, đồng thời có bảng liệt kê cụ thể danh tiếng của các
thà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ủa
cá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
o/
Hai trang bài tập chính thức của Vnoi là VOJ và N. VOJ là trang giải bài
trự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
11 11
sá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ách
bà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ân
loạ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ủa
VOJ, các thành viên có thể xem giải thưởng mình đạt được trong phần Giải
thưở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 danh
sá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,
o/ 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ủa Vnoi.
o/ 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ư
, [11]

Hình 1.3. Giao diện của trang web
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ên
dị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
phổ thông. Muốn đáp ứng nhu cầu dạy học phân cấp cho phù hợp với trình độ của
12 12
HS, thì GV phải trả phí dịch vụ và cũng thường không chủ động trong thiết kế nội
dung giảng dạy. Một số trang web lập trình như o/ có nhiều ưu điểm
như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ên
dị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ết một website như vậy.

13 13
Chươ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 ra
nhiề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ó cho
phé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ủa
riê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
Không giống như những trang web khác, những bài tập mà bạn có thể tạo
trê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ác
nhau theo các cấp độ sau:
14 14

• Rất đơn giản, ví dụ các trò chơi ô chữ, sudoku, bài toán lập trình và các câ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ới chương trình của
riêng bạn (chương trình để kiểm tra các chương trình khác) được viế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án bạ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 được
tạ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ích
toá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ên
Scarky 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ành
viê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án
họ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

15 15
2.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ập
vào địa chỉ trang web và làm theo hướng dẫn tạo
yêu cầu. Nếu muốn, người dùng cũng có thể xem trước ví dụ tại mục
www.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 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 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ủa

bạ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ài
tậ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ười
tạ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ện
trong 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 gian
bạ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ủa
Scarky 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ủa bà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ựng
Scarky 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ăng
thứ 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ất
hiệ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.
16 16
Tấ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

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 kinh doanh,
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 dung cá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.
17 17
3. Nghiêm cấm sử dụng dịch vụ Scarky.com vào mục đích tuyên truyền hì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ệm trướ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ười dù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 duy trì, 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ắn việ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 hay bấ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ụng Scarky.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ủa Scarky.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 đang sinh sống, hoặc
không tuân theo các điều khoản sử dụng theo quy định của pháp luậ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ản nà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 />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:
Bước 1: Truy nhập vào địa chỉ trang web
Giao diện để xây dựng một bài toán lập trình sẽ được hiển thị trong trang web.

18 18
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:
• Title (Tiêu đề): Cần điền tên bài toán sẽ được tạo trong mục này. Tê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ên trang
web của bạn.
• Content (Nội dung): Mô tả nhiệm vụ của người làm bài.
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/Output
củ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ụ:
/>
/>19 19
Địa chỉ này sẽ được đặt trong các (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án
của bạn trên Scarky và sau đó giải quyết nó trên site của bạn.
1. Home page (Trang chủ): là địa chỉ của trang web như home/blog, ví dụ
. 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:
• Languages (Ngôn ngữ): có rất nhiều ngôn ngữ cho người dùng lựa 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à
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ào củ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 các
chương trình thử nghiệm.
20 20
• 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 theo ngà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 theo
thờ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 được
coi 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
21 21
Và bây giờ phần còn lại của các mục:
 Duration: chọn khoảng thời gian người dùng sẽ được phép gửi các đáp á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.
 Don’t show in statistics (Không hiển thị trong thống kê): kiểm tra tùy 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ạn không
muốn để bài toán xuất hiện trong trang thống kê bài toán
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.
 Send me links (Gửi cho tôi liên kết): khi bạn hoàn thành việc tạo ra các 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 email củ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
thiết để sửa đổi hoặc xóa các bài toán, vì vậy: Không để mất liên kết này nếu
khô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ó
22 22
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ục
blog.scarky.com in the Sample challenges. Sau khi tạo bài tập, bạn chỉ cần sao

ché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ủa
một bài toán lập trình thường bao gồm: Mô tả vấn đề, Input, và Output của bài
toá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èo
nà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ột
cậ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án
trọ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à mua
thức ăn cho những con mèo hay là bỏ cuộc.
2.3.1. 2. INPUT
Trên dòng đầu tiên của đầu vào là một số nguyên t (t <= 100) tương ứng
với số lượng các bài test (Harry được yêu cầu mua bánh rán t lần). Trên mỗi dòng
có chứa ba số: c, k và w (1 <= c, k, w <= 100)
2.3.1.3. OUTPUT
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:
3
23 23
5 15 3
1 5 4

13 25 2
Output:
yes
yes
Nế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à đủ).
int t, c, k, w;
Nhập dữ liệu đầu vào và kết thúc chương trình:
scanf ("% d", & t);
while (t) {
scanf ("% d% d% d", & c, k, w);
/* Viết chương trình chính*/
}
return 0;
}
Và chương trình chính là:
if (c * w <= k)
printf ("yes \ n");
24 24
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ạn
gử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ãy
nhớ 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ững
phản hồi và những đề nghị, gợi ý được gửi bởi người dùng không cung cấp mật
khẩ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 được
biê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ột
câ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ịch
thà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ữ
25 25

×