TNU Journal of Science and Technology
229(03): 366 - 372
http://jst.tnu.edu.vn 366 Email: jst@tnu.edu.vn
APPLICATION OF THE R LANGUAGE IN DEVELOPING DIGITAL
DOCUMENTATION FOR INFORMATION TECHNOLOGY STUDENTS
Doan Quang Duy1, Tran Quang Quy2*, Le Anh Tu2, Phan Thi Cuc2
Mong Quoc Tuan2, Dang Thuong Hoai Linh2, Le Hong Thu2
1Ho Chi Minh Communist Youth Union of Thai Nguyen province
2TNU - University of Information and Communication Technology
ARTICLE INFO
ABSTRACT
Received:
26/02/2024
Currently, there is a wide range of diverse and extensive learning materials
available in the field of information technology. These include traditional
textbooks, online resources, scientific articles, specialized journals, and
instructional materials from technology service providers and
manufacturers. However, the selection and evaluation of learning
materials in the field of information technology pose a challenge due to
the rapid development of technology and continuous changes in this field.
Materials can quickly become outdated or no longer suitable. The purpose
of the research in this article is to propose an approach to utilizing current
open-source tools for building digital learning materials, enabling students
to easily acquire knowledge during their study and research in the field of
information technology. In this article, the authors present the application
of the R and Markdown languages and the "reproducible research"
method to refine a digital documentation process. The results of the
research include digital learning materials that are currently being used by
students majoring in Information Technology at the University of
Information and Communication Technology - Thai Nguyen University.
Revised:
31/3/2024
Published:
31/3/2024
KEYWORDS
Digital documentation
Information Technology
R language
Markdown
Reproducibility
NG DNG NGÔN NG R XÂY DNG TÀI LIU S DÀNH CHO SINH VIÊN
CHUYÊN NGÀNH CÔNG NGH THÔNG TIN
Đoàn Quang Duy1, Trn Quang Quý2*, Lê Anh Tú2, Phan Th Cúc2
Mông Quc Tun2, Đặng Thương Hoài Linh2, Lê Hng Thu2
THÔNG TIN BÀI BÁO
TÓM TT
Ngày nhn bài:
26/02/2024
Hin nay, tài liu hc vng ngh thông tin rất đa dng phong phú.
Bao gồm trong đó từ sách giáo trình truyn thng cho đến tài liu trc
tuyến, các bài viết khoa hc, tp chí chuyên ngành và tài liu hướng dn
t các nhà cung cp dch v nhà sn xut công ngh. Tuy nhiên, vic
la chn đánh giá tài liệu học trong lĩnh vực ng ngh thông tin
cũng đặt ra mt thách thức đó sự phát trin nhanh chóng ca công
ngh s thay đi liên tục trong lĩnh vực này, tài liu th nhanh
chóng tr nên li thi hoc không n php. Mục đích của nghiên
cu trong bài báo này nhm đưa ra phương pháp tiếp cn các ng c
mã ngun m hin nay trong vic xây dng tài liu s giúp sinh viên có
th d dàng tiếp thu kiến thc trong quá trình hc và nghiên cu chuyên
ngành v công ngh thông tin. Trong bài viết này, nhóm tác gi trình
bày v ng dng ca ngôn ng R Markdown phương pháp
“nghiên cu kh lặp” để hoàn thin mt quy trình xây dng tài liu s.
Kết qu ca nghiên cu c tài liu s đã đang được s dng cho
sinh viên chuyên ngành Công ngh thông tin tại Trường Đi hc ng
ngh Thông tin Truyn thông - Đại hc Thái Nguyên.
Ngày hoàn thin:
31/3/2024
Ngày đăng:
31/3/2024
T KHÓA
Tài liu s
Công ngh thông tin
Ngôn ng R
Markdown
Kh lp
DOI: https://doi.org/10.34238/tnu-jst.9781
* Corresponding author. Email: tqquy@ictu.edu.vn
TNU Journal of Science and Technology
229(03): 366 - 372
http://jst.tnu.edu.vn 367 Email: jst@tnu.edu.vn
1. Gii thiu
Mt trong những kkhăn chính khi học công ngh thông tin là tốc độ phát trin nhanh chóng
của lĩnh vực này bên cnh s gia tăng theo cp s mũ của d liu ln [1]. Tốc độ phát trin này
th dẫn đến s lc hu li thi v công ngh ca bt k ni dung hoc kiến thc nào
người hc tìm hiểu đưc khi tiếp cn, yêu cầu đặt ra với người hc v tính kiên trì kh năng
cp nht công ngh mới trong lĩnh vực công ngh thông tin luôn cn thiết hơn bao giờ hết. Hơn
na, công ngh thông tin yêu cu mt s tập trung cao đi vi chi tiết s chính xác. Mt sai
sót nhth dẫn đến hu qu ln trong vic phát trin phn mm hoc qun lý h thng [2]. Do
đó, người hc cn có kh năng kiên nhẫn và s t m trong quá trình hc tp và làm vic.
Lp trình là mt k năng quan trọng và không th thiếu trong ngành công ngh thông tin. Sinh
viên thường gp phi nhiu thách thc khi hc thc hành lp trình, mt trong các lý do có th
k đến như:
1. Khó khăn về pháp ngôn ng lp trình: Mi ngôn ng lập trình đều pháp quy
tc riêng. Sinh viên mi hc lp trình thường phải đi mt vi vic hiu và s dụng đúng cú pháp của
ngôn ng. S thiếu tng tin hoc sai t nh trong pháp th dn đến li trong chương trình [3].
2. Qun thi gian: Lp trình yêu cu s kiên nhn tập trung. Sinh viên thường phi dành
nhiu thời gian để nghiên cu và thc hành lp trình. Tuy nhiên, vic qun lý thi gian hiu qu
mt thách thức đối với sinh viên, đặc bit khi h phi x nhiu bài tp và d án cùng mt lúc [4].
3. Cp nht công ngh mới: Lĩnh vc lp trình liên tc phát trin và cp nht. Sinh viên cn theo
dõi và nm bt nhng công ngh mới, thay đổi trong ngành để không b lc hậu. Điều này đòi hỏi
sinh viên phi có kh năng tự hc và nghiên cu liên tục để cp nht kiến thc và k năng [5].
Vic xây dng mt tài liu s phù hp vi chuyên ngành công ngh thông tin và đảm bo tính
đầy đủ, din t lại được quy trình và các thao tác lp trình giúp sinh viên hiu rõ và nm bắt được
toàn b quá trình ca mt bài toán lp trình luôn nhng thách thc rt lớn đối với người hc.
Mt khía cạnh khó khăn khác khi s dng tài liu s là thiếu s tương tác và phản hi trc tiếp t
ging viên. Sinh viên có th gặp khó khăn trong việc giải đáp thắc mắc vướng phi nhng ni
dung không người giải đáp. Vớic nội dung như trên, vic xây dng tài liu s phù hp bao
gm các thông tin cn thiết đối với người học, giúp người hc t kh năng học tp, thc hành
là điều vô cùng cn thiết. Xây dng tài liu s theo phương pháp nghiên cứu kh lp là mt trong
các phương pháp được đánh giá tốt và mang li s ch động đối vi sinh viên khi hc tp, nghiên
cu [6] - [8]. Mục đích ca nghiên cu này là tìm hiu v ng dng ca ngôn ng phân tích thng
kê s liu R và ngôn ng Markdown trong to ra các dng bài hc có tính kh lp và có kh năng
lưu trữ nhiều định dng khác nhau.
2. Phương pháp nghiên cu
2.1. Khái nim v nghiên cu kh lp
Phương pháp nghiên cứu theo hướng kh lp không ch có báo cáo kết qu nghiên cu mà còn
bao gồm đầy đủ các bước thc hiện, đồng thi công b các thông tin cn thiết (d liu, thut toán
s dụng,…) để người khác th tiến hành li nghiên cu nhm xác nhận tính đúng đn m
rng nghiên cu da trên nn tng nghiên cứu cũ. Trong trường hợp này, “khả lặp”
(“reproducible” hay “reproducibility”) mang nghĩa có kh năng lặp li, kh năng thực hin li
các ni dung đã được công b [7], [8].
Theo hình nghiên cu kh lp (Hình 1) do Roger D. Peng [9] đề xuất, người làm nghiên
cu s định ra các bước làm theo mt trình t nhất định:
- Đặt ra câu hi cho bài toán nghiên cu, tìm hiu ngun ly d liu và thu thp d liu thô.
- Chun b d liu, thao tác tin x lý và phân tích d liu.
- Đưa ra các phương pháp tính toán thống cn thiết, đáp ng u hi ca bài toán nghiên
cứu, đưa ra các thư viện thao tác d liu cn thiết và các bước chi tiết trong phân tích d liu.
- Thc hin các tính toán thng kê cn thiết và ước lượng các tham s.
TNU Journal of Science and Technology
229(03): 366 - 372
http://jst.tnu.edu.vn 368 Email: jst@tnu.edu.vn
- Hin th kết qu đạt đưc thông qua mt s phương thức như: Dạng bng, dng biểu đ trc
quan, dng báo cáo tóm tt thng kê s tng quan.
- Đưa kết qu hin th tới người đọc thông qua dng báo cáo khoa hc, dng ni dung text.
Người đọc khi tiếp cn quy trình phát trin nghiên cu kh lp kh năng tái tạo lại được các
kết qu nghiên cứu trước đó, thực hin các ni dung t các quy trình nh nht ti các nh
tính toán phc tp.
Hình 1. Quy trình phát trin ca nghiên cu kh lp
Áp dng nghiên cu kh lp trong vic xây dng tài liu s một hướng tiếp cn khoa hc
hiu qu đ ci thin quá trình cht lượng ca tài liu. Pơng pháp kh lp cho phép các nhà
nghiên cu nhà phát trin i liu tiến hành lp lại các giai đoạn quan trng trong quy trình xây
dựng, đánh giá và cải tiến ni dung, cu trúc hình thc truyn ti ca i liệu. Điều quan trng
khác nghiên cu kh lp mang li kh năng thích nghi vi s tiến b ca công ngh. Trong
nh vực y dng i liu s, công ngh không ngng phát triển và mang đến nhng công c
phương pháp mi. Áp dng nghiên cu kh lp cho phépc nnghiên cu, ging viên th nghim
đánh giá các công nghệ mi như ng cụ to tài liu, hình thc truyn ti nn tng trc tuyến.
Điu y giúp to ra tài liu s linh hot, d tiếp cn và phù hp vi s phát trin ca công ngh
[10]. Bên cnh đó, giảng viên to hc liu s t phương pháp kh lp có rt nhiu li ích mang li:
1. Bng cách áp dụng phương pháp nghiên cu kh lp, ging viên có th lp lại các giai đoạn
trong quy trình xây dng tài liệu, như thu thập thông tin, chnh sa code trc tiếp tái tạo văn
bản,.... Điều này giúp ci tiến quy trình để tăng tính hiu qu và chất lượng ca tài liu.
2. S dụng phương pháp kh lp, ging viên viên th tiến hành các phiên bn tài liu khác
nhau vi ni dung cấu trúc khác nhau. Qua quá trình đánh giá cải tiến, ging viên th
tìm ra cách tt nhất để t chc trình bày thông tin trong tài liệu đ đạt được s ràng d
tiếp cn cho sinh viên.
3. Áp dng nghiên cu kh lp cho xây dng tài liu s cho phép ging viên th nghim
đánh giá những công ngh mới, như công cụ xây dng tài liu, hình thc truyn ti (ví d: ebook,
ng dụng di động) nn tng trc tuyến. Điều này giúp cp nht áp dng những xu hướng
công ngh mi vào công vic xây dng tài liu.
2.2. Tìm hiu v R và Markdown
Ngôn ng R mt ngôn ng lập trình môi trường tính toán ph biến trong lĩnh vực thng
kê và khoa hc d liệu. R được phát trin bi các nhà khoa hc và k trong cộng đồng nghiên
cứu, đã trở thành mt công c quan trng cho vic phân tích s liu, x d liu biu
đồ hóa kết qu nghiên cu. Mt trong những đặc điểm ni bt ca ngôn ng R là tính linh hot và
tích hp sn ca nó. R cung cp mt lot các gói phn mềm thư viện mnh mẽ, giúp người
dùng thc hiện các phương pháp thống phc tp hình hóa d liệu. Điều này cho phép
các nhà nghiên cu nhà phân tích d liu tùy chnh m rng kh năng tính toán ca môi
trưng R theo nhu cu c th ca h.
TNU Journal of Science and Technology
229(03): 366 - 372
http://jst.tnu.edu.vn 369 Email: jst@tnu.edu.vn
Markdown ngôn ng đánh dấu văn bản đã mặt t rt lâu, với pháp đơn giản, d hiu
nên đã được nhiều người biết đến được s dng khá ph biến. Đây là loại ngôn ng đánh dấu
văn bản được tạo ra vào năm 2004 bởi John Gruber. Mt trong nhng mc tiêu ct lõi ca
Markdown cho phép d đọc hơn khi so sánh với các dạng trình bày đánh dấu văn bản khác.
Điu này làm cho vic viết Markdown đọc Markdown tr nên rất đơn giản như một văn
bn thuần túy. Markdown được coi như một công c s dng rng rãi nhm to ra tài liu t
động, tái lp chia s được, như các báo cáo. có th to ra kết qu dng thng s hoc
dạng tương tác, các định dạng Word, PDF, HTML và các định dng khác [11].
Rmarkdown s kết hp gia Markdown ngôn ng lp trình thng R, trong quá trình
trình bày báo cáo khoa hc gia các ni dung lý thuyết, người làm nghiên cu có th đan xen vào
đó các phép tính toán và được mô t bng các dòng code thc thi tính toán thống kê để đưa ra kết
qu dng s hoc dng bng biu, biểu đồ trực quan. Điều này giúp cho người đọc được tường
minh nm bắt được d dàng hơn rt nhiu khi h phi ln tìm nhng thông tin liên quan đến
cơ sở lý thuyết, cách trin khai và áp dng vào thc tế tính toán. Tt c nhng nội dung đó đều có
th din gii tt thông qua nghiên cu kh lp và s dng Rmarkdown.
3. Kết hp R và Markdown
3.1. Quá trình hình thành tài liu s
Mt quy trình kết hp ngôn ng lp trình tính toán thống kê R và Markdown để to ra tài liu
s th đưc phng bởi quá trình như Hình 2 [13], đây quy trình thực hin to ra mt tài
liu s s dụng phương pháp nghiên cu kh lp, các dng file cha các thông tin bao gm
văn bản (text), code thc thi của chương trình và kết qu đều được s dng trong quy trình này:
Hình 2. S dng R và Markdown
- RMarkdown: mt biến th ca Markdown ch dành riêng cho ngôn ng R - cho phép
người dùng son mt tài liu s dụng Markdown để to ch cũng như nhúng lập trình R
hin th kết qu đầu ra. Các tệp RMarkdown có đuôi „.Rmd‟.
- knitr:một thư viện dành riêng cho R, thư viện này s đọc các đoạn mã lnh (code), thc
thi chúng, kết hp chúng vào li tài liu. Các kết qu như số liu thng kê, nh v, biểu đồ
trc quan s đưc hin th kết hp.
- Markdown không ch th kết hp vi riêng R còn th kết hp vi rt nhiu các
ngôn ng khác. Các tệp được viết trong Markdown có đuôi „.md‟.
- Pandoc: Cho phép chuyển đổi kết qu đầu ra thành các định dạng file như Word, PDFLatex,
PowerPoint,… Đây một phn mm tách bit ra khi ngôn ng R; tuy nhiên, th kết hp
vi R mt cách t động thông qua môi trường tích hp giao diện người dùng ca R là Rstudio.
- Trong trường hp chúng ta mun xuất file văn bản hoặc báo cáo định dạng LaTex, trước tiên
cần cài đặt trình phiên dch MikTex, tiếp đó cài đặt gói Tinytex dành cho Rstudio. TinyTeX
mt phiên bn LaTeX nhẹ, di động, đa nền tng d bo trì, được h tr cho R trong vic xut
văn bản định dạng LaTex. Để cài đặt TinyTeX, s dng lnh: install.packages('tinytex').
3.2. Cu trúc ca mt tài liu s Rmarkdown
V bản, cu trúc ca mt tài liu Rmarkdown bao gm 3 nội dung chính đưc miêu t
trong Hình 3.
TNU Journal of Science and Technology
229(03): 366 - 372
http://jst.tnu.edu.vn 370 Email: jst@tnu.edu.vn
- YAML: YAML là mt ngôn ng tun t hóa d liệu thường được s dụng để viết các tp
cu hình. YAML rt ph biến vì tính cht d đọc và d hiểu. YAML thường được kết hp vi các
ngôn ng khác để to ra mt quy trình t động và tun t hóa theo các bước.
- Code chunk: Đây chính nội dung chúng ta s đưa các đoạn code tính toán thng
hoc xây dng biểu đồ trc quan. Trong từng đoạn code chunk, d liu s đưc thc thi x
hoc các phép toán thng kê mà nhà nghiên cu s dng.
- Markdown text: Đây các nội dung ca Markdown, cho phép hin th d liu dạng văn
bn mt cách linh hoạt, cho phép người đọc hiểu được sở thuyết hoc các nn tng nhà
nghiên cu la chn.
Hình 3. Cấu trúc cơ bn ca tài liu Rmarkdown
3.3. Xây dng tài liu s
Tài liu s dng PDF LaTex
Trong ni dung này, tiến hành tun t các bước sau để to báo cáo khoa hc dng LaTex:
- To ra mt file Rmarkdown mi thiết lp lần lượt các ni dung trong th YAML bao
gồm: Tên tiêu đề bài báo cáo, tên các tác gi nghiên cu, thi gian xut bn báo cáo, ni dung
tóm tt ca báo cáo và các t khóa định dng đầu ra cho báo cáo.
- Trong Rstudio đã cài Tinytex và MikTex để hin th văn bản dng Latex.
- Thêm ni dung: bibliography: references.bib csl: ieee-computational-intelligence-
magazine để trích dn tài liu tham kho dng chun IEEE tp chí Computational intelligence,
phn này nhóm tác gi s dng chun IEEE tạp chí Computational intelligence để to trích dn
tài liu tham kho làm d minh họa, ngoài ra các đnh dng vi các tp chí khác hoàn toàn
th s dng thông qua vic tải định dng csl tại địa ch: https://www.zotero.org/styles/.
- nocite: '@*' : S dụng để ghép tt c các code chunks dành cho người đọc mun theo dõi t
đầu báo cáo đến cui báo cáo.
Nội dung này được miêu t chi tiết khi cấu hình file .Rmd như Hình 4.
Hình 4. Cu hình các gói và tham s cn thiết cho tài liu s dng PDFLateX