180 thử thách
Mỗi ô là một ngày: lý thuyết trọng tâm, bài tập có đặc tả hàm, test mẫu và tiêu chí hoàn thành. Đi theo thứ tự hoặc chọn chặng. Nhấn Ctrl+K để tìm nhanh.
Dynamic Array: mảng động và cách tự cài đặt
Hiểu size, capacity và cơ chế nhân đôi, tự cài đặt Dynamic Array bằng C/C++.
Linked list đơn, đôi và so sánh với mảng
Hiểu nút, con trỏ next và prev, phân biệt linked list đơn với đôi, và biết khi nào danh sách liên kết thắng mảng.
SOLID, Open-Closed và Dependency Inversion thực hành
Ôn lại năm nguyên lý SOLID qua các câu chuyện thực tế, đào sâu Open-Closed và Dependency Inversion với SimUDuck và Pizza Store.
Stack, queue, deque: LIFO, FIFO và ứng dụng
Nắm nguyên tắc LIFO của ngăn xếp và FIFO của hàng đợi, các thao tác chuẩn cùng độ phức tạp, qua hai ẩn dụ đời thực trong bài này.
Dictionary, set và ý tưởng băm
Hiểu cặp khóa giá trị của dictionary, tính duy nhất của set, vai trò hàm băm, và khi nào dùng cấu trúc nào.
Strategy: đóng gói họ thuật toán bay và kêu của vịt
Định nghĩa Strategy, cấu trúc họ thuật toán hoán đổi được, và toàn bộ hành trình refactor SimUDuck từ kế thừa sụp đổ tới ủy thác linh hoạt.
Cây và binary search tree: thuật ngữ và bất biến
Học từ vựng của cây, các loại cây nhị phân, và bất biến tìm kiếm làm nền cho treap, heap và cây quyết định.
Thực hành đệ quy: base case, trace và memo
Biến đệ quy từ nỗi sợ thành công cụ qua điều kiện dừng, truy vết ngăn xếp lời gọi và kỹ thuật ghi nhớ.
Observer: publisher-subscriber và loose coupling
Định nghĩa Observer, quan hệ một-nhiều, nguyên lý loose coupling và câu chuyện trạm thời tiết với ba bảng hiển thị.
Bộ ba sắp xếp O(n²): bubble, selection, insertion
Cài đặt và phân tích ba thuật toán sắp xếp cơ bản, hiểu cờ hiệu dừng sớm, số lần đổi chỗ và khi nào chúng vẫn là lựa chọn đúng.
Sắp xếp hiệu quả: merge, shell, quick và cách chọn
Học ba thuật toán sắp xếp hiệu quả với chia để trị, so sánh kề cách quãng và chốt pivot, cùng nghệ thuật chọn thuật toán.
Decorator: Starbuzz Coffee và chuỗi bọc
Định nghĩa Decorator, nguyên lý mở rộng không sửa đổi, và cách Starbuzz cộng dồn giá topping bằng chuỗi bọc.
Tìm kiếm: linear, binary và interpolation
So sánh ba chiến lược tìm kiếm từ quét cạn tới chặt đôi và nội suy vị trí, cùng điều kiện dữ liệu mỗi thuật toán đòi hỏi.
Ma trận và bảng dữ liệu trong thuật toán
Làm chủ ma trận và bảng dữ liệu dạng hàng cột cùng độ phức tạp thao tác: hàng là điểm dữ liệu, cột là thuộc tính, trục xác định hướng tính toán.
Observer nâng cao: pull vs push và trạm thời tiết
So sánh mô hình đẩy và kéo dữ liệu, bài toán bảng chỉ cần một phần số đo, và Observer có sẵn trong thư viện.
Brute-force và greedy nhập môn qua TSP
Dùng bài toán người bán hàng rong để hiểu vét cạn tối ưu nhưng mũ giai thừa và tham lam nhanh nhưng chỉ gần đúng.
Quy hoạch động: bài toán con gối nhau và memo
Hiểu chiến lược từ dưới lên của Bellman với đệ quy và ghi nhớ, hai điều kiện áp dụng và các bài toán tối ưu kinh điển.
Simple Factory: đóng gói khởi tạo đối tượng pizza
Vì sao từ khóa tạo mới gây cứng nhắc, cách gom khởi tạo vào một xưởng đơn giản qua câu chuyện Pizza Store.
Singleton: Chocolate Factory và an toàn đa luồng
Định nghĩa Singleton, câu chuyện nồi sô cô la, ba biến thể đa luồng và tranh cãi khi nào không nên dùng.
Adapter: vịt-gà tây và object vs class adapter
Định nghĩa Adapter, câu chuyện vịt kêu quạc gặp gà tây kêu cục tác, và so sánh bộ điều hợp đối tượng với bộ điều hợp lớp.
Mini project 1: benchmark sắp xếp và cấu trúc cơ bản
Tổng hợp tuần đầu bằng dự án đo hiệu năng sắp xếp và cấu trúc cơ bản, từ thiết kế thí nghiệm tới báo cáo.
Học không giám sát - vòng đời, khoảng cách, phân khúc
Tổng quan học không giám sát: vòng đời khai phá sáu giai đoạn, ba khoảng cách Euclid Manhattan cosine và phân khúc marketing.
Priority queue và binary heap: API và biểu diễn mảng
Hiểu hàng đợi ưu tiên qua bài toán theo dõi lỗi, hợp đồng API, min-heap max-heap và cách mảng biểu diễn cây hoàn chỉnh.
Thao tác heap: BubbleUp, PushDown, Heapify, Top, Update
Mổ xẻ từng thao tác heap từ đẩy lên, đẩy xuống tới dựng heap tuyến tính, kèm phân tích số bước logarit.
Factory Method: framework và creator song song product
Định nghĩa Factory Method, khung cửa hàng nhượng quyền, và cấu trúc creator song song product qua New York và Chicago.
D-ary heap, branching factor và bài toán top-K
Mở rộng heap nhị phân thành heap đa nhánh, phân tích nhánh tối ưu và áp dụng vào top-K, Dijkstra, Prim, Huffman.
Mã Huffman: nén tham lam bằng heap
Xây cây mã tiền tố tối ưu từ tần suất ký tự bằng thuật toán tham lam bottom-up với min-heap.
Command: remote control và khe cắm lệnh
Định nghĩa Command, chiếc remote bảy khe, và cách tách bên bấm nút khỏi bên làm việc bằng đối tượng lệnh.
Treap: BST kết hợp heap và phép xoay
Khám phá cấu trúc lai giữa cây tìm kiếm và heap qua bài toán đa chỉ mục, phép xoay và tìm kiếm.
Bloom filter: cơ chế bit, false positive và ứng dụng
Hiểu bộ lọc Bloom qua bài toán danh bạ, cơ chế mảng bit và k hàm băm, công thức dương tính giả và các biến thể.
Facade: rạp hát tại gia và Least Knowledge
Định nghĩa Facade, quy trình xem phim mười bước gom thành một nút, và nguyên lý chỉ nói chuyện với bạn thân.
Disjoint set: bài toán distinct subsets và cài đặt naive
Làm quen tập rời nhau qua bài toán gom nhóm, hợp đồng API và cài đặt ngây thơ làm mốc so sánh.
Union-Find tối ưu và Kruskal tìm cây khung
Nâng disjoint set bằng cây, nén đường đi và hợp theo hạng, rồi dùng nó xây cây khung nhỏ nhất bằng Kruskal.
Template Method: khung pha chế và Hollywood principle
Định nghĩa Template Method, khung pha trà cà phê với móc treo, và nguyên tắc đừng gọi chúng tôi chúng tôi sẽ gọi bạn.
Trie: nút, cạnh, search, insert, remove, prefix
Học cây tiền tố lưu chuỗi theo ký tự chung qua bài toán kiểm tra chính tả, cùng bốn thao tác và hai truy vấn tiền tố.
Radix trie nén cạnh và ứng dụng autocomplete, spell-check
Nén trie thành radix trie gọn nhẹ, rồi khai thác autocomplete, kiểm tra chính tả, T9 và sắp xếp chuỗi.
Iterator: sáp nhập quán ăn và single responsibility
Định nghĩa Iterator, hai quán ăn hai cách lưu thực đơn, và cách tách trách nhiệm duyệt khỏi trách nhiệm phục vụ.
Hash table nâng cao: hàm băm và xử lý xung đột
Đào sâu hàm băm tốt, hai họ xử lý xung đột, hệ số tải và nghệ thuật so sánh bảng băm với cây và Bloom filter.
LRU cache: thứ tự thời gian và đuổi dữ liệu cũ
Xây cache ghi nhớ kết quả qua bài toán tóm tắt mạng xã hội, xử lý tươi mới, bất đồng bộ và đuổi cũ nhất.
Biểu diễn đồ thị và BFS tìm đường ngắn nhất
Biểu diễn đồ thị bằng danh sách kề, cài đặt BFS theo lớp và dùng nó tìm đường ngắn nhất trên đồ thị không trọng số.
DFS, ngăn xếp và so sánh với BFS
Hiểu DFS đào sâu bằng ngăn xếp và đệ quy, truy vết quay lui, và bảng so sánh toàn diện với BFS.
Dijkstra với heap cho đồ thị có trọng số
Mở rộng BFS sang cạnh có trọng số bằng Dijkstra, dùng heap lấy đỉnh gần nhất và nới lỏng khoảng cách.
A* heuristic và Prim cây khung nhỏ nhất
Thuật toán A* với hàm heuristic chấp nhận được, so sánh với Dijkstra, và thuật toán Prim tìm cây khung nhỏ nhất bằng tính chất lát cắt.
Egonet và centrality - degree, betweenness, closeness, eigenvector
Mạng lưới lấy ego làm trung tâm, vùng lân cận một và hai bước, tam giác, mật độ, và bốn độ đo centrality kèm quy trình phân tích chung.
K-d tree - luân phiên chiều, bất biến và cân bằng
Cây k-d cho dữ liệu nhiều chiều: luân phiên chiều phân hoạch, bất biến cây tìm kiếm, xây dựng cân bằng và tầm quan trọng của cân bằng.
Ứng dụng NN - nearest hub, giảm màu ảnh, hạt vật lý
Bốn ứng dụng tìm kiếm lân cận: trạm trung chuyển gần nhất, bài toán tập trung và phân tán, giảm màu ảnh, tương tác hạt và tối ưu truy vấn đa chiều.
K-means - khởi tạo, hội tụ và curse of dimensionality
Thuật toán gom cụm K-means: logic vòng lặp, khởi tạo centroid, điều kiện dừng, hạn chế, lời nguyền chiều không gian và tăng tốc bằng k-d tree.
DBSCAN - density-reachable, lõi, biên, nhiễu
Gom cụm dựa mật độ DBSCAN: điểm lõi biên nhiễu, trực tiếp và lan truyền mật độ, thuật toán, cài đặt và ưu nhược điểm.
Đánh giá clustering - silhouette và diễn giải
Đo chất lượng gom cụm không nhãn: silhouette từng điểm và toàn cục, diễn giải kết quả, chọn k và bẫy diễn giải sai.
MapReduce - map, reduce qua ví dụ Donald Duck
Mô hình MapReduce qua câu chuyện Donald Duck: song song và phân tán, ánh xạ rồi rút gọn, shuffle và những gì ẩn dưới nắp capo.
Luật giỏ hàng - Apriori và FP-growth
Khai phá luật kết hợp cho giỏ hàng: support confidence lift, ba loại luật, Apriori, hạn chế và FP-growth với cây FP.
Học có giám sát - pipeline, scaling và phân loại bài toán
Tổng quan học có giám sát: điều kiện cho phép, phân biệt phân loại và hồi quy, pipeline đặc trưng, scaling và thử thách classifiers.
Decision tree - split, impurity và pruning
Cây quyết định phân loại: chọn điểm cắt, độ tạp impurity, điểm mạnh yếu, ca sử dụng và cắt tỉa chống overfitting.
Naive Bayes và mô hình xác suất cho text
Bộ phân loại Bayes ngây thơ: định lý Bayes, luật nhân cộng xác suất, giả thiết độc lập và bài thi văn bản.
Hồi quy tuyến tính, bội và logistic
Nhánh hồi quy: thử thách regressors, hồi quy đơn và bội, đánh giá regressors, cây hồi quy, boosting hồi quy và dự báo thời tiết.
Đánh giá mô hình - confusion matrix, precision, recall, overfitting
Chốt nhánh giám sát: ma trận nhầm lẫn, precision recall và đánh đổi, overfitting, ba phần dữ liệu và đọc kết quả classifiers.
NLP cơ bản: tokenize, BoW và TF-IDF
Tiền xử lý văn bản, tách từ, làm sạch, ma trận thuật ngữ tài liệu, TF-IDF và diễn giải kết quả trên ví dụ minh họa.
Gợi ý content-based và đồng xuất hiện
Hồ sơ món, vector đặc trưng, tương đồng nội dung, ma trận đồng xuất hiện và gợi ý không cá nhân hóa.
Collaborative filtering user-based và item-based
Ma trận user item, láng giềng gần nhất, tương đồng Pearson cosine, dự đoán xếp hạng và ví dụ phim Avatar trong bài này.
CAP theorem và lưu trữ phân tán
Nhất quán sẵn sàng chịu phân vùng, ba họ CA AP CP, lưu trữ phân tán và ví dụ AWS trong bài này.
Nén dữ liệu: LZ77 và định dạng nâng cao
Nén không mất mát, Huffman biến dài, LZ77 từ điển trượt và định dạng hiện đại kèm bài toán AWS.
Mật mã cơ bản: thay thế, hoán vị, băm, đối xứng
Thuật ngữ mật mã, mã thay thế hoán vị, thám mã, hàm băm MD5 SHA và mã đối xứng.
Explainability: hộp trắng, hộp đen và giảm bias
Thất bại Tay 2016, giải thích được thuật toán, hộp trắng hộp đen, đạo đức bằng chứng và giảm thiên lệch.
Tổ chức patterns C/S/B và anti-patterns
Bản đồ ba nhóm tạo sinh cấu trúc hành vi, cách tra cứu pattern theo nhu cầu, và những phản pattern cần tránh.
Treap nâng cao: insert, delete và cân bằng kỳ vọng
Hoàn thiện chèn xóa treap bằng xoay, dùng ưu tiên ngẫu nhiên để ép cân bằng kỳ vọng logarit và biết miền ứng dụng.
LFU, freshness, async và khóa đồng bộ trong cache
So sánh LFU với LRU, cách dùng cache hiệu quả, đồng bộ hóa bằng khóa và các ứng dụng cache phân tán.
Composite: thực đơn cây, trong suốt vs an toàn
Định nghĩa Composite, thực đơn lồng thực đơn con, và đánh đổi giữa trong suốt dễ dùng với an toàn đúng kiểu.
Kết hợp Iterator và Composite duyệt cây đệ quy
Bộ duyệt ngoài cho cây thực đơn, ngăn xếp duyệt sâu dần, và sức mạnh khi hai pattern cộng hưởng.
Nearest neighbor và region search trên k-d tree
Truy vấn nâng cao trên cây k-d: xóa nút, lân cận gần nhất bằng cắt tỉa siêu cầu, tìm kiếm vùng và bảng tổng kết mọi phương thức.
Bài toán nearest neighbor và R-tree indexing
Từ cây B tới R-tree lập chỉ mục không gian: chèn điểm, tách nút tràn, tìm kiếm và con đường tới cây tương đồng SS-tree.
Decorator thực tế: thư viện vào-ra và tự viết decorator
Nhìn Decorator trong thư viện vào ra chuẩn, cách bọc luồng dữ liệu chồng nhiều tầng, và bài tập tự viết decorator chữ thường.
Case study phát hiện gian lận bằng SNA và watchtower
Phân tích gian lận trên mạng xã hội: phân tích đơn giản, hai hạn chế, phương pháp tháp canh với chấm điểm kết quả tiêu cực và bậc nghi ngờ.
PageRank lan truyền điểm số và damping
Thuật toán PageRank của Larry Page và Sergey Brin: người lướt ngẫu nhiên, hệ số damping 0.85, hai thành phần liên quan và không liên quan tới truy vấn.
Abstract Factory: họ nguyên liệu và vùng miền
Định nghĩa Abstract Factory, xưởng nguyên liệu theo vùng, và cách pizza dùng họ nguyên liệu mà không biết tên cụ thể.
So sánh 3 factory và nghịch lý mở rộng
Đặt Simple Factory, Factory Method và Abstract Factory cạnh nhau, chốt nghịch lý thêm họ dễ thêm món khó và cẩm nang chọn.
Quy hoạch tuyến tính - hàm mục tiêu, ràng buộc, capacity planning
Thiết kế thuật toán bằng quy hoạch tuyến tính: hàm mục tiêu, ràng buộc, và bài toán hoạch định năng lực với ví dụ xưởng sản xuất.
Quy hoạch động nâng cao - overlapping, tái cấu trúc nghiệm
Chiến lược quy hoạch động: bài toán con gối nhau, cấu trúc con tối ưu, ghi nhớ, bảng phương án và tái cấu trúc nghiệm tối ưu.
TSP dưới 3 chiến lược - brute-force, greedy, DP
Bài toán người bán hàng rong dưới ba chiến lược vét cạn, tham lam và quy hoạch động Held-Karp, kèm so sánh chất lượng và thời gian.
Đồ thị phẳng: nhúng và định lý Kuratowski
Nhúng đồ thị, đồ thị đầy đủ lưỡng phân, Kuratowski thực hành và trực giác phẳng cho vẽ đồ thị.
Mini project 2 - tuyến giao hàng BFS, DFS, Dijkstra
Dự án tổng kết chặng đồ thị: xây mạng giao hàng, so sánh BFS, DFS, Dijkstra và A* trên cùng bản đồ, đo đạc và báo cáo.
Command: undo bằng state và macro mở tiệc
Nút hoàn tác ghi nhớ trạng thái trước khi chạy, và macro một nút mở cả rạp hát cho buổi tiệc.
Command thực tế: hàng đợi, logging và ActionListener
Lệnh bay vào hàng đợi yêu cầu, ghi nhật ký để phục hồi sau sự cố, và nút bấm giao diện với ActionListener.
OPTICS và phân cụm phân cấp
Thuật toán OPTICS: khoảng cách lõi, khoảng cách lan truyền, đồ thị lan truyền, trích cụm phân cấp và gom cụm agglomerative.
Giảm chiều PCA - vector riêng và PC1, PC2
Giảm chiều bằng phân tích thành phần chính: phương sai lớn nhất, PC1 PC2, tỉ lệ giữ lại và hạn chế tuyến tính của PCA.
State: máy bán kẹo và ủy thác trạng thái
Định nghĩa State, máy kẹo bốn trạng thái với rẽ nhánh khổng lồ, và cách mỗi trạng thái tự lo hành vi của mình.
State nâng cao: game 1/10 và State vs Strategy
Trạng thái trúng thưởng đổi sơ đồ chuyển, chia sẻ trạng thái giữa nhiều máy, và ranh giới với Strategy.
MapReduce cho K-means và canopy clustering
Song song hóa K-means bằng MapReduce, gom cụm canopy tiền xử lý, khởi tạo centroid thông minh và toàn cảnh MapReduce canopy.
MapReduce DBSCAN và khởi tạo centroid
Song song hóa DBSCAN dựa mật độ bằng MapReduce: chia vùng, gộp biên, xử lý nhiễu, và tổng kết khởi tạo centroid cho cả họ gom cụm.
Random forest, GBM và XGBoost
Học tập hợp từ cây đơn: rừng ngẫu nhiên bagging, boosting gradient, XGBoost và so sánh rừng với boosting trên thử thách classifiers.
SVM - margin, kernel và dữ liệu phi tuyến
Máy vector hỗ trợ: lề cực đại, vector hỗ trợ, kernel cho dữ liệu phi tuyến và bài thi classifiers.
Matrix factorization, cold start và mô hình lai
Nhân tử ẩn, Netflix Prize, cold start, sparsity, ảnh hưởng xã hội hai mặt và mô hình lai tiến hóa.
Bridge và Builder còn lại nhưng quan trọng
Bridge tách trừu tượng khỏi cài đặt cho remote TV, Builder dựng bữa ăn từng bước thay vì constructor khổng lồ.
Perceptron, XOR và kiến trúc mạng noron
Perceptron Rosenblatt, giới hạn XOR của Minsky-Papert, kiến trúc nhiều lớp, hidden layer và trực giác hình học của mạng noron sâu.
Huấn luyện mạng: loss, backprop và hàm kích hoạt
Hàm mất mát, lan truyền ngược, gradient descent, sáu hàm kích hoạt step sigmoid ReLU leaky ReLU tanh softmax và siêu tham số Keras.
Mediator, Memento và Prototype
Trạm điều phối máy bay, vé lưu trạng thái game, và bản sao mẫu thay vì tạo mới trong ba pattern bổ sung.
CNN: tích chập và gộp cho ảnh
Phép tích chập, kernel, stride padding, pooling, trực giác phân cấp đặc trưng và vì sao CNN vượt MLP trên ảnh.
GAN và transfer learning
Đối đầu sinh phân biệt, mode collapse, tái sử dụng mô hình tiền huấn luyện, đóng băng tầng và tinh chỉnh cho dữ liệu ít.
Proxy: truy cập từ xa và virtual ảnh bìa
Định nghĩa Proxy, người đại diện cho tài nguyên ở xa qua mạng, và ảnh bìa đĩa than tải chậm với virtual proxy.
Word embedding và sentiment bằng Naive Bayes
Word2Vec, điểm tương đồng, ưu nhược điểm embedding dày đặc và case sentiment review nhà hàng bằng Naive Bayes.
Mô hình chuỗi và RNN với BPTT
Dữ liệu tuần tự, bốn kiểu one-to-many many-to-one many-to-many, cell nhớ hidden state và lan truyền ngược theo thời gian.
LSTM và GRU: cổng và trí nhớ dài hạn
Cổng quên cổng cập nhật, trạng thái cell, so sánh LSTM GRU RNN cơ bản và thí nghiệm chuỗi trong bài này.
Attention, self-attention và Transformer
Nút thắt thought vector, cơ chế chú ý ba khía cạnh, self-attention, encoder hai chiều decoder và vì sao Transformer tỏa sáng.
GPT vs BERT và Seq2Seq bottleneck
Autoencoder, Seq2Seq, attention trong LLM, so sánh GPT giải mã và BERT mã hóa hai chiều, mô hình sâu rộng.
Chain of Responsibility và Flyweight
Chuỗi xử lý yêu cầu mua thư viện email, và chia sẻ nét vẽ cây trong rừng ngàn cây của Flyweight.
Stream processing thời gian thực và StreamSensing
Batch và stream, cửa sổ trượt, trễ và thông lượng, framework StreamSensing xử lý multimedia thời gian thực.
Bất đối xứng, PKI, blockchain và chống MITM
Mã bất đối xứng, bắt tay SSL TLS, hạ tầng khóa công khai, blockchain và phòng chống MITM khi triển khai ML.
MVC: compound pattern điều khiển nhịp DJ
Mô hình khung nhìn điều khiển qua ứng dụng nhịp DJ, cách ba tầng nói chuyện và compound pattern là gì.
Đàn vịt compound: 4 patterns trong một app
Mô phỏng vịt dùng chung Strategy Observer Decorator Factory, đếm tiếng quạc và đàn vịt an toàn.
Spark, in-memory và elasticity hệ thống lớn
Thuật toán quy mô lớn, cân bằng tải, co giãn đàn hồi, Spark tính toán trong bộ nhớ và ví dụ đám mây.
Hiệu năng tính toán: Amdahl, CUDA và data locality
Giới hạn song song Amdahl, GPU CUDA, locality dữ liệu và case song song LLM lợi nhuận giảm dần.
Gradient descent: cost, step và local minima
Heuristic số giao cắt, tối ưu hàm chi phí, bước đi, lấy mẫu ngẫu nhiên và toán hình học gradient descent.
Gradient cho hồi quy tuyến tính và graph embedding
Gradient cho hồi quy, nhúng đồ thị, tiêu chí vẽ khác nhau và cài đặt lặp tối ưu vị trí đỉnh.
Simulated annealing: leo lên để xuống đáy
Ủ nhiệt mô phỏng, chấp nhận nghiệm xấu có kiểm soát, chuyển ngắn dài, biến thể và so với gradient descent.
SA cho TSP: transition, 2-opt và tỉa cành
TSP nghiệm đúng và xấp xỉ, trực quan chi phí, tỉa miền, chuyển trạng thái và so kề đổi ngẫu nhiên.
Giải thuật di truyền: chromosome, fitness, selection
Cảm hứng tự nhiên, quần thể nhiễm sắc thể, fitness chọn lọc và khuôn mẫu thuật toán di truyền.
Project: refactor SimUDuck bằng Strategy và Observer
Đề refactor đàn vịt kế thừa cứng nhắc sang Strategy và gắn bảng quan sát, kèm rubric chấm bốn mức.
Project: Pizza Store bằng Factory và Decorator
Đề xây Pizza Store đa vùng bằng Factory Method Abstract Factory và cộng topping bằng Decorator, kèm rubric.
Kể chuyện patterns và SOLID khi phỏng vấn
Ôn thi phỏng vấn patterns: kể SimUDuck Weather Starbuzz trong hai phút, trả lời khi nào dùng và so sánh cặp đôi dễ nhầm.
SS-tree và similarity search gần đúng cho ảnh
Cây tìm kiếm tương đồng SS-tree: siêu cầu, chèn bằng phương sai và hình chiếu, tách nút, xóa, truy vấn xấp xỉ và cải tiến SS cộng tree.
Planarity testing và crossing number tối thiểu
Kiểm tra phẳng naive tới hiệu quả, số giao cắt và giao cắt thẳng, giao đoạn thẳng đa tuyến Bezier.
SA vẽ đồ thị: force-directed và min edge crossing
Ủ nhiệt cho nhúng đồ thị, tối thiểu giao cắt cạnh và vẽ hướng lực cho sơ đồ đẹp.
Lai, đột biến và GA cho TSP, vertex cover
Toán tử lai đột biến, GA cho TSP và phủ đỉnh tối thiểu, chỉnh tham số và ứng dụng xa hơn.
Dynamic proxy, protection proxy và vườn thú proxy
Đại diện tạo động lúc chạy, bảo vệ theo vai trò người dùng, và bản đồ tám loại proxy trong bài này.
Interpreter và Visitor cho ngôn ngữ và cấu trúc
Thông dịch cú pháp đơn giản bằng cây biểu thức, và khách thăm thêm việc mới cho cấu trúc ổn định của Visitor.
Project: rạp hát Facade và Command macro
Đề xây mặt tiền rạp hát hai nút và remote macro mở tiệc có hoàn tác, kèm rubric chấm bốn mức.
App: autocomplete có Trie và cache LRU
Xây app gợi ý từ khóa hoàn chỉnh: Trie lưu từ điển, heap xếp hạng theo tần suất, LRU cache tăng tốc prefix nóng, đo p95 dưới 50ms.
App: mini search engine với Trie, ranking và Bloom
Xây mini search engine: index ngược bằng Trie, chấm điểm TF-IDF, Bloom filter chặn từ vô nghĩa, benchmark truy vấn đa từ khóa.
App: rate limiter bằng cache và hàng đợi
Xây rate limiter đa thuật toán: fixed window, sliding window log, token bucket, lưu trạng thái bằng cache, test chịu tảiđồng thời.
App: top-K trên stream bằng heap
Xây app top-K trending trên dòng dữ liệu chảy: min-heap K phần tử, cửa sổ trượt theo thời gian, xử lý tần suất xấp xỉ với bộ nhớ chặn trên.
App: pipeline phát hiện gian lận bằng đồ thị
Xây pipeline chống gian lận: đồ thị giao dịch, đặc trưng egonet và centrality, luật watchtower, đánh giá precision recall trên dữ liệu gán nhãn.
App: recommendation engine end-to-end
Xây engine gợi ý hoàn chỉnh: content-based, collaborative filtering user và item, matrix factorization, xử lý cold start, đo precision và đa dạng.
App: pipeline clustering từ K-means tới OPTICS
Xây pipeline phân cụm end-to-end: chuẩn hóa, chọn K bằng silhouette, so K-means DBSCAN OPTICS, báo cáo metric và diễn giải cụm.
App: wordcount MapReduce và Spark job
Xây app đếm từ phân tán: MapReduce thủ công đa tiến trình, Spark job tương đương, so sánh tốc độ, shuffle và fault tolerance.
App: tuyến giao hàng so sánh BFS, Dijkstra, A*
Xây app tuyến giao hàng: bản đồ lưới và đồ thị thực, so BFS Dijkstra A*, đo số nút thăm và độ dài đường, trực quan 3 thuật toán.
App: thiết kế mạng với Prim và Kruskal
Xây app thiết kế mạng cáp tối thiểu: cài Prim và Kruskal, so sánh trên đồ thị thưa và dày, kiểm tra tính đúng bằng cut property.
App: TSP so găng greedy, SA và GA
Xây sàn đấu TSP: greedy nearest neighbor, simulated annealing với 2-opt, giải thuật di truyền, so chất lượng và thời gian trên cùng bản đồ.
App: nhúng và vẽ đồ thị force-directed
Xây app nhúng và vẽ đồ thị: layout lò xo Fruchterman-Reingold bằng SA, graph embedding bằng gradient, đo edge crossing và trực quan.
App: tuning siêu tham số với gradient và eval
Xây pipeline tuning: gradient descent cho hồi quy, random và grid search siêu tham số, eval chống overfit, báo cáo đường cong học.
App: sentiment từ tokenize tới Naive Bayes
Xây app phân loại cảm xúc review: tokenizer, BoW TF-IDF, Naive Bayes tự viết, đánh giá confusion matrix, demo realtime.
App: tìm ảnh với CNN và similarity search
Xây app tìm ảnh tương tự: trích đặc trưng CNN pretrained, index similarity bằng k-d tree và brute-force, đo recall và độ trễ.
App: dự báo chuỗi với RNN và LSTM
Xây app dự báo chuỗi thời gian: baseline trung bình trượt, RNN tự viết với BPTT, LSTM cổng, so RMSE và vẽ dự báo nhiều bước.
App: chat bảo mật với TLS handshake và PKI
Xây app chat bảo mật: mô phỏng bắt tay TLS, mã hóa đối xứng phiên, chữ ký PKI, demo tấn công MITM bị chặn.
App: pipeline batch vs stream và CAP
Xây pipeline dữ liệu kép: batch đúng dần, stream realtime, đối chiếu chênh lệch, phân tích đánh đổi CAP khi node chết.
App: hệ thống cache LRU, LFU và locks
Xây hệ thống cache đa chiến lược: LRU, LFU, TTL freshness, async load, khóa chống dogpile, benchmark hit-rate và p99.
App: index DB với B-tree, hash và Bloom
Xây engine index mini: B-tree cho range query, hash cho point lookup, Bloom chặn key vắng, so độ trễ đọc ghi.
App: spell checker với Trie và độ tương đồng
Xây app sửa chính tả: Trie từ điển, edit distance, gợi ý xếp hạng, đo precision trên lỗi gõ mẫu.
App: AI game kẹo với State và Strategy
Xây game máy bán kẹo có AI: State quản lý vòng đời, Strategy đổi chính sách thưởng, mô phỏng ngàn ván đo doanh thu.
App: text editor undo với stack, Command và Memento
Xây text editor có undo redo: Command đóng gói thao tác, Memento snapshot, stack lịch sử, macro và benchmark bộ nhớ.
App: hệ thống thông báo với Observer và queue
Xây hệ thống thông báo đa kênh: Observer pub-sub, hàng đợi retry, template Strategy, đo tỉ lệ gửi và độ trễ.
Ôn tập tổng hợp: từ sắp xếp tới tối ưu
Checkpoint giữa chặng app: rà soát 24 app đã build, vá lỗ hổng, benchmark lại, chuẩn bị nền cho 5 capstone lớn.
Capstone: benchmark sort và graph traversal
Capstone 1: benchmark freedoms sắp xếp O(n²) vs O(n log n) và BFS DFS Dijkstra trên cùng hạ tầng đo, báo cáo chọn thuật toán.
Capstone: autocomplete cache LRU và Trie nâng cao
Capstone 2: nâng autocomplete ngày 126 lên radix trie, LFU so LRU, singleflightđồng thời, SLO p95 và báo cáo production-ready.
Capstone: clustering pipeline và báo cáo metric
Capstone 3: pipeline clustering production trên dữ liệu khách hàng thật mô phỏng, MapReduce scale, báo cáo metric và diễn giải kinh doanh.
Capstone: recsys có đo cold start và sparsity
Capstone 4: nâng recsys ngày 131 lên A-B test, đo cold start và sparsity, blend theo độ ấm, báo cáo business metric.
Capstone: hệ thống lớn có mật mã và streaming
Capstone 5: tổng hợp lớn nhất — pipeline streaming mã hóa E2E, cache phân tán, index Bloom, chaos test, báo cáo kiến trúc hệ thống.
Capstone: tối ưu TSP và vẽ đồ thị tổng hợp
So găng brute-force, greedy, DP, simulated annealing và di truyền trên cùng bộ TSP, cải thiện tour bằng 2-opt và vẽ mạng lưới ít giao cắt.
Capstone: SimUDuck refactor toàn diện
Refactor đàn vịt bằng Strategy và Observer, thêm hành vi bay mới lúc chạy và thử thách khách hàng đổi yêu cầu phút chót.
Capstone: Pizza Store đa vùng và toppings
Xây Pizza Store nhiều vùng bằng Factory Method và Abstract Factory, chồng topping bằng Decorator và chốt bảng giá chính xác.
Capstone: home theater Facade và macro
Gom dàn máy rạp hát sau một nút bấm Facade, lập trình macro xem phim bằng Command có undo và xử lý lỗi từng thiết bị.
Capstone: mạng xã hội mini với graph và feed
Dựng mạng xã hội mini: đồ thị theo dõi, gợi ý bạn bằng BFS, bảng tin xếp hạng và chống spam bằng Bloom filter.
Phỏng vấn 1: array, string và two pointers
Luyện phỏng vấn mảng và chuỗi: two pointers, sliding window, tiền tố, trình bày think-aloud và phân tích độ phức tạp.
Phỏng vấn 2: BST, heap và top-k
Luyện phỏng vấn cây và heap: duyệt BST, kiểm tra bất biến, heapify, top-k trên stream và đánh đổi bộ nhớ.
Phỏng vấn 3: BFS, DFS, Dijkstra trên ma trận
Luyện phỏng vấn đồ thị: flood fill, số đảo, đường ngắn nhất lưới, Dijkstra có trọng số và bẫy thăm lại.
Phỏng vấn 4: DP kinh điển và greedy chứng minh
Luyện phỏng vấn DP và greedy: nhận diện bài toán con gối nhau, bảng một hai chiều, chứng minh greedy bằng đổi chỗ.
Phỏng vấn 5: cache, rate limiter và search
Luyện system design mini: cache LRU LFU, rate limiter token bucket, search Trie Bloom và đánh đổi nhất quán.
Phỏng vấn 6: kể chuyện patterns và SOLID
Luyện kể chuyện thiết kế: chọn pattern đúng, ánh xạ SOLID, refactor trước sau và trả lời chất vấn trade-off.
Dự án cuối 1: đặc tả và chia module
Khởi động dự án cuối khóa: chốt đề tài, viết đặc tả yêu cầu, chia module và hợp đồng giao tiếp giữa các nhóm.
Dự án cuối 2: benchmark và profiling
Xây module lõi dự án cuối khóa, benchmark hiệu năng, profiling tìm bottleneck và tối ưu có số liệu trước sau.
Dự án cuối 3: dữ liệu lớn và evaluate
Nâng dự án lên dữ liệu lớn: pipeline batch stream, đánh giá độ chính xác, xử lý nhiễu thiếu và chốt báo cáo metric.
Dự án cuối 4: áp dụng patterns và review chéo
Hoàn thiện dự án cuối khóa: áp dụng patterns đúng chỗ, review chéo, sửa theo feedback và đóng gói bản demo.
Tổng kết 180 ngày: bản đồ tri thức
Nhìn lại toàn lộ trình 180 ngày, vẽ bản đồ tri thức cá nhân và xác định vùng mạnh yếu để học tiếp.
Lộ trình sau 180 ngày: ML, systems, research
Vạch 3 hướng đi sau khóa học gồm học máy chuyên sâu, systems và research, mỗi hướng có mốc 30-60-90 ngày.
Checklist năng lực: tự đánh giá 180 kỹ năng
Tự đánh giá toàn diện qua checklist năng lực, đối chiếu chéo bằng sản phẩm và chốt kế hoạch vá 5 lỗ hổng lớn nhất.
Bộ đề luyện thêm 50 bài tự ra đề
Tự biên bộ 50 đề luyện thêm phủ 6 cụm, phân tầng dễ khó, kèm đáp án gợi ý và lịch luyện 5 tuần.
System design cơ bản: scale, ELB và sharding
Thực hành system design nghề nghiệp: ước lượng tải, cân bằng tải, sharding, cache tầng và trình bày trước hội đồng.
Đọc whitepaper và viết blog kỹ thuật
Rèn năng lực nghề nghiệp đọc tài liệu gốc: mổ một whitepaper, tái lập ý chính và viết blog kỹ thuật ngàn từ.
Ngày open source: đọc source và đóng góp
Thực hành nghề nghiệp mã nguồn mở: chọn repo, đọc kiến trúc, sửa một issue thật và gửi pull request đúng chuẩn.
Mock interview và peer review chéo
Thi thử tổng hợp như phỏng vấn thật: coding, design mini, kể chuyện patterns và review chéo có biên bản.
Hoàn thiện sản phẩm demo cuối khóa
deposit nghề nghiệp cuối khóa: polish sản phẩm, quay video demo, viết README tuyển dụng và chuẩn bị trả lời chất vấn.
Demo day và tổng kết
Lễ tốt nghiệp 180 ngày: demo sản phẩm, chia sẻ hành trình, nhận feedback và khép lại với cam kết 90 ngày tới.