
Ảnh: Loremflickr — Flickr Creative Commons. Xem trang Credits để biết chi tiết tác giả từng ảnh.
Toán logic và rời rạc (discrete mathematics) là nền tảng cho lập trình, khoa học máy tính, data science, kinh tế lượng, và phân tích critical thinking. Nhưng đa phần người Việt không học chính thức — chương trình phổ thông tập trung vào giải tích và đại số. Bài này là lộ trình 6 tháng tự học từ con số 0, miễn phí hoặc gần như.
Toán logic và rời rạc gồm gì
- Logic mệnh đề và vị từ — AND, OR, NOT, IMPLY, FORALL, EXISTS. Nền tảng tư duy logic.
- Lý thuyết tập hợp — set theory cơ bản, quan hệ, hàm.
- Tổ hợp (combinatorics) — đếm, hoán vị, tổ hợp, nguyên lý chuồng bồ câu.
- Lý thuyết đồ thị (graph theory) — đỉnh, cạnh, cây, đường đi, thuật toán đồ thị.
- Quan hệ và đối xứng — relation, equivalence, partial order.
- Quy nạp (induction) — chứng minh toán học.
- Số học modular — đồng dư, thuật toán Euclid.
- Xác suất rời rạc — không gian mẫu hữu hạn, biến ngẫu nhiên rời rạc.
Vì sao học?
- Lập trình: hiểu thuật toán (DFS, BFS, dynamic programming) cần graph theory + induction.
- Database: SQL JOIN dựa trên lý thuyết tập hợp; relational algebra là nền tảng.
- Cryptography: RSA, ECC dựa hoàn toàn trên số học modular.
- Machine learning: hiểu xác suất rời rạc cho Naive Bayes, decision tree.
- Critical thinking: phân biệt đúng-sai logic trong tranh luận, đọc tin.
Lộ trình 6 tháng — 30-45 phút/ngày
Tháng 1: Logic mệnh đề và vị từ
Mục tiêu: hiểu các phép toán logic, viết bảng chân trị, chứng minh tương đương logic.
Tài nguyên chính:
- Sách: “Discrete Mathematics and Its Applications” – Kenneth Rosen. Chương 1-2. Bản tiếng Anh, có file PDF online. Sách giáo khoa chuẩn của hầu hết trường đại học CS.
- MIT OCW: “Mathematics for Computer Science” (6.042J) — full video + bài tập miễn phí trên ocw.mit.edu. Chất lượng cực tốt.
- Khan Academy: Logic and Set Theory section.
Tháng 2: Tập hợp, hàm, quan hệ
Mục tiêu: hiểu Cartesian product, image/preimage, equivalence relation.
Tài nguyên: Rosen chương 2. MIT OCW lectures 4-6.
Bài tập áp dụng: SQL JOIN trên thực tế (chuẩn bị nền cho database).
Tháng 3: Quy nạp toán học và đệ quy
Mục tiêu: chứng minh quy nạp đơn và mạnh, viết hàm đệ quy.
Tài nguyên: Rosen chương 5. MIT OCW lectures 7-9. Practice: chứng minh tổng 1 + 2 + … + n = n(n+1)/2 bằng quy nạp.
Tháng 4: Tổ hợp
Mục tiêu: hoán vị P(n,r), tổ hợp C(n,r), nguyên lý chuồng bồ câu, nguyên lý bao gồm-loại trừ.
Tài nguyên: Rosen chương 6. Project Euler.net cho bài tập tính toán.
Áp dụng: tính xác suất bài toán trò chơi (Texas Hold’em odds, lottery).
Tháng 5: Lý thuyết đồ thị
Mục tiêu: đồ thị, cây, BFS, DFS, đường đi ngắn nhất (Dijkstra), MST (Kruskal/Prim).
Tài nguyên:
- Rosen chương 10-11.
- “Algorithms” – Robert Sedgewick (Coursera, free) — phần đồ thị.
- LeetCode graph problems để code thuật toán bằng Python/Java/C++.
Tháng 6: Số học modular và xác suất rời rạc
Mục tiêu: hiểu Fermat’s little theorem, Euclidean algorithm, expected value.
Tài nguyên: Rosen chương 4 và 7. MIT OCW final lectures.
Project cuối khoá: implement RSA encryption từ đầu (đảm bảo hiểu sâu modular arithmetic).
Tài nguyên miễn phí top
Sách miễn phí (legal)
- “Mathematics for Computer Science” – Lehman, Leighton, Meyer (MIT). Full PDF tại courses.csail.mit.edu/6.042. 900+ trang nhưng dễ đọc, nhiều ví dụ.
- “Discrete Mathematics: An Open Introduction” – Oscar Levin. Free open-source textbook tại discretemath.org.
- “Book of Proof” – Richard Hammack. Free PDF, tập trung kỹ thuật chứng minh.
Khoá online miễn phí
- MIT OCW 6.042J — Mathematics for Computer Science. Video full course.
- Coursera “Introduction to Discrete Mathematics for Computer Science Specialization” – UCSD. 5 khoá nhỏ. Free audit (không cấp chứng chỉ).
- Stanford CS103 — Mathematical Foundations of Computing. Lecture notes online.
- edX “Discrete Mathematics” – HKUST. Free audit.
Practice platforms
- Project Euler: 800+ bài toán cần kết hợp toán + code. Tăng dần độ khó.
- LeetCode (free tier): bài tập graph, dynamic programming, math.
- Codeforces: contest hàng tuần, nhiều bài combinatorics.
- Brilliant.org: trả phí ($150/năm) nhưng UI tương tác cực tốt cho người tự học. Có 7 ngày miễn phí.
Lỗi phổ biến khi tự học
- Chỉ xem video, không làm bài tập. Toán cần làm. Tỷ lệ video : bài tập nên là 1:2.
- Bỏ qua chứng minh. Hiểu chứng minh là hiểu sâu. Đừng skip.
- Nhảy chương. Toán xây dựng tích lũy. Chương 5 cần chương 1-4 vững.
- Học mà không áp dụng code. Implement thuật toán bằng Python sau mỗi chương.
- Thiếu kỷ luật. 30 phút/ngày liên tục tốt hơn 5 giờ cuối tuần.
FAQ
Cần kiến thức nền gì?
Đại số phổ thông cấp 2-3 (giải phương trình, hệ phương trình). KHÔNG cần giải tích. KHÔNG cần đại số tuyến tính. Toán cấp 3 đủ.
Tự học có hiểu được không?
Có, đa phần học đại học CS năm 1 cũng tự học là chính. Khó nhất là thói quen làm bài tập. Discord/forum (r/learnmath, MathOverflow) hỗ trợ khi mắc.
Toán rời rạc khác toán giải tích thế nào?
Giải tích (đại học VN, Singapore) tập trung biến liên tục — limit, đạo hàm, tích phân. Rời rạc tập trung biến rời rạc — số nguyên, đồ thị, logic. CS dùng rời rạc nhiều hơn nhiều giải tích.
Có cần học rời rạc trước hay sau Calculus?
Trước hoặc song song. Rời rạc thường được dạy trước hoặc song song với Calculus 1 ở năm 1 đại học CS Mỹ. Không phụ thuộc nhau.
Tổng kết
Toán logic và rời rạc 6 tháng tự học là dự án vừa sức cho người làm IT, data, hoặc đơn giản muốn tư duy chặt chẽ hơn. Tài nguyên miễn phí dồi dào — MIT OCW + sách Rosen + Project Euler đủ. Quan trọng: làm bài tập đều đặn (không chỉ xem), implement thuật toán bằng code thực sự, và đừng nhảy chương. Sau 6 tháng sẽ thấy mình hiểu sâu hơn về SQL, thuật toán, cryptography — và tư duy phân tích tổng quát cũng cải thiện đáng kể.