Khóa học
Nhập mônFull Stack13 giờ 24 phút · 15 giờ/tuần Chứng chỉ

Cấu trúc dữ liệu và giải thuật thực chiến

Khóa học Cấu trúc dữ liệu và Giải thuật (DSA) thực chiến và bài bản. Làm chủ tư duy phân tích độ phức tạp Big-O, đệ quy, chia để trị, cây nhị phân, đồ thị, quy hoạch động và các kỹ thuật giải quyết bài toán tối ưu.

Vũ Đình Bảo
26 bài họcCập nhật tháng 10 năm 2026

Mô tả khóa học

Cấu trúc dữ liệu và Giải thuật (Data Structures & Algorithms - DSA) là xương sống của khoa học máy tính và là tiêu chuẩn vàng đánh giá năng lực tư duy kỹ thuật của mọi kỹ sư phần mềm. Khóa học được thiết kế theo triết lý 'Thấu hiểu bản chất - Thực chiến tối ưu', dẫn dắt người học từ những viên gạch nền tảng về phân tích độ phức tạp thời gian/không gian (Big-O, Omega, Theta), các cấu trúc tuyến tính (Mảng động, Danh sách liên kết, Ngăn xếp, Hàng đợi, Bảng băm) đến các cấu trúc phân cấp phức tạp (Cây nhị phân tìm kiếm, Heap, Cây tiền tố Trie, Union-Find).

Khóa học đi sâu vào các kỹ thuật thiết kế thuật toán kinh điển: Đệ quy và Chia để trị, Thuật toán đồ thị (BFS, DFS, Cây khung nhỏ nhất MST, Đường đi ngắn nhất Dijkstra/Bellman-Ford), Thuật toán tham lam (Greedy), Quy hoạch động (Dynamic Programming) và Quay lui (Backtracking). Bạn sẽ không chỉ học cách cài đặt thuật toán, mà còn thấu hiểu sâu sắc sự đánh đổi giữa thời gian và bộ nhớ (Space-Time Tradeoff), tự tin chinh phục các vòng phỏng vấn kỹ thuật đỉnh cao.

Lợi ích khóa học

  • Xây dựng tư duy thuật toán chặt chẽ, hiểu rõ bản chất tính đúng đắn và độ phức tạp tính toán.
  • Làm chủ toàn bộ các cấu trúc dữ liệu cốt lõi: Array, Linked List, Stack, Queue, Hash Table, Tree, Heap, Trie, Graph.
  • Thành thạo phân tích tiệm cận Big-O, Big-Omega, Big-Theta và Master Theorem.
  • Nắm vững 4 chiến lược thiết kế thuật toán: Chia để trị, Tham lam, Quy hoạch động và Quay lui.
  • Hiểu sâu về lý thuyết độ phức tạp P, NP, NP-Complete và giới hạn của máy tính.
  • Trang bị phương pháp luận giải quyết bài toán có hệ thống, sẵn sàng tự tin bước vào các vòng phỏng vấn kỹ thuật.

Kiến thức cần có

— những gì bạn cần trước khi bắt đầu

Đã hoàn thành khóa học Nhập môn lập trình (FPP) hoặc có kiến thức lập trình cơ bản vững chắc.

Thành thạo cú pháp cơ bản: biến, vòng lặp, câu lệnh điều kiện, hàm và mảng trong một ngôn ngữ lập trình (C++, Java, Python, hoặc TypeScript).

Có tư duy logic cơ bản và sẵn sàng luyện tập giải quyết bài toán thường xuyên.

Lập trình căn bản
0%Bổ sung

Bạn sẽ làm được gì

— sau khi hoàn thành khóa học

Nắm vững và cài đặt thành thạo các cấu trúc dữ liệu cốt lõi: Mảng động, Danh sách liên kết, Ngăn xếp, Hàng đợi, Bảng băm, Cây nhị phân, Heap, Đồ thị.

Thành thạo phân tích độ phức tạp thời gian và không gian (Time & Space Complexity) bằng ký pháp Big-O.

Làm chủ các thuật toán tìm kiếm và sắp xếp tối ưu (Binary Search, Merge Sort, Quick Sort, Heap Sort).

Thành thạo các kỹ thuật thiết kế thuật toán nâng cao: Chia để trị, Quy hoạch động, Thuật toán tham lam và Quay lui.

Tự tin giải quyết các bài toán thuật toán phỏng vấn tại các công ty công nghệ hàng đầu.

Phân tích chính xác độ phức tạp thời gian và không gian của thuật toán bằng ký pháp Big-O, Omega, Theta.
Lựa chọn và cài đặt cấu trúc dữ liệu phù hợp (Array, Linked List, Stack, Queue, Hash Table, Tree, Graph) cho từng bài toán thực tế.
Thành thạo các thuật toán sắp xếp và tìm kiếm nâng cao (Binary Search, Quick Sort, Merge Sort, Heap Sort).
Làm chủ tư duy đệ quy, quy hoạch động (Dynamic Programming), tham lam (Greedy) và quay lui (Backtracking).
Giải quyết thành thạo các bài toán đồ thị kinh điển (BFS, DFS, Topological Sort, Dijkstra, Kruskal/Prim).
Tự tin vượt qua các vòng phỏng vấn thuật toán và cấu trúc dữ liệu tại các doanh nghiệp công nghệ lớn.

Đồ thị kiến thức

— các khái niệm có trong khóa học

Đồ thị kiến thức khóa học

Kiến thức dẫn đến kỹ năng; bấm vào node để xem các liên kết

Kiến thứcKỹ năngAbstract Data TypeAdjacency ListAdjacency MatrixAlgorithmAlgorithm CorrectnessAmortized AnalysisAssociative ArrayBacktrackingBellman-Ford AlgorithmBest, Worst and Average …Big-O NotationBig-Omega NotationAlgorithmic Problem Solv…Data Structures and Algo…
Khái niệm trong khóa họcKỹ năng đạt đượcKhái niệm liên quanĐã thành thạo

Khóa học dành cho ai

Sinh viên ngành CNTT muốn xây dựng nền tảng thuật toán vững chắc cho các môn học chuyên ngành và nghiên cứu khoa học.

Lập trình viên muốn nâng cao tư duy tối ưu hóa hiệu năng phần mềm và xử lý dữ liệu quy mô lớn.

Ứng viên đang chuẩn bị cho các vòng phỏng vấn Coding Interview tại các công ty công nghệ lớn.

Sinh viên CNTT muốn làm chủ môn học Cấu trúc dữ liệu và Giải thuật nền tảng.
Lập trình viên muốn nâng cao tư duy giải quyết vấn đề và tối ưu hóa hiệu năng hệ thống.
Ứng viên đang tích cực ôn luyện Coding Interview cho các vị trí Software Engineer.
Kỹ sư phần mềm muốn củng cố nền tảng Computer Science vững chắc để phát triển sự nghiệp lâu dài.

Giảng viên

Vũ Đình Bảo

Với mình, có được học trò giỏi là một điều tự hào, nhưng các học trò chưa giỏi mới là thử thách mình quan tâm và việc giúp cho những bạn ấy có sự tiến bộ mới là hạnh phúc đích thực trong nghề của mình.