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
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
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
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.
http://vnoi.info/ 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 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ô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 http://vnoi.info/
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
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ê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ư http://vnoi.info/ 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 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ạ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
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
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 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
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ụ:
http://john.blog.com/2009/07/my-challenge
http://www.my-site.com/my-first-challenge
http://www.johns-site.com/some
19 19
Đị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á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ụ
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:
• Languages (Ngôn ngữ): có rất nhiều ngôn ngữ cho người dùng lựa chọn, đó
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
http://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.
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ó
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");