Từ Big-O đến thuật toán trong hệ thống thật
Lộ trình 3 course tuần tự — Căn bản để nắm Big-O và cấu trúc tuyến tính, Cốt lõi cho tìm-kiếm/sắp-xếp/đồ-thị kinh điển, Ứng dụng cho DP/string/big-data/phân-tán. Dạy tư tưởng thuật toán ngôn-ngữ-trung-lập bằng pseudocode, ý tưởng + sơ đồ + độ phức tạp.
Tier 1 của track thuật toán: cách đo và suy nghĩ về thuật toán (Big-O, đệ quy, amortized, cache locality, problem-solving framework) và các cấu trúc dữ liệu tuyến tính (mảng, danh sách liên kết, stack, queue/deque, circular buffer, hàng đợi ưu tiên). Code trình bày bằng pseudocode ngôn-ngữ-trung-lập.
Tier 2 của track thuật toán: tìm kiếm nhanh (hashing, BST, cây cân bằng, B-tree, trie, bloom filter), sắp xếp (merge/quick/heap/counting/radix, skip list) và đồ thị (BFS, DFS, topo sort, Dijkstra, Bellman-Ford, Floyd-Warshall, MST, DSU). Dẫn bằng ý tưởng + sơ đồ + độ phức tạp, code pseudocode.
Tier 3 của track thuật toán: quyết định dưới ràng buộc (dynamic programming, greedy, backtracking), pattern matching & string, big-data/streaming khi RAM không đủ, thuật toán phân tán, geometry/spatial, search engine và cryptographic/integrity. Đào sâu ứng dụng đa-công-nghệ, code pseudocode.