---
url: https://docs.nemo12.com/knowledge/informatics/labs.md
description: >-
  Môn Tin học, mục Lab: 242 lab, trong đó 242 đang live. Cột **Gắn node** trống
  nghĩa là lab đó chưa ghi được bằng chứng năng lực (SDD-010 §5.1).
---

# Tin học · Lab

Thuộc [cây kiến thức môn Tin học](../informatics.md). Sinh bằng `scripts/export-knowledge-to-docs.mjs`, đừng sửa tay.

242 lab, trong đó 242 đang live. Cột **Gắn node** trống nghĩa là lab đó chưa ghi được bằng chứng năng lực (SDD-010 §5.1).

| Mã lab | Tên | Engine | Trạng thái | Unit | Gắn node |
| --- | --- | --- | --- | --- | --- |
| `inf-2d-table` | Hàng hay cột | picker | live | Bảng số | `inf-ctdl-3-1` |
| `inf-2d-traverse` | Vòng nào ngoài | picker | live | Duyệt theo hàng và cột | `inf-ctdl-3-2` |
| `inf-accumulate` | Biến tích luỹ | picker | live | Đếm và cộng dồn | `inf-lt-5-3` |
| `inf-activity-selection` | Chọn theo tiêu chí nào | picker | live | Chọn hoạt động | `inf-kt-2-3` |
| `inf-add-remove` | Dịch bao nhiêu phần tử | picker | live | Thêm và xoá phần tử | `inf-ctdl-4-2` |
| `inf-algorithm` | Thế nào là thuật toán | picker | live | Thuật toán là gì | `inf-tt-1-1` |
| `inf-applications` | Loại phần mềm nào | picker | live | Phần mềm ứng dụng | `inf-mt-1-5` |
| `inf-arithmetic` | Phép nào ra gì | picker | live | Phép toán số học | `inf-lt-3-2` |
| `inf-array-access` | Chỉ số nào hợp lệ | picker | live | Truy cập phần tử | `inf-ctdl-1-2` |
| `inf-backtracking` | Thử rồi huỷ | picker | live | Quay lui | `inf-tt-5-5` |
| `inf-backup` | Bản sao ở đâu | picker | live | Sao lưu dữ liệu | `inf-mt-3-4` |
| `inf-base-case` | Dừng ở đâu | picker | live | Trường hợp cơ sở | `inf-tt-5-2` |
| `inf-base-convert` | Đổi qua đổi lại | picker | live | Đổi cơ số | `inf-mt-2-2` |
| `inf-bfs` | Lan ra từng lớp | picker | live | Duyệt theo chiều rộng | `inf-tt-6-1` |
| `inf-big-o` | Giữ lại phần nào | picker | live | Kí hiệu O lớn | `inf-tt-4-2` |
| `inf-bignum` | Vượt kiểu số thì sao | picker | live | Số lớn | `inf-kt-5-5` |
| `inf-binary` | Đọc số nhị phân | picker | live | Hệ nhị phân | `inf-mt-2-1` |
| `inf-binary-search` | Loại bao nhiêu mỗi lần | picker | live | Tìm nhị phân | `inf-tt-2-2` |
| `inf-binary-tree` | Tối đa mấy con | picker | live | Cây nhị phân | `inf-ctdl-6-2` |
| `inf-bit-byte` | Đếm được bao nhiêu | picker | live | Bit và byte | `inf-mt-2-3` |
| `inf-boolean` | Đúng hay sai | picker | live | Kiểu logic | `inf-lt-2-4` |
| `inf-bounds` | Cái đầu tiên hay cái bất kỳ | picker | live | Tìm biên trái và biên phải | `inf-tt-2-4` |
| `inf-brackets` | Khớp với cái nào | picker | live | Kiểm tra ngoặc đúng | `inf-ctdl-4-6` |
| `inf-break` | Dừng sớm kiểu gì | picker | live | Thoát vòng lặp | `inf-lt-5-5` |
| `inf-bsearch-condition` | Khi nào dùng được | picker | live | Điều kiện dùng tìm nhị phân | `inf-tt-2-3` |
| `inf-bubble` | Đổi chỗ tới khi nào | picker | live | Sắp xếp nổi bọt | `inf-tt-3-1` |
| `inf-case-convert` | Đổi để làm gì | picker | live | Đổi hoa thường | `inf-ctdl-2-5` |
| `inf-casting` | Chuỗi hay số | picker | live | Ép kiểu dữ liệu | `inf-lt-2-5` |
| `inf-charset` | Chữ lưu thành số | picker | live | Mã hoá kí tự | `inf-mt-2-4` |
| `inf-clean-data` | Sửa hay bỏ | picker | live | Làm sạch dữ liệu | `inf-mt-6-2` |
| `inf-closest-pair` | Chia mặt phẳng | picker | live | Tìm cặp gần nhất | `inf-kt-1-4` |
| `inf-cloud` | Máy của ai | picker | live | Dịch vụ đám mây | `inf-mt-4-6` |
| `inf-coin-change` | Tham lam đúng hay sai | picker | live | Bài toán đổi tiền | `inf-kt-2-2` |
| `inf-collect-data` | Lấy dữ liệu ở đâu | picker | live | Thu thập dữ liệu | `inf-mt-6-1` |
| `inf-combinatorics` | Thứ tự có quan trọng không | picker | live | Tổ hợp và chỉnh hợp | `inf-kt-5-4` |
| `inf-comments` | Ghi gì vào chú thích | picker | live | Chú thích trong mã | `inf-lt-1-4` |
| `inf-common-bugs` | Sai ở đâu nhiều nhất | picker | live | Lỗi thường gặp | `inf-kt-6-4` |
| `inf-compare-algos` | Chọn theo gì | picker | live | So sánh thuật toán | `inf-tt-4-5` |
| `inf-compare-search` | Cái nào hơn ở đâu | picker | live | So sánh hai cách tìm | `inf-tt-2-6` |
| `inf-comparison` | So ra đúng hay sai | picker | live | Toán tử so sánh | `inf-lt-4-4` |
| `inf-components` | Đếm mấy cụm | picker | live | Thành phần liên thông | `inf-tt-6-4` |
| `inf-compression` | Nén được bao nhiêu | picker | live | Nén dữ liệu | `inf-mt-3-3` |
| `inf-concat` | Ghép chuỗi | picker | live | Nối và lặp chuỗi | `inf-ctdl-2-3` |
| `inf-constants` | Vì sao khoá lại | picker | live | Hằng số | `inf-lt-2-6` |
| `inf-count-chars` | Đếm cái gì | picker | live | Đếm kí tự | `inf-ctdl-2-6` |
| `inf-count-ops` | Đếm cái gì | picker | live | Đếm số phép tính | `inf-tt-4-1` |
| `inf-cpu-memory` | Nhanh và chậm | picker | live | CPU và bộ nhớ | `inf-mt-1-2` |
| `inf-csv` | Bảng lưu thành chữ | picker | live | Dữ liệu dạng CSV | `inf-mt-3-6` |
| `inf-cycles` | Có quay về không | picker | live | Chu trình | `inf-tt-6-5` |
| `inf-debug` | Tìm lỗi kiểu gì | picker | live | Chạy và gỡ lỗi | `inf-lt-1-5` |
| `inf-declare-array` | Mảng là gì | picker | live | Khai báo mảng | `inf-ctdl-1-1` |
| `inf-decompose-program` | Một khối hay nhiều hàm | picker | live | Chia nhỏ chương trình | `inf-lt-6-6` |
| `inf-dedupe` | Loại kiểu gì | picker | live | Loại phần tử trùng | `inf-kt-4-6` |
| `inf-define-function` | Định nghĩa và gọi | picker | live | Định nghĩa hàm | `inf-lt-6-1` |
| `inf-dfs` | Đi sâu rồi quay lại | picker | live | Duyệt theo chiều sâu | `inf-tt-6-2` |
| `inf-diagonals` | Hai đường chéo | picker | live | Đường chéo | `inf-ctdl-3-3` |
| `inf-digital-audio` | Cắt sóng thành mẫu | picker | live | Âm thanh số | `inf-mt-2-6` |
| `inf-digital-footprint` | Để lại gì phía sau | picker | live | Dấu chân số | `inf-mt-5-5` |
| `inf-divide-conquer` | Chia rồi làm gì | picker | live | Ý tưởng chia để trị | `inf-kt-1-1` |
| `inf-dp-table` | Điền bảng theo thứ tự nào | picker | live | Bảng quy hoạch động | `inf-kt-3-3` |
| `inf-dynamic-list` | Đổi kích thước được không | picker | live | Danh sách động | `inf-ctdl-4-1` |
| `inf-edge-cases` | Ca nào hay hỏng | picker | live | Trường hợp biên | `inf-tt-1-6` |
| `inf-estimate-time` | Kịp hay không kịp | picker | live | Ước lượng chạy kịp giờ | `inf-tt-4-6` |
| `inf-fast-lookup` | Nhanh cỡ nào | picker | live | Tra cứu nhanh | `inf-ctdl-5-5` |
| `inf-fast-power` | Nhân bao nhiêu lần | picker | live | Luỹ thừa nhanh | `inf-kt-1-5` |
| `inf-fib` | Gọi bao nhiêu lần | picker | live | Giai thừa và Fibonacci | `inf-tt-5-3` |
| `inf-file-formats` | Đuôi tệp nói gì | picker | live | Định dạng tệp | `inf-mt-3-2` |
| `inf-file-io` | Ghi đè hay ghi thêm | picker | live | Đọc ghi tệp bằng chương trình | `inf-mt-3-5` |
| `inf-first-program` | Mã chạy theo thứ tự nào | picker | live | Chương trình đầu tiên | `inf-lt-1-1` |
| `inf-flowchart` | Hình nào nghĩa gì | picker | live | Sơ đồ khối | `inf-tt-1-3` |
| `inf-folders` | Tìm lại kiểu gì | picker | live | Tổ chức thư mục | `inf-mt-3-1` |
| `inf-for` | Chạy bao nhiêu vòng | picker | live | Vòng lặp for | `inf-lt-5-1` |
| `inf-format` | Hiện ra thế nào | picker | live | Định dạng kết quả | `inf-lt-3-5` |
| `inf-frequency` | Đếm bằng gì | picker | live | Đếm tần suất | `inf-ctdl-5-2` |
| `inf-function-calls` | Ai gọi ai | picker | live | Hàm gọi hàm | `inf-lt-6-5` |
| `inf-gcd` | Tìm bằng cách nào | picker | live | Ước chung lớn nhất | `inf-kt-5-2` |
| `inf-graph-basics` | Mô hình hoá bằng gì | picker | live | Đồ thị, đỉnh và cạnh | `inf-ctdl-6-4` |
| `inf-graph-paths` | Đi được không | picker | live | Đường đi trong đồ thị | `inf-ctdl-6-6` |
| `inf-graph-repr` | Lưu bằng gì | picker | live | Biểu diễn đồ thị | `inf-ctdl-6-5` |
| `inf-greedy` | Chọn tốt nhất ngay | picker | live | Ý tưởng tham lam | `inf-kt-2-1` |
| `inf-greedy-fails` | Tìm phản ví dụ | picker | live | Khi tham lam cho kết quả sai | `inf-kt-2-5` |
| `inf-greedy-proof` | Chứng minh kiểu gì | picker | live | Chứng minh tham lam đúng | `inf-kt-2-6` |
| `inf-grid-game` | Đi được tới đâu | picker | live | Trò chơi trên lưới | `inf-ctdl-3-6` |
| `inf-grid-paths` | Đếm đường thế nào | picker | live | Đường đi trên lưới | `inf-kt-3-6` |
| `inf-grouping` | Gom theo khoá | picker | live | Nhóm dữ liệu | `inf-ctdl-5-6` |
| `inf-halving` | Chia đôi được gì | picker | live | Chia đôi bài toán | `inf-kt-1-2` |
| `inf-http` | Mã trả về nói gì | picker | live | Giao thức HTTP | `inf-mt-4-3` |
| `inf-ide` | Chạy mã ở đâu | picker | live | Môi trường lập trình | `inf-lt-1-6` |
| `inf-if` | Khi nào thì chạy | picker | live | Câu lệnh if | `inf-lt-4-1` |
| `inf-if-else` | Nhánh nào chạy | picker | live | Câu lệnh if else | `inf-lt-4-2` |
| `inf-infinite-loop` | Vì sao không dừng | picker | live | Lặp vô hạn và cách tránh | `inf-lt-5-6` |
| `inf-input` | Nhập vào ra kiểu gì | picker | live | Nhập từ bàn phím | `inf-lt-3-1` |
| `inf-insertion-sort` | Chèn vào đâu | picker | live | Sắp xếp chèn | `inf-tt-3-3` |
| `inf-int-float` | Chia ra số nào | picker | live | Số nguyên và số thực | `inf-lt-2-2` |
| `inf-inversions` | Đếm cặp sai thứ tự | picker | live | Đếm nghịch thế | `inf-kt-1-6` |
| `inf-io-devices` | Vào hay ra | picker | live | Thiết bị vào ra | `inf-mt-1-3` |
| `inf-ip-dns` | Tên hay số | picker | live | Địa chỉ IP và tên miền | `inf-mt-4-2` |
| `inf-key-value` | Tra bằng gì | picker | live | Cặp khoá và giá trị | `inf-ctdl-5-1` |
| `inf-knapsack` | Lấy hay không lấy | picker | live | Bài toán cái túi | `inf-kt-3-5` |
| `inf-licensing` | Dùng được tới đâu | picker | live | Bản quyền và giấy phép | `inf-mt-5-6` |
| `inf-linear-search` | So bao nhiêu lần | picker | live | Tìm tuần tự | `inf-tt-2-1` |
| `inf-lis` | Trạng thái là gì | picker | live | Dãy con tăng dài nhất | `inf-kt-3-4` |
| `inf-logic-ops` | Ghép điều kiện kiểu gì | picker | live | Toán tử logic | `inf-lt-4-5` |
| `inf-maintenance` | Việc nào có tác dụng | picker | live | Bảo trì máy tính | `inf-mt-1-6` |
| `inf-malware` | Vào máy bằng đường nào | picker | live | Phần mềm độc hại | `inf-mt-5-3` |
| `inf-matrix-add` | Cộng ô nào với ô nào | picker | live | Cộng hai ma trận | `inf-ctdl-3-5` |
| `inf-memoization` | Nhớ rồi khỏi tính | picker | live | Ghi nhớ kết quả | `inf-kt-3-2` |
| `inf-merge-sort` | Chia rồi trộn | picker | live | Sắp xếp trộn | `inf-tt-3-4` |
| `inf-merge-step` | Gộp thế nào cho rẻ | picker | live | Trộn kết quả | `inf-kt-1-3` |
| `inf-min-max` | Khởi tạo bằng gì | picker | live | Tìm lớn nhất và nhỏ nhất | `inf-ctdl-1-4` |
| `inf-ml` | Học từ đâu | picker | live | Máy học là gì | `inf-mt-6-4` |
| `inf-model-predict` | Dự đoán đúng bao nhiêu | picker | live | Mô hình và dự đoán | `inf-mt-6-5` |
| `inf-modular` | Lấy dư lúc nào | picker | live | Số học modulo | `inf-kt-5-3` |
| `inf-modulo` | Dư nói lên gì | picker | live | Phép chia lấy dư | `inf-lt-3-4` |
| `inf-money-problem` | Ghép ba bước lại | picker | live | Bài toán tính tiền | `inf-lt-3-6` |
| `inf-multikey-sort` | Khoá nào trước | picker | live | Sắp xếp theo nhiều khoá | `inf-tt-3-6` |
| `inf-multiway` | Xếp thứ tự nhánh | picker | live | Chọn nhiều nhánh | `inf-lt-4-6` |
| `inf-nested-if` | Lồng hay nối | picker | live | Điều kiện lồng nhau | `inf-lt-4-3` |
| `inf-nested-loop` | Chạy tất cả bao nhiêu lần | picker | live | Vòng lặp lồng nhau | `inf-lt-5-4` |
| `inf-network` | Máy nói chuyện kiểu gì | picker | live | Mạng máy tính | `inf-mt-4-1` |
| `inf-os` | Ai điều phối | picker | live | Hệ điều hành | `inf-mt-1-4` |
| `inf-overlapping` | Tính lại mấy lần | picker | live | Bài toán con gối nhau | `inf-kt-3-1` |
| `inf-parameters` | Truyền gì vào | picker | live | Tham số và đối số | `inf-lt-6-2` |
| `inf-parts` | Bộ phận nào làm gì | picker | live | Các bộ phận của máy tính | `inf-mt-1-1` |
| `inf-passwords` | Mạnh nhờ cái gì | picker | live | Mật khẩu mạnh | `inf-mt-5-1` |
| `inf-phishing` | Thật hay giả | picker | live | Lừa đảo trực tuyến | `inf-mt-5-2` |
| `inf-pick-algorithm` | Chọn theo gì | picker | live | Chọn thuật toán phù hợp | `inf-kt-6-2` |
| `inf-pixels` | Ảnh gồm gì | picker | live | Ảnh và điểm ảnh | `inf-mt-2-5` |
| `inf-precedence` | Máy tính theo thứ tự nào | picker | live | Thứ tự ưu tiên phép toán | `inf-lt-3-3` |
| `inf-prefix-sum` | Chuẩn bị trước một lần | picker | live | Tổng tiền tố | `inf-kt-4-4` |
| `inf-print` | In ra cái gì | picker | live | In ra màn hình | `inf-lt-1-3` |
| `inf-privacy` | Ai thấy được gì | picker | live | Quyền riêng tư | `inf-mt-5-4` |
| `inf-probability` | Ngẫu nhiên thật hay giả | picker | live | Xác suất và ngẫu nhiên | `inf-kt-5-6` |
| `inf-pseudocode` | Viết cho ai đọc | picker | live | Mã giả | `inf-tt-1-4` |
| `inf-queue` | Vào trước ra trước | picker | live | Hàng đợi | `inf-ctdl-4-4` |
| `inf-quicksort` | Chọn chốt thế nào | picker | live | Sắp xếp nhanh | `inf-tt-3-5` |
| `inf-read-problem` | Ràng buộc nói gì | picker | live | Đọc đề và ràng buộc | `inf-kt-6-1` |
| `inf-recursion` | Gọi lại chính mình | picker | live | Hàm gọi chính nó | `inf-tt-5-1` |
| `inf-recursion-array` | Chia mảng thế nào | picker | live | Đệ quy trên mảng | `inf-tt-5-4` |
| `inf-recursion-vs-loop` | Chọn cái nào | picker | live | Đệ quy và vòng lặp | `inf-tt-5-6` |
| `inf-responsible-ai` | Ai chịu trách nhiệm | picker | live | Dùng AI có trách nhiệm | `inf-mt-6-6` |
| `inf-return` | Trả ra hay in ra | picker | live | Giá trị trả về | `inf-lt-6-3` |
| `inf-reverse` | Đổi tới đâu thì dừng | picker | live | Đảo ngược mảng | `inf-ctdl-1-6` |
| `inf-same-direction` | Cùng đi một hướng | picker | live | Hai con trỏ cùng chiều | `inf-kt-4-1` |
| `inf-scheduling` | Sắp theo gì | picker | live | Xếp lịch | `inf-kt-2-4` |
| `inf-scope` | Biến sống ở đâu | picker | live | Phạm vi của biến | `inf-lt-6-4` |
| `inf-search-matrix` | Đi từ đâu | picker | live | Tìm trong ma trận | `inf-tt-2-5` |
| `inf-search-skill` | Gõ gì vào ô tìm | picker | live | Tìm kiếm hiệu quả | `inf-mt-4-5` |
| `inf-selection-sort` | Chọn rồi đặt | picker | live | Sắp xếp chọn | `inf-tt-3-2` |
| `inf-set-ops` | Phép nào ra gì | picker | live | Giao và hợp | `inf-ctdl-5-4` |
| `inf-sets` | Trùng thì sao | picker | live | Tập hợp và phần tử duy nhất | `inf-ctdl-5-3` |
| `inf-shortest-path` | Ngắn theo nghĩa nào | picker | live | Đường đi ngắn nhất | `inf-tt-6-3` |
| `inf-sieve` | Kiểm hay sàng | picker | live | Số nguyên tố và sàng | `inf-kt-5-1` |
| `inf-sliding-window` | Trượt hay tính lại | picker | live | Cửa sổ trượt | `inf-kt-4-3` |
| `inf-space-complexity` | Tốn thêm bao nhiêu | picker | live | Độ phức tạp bộ nhớ | `inf-tt-4-4` |
| `inf-spanning-tree` | Nối hết mà không thừa | picker | live | Cây khung | `inf-tt-6-6` |
| `inf-square-matrix` | Vuông thì được gì | picker | live | Ma trận vuông | `inf-ctdl-3-4` |
| `inf-stack` | Vào sau ra trước | picker | live | Ngăn xếp | `inf-ctdl-4-3` |
| `inf-stack-uses` | Dùng vào việc gì | picker | live | Ứng dụng của ngăn xếp | `inf-ctdl-4-5` |
| `inf-steps` | Bước nào trước | picker | live | Mô tả bằng các bước | `inf-tt-1-2` |
| `inf-string-length` | Đếm được gì | picker | live | Độ dài và kí tự | `inf-ctdl-2-1` |
| `inf-string-search` | Tìm chuỗi con | picker | live | Tìm kiếm trong chuỗi | `inf-ctdl-2-4` |
| `inf-strings` | Chuỗi là gì | picker | live | Chuỗi kí tự | `inf-lt-2-3` |
| `inf-substring` | Cắt từ đâu tới đâu | picker | live | Cắt chuỗi con | `inf-ctdl-2-2` |
| `inf-sum-average` | Cộng rồi chia | picker | live | Tổng và trung bình | `inf-ctdl-1-5` |
| `inf-syntax` | Máy báo gì khi mình gõ sai | picker | live | Cú pháp và lỗi cú pháp | `inf-lt-1-2` |
| `inf-test-gen` | Sinh ca thử kiểu gì | picker | live | Sinh dữ liệu thử | `inf-kt-6-3` |
| `inf-time-complexity` | Tăng nhanh cỡ nào | picker | live | Độ phức tạp thời gian | `inf-tt-4-3` |
| `inf-time-limit` | Kịp hay không | picker | live | Giới hạn thời gian | `inf-kt-6-5` |
| `inf-trace` | Lần theo từng bước | picker | live | Chạy thử bằng tay | `inf-tt-1-5` |
| `inf-traverse` | Đi qua từng phần tử | picker | live | Duyệt mảng | `inf-ctdl-1-3` |
| `inf-tree` | Cấu trúc phân cấp | picker | live | Cây là gì | `inf-ctdl-6-1` |
| `inf-tree-traverse` | Thăm nút khi nào | picker | live | Duyệt cây | `inf-ctdl-6-3` |
| `inf-two-pointers` | Đi từ hai đầu | picker | live | Hai con trỏ ngược chiều | `inf-kt-4-2` |
| `inf-two-sum` | Tìm cặp kiểu gì | picker | live | Tìm cặp có tổng cho trước | `inf-kt-4-5` |
| `inf-variables` | Dấu bằng nghĩa là gì | picker | live | Biến và gán giá trị | `inf-lt-2-1` |
| `inf-verify` | Kiểm trước khi nộp | picker | live | Kiểm tra lại lời giải | `inf-kt-6-6` |
| `inf-visualization` | Biểu đồ nói gì | picker | live | Biểu đồ và trực quan hoá | `inf-mt-6-3` |
| `inf-web` | Ai gửi ai nhận | picker | live | Web hoạt động thế nào | `inf-mt-4-4` |
| `inf-while` | Lặp tới khi nào | picker | live | Vòng lặp while | `inf-lt-5-2` |
| `tin-t1-can-du-lieu-gi` | App điểm danh lưu gì | picker | live | Quyết định cần dữ liệu gì | `t-t1-decide-what-data-you-need` |
| `tin-t1-chia-viec-lon` | Bữa tiệc của lớp | picker | live | Chia một việc lớn | `t-t1-split-a-big-task` |
| `tin-t1-cho-lap-lai` | 30 tấm thiệp | picker | live | Nhận ra chỗ lặp lại | `t-t1-spot-what-repeats` |
| `tin-t1-cung-dang` | Hai bài một ruột | picker | live | Cùng dạng, khác số liệu | `t-t1-same-shape-different-numbers` |
| `tin-t1-dat-ten` | Biến tên x là gì | picker | live | Đặt tên cho đúng | `t-t1-name-things-well` |
| `tin-t1-dung-lai` | Chép dán trả giá | picker | live | Dùng lại thay vì viết lại | `t-t1-reuse-instead-of-rewrite` |
| `tin-t1-ke-tung-buoc` | Robot pha sữa | picker | live | Kể một việc theo từng bước | `t-t1-describe-a-task-step-by-step` |
| `tin-t1-mo-hinh-hoa` | Chọn hình hài cho bài toán | picker | live | Mô hình hoá bài toán | `t-t1-model-the-problem` |
| `tin-t1-quan-trong` | Bản đồ tàu điện | picker | live | Cái gì quan trọng, cái gì không | `t-t1-what-matters-what-does-not` |
| `tin-t1-xong-truoc` | Nấu bữa tối | picker | live | Cái gì phải xong trước | `t-t1-what-must-happen-first` |
| `tin-t2-ba-cau-truc` | Ba viên gạch vạn năng | picker | live | Tuần tự, rẽ nhánh, lặp | `t-t2-order-choice-repetition` |
| `tin-t2-chay-tay` | Làm máy tính bằng giấy | picker | live | Chạy tay từng bước | `t-t2-trace-it-by-hand` |
| `tin-t2-chia-de-tri` | Chia đôi tới khi dễ | picker | live | Chia để trị | `t-t2-divide-and-conquer` |
| `tin-t2-de-quy` | Hàm gọi chính mình | picker | live | Đệ quy | `t-t2-recursion` |
| `tin-t2-dem-so-buoc` | Thước đo không cần đồng hồ | picker | live | Đếm số bước | `t-t2-count-the-steps` |
| `tin-t2-khong-mo-ho` | Trò chơi chỉ đường mù | picker | live | Chỉ dẫn không mơ hồ | `t-t2-unambiguous-instructions` |
| `tin-t2-lap-luan-dung` | Vòng lặp có thoát không | picker | live | Lập luận rằng nó dừng | `t-t2-argue-that-it-terminates` |
| `tin-t2-lon-len-the-nao` | Gấp 10 thì sao | picker | live | Nó lớn lên thế nào theo dữ liệu | `t-t2-how-it-grows-with-input` |
| `tin-t2-nhieu-cach-dung` | Hai đường tới đích | picker | live | Không chỉ một cách đúng | `t-t2-more-than-one-right-answer` |
| `tin-t2-rong-va-khong-lo` | Hai đầu mút của dữ liệu | picker | live | Trường hợp rỗng và trường hợp khổng lồ | `t-t2-the-empty-and-the-huge-case` |
| `tin-t2-thoi-gian-bo-nho` | Nhanh thì tốn chỗ | picker | live | Đánh đổi thời gian và bộ nhớ | `t-t2-time-against-memory` |
| `tin-t2-tim-va-xep` | Cái giá của sự nhanh | picker | live | Tìm kiếm và sắp xếp | `t-t2-search-and-sort` |
| `tin-t2-xau-nhat` | Đừng tin vận may | picker | live | Trường hợp xấu nhất, không phải may mắn | `t-t2-worst-case-not-lucky-case` |
| `tin-t3-bien-giu-gia-tri` | Cái hộp có tên | picker | live | Biến giữ giá trị | `t-t3-variables-hold-values` |
| `tin-t3-chon-cau-truc` | Không có cấu trúc vô địch | picker | live | Chọn đúng cấu trúc dữ liệu | `t-t3-choose-the-right-structure` |
| `tin-t3-chu-thich-vi-sao` | Chú thích nào đáng sống | picker | live | Chú thích vì sao, không phải cái gì | `t-t3-comment-why-not-what` |
| `tin-t3-chuoi-du-lieu` | Mổ xẻ một dòng chữ | picker | live | Chuỗi cũng là dữ liệu | `t-t3-text-is-data-too` |
| `tin-t3-danh-sach` | Một biến chứa cả lớp | picker | live | Danh sách | `t-t3-a-list-of-things` |
| `tin-t3-dat-ten-xu-ly` | Gom lại, đặt tên | picker | live | Đặt tên cho một đoạn xử lý | `t-t3-name-a-piece-of-logic` |
| `tin-t3-doc-code-nguoi-khac` | Thám hiểm code lạ | picker | live | Đọc code của người khác | `t-t3-read-someone-else-s-code` |
| `tin-t3-dung-thu-vien` | Đứng lên vai người khác | picker | live | Dùng thư viện có sẵn | `t-t3-use-a-library` |
| `tin-t3-kieu-du-lieu` | Số 5 và chữ '5' | picker | live | Kiểu dữ liệu có ý nghĩa | `t-t3-types-matter` |
| `tin-t3-lap-toi-khi-xong` | Một vòng cân cả lớp | picker | live | Lặp cho tới khi xong | `t-t3-repeat-until-done` |
| `tin-t3-lech-mot` | Bài toán cọc rào | picker | live | Lỗi lệch một đơn vị | `t-t3-off-by-one` |
| `tin-t3-mot-ham-mot-viec` | Hàm 200 dòng có gọn không | picker | live | Một hàm, một việc | `t-t3-one-function-one-job` |
| `tin-t3-neu-thi` | Ngã ba trong chương trình | picker | live | Nếu thế này thì thế kia | `t-t3-if-this-then-that` |
| `tin-t3-nhap-va-xuat` | Cửa vào, cửa ra | picker | live | Nhập và xuất | `t-t3-input-and-output` |
| `tin-t3-ra-lenh` | Máy làm đúng lệnh | picker | live | Ra lệnh cho máy | `t-t3-give-the-computer-an-instruction` |
| `tin-t3-ten-tu-giai-thich` | Biến t là cái gì | picker | live | Tên tự giải thích | `t-t3-names-that-explain-themselves` |
| `tin-t3-tham-so-tra-ve` | Cửa vào và cửa ra của hàm | picker | live | Tham số và giá trị trả về | `t-t3-arguments-and-return` |
| `tin-t3-tra-theo-khoa` | Hỏi thẳng, khỏi dò | picker | live | Tra cứu theo khoá | `t-t3-look-up-by-key` |
| `tin-t4-ba-loai-loi` | Ồn ào, nửa chừng, im lặng | picker | live | Ba loại lỗi khác nhau | `t-t4-syntax-runtime-logic` |
| `tin-t4-chay-khac-dung` | Chạy êm mà sai bét | picker | live | Chạy được không phải là đúng | `t-t4-it-ran-is-not-it-is-right` |
| `tin-t4-chia-doi-nghi-ngo` | Tìm lỗi kiểu nhị phân | picker | live | Chia đôi vùng nghi ngờ | `t-t4-cut-the-problem-in-half` |
| `tin-t4-du-lieu-that` | Đời không như đề bài | picker | live | Thử với dữ liệu thật | `t-t4-try-it-with-real-cases` |
| `tin-t4-giai-thich-loi` | Kể cho con vịt nghe | picker | live | Giải thích lỗi cho người khác | `t-t4-explain-your-bug-to-someone` |
| `tin-t4-hong-tu-dau` | In ra mà xem | picker | live | Nó hỏng từ chỗ nào | `t-t4-where-does-it-stop-working` |
| `tin-t4-kiem-tra-bien` | Lỗi sống ở mép vực | picker | live | Kiểm tra trường hợp biên | `t-t4-test-the-edges` |
| `tin-t4-lap-luan-dung-dan` | Một triệu ca chưa phải mọi ca | picker | live | Lập luận về tính đúng đắn | `t-t4-reason-about-correctness` |
| `tin-t4-loi-binh-thuong` | Màn hình đỏ không cắn | picker | live | Lỗi là chuyện bình thường | `t-t4-errors-are-normal` |
| `tin-t4-sua-mot-cho` | Thí nghiệm trên code | picker | live | Mỗi lần sửa một chỗ | `t-t4-change-one-thing-at-a-time` |
| `tin-t4-test-truoc` | Chốt đích trước khi chạy | picker | live | Viết ca kiểm thử trước | `t-t4-write-tests-before-code` |
| `tin-t4-thong-bao-noi-gi` | Giải mã dòng chữ đỏ | picker | live | Thông báo lỗi đang nói gì | `t-t4-what-the-message-says` |
| `tin-t5-ai-duoc-loi` | Thiết kế chọn sẵn người dùng | picker | live | Ai được lợi, ai không | `t-t5-who-benefits-who-does-not` |
| `tin-t5-ai-lam-duoc-gi` | Trôi chảy không phải là đúng | picker | live | AI làm được gì, không làm được gì | `t-t5-what-ai-can-and-cannot-do` |
| `tin-t5-cai-gi-co-the-hong` | Nghĩ như kẻ phá | picker | live | Cái gì có thể hỏng | `t-t5-what-could-go-wrong` |
| `tin-t5-danh-gia-thiet-ke` | Tối ưu cho ai, trả giá gì | picker | live | Đánh giá một quyết định thiết kế thật | `t-t5-judge-a-real-design-decision` |
| `tin-t5-du-lieu-con-nguoi` | Thu ít là khôn | picker | live | Dữ liệu về con người | `t-t5-data-about-people` |
| `tin-t5-lam-cung-nguoi-khac` | Không giẫm chân nhau | picker | live | Làm việc cùng người khác | `t-t5-work-with-other-people` |
| `tin-t5-mat-khau` | Dài thắng rối | picker | live | Mật khẩu và riêng tư | `t-t5-passwords-and-privacy` |
| `tin-t5-nguoi-khac-dung` | Ngồi im mà xem họ bấm | picker | live | Có người khác dùng thử | `t-t5-someone-else-uses-it` |
| `tin-t5-tron-ven-thu-nho` | Xong hẳn một thứ bé | picker | live | Làm trọn vẹn một thứ nhỏ | `t-t5-build-a-small-thing-end-to-end` |
