Mục tiêu của bài là để chia sẻ timeline, trải nghiệm, tips & tricks, các bài học rút ra được từ mùa khóa luận. Đã có các bài blog trước đó đã viết rất tốt và rất kỹ về quy trình và hướng dẫn tiếp cận khóa luận. Chẳng hạn như bài APCS Thesis Survival Guide [1] của anh Lê Tấn Đăng Tâm (17APCS) và bài Thesis Survival Guide - 2023 (updated Jul 2025) [2]. Mình mong bài này tiếp nối được lời khuyên của các anh bằng case study của riêng mình.
Bài này cũng tồn tại để đưa cho các bạn thêm 1 ví dụ về quá trình thực hiện khóa luận tốt. Mình muốn chia sẻ những expectations của quá trình làm khóa luận và những gì khả thi và không khả thi. Đặc biệt là quản lý thời gian, khối lượng công việc, nghiên cứu đề tài, publish đề tài trước đợt bảo vệ. Từ đó, các bạn có thể rút được kế hoạch và tâm lý cần có để hoàn thành 1 đề tài tốt nhất có thể.


Từ một lần đi nghe đợt bảo vệ khóa luận của CLC K20, 1 thầy cho rằng mục đích làm khóa luận là để sinh viên được trải nghiệm đầu tay về nghiên cứu. Brownell et. al [3] cho rằng mục đích hướng dẫn nghiên cứu khoa học là để có khả năng đặt giả thuyết, thực hiện thí nghiệm và công bố kết quả để giao tiếp những kết quả ấy cho mọi người. Science Communication là 1 kỹ năng còn thiếu nhưng hết sức quan trọng đối với sinh viên ngành STEM (như CS). Việc thực hiện khóa luận tốt nghiêp không chỉ dành cho những ai muốn học cao hay làm trong lab lớn, mà còn thậm chí dành cho bất kỳ ai có nhu cầu chia sẻ technical information đến với dân chúng. (fucking look at LCKH if you wanna see the consequences of lack of science communication education)

Mình sẽ hạn chế đi chi tiết về quy trình thực hiện khóa luận vì bài Thesis Survival Guide [2] đã đủ chi tiết và mình rất thích các lời khuyên ở mục 3.3 Làm đề tài. Khuyên các bạn đọc mục 1 để hiểu điểm khác biệt giữa học phần bình thường và khóa luận tốt nghiệp. Ngoài ra, mình cũng sẽ đóng góp thêm vài bài học rút ra.
Từ bài Thesis Survival Guide [2]:
Còn trường hợp các bạn được quyền tự quyết, đã có kinh nghiệm NCKH và có nguyện vọng học cao, bạn có 2 hướng:
Cái gì quan trọng thì nói nhiều lần:
LITERATURE REVIEW THẬT KỸ
LITERATURE REVIEW THẬT KỸ
LITERATURE REVIEW THẬT KỸ
Mình đã gặp ngay trường hợp không survey kỹ để nhận ra phương pháp của mình đã có người khác làm tốt hơn [6]. May mắn là mình nhận ra từ tháng 3 sau khi trả kết quả review từ workshop, và vẫn còn đủ thời gian để phát triển tiếp bài. Khuyến khích dùng trick dùng Google Scholar của [2].
Proposed method, Experiments & Discussion đều nên tham khảo [2] nếu bài của bạn làm về ML và bạn may mắn có giáo sẵn sàng chỉ tay cho method. Nhưng mình cũng có lời khuyên chung nếu bạn không chọn làm ML hoặc bạn phải tự tìm hướng đi cho method.
Trích dịch từ Hackers & Painters: Big Ideas from the Computer Age của Paul Graham [4], chapter 15 - Design & Research:
“Điểm khác biệt giữa design và research dường như là câu hỏi giữa cái mơi và cái hiệu quả. Design không nhất thiết phải mới, nhưng nó phải tốt. Research không cần phải tốt, nhưng nó cần phải mới. Tôi nghĩ rằng hai hướng này đều tiệm cận tại mức độ cao nhất. Design tốt nhất vượt qua các phiên bản trước nhờ những ý tưởng mới, và research tốt nhất giải quyết những vấn đề không chỉ mới, mà còn đáng trả lời. Nên cuối cùng design và research để hướng về cùng 1 mục tiêu, chỉ là tiếp cận nó từ cách khác nhau.”

Đọc phần này, mình thấy lời khuyên này áp dụng được cho việc thực hiện khóa luận HCMUS. Khóa luận HCMUS được chia ra làm 2 loại - nghiên cứu và ứng dụng (không phải là capstone/đồ án tốt nghiệp). Rõ ràng KLNC là “Research” và KLUD là “Design”, nhưng cả 2 đều hướng về chung 1 mục tiêu, chỉ là theo cách tiếp cận khác nhau. Bạn có thể xuất phát từ SOTA và giải quyết thử thách đưa vào thực tiễn, hoặc giải quyết trên 1 “domain” khác. Hoặc bạn có thể cải thiện một hệ thống bằng kết quả của các kỹ thuật, mô hình mới. Với 8 tháng, kích thước định hướng cho đề tài nên trong tầm khả năng nhưng vẫn tạo bước đủ nhỏ trong việc addressing a research/design gap.
Về thời gian, thì bạn nên dành ra càng nhiều thời gian càng tốt cho đề tài vì không còn phải đi học nữa. Nhưng lỡ bạn phải đi làm (mình cũng thế) thì cũng nên dành ra ít nhất 1-2h/ngày trong tuần và 3-5h/ngày cuối tuần, tổng cộng ít nhất 10-20h/tuần sẽ không quá khó.
Ý tưởng đầu tiên của nhiều bạn trẻ hiện nay sẽ làm nhờ ChatGPT hay Perplexity xào nấu cho ta ý tưởng đề tài từ các bài báo có sẵn trên mạng. Tuy nhiên, hướng tiếp cận này có vấn đề. Các mô hình reasoning giờ đủ hiện đại để có thể gợi ý mối quan hệ giữa các bài báo và tìm ra research gap, và đã có nhiều research dựa vào kết quả này để viết (rất nhiều) bài báo. Nhưng vấn đề là những người này là các giáo sư, nhà nghiên cứu lâu năm trong ngành, và họ đã xây dựng nội hàm để biết định hướng nghiên cứu. Bạn là sinh viên, và khả năng cao cũng là bạn vừa lần đầu tìm hiểu về đề tài. Bạn sẽ chưa có kiến thức nền tảng và bạn sẽ chết tại chỗ khi đứng ra phản biện hay debug tại sao phương pháp này sai (vì nó còn chưa tồn tại mà).
Thay vì bắt bản thân đọc 1 đống paper, bạn có thể dùng “cheatcode” bằng cách đọc survey paper, nên chọn bài trong 3 năm gần nhất. Họ đã đọc giùm các bài liên quan tới chủ đề đề tài giùm mình và tóm tắt lại 1 chỗ. Tiến nhanh tới mục Challenges hay Future Direction, họ sẽ tổng kết những bài toán mở của lĩnh vực. Các bạn chỉ cần bóc thẳng từ danh sách này thì đảm bảo đề tài không bị lỗi thời. Các bạn có thể chỉ cần nhai kỹ bài survey trước khi bắt tay là được. Nơi tốt nhất là ACM Computing Surveys [5], tổng hợp chủ yếu surveys cho mọi chuyên ngành CNTT.
Trong lúc làm đề tài, các bạn nên có 1 cái file doc để tổng kết kết quả vào cuối tuần. Trong report nên có các mục:
Bạn có thể giữ report này cho riêng mình, hoặc dùng report này để báo cáo kết quả với giáo (Show Your Work). Sau nhiều tuần và khi đã hài lòng với kết quả thí nghiệm, thì bạn đã viết 80% xong nội dung cuốn luận vì những phần này có thể Ctrl-C-Ctrl-V thẳng vào Related Works, Dataset, Results, Discussion. Phần còn lại là Abstract, Introduction, Conclusion vẫn cần bạn phải chém xí để tạo câu chuyện thuyết phục cho độc giả.
Chi tiết hơn về cuốn luận và bảo vệ khóa luận thì các bạn cứ tham khảo [1] và [2], phần sau sẽ chủ yếu về lời khuyên.
Giáo viên phản biện không phải là kẻ thù, mà có khi sẽ là vị cứu tinh của bạn. Đây là cơ hội để bạn biết trước hội đồng sẽ hỏi gì, vì hội đồng cũng sẽ đánh giá đề tài có trả lời được đủ các câu hỏi của GVPB trước khi vấn đáp chưa. Nhớ bình tĩnh tự tin trước và sau khi gặp GVPB.
Bạn chỉ có 15 phút để hoàn thành phần trình bày và 10 phút cho phần vấn đáp. Lỗi sai nhiều nhất mình nhận thấy từ các bạn là mất quá lâu để dàn dựng vấn đề nghiên cứu. Nói quá nhiều thì mất quá nhiều thời gian để không kịp demo hoặc thậm chí nói có 1 nửa phần Method. Chỉ cần 2-3 slide và kèm theo citation trên slide luôn (hot take vì thường slide không nên quá nhiều chữ). Sau đó, cứ đề cập related works và dẵn dắt vào phần chính của đề tài. Nhớ diễn dợt nhiều lần trước ngày bảo vệ để tự tin hơn. Sau bảo vệ thì nếu hội đồng có khuyên sửa cuốn luận thì hãy xong trong ngày luôn hoặc càng sớm càng tốt.

Mình đã từng viết bài ăn mừng sau đợt bảo vệ, bao gồm tóm tắt và cảm hứng cho đề tài [9]. Bên APCS, cuốn luận và bảo về khóa luận được trình bày bằng tiếng Anh. Mình sẽ trích phần giới thiệu của bài mình (chỉ Ctrl-C-Ctrl-V từ bài FB), mọi người có thể tham khảo cuốn luận và Github repo tại [7] và [8].
“Đề tài của mình là "UNet-HoVerGNN: Structured Graph Integration into HoVerNet for Enhanced Nuclei Segmentation and Classification". Trong bài, mình phát triến tiếp từ 1 số bài về việc học quan hệ thưa giữa các nhân tế bào để cải thiện mô hình HoVerNet. Mặc dù bài gốc ra từ 2019, multi-branch design của HoVerNet vẫn đủ hiệu quả và các SOTA baselines về sau như CellViT (2024) vẫn dùng lại nhưng thay CNN encoder bằng SAM và dùng cấu trúc encoder-decoder của UNet. Các phương pháp dùng đồ thị hiện tại đều dừng ở mức sử dụng đồ thị tĩnh hoặc "shallow message passing". Bài mình đề xuất việc dựng đồ thị ngay trong quá trình huấn luyện để extend mô hình HoVerNet. Mình cũng cố gắng thuyết phục rằng việc giữ CNN encoder (và thêm GNN-based branch) vẫn tốt ngang việc dùng ViT, và thậm chí hội tụ nhanh hơn qua ablation studies).”

Một số câu chuyện ngắn trong lúc thực hiện đề tài:
Đây là bài blog đầu tiên trong chuỗi các bài hàng tuần. Cảm ơn anh Mai Vinh Hiển (K20) vì giúp biên soạn. Mong các bạn học hỏi thêm được về cách thực hiện một đề tài hay, chứ không chỉ qua môn.
[1] APCS Thesis Survival Guide (2022) - https://incenger.github.io/posts/2022/06/apcs_thesis_survival_guide/
[2] Thesis Survival Guide - 2023 (upd Jul 2025) - https://docs.google.com/document/d/1Aznqx-23-FRw6RumF93tT_3x8-I57W3GO5oFBDNG73k/edit?usp=sharing
[3] Science Communication to the General Public: Why We Need to Teach Undergraduate and Graduate Students this Skill as Part of Their Formal Scientific Training (2013) - https://pmc.ncbi.nlm.nih.gov/articles/PMC3852879/
[4] Hackers & Painters: Big Ideas from the Computer Age (2004) - https://en.wikipedia.org/wiki/Hackers_%26_Painters
[5] ACM Computing Surveys - https://dl.acm.org/journal/csur
[6] ErrantScience (Twitter/X, 2023) - https://x.com/ErrantScience/status/1692868907701309765
[7] UNet-HoVerGNN (Github, 2025) - https://github.com/YangTuanAnh/UNet-HoVerGNN
[8] Cuốn luận của mình (2025) - https://drive.google.com/file/d/1ZS8oeY5aDuiC-QgUODz3KrHabOCItWNV/view
[9] Bài FB sau ngày bảo vệ (FB, 2025) - https://www.facebook.com/share/v/1DytT6oLUU/
[10] Tổng kết Student Research Workshop (2025) - https://www.fit.hcmus.edu.vn/tin-tuc/d/tong-ket-student-research-workshop-co-hoi-hoc-bong-sau-dai-hoc-tai-vien-bach-khoa-paris-danh-cho-sinh-vien-viet-nam
[11] MedficientSAM: A Robust Medical Segmentation Model with Optimized Inference Pipeline for Limited Clinical Settings (2024) - https://openreview.net/pdf?id=aa0f77RKI0
