Cấu trúc dữ liệu và Giải thuật

Khóa học Thuật toán cung cấp đầy đủ các kiến thức về Cấu trúc dữ liệu và Giải thuật phục vụ việc học tập tại đại học, tham gia các kỳ thi lập trình, học sinh giỏi các cấp, phỏng vấn xin việc... 

Khóa học này yêu cầu bạn thành thạo ngôn ngữ lập trình C++ và có kỹ thuật lập trình vững chắc. 

Đội Ngũ 28Tech
Đội Ngũ 28Tech
Lộ trình khóa học

Tổng quan khóa học

Khóa học gồm 42 buổi (84 giờ học) kéo dài trong 3 tháng, mỗi tuần học viên sẽ có 4 buổi học.

Khóa học dành cho các bạn sinh viên CNTT muốn học giải thuật, nâng cao tư duy thuật toán để phục vụ học tập tại đại học, tham gia vào các kỳ thi lập trình, phỏng vấn xin việc, các bạn học sinh muốn học để thi học sinh giỏi môn Tin học, Tin học trẻ. 

Bài tập trong khóa học gồm 650-700 bài tập được chuẩn bị kỹ lưỡng trên hệ thống chấm bài  là một trong những yếu tố nâng cao chất lượng giảng dạy. Toàn bộ bài tập trong khóa học sẽ được giáo viên giải chi tiết. Ngoài ra để đánh giá kiến thức của học viên, mỗi tuần sẽ đều diễn ra contest như một bài kiểm tra trong vòng 1h30 phút có xếp rank và rating. 

Thời lượng : 42 buổi học (84 giờ học)

Thời gian học : 3 tháng 

Hình thức học: Online qua Zoom

Số buổi trên tuần : 4 buổi (2h/buổi)

Contest hàng tuần : 12

Số lượng bài tập : 650-700 bài tập 

Yêu cầu đầu vào : Thành thạo C++ và Kỹ thuật lập trình 

Xem Thêm

Lộ trình khóa học

  • Bài 1 : Vector & Iterator, Set, Map
    - Vector & Iterator
    - Range-based for loop
    - Set, Multiset, Unordered_set
    - Map, Multimap, Unordered_map
    - Hướng dẫn một số bài tập set, map
    - Giao bài tập Vector & Iterator (20 bài tập)
    - Giao bài tập Set & Map (30 bài tập)
  • Bài 2 : Hướng dẫn bài tập Vector, Set, Map
    - Hướng dẫn bài tập Vector, Set, Map
  • Bài 3 : Hàm sort, binary_search, lower_bound, upper_bound
    - Hàm sort trong C++
    - Xây dựng comparison function
    - Hàm binary_search
    - lower_bound, upper_bound & biến thể của tìm kiếm nhị phân
    - Hướng dẫn bài tập Comparison function, Lower_bound, Upper_bound (30 bài tập)
  • Bài 4 : String & Xử lý số nguyên lớn
    - String trong C++
    - Các dạng bài tập string
    - Stringstream & bài toán với từ
    - Xử lý số nguyên lớn
    - Giao bài tập Chuỗi ký tự nâng cao (65 bài tập)
  • Bài 5 : Hướng dẫn bài tập Chuỗi ký tự
    - Hướng dẫn bài tập Chuỗi ký tự
  • Bài 6 : Mảng cộng dồn, mảng hiệu, 2 con trỏ, cửa sổ trượt
    - Mảng cộng dồn, mảng hiệu
    - Hai con trỏ
    - Cửa sổ trượt
    - Giao bài tập : Mảng cộng dồn, mảng hiệu, hai con trỏ, cửa sổ trượt (40 bài tập)
  • Bài 7 : Hướng dẫn giải bài tập Mảng cộng dồn, mảng hiệu, 2 con trỏ...
    - Hướng dẫn giải bài tập Mảng cộng dồn, mảng hiệu, 2 con trỏ...
  • Bài 8 : Mảng 2 chiều & Ma trận
    - Kỹ thuật loang trên mảng 2 chiều
    - Các bài toán quy hoạch động điển hình trên mảng 2 chiều
    - Giao bài tập Mảng 2 chiều (30 bài tập)
  • Bài 9 : Lý thuyết số & tổ hợp
    - Hướng dẫn giải bài tập mảng 2 chiều
    - Lý thuyết số & tổ hợp trong lập trình
    - Giao bài tập Lý thuyết số, tổ hợp (60 bài tập)
  • Bài 10 : Hướng dẫn bài tập Lý thuyết số, tổ hợp
    - Hướng dẫn bài tập Lý thuyết số, tổ hợp

  • Bài 11 : Thuật toán sắp xếp & tìm kiếm
    - Tìm kiếm nhị phân kết quả
    - Sweep line
    - Các bài toán sắp xếp kinh điển
    - Giao bài tập Sắp xếp, tìm kiếm (60 bài tập)
  • Bài 12 : Hướng dẫn bài tập Sắp xếp - Tìm kiếm P1
    - Hướng dẫn bài tập Sắp xếp - Tìm kiếm P1
  • Bài 13 : Hướng dẫn bài tập Sắp xếp - Tìm kiếm P2
    - Hướng dẫn bài tập Sắp xếp - Tìm kiếm P2
  • Bài 14 : Thuật toán sinh kế tiếp
    - Sinh nhị phân, tổ hợp, hoán vị, phân hoạch
    - next_permutation & prev_permutation
    - Sinh tập con bằng toán tử bit
    - Giao bài tập Thuật toán sinh (40 bài tập)
  • Bài 15 : Hướng dẫn bài tập Thuật toán sinh
    - Hướng dẫn bài tập Thuật toán sinh
  • Bài 16 : Thuật toán quay lui
    - Quay lui sinh nhị phân, tập con, hoán vị...
    - Giao bài tập Quay lui, nhánh cận (30 bài tập)
  • Bài 16 : Bài toán N Queen & Người du lịch
    - Bài toán N quân hậu
    - Bài toán người du lịch với thuật toán nhánh cận
    - Hướng dẫn giải bài tập Quay lui P1
  • Bài 17 : Hướng dẫn giải bài tập Quay lui - Nhánh cận P2
    - Hướng dẫn giải bài tập Quay lui - Nhánh cận P2

  • Bài 18 : Thuật toán tham lam
    - Hàng đợi ưu tiên
    - Các bài toán tham lam điển hình
    - Chữa 1 số bài tập trong contest tham lam
    - Giao bài tập Tham lam (40 bài tập)
  • Bài 19 : Hướng dẫn bài tập Tham lam P1
    - Hướng dẫn bài tập Tham lam P1
  • Bài 20 : Hướng dẫn bài tập Tham lam P2
    - Hướng dẫn bài tập Tham lam P2
  • Bài 21 : Thuật toán chia và trị
    - Lũy thừa nhị phân
    - Xâu Fibonacci, Tribonacci
    - Số Fibonacci sử dụng nhân ma trận
    - Giao bài tập Chia và trị (30 bài tập)
  • Bài 22 : Hướng dẫn bài tập Chia và Trị
    - Hướng dẫn bài tập Chia và Trị
  • Bài 23. Quick sort, Merge sort, Count Inversion Problem
    - Quick sort, Merge sort, Count Inversion Problem
  • Bài 24: Thuật toán Quy hoạch động P1
    - Các bài toán quy hoạch động điển hình P1
    - Giao bài tập Quy hoạch động (40 bài tập)
  • Bài 25 : Thuật toán Quy hoạch động P2
    - Các bài toán quy hoạch động điển hình P2
    - Hướng dẫn bài tập Quy Hoạch Động P1
  • Bài 26: Hướng dẫn bài tập Quy Hoạch Động P2
    - Hướng dẫn bài tập Quy Hoạch Động P2
  • Bài 27: Hướng dẫn bài tập Quy Hoạch Động P3
    - Hướng dẫn bài tập Quy Hoạch Động P3

  • Bài 28 : Đồ thị, DFS, BFS
    - Các khái niệm cơ bản của đồ thị và biểu diễn đồ thị trên máy tính
    - Thuật toán DFS & BFS
    - Giao bài tập Đồ thị (60 bài tập)
  • Bài 29 : Hướng dẫn bài tập Đồ thị P1
    - Hướng dẫn bài tập Đồ thị P1
  • Bài 30 : Ứng dụng DFS & BFS, Sắp xếp topo, Khớp và cầu
    - Ứng dụng DFS, BFS : Đếm số liên thông, kiểm tra chu trình, tìm đường đi
    - Khớp và cầu
    - Sắp xếp topo
  • Bài 31 : Hướng dẫn bài tập Đồ thị P2
    - Hướng dẫn bài tập Đồ thị P2
  • Bài 33 : Thuật toán Kosaraju & Tarjan
    - Bài toán thành phần liên thông mạnh
    - Kosaraju & Tarjan với bài toán SCC
    - Khớp và cầu sử dụng Tarjan
  • Bài 34: Thuật toán Kruskal, Prim, CTDL Disjoint Set Union
    - Cấu trúc dữ liệu DSU
    - Bài toán cây khung cực tiểu
    - Thuật toán Kruskal, Prim
  • Bài 35 : Thuật toán Dijkstra, Bellman - Ford, Floyd
    - Bài toán tìm đường đi ngắn nhất
    - Thuật toán Dijkstra, Bellman - Ford, Floyd
  • Bài 36 : Hướng dẫn bài tập Đồ thị P3
    - Hướng dẫn bài tập Đồ thị P2

  • Bài 37: Ngăn xếp & hàng đợi
    - Cấu trúc dữ liệu ngăn xếp và các dạng bài tập
    - Cấu trúc dữ liệu hàng đợi và các dạng bài tập
    - Giao bài tập Ngăn xếp & hàng đợi (30 bài tập)
  • Bài 38 : Hướng dẫn bài tập Ngăn xếp - Hàng đợi
    - Hướng dẫn bài tập Ngăn xếp - Hàng đợi

  • Bài 39 : Danh sách liên kết
    - Danh sách liên kết đơn
    - Danh sách liên kết đôi
    - Giao bài tập DSLK (20 bài tập)
  • Bài 40 : Hướng dẫn bài tập DSLK
    - Hướng dẫn bài tập DSLK
  • Bài 41 : Cây nhị phân
    - Cây nhị phân
    - Cây nhị phân tìm kiếm
    - Giao bài tập Cây nhị phân (30 bài tập)
  • Bài 42 : Hướng dẫn bài tập Cây nhị phân
    - Hướng dẫn bài tập Cây nhị phân

Mục tiêu khóa học

Thành thạo CTDL & Giải thuật
Thành thạo CTDL & Giải thuật

Nắm vững kiến thức về các giải thuật và cấu trúc dữ liệu quan trọng trong lập trình.

1
Tư duy thuật toán & Coding skill
Tư duy thuật toán & Coding skill

Nâng cao tư duy của một lập trình viên, giúp bạn trở thành một lập trình viên giỏi hơn. Hoàn thiện kỹ năng cài đặt thuật toán.

2
Phát triển tư duy logic & Thói quen học tập
Phát triển tư duy logic & Thói quen học tập

Thông qua số lượng bài tập lớn, được chuẩn bị chi tiết và bám sát các kỹ năng cần thiết của một lập trình viên 28Tech sẽ giúp bạn có tư duy logic tốt hơn, nhanh nhạy, tối ưu. Ngoài ra việc học và làm bài tập hàng ngày giúp duy trì thói quen học tập cho bạn.

3
Phỏng vấn, học tập & thi đấu
Phỏng vấn, học tập & thi đấu

Kiến thức trong khóa học giúp bạn có thể học tập tốt hơn tại đại học, tham gia các cuộc thi về lập trình và là bước chuẩn bị cho vòng phỏng vấn thuật toán tại doanh nghiệp.

4

Kết quả khóa học

Kiến thức hoàn thiện
Kiến thức hoàn thiện

Hoàn thiện kiến thức về thuật toán & cấu trúc dữ liệu, một kỹ năng rất được quan tâm bởi các doanh nghiệp khi tuyển dụng lập trình viên.

1
Tư duy của lập trình viên giỏi & Code tối ưu
Tư duy của lập trình viên giỏi & Code tối ưu

Bài tập đa dạng, phong phú, bám sát kỹ năng cần có của lập trình viên hiện đại và hệ thống chấm bài tự động sẽ giúp bạn cực kỳ nhiều trong việc phát triển tư duy. Bạn bắt buộc phải học code một các chính xác và tối ưu.

2
Hộ trợ việc học tập tại đại học & Phỏng vấn
Hộ trợ việc học tập tại đại học & Phỏng vấn

Kiến thức và mức độ khó của bài tập trong khóa học phù hợp với mọi sinh viên các trường đại học sẽ hỗ trợ cho việc học lập trình và thuật toán của bạn dễ dàng và nhanh chóng hơn. Ngoài ra những kiến thức và kỹ năng trong khóa học cũng giúp bạn chuẩn bị tốt cho vòng phỏng vấn về tư duy lập trình, thuật toán.

3
Nền tảng cho lập trình thi đấu
Nền tảng cho lập trình thi đấu

Đây là khóa học nền tảng cung cấp cho bạn các thuật toán và cấu trúc dữ liệu cần có cho những bạn có mục tiêu thi đấu lập trình, tin học trẻ, học sinh giỏi, ICPC...

4
Kinh nghiệm giải bài với hệ thống chấm tự động
Kinh nghiệm giải bài với hệ thống chấm tự động

Có kinh nghiệm giải bài tập trên các nền tảng chấm bài online tự động như Codeforces, Hackerrank, SPOJ. Đây một bước chuẩn bị vững vàng với các bạn theo đuổi lập trình thi đấu hoặc đam mê với thuật toán. Các doanh nghiệp tuyển dụng cũng đang sử dụng hệ thống chấm tự động trong vòng phỏng vấn thuật toán.

5
Nền tảng & sự tự tin của lập trình viên
Nền tảng & sự tự tin của lập trình viên

Để trở thành lập trình viên thì bạn cần phải học rất nhiều nhưng đầu tiên bạn cần biết code tốt đã, việc có nền tảng tốt sẽ giúp bạn tự tin và đi xa hơn trong tương lai. 28Tech luôn cố gắng giúp bạn lọt vào 30% lập trình viên có kỹ năng tốt nhất.

6

Đối tượng tham gia

Sinh viên ngành Công Nghệ Thông Tin
Sinh viên ngành Công Nghệ Thông Tin

Sinh viên ngành IT tại các trường đại học đã có kiến thức về kỹ thuật lập trình và ngôn ngữ lập trình C++, thư viện STL.

1
Học Sinh Cấp 2, 3 Đam Mê Lập Trình
Học Sinh Cấp 2, 3 Đam Mê Lập Trình

Các bạn học sinh cấp 2, 3 muốn học lập trình để thi học sinh giỏi, tin học trẻ, Olympic tin học... Hoặc các bạn học sinh yêu thích lập trình muốn bắt đầu học lập trình một cách bài bản

2
Lập trình viên
Lập trình viên

Lập trình viên đã đi làm muốn trau dồi thêm kỹ năng về thuật toán & cấu trúc dữ liệu để phục vụ công việc.

3
Sinh viên ngành ICT nói chung, người trái ngành
Sinh viên ngành ICT nói chung, người trái ngành

Sinh viên các ngành khác hoặc trái ngành muốn cạnh tranh tốt hơn với sinh viên IT về kỹ năng code và tư duy thuật toán.

4

Lý do bạn nên học

Học 1 được rất nhiều
Học 1 được rất nhiều

Học CTDL & giải thuật tại 28Tech bạn đã được học kiến thức các môn học : Kỹ thuật lập trình, Cấu trúc dữ liệu và giải thuật, toán rời rạc, lý thuyết đồ thị

1
Tư duy thuật toán quyết định bạn là ai?
Tư duy thuật toán quyết định bạn là ai?

Tư duy thuật toán tốt là một kỹ năng mà nhà tuyển dụng đánh giá rất cao ở ứng viên. Hầu hết sinh viên tại các trường đại học hiện nay học thuật toán chưa đủ để có thể phát triển lâu dài.

2
Tài Liệu & Bài Tập Chất Lượng Cao
Tài Liệu & Bài Tập Chất Lượng Cao

Các slide lý thuyết của 28Tech được thiết kế rất chi tiết, không chỉ đơn thuần cung cấp lý thuyết mà còn chỉ ra các điểm cần lưu ý, dễ nhầm lẫn và từng dạng bài tập cụ thể. Bài tập được chuẩn bị bám sát với kỹ năng cần có của lập trình viên khi đi học đi làm kết hợp với hệ thống chấm bài tự động 24/24

3
Hệ thống chấm bài tự động 28Tech Online Judge (http://oj.28tech.com.vn)
Hệ thống chấm bài tự động 28Tech Online Judge (http://oj.28tech.com.vn)

Khi tham gia học bạn sẽ được cung cấp tài khoản và bài tập để luyện tập. Đây là website chấm bài tự động của 28Tech giúp bạn code tối ưu và chính xác hơn.

4
Đội ngũ 28Tech
Đội ngũ 28Tech

Đội ngũ 28Tech luôn tận tâm, cố gắng, nhiệt huyết nhằm tạo môi trường học tập tốt nhất. Chúng mình không ngừng nâng cao kiến thức và kỹ năng sư phạm của mình để đáp ứng được mong đợi của các bạn sinh viên.

5
Support từ giảng viên, trợ giảng
Support từ giảng viên, trợ giảng

Các bài tập trong khóa học đều được giải chi tiết trong các buổi học, trong quá trình học và làm bài tập trên hệ thống bạn có thể trao đổi những khó khăn vướng mắc trực tiếp với giáo viên trong và ngoài giờ học.

6
Định hướng học tập khoa học, đầy đủ
Định hướng học tập khoa học, đầy đủ

Hệ thống kiến thức và bài tập tại 28Tech được thiết kế để bạn có thể đạt được những kỹ năng cần có của một lập trình viên giỏi. Bạn sẽ không phải tìm thêm tài liệu, bài tập, sách hay ebook nữa, và cũng không sợ bị học thiếu nội dung hay chưa đủ độ khó. Việc này giúp bạn tiết kiệm rất nhiều thời gian so với tự học.

7
Phát triển nghề nghiệp
Phát triển nghề nghiệp

Một lập trình viên giỏi và có thể phát triển tốt trong tương lai chắc chắn cần tư duy thuật toán, công nghệ tốt và có khả năng tối ưu code.

8
Video Images
3,200,000 đ6,000,000 đ
  • Ngày khai giảng24/10/2026
  • Lịch họcThứ 2, Thứ 4, Thứ 5, Thứ 7
  • Giờ học21h - 23h
  • Số lượng bài giảng42
  • Giảng viênĐội Ngũ 28Tech
Khóa Học

Cấu trúc dữ liệu và Giải thuật

Khóa học Thuật toán cung cấp đầy đủ các kiến thức về Cấu trúc dữ liệu và Giải thuật phục vụ việc học tập tại đại học, tham gia các kỳ thi lập trình, học sinh giỏi các cấp, phỏng vấn xin việc... 

Khóa học này yêu cầu bạn thành thạo ngôn ngữ lập trình C++ và có kỹ thuật lập trình vững chắc. 

00Ngày
00Giờ
00Phút
00Giây

Đăng ký khóa học

ĐĂNG KÝ NGAY
Cấu trúc dữ liệu và Giải thuật
3,200,000đ6,000,000đ