Chuỗi bài giảng của Tim Roughgarden xem xét computation như một khái niệm cơ bản, từ chứng minh bất khả giải thuật của Turing (bài toán dừng) đến các thuật toán hiệu quả như Dijkstra và Karatsuba, cùng lý thuyết NP-completeness và vấn đề P vs NP. Chuỗi bài này cũng phân tích cách hàng nghìn bài toán khác nhau quy về cùng một thách thức cốt lõi, đồng thời đề cập đến tác động của chúng đối với mật mã, AI và máy tính lượng tử.
Vì sao nên đọc: Lập trình viên nên đọc bài này để hiểu rõ cách các vấn đề phức tạp trong lập trình, từ cơ sở lý thuyết đến ứng dụng thực tế, đều xoay quanh một khái niệm cơ bản là tính tính toán—giúp họ xây dựng giải pháp hiệu quả hơn và tránh những rủi ro về tính khả thi của thuật toán.
Trả lời 3 câu hỏi ngắn để nhận điểm thưởng cho bài này. Chỉ làm khi bạn muốn lấy điểm.
3 câu hỏi · dưới một phút · không bắt buộc
Nguồn: https://ergo.org/courses/computation-as-a-universal-and-fundamental-concept. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Bài viết cung cấp tài liệu tham khảo về độ phức tạp thời gian (time complexity) của các thuật toán, các thuật toán sắp xếp phổ biến và các thao tác trên cấu trúc dữ liệu thông dụng.
Lập trình viên nên đọc để hiểu rõ cách phân tích hiệu suất thực tế của các thuật toán và cấu trúc dữ liệu trong các tình huống thực tế, giúp tối ưu hóa mã nguồn hiệu quả hơn.

A technical interviewer shares their approach to candidate evaluation using a simple but revealing coding question: implement a median function. The Python implementation is annotated with discussion points that probe deeper thinking — handling edge cases like empty lists, understanding pass-by-reference semantics (sorted() vs list.sort()), and avoiding over-engineering with unnecessary dependencies.
Bài viết giới thiệu thuật toán O(N log N) đếm số lượng substring nhị phân có nhiều số 1 hơn số 0 bằng cách chuyển đổi 1→+1, 0→-1, sử dụng prefix sums và Fenwick Tree. Thuật toán kết hợp nén tọa độ để tối ưu phạm vi prefix sum và đếm hiệu quả các cặp prefix sum thỏa điều kiện.
Lập trình viên nên đọc bài này để tìm hiểu cách tối ưu hóa giải quyết vấn đề đếm các chuỗi con trong chuỗi nhị phân với số '1' nhiều hơn '0' bằng thuật toán hiệu quả O(N log N) và công cụ như Fenwick Tree, giúp hiểu rõ về prefix sums, coordinate compression và ứng dụng của chúng trong xử lý dữ liệu hiệu quả.
MIT professor and Gödel Prize winner Ryan Williams discusses computational complexity theory in an interview that starts with the classic 3SUM LeetCode problem. He explains the O(N²) two-pointer solution and then describes how algorithms beating N² work via group-based finger search with preprocessing. The conversation covers fine-grained complexity theory, reductions between problems like Subset Sum and 2SUM, the Strong Exponential Time Hypothesis (SETH) and why Williams personally doubts it, hot takes on P vs NP (80% confidence they differ), EXP vs NEXP, and NEXP vs coNEXP. Williams also explains his breakthrough result showing any time-T algorithm can be simulated in space √T, building on Cook and Mertz's tree evaluation work using XOR-based memory tricks instead of write-to-blank-only approaches.
A hands-on tutorial building a Bloom filter from scratch in Python. Covers the core mechanics: a bit array plus multiple hash functions, the double-hashing trick for generating positions, and why false positives are an intentional trade-off for memory efficiency. Includes the math for sizing a filter given a target false positive rate and item count, a worked example showing ~1.2 MB for one million items at 1% error, and an explanation of why deletion requires a counting Bloom filter variant. Real-world use cases include databases (Cassandra, HBase), Chrome's safe browsing, CDN caching, and Bitcoin light clients.