# Syllabus quantum computing (5)

# GIAI ĐOẠN 8 - QUANTUM SOFTWARE ENGINEERING (80 ngày, Ngày 731–810)

## MODULE 8.1 - QISKIT (Ngày 731–755)

**Ngày 731: Giới thiệu Qiskit**

*   Mục tiêu: Cài đặt môi trường và làm quen hệ sinh thái framework phổ biến nhất hiện nay (IBM).
    
*   Lý thuyết: Tổng quan kiến trúc Qiskit: Terra (circuit), Aer (simulator), Runtime (chạy trên hardware thật).
    
*   Thực hành: Cài đặt Qiskit (`pip install qiskit qiskit-aer --break-system-packages`), chạy thử ví dụ "Hello World" tạo 1 circuit đơn giản.
    

**Ngày 732: Qiskit - QuantumCircuit Cơ bản**

*   Mục tiêu: Thành thạo lớp đối tượng trung tâm của Qiskit.
    
*   Lý thuyết: `QuantumCircuit(n_qubits, n_clbits)`, cách thêm gate qua method chaining.
    
*   Thực hành: Tạo circuit 2-qubit, thêm gate H trên qubit 0.
    

**Ngày 733: Qiskit - Thêm Gate 1-Qubit**

*   Mục tiêu: Ôn lại toàn bộ gate đã học ở Giai đoạn 3, lần này bằng API thực tế.
    
*   Lý thuyết: `.x()`, `.y()`, `.z()`, `.h()`, `.s()`, `.t()`, `.rx()`, `.ry()`, `.rz()`.
    
*   Thực hành: Viết lại toàn bộ bảng gate (Giai đoạn 3, Ngày 305) dưới dạng code Qiskit, in ra ma trận từng gate bằng `Operator(gate).data`.
    

**Ngày 734: Qiskit - Thêm Gate Multi-Qubit**

*   Mục tiêu: Thành thạo API cho gate nhiều qubit.
    
*   Lý thuyết: `.cx()`, `.ccx()`, `.cz()`, `.swap()`.
    
*   Thực hành: Dựng lại mạch tạo Bell state và mạch Toffoli (Giai đoạn 3) bằng Qiskit.
    

**Ngày 735: Qiskit - Đo lường và Classical Register**

*   Mục tiêu: Học cách trích xuất kết quả cổ điển từ mạch lượng tử.
    
*   Lý thuyết: `ClassicalRegister`, `.measure()`, `.measure_all()`.
    
*   Thực hành: Thêm đo lường vào mạch Bell state đã dựng, chuẩn bị chạy trên simulator.
    

**Ngày 736: Qiskit - Chạy trên Simulator (Aer)**

*   Mục tiêu: Thực thi mạch và lấy kết quả thống kê.
    
*   Lý thuyết: `AerSimulator`, `.run()`, `.result().get_counts()`.
    
*   Thực hành: Chạy mạch Bell state 1000 lần (shots=1000), xác nhận kết quả 50-50 giữa 00 và 11 (đối chiếu Giai đoạn 3, Ngày 355).
    

**Ngày 737: Qiskit - Visualize Circuit và Kết quả**

*   Mục tiêu: Thành thạo công cụ trực quan hóa.
    
*   Lý thuyết: `circuit.draw()`, `plot_histogram()`, `plot_bloch_multivector()`.
    
*   Thực hành: Vẽ mạch, histogram kết quả, và Bloch sphere cho 1 qubit đơn của mạch đã dựng.
    

**Ngày 738: Qiskit - Dựng lại Bell State, GHZ State**

*   Mục tiêu: Ôn tập tích hợp Giai đoạn 2–3 bằng công cụ thực tế.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Dựng và chạy mạch GHZ 4-qubit, xác nhận kết quả chỉ có 0000 và 1111.
    

**Ngày 739: Qiskit - Dựng lại Deutsch-Jozsa**

*   Mục tiêu: Ôn tập tích hợp Giai đoạn 4, Module 4.1.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Cài đặt oracle (constant và balanced) và full circuit Deutsch-Jozsa bằng Qiskit, chạy và xác nhận kết quả.
    

**Ngày 740: Qiskit - Dựng lại Grover's Algorithm**

*   Mục tiêu: Ôn tập tích hợp Giai đoạn 4, Module 4.4, dùng thư viện có sẵn.
    
*   Lý thuyết: `qiskit.circuit.library.GroverOperator` - so sánh với cài đặt tay ở Giai đoạn 4.
    
*   Thực hành: Chạy Grover's algorithm cho bài toán tìm kiếm 4-qubit dùng cả 2 cách: tự cài đặt (như Giai đoạn 4) và dùng thư viện có sẵn, đối chiếu kết quả.
    

**Ngày 741: Qiskit - Dựng lại QFT**

*   Mục tiêu: Ôn tập tích hợp Giai đoạn 4, Module 4.5.
    
*   Lý thuyết: `qiskit.circuit.library.QFT`.
    
*   Thực hành: So sánh output QFT thư viện với cài đặt tay ở Giai đoạn 4 (Ngày 429), xác nhận khớp.
    

**Ngày 742: Qiskit - Parameterized Circuits**

*   Mục tiêu: Học kỹ thuật quan trọng cho các thuật toán lai (hybrid) sẽ dùng ở Giai đoạn 10.
    
*   Lý thuyết: `Parameter`, `ParameterVector` - cho phép xây circuit với gate có tham số θ chưa gán giá trị cụ thể, bind giá trị sau.
    
*   Thực hành: Tạo 1 circuit với `Parameter('theta')` trên gate Ry, chạy với 5 giá trị θ khác nhau, quan sát kết quả đo thay đổi.
    

**Ngày 743: Qiskit - Transpiler và Optimization Level**

*   Mục tiêu: Hiểu bước biến đổi circuit trước khi chạy trên hardware thật (xem trước Giai đoạn 11).
    
*   Lý thuyết: Transpiler chuyển đổi circuit sang gate set và kết nối hardware cụ thể, có 4 optimization level (0–3).
    
*   Thực hành: Transpile 1 circuit với các optimization level khác nhau, so sánh số gate và depth trước/sau.
    

**Ngày 744: Qiskit - Backend và Coupling Map**

*   Mục tiêu: Kết nối trực tiếp với Giai đoạn 7 (kiến trúc kết nối hardware).
    
*   Lý thuyết: Coupling map mô tả cấu trúc kết nối vật lý giữa các qubit trên 1 chip cụ thể (liên hệ Giai đoạn 7, Ngày 649).
    
*   Thực hành: Lấy coupling map của 1 backend IBM giả lập (fake backend), transpile circuit theo coupling map đó, quan sát các SWAP gate được thêm vào.
    

**Ngày 745: Qiskit - Noise Models trong Simulator**

*   Mục tiêu: Kết nối trực tiếp với Giai đoạn 6 (noise models).
    
*   Lý thuyết: `NoiseModel` trong Qiskit Aer cho phép mô phỏng depolarizing, amplitude damping, v.v. (đã học lý thuyết ở Giai đoạn 6, Module 6.1).
    
*   Thực hành: Chạy lại mạch Bell state với noise model depolarizing, quan sát kết quả bị lệch khỏi 50-50 lý tưởng.
    

**Ngày 746: Qiskit Runtime - Primitives**

*   Mục tiêu: Học API hiện đại nhất của Qiskit (thay thế cách chạy circuit trực tiếp cũ).
    
*   Lý thuyết: `Sampler` (lấy phân phối xác suất), `Estimator` (tính expectation value trực tiếp - liên hệ Giai đoạn 1, Ngày 107).
    
*   Thực hành: Dùng `Estimator` để tính ⟨Z⟩ cho mạch Bell state, so sánh với tính tay.
    

**Ngày 747: Qiskit - Chạy trên Hardware Thật**

*   Mục tiêu: Trải nghiệm sự khác biệt giữa simulator lý tưởng và hardware thật có nhiễu.
    
*   Lý thuyết: Quy trình gửi job lên IBM Quantum (nếu có tài khoản miễn phí khả dụng); nếu không, dùng fake backend mô phỏng noise thực tế của 1 chip cụ thể.
    
*   Thực hành: Chạy mạch Bell state trên fake backend (hoặc hardware thật nếu có), so sánh kết quả với simulator lý tưởng.
    

**Ngày 748: Qiskit - Error Mitigation Cơ bản**

*   Mục tiêu: Học kỹ thuật giảm ảnh hưởng nhiễu mà KHÔNG cần full QEC (khác Giai đoạn 6 - đây là giải pháp tạm thời cho kỷ nguyên NISQ).
    
*   Lý thuyết: Zero-noise extrapolation, readout error mitigation - ý tưởng tổng quan.
    
*   Thực hành: Áp dụng readout error mitigation có sẵn trong Qiskit cho 1 mạch đã chạy ở Ngày 747, so sánh kết quả trước/sau.
    

**Ngày 749: Qiskit - Pulse-Level Control (Giới thiệu Sơ lược)**

*   Mục tiêu: Nhìn trước sang chủ đề sẽ đào sâu ở Giai đoạn 11.
    
*   Lý thuyết: Qiskit Pulse cho phép lập trình trực tiếp ở mức xung vi sóng (liên hệ Giai đoạn 7, Ngày 644) thay vì gate trừu tượng.
    
*   Thực hành: Đọc tổng quan Qiskit Pulse, ghi chú (không cần tự viết pulse schedule chi tiết ở giai đoạn này).
    

**Ngày 750: Qiskit Nature/Qiskit Optimization**

*   Mục tiêu: Làm quen các module chuyên biệt sẽ dùng ở Giai đoạn 10.
    
*   Lý thuyết: Qiskit Nature (quantum chemistry, VQE), Qiskit Optimization (QAOA, QUBO - liên hệ Giai đoạn 7, Ngày 721).
    
*   Thực hành: Đọc tổng quan 2 module này, ghi chú các bài toán mẫu chúng giải quyết.
    

**Ngày 751: Đọc Tài liệu Qiskit Textbook**

*   Mục tiêu: Lấp lỗ hổng bằng tài liệu chính thức.
    
*   Lý thuyết: Đọc chọn lọc IBM Quantum Learning (textbook chính thức), phần circuit và algorithms.
    
*   Thực hành: Ghi chú tổng hợp 2 trang các API quan trọng chưa dùng tới.
    

**Ngày 752: Dự án nhỏ - Implement Shor's Algorithm Đầy đủ bằng Qiskit**

*   Mục tiêu: Tổng hợp lại Giai đoạn 4 (Module 4.6) bằng công cụ công nghiệp thực tế.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Dùng `qiskit.algorithms.Shor` (nếu còn khả dụng trong phiên bản hiện tại) hoặc tự cài đặt lại theo cấu trúc Qiskit, chạy cho N=15, so sánh với cài đặt tay ở Giai đoạn 4.
    

**Ngày 753: Dự án nhỏ - Implement QAOA Cơ bản**

*   Mục tiêu: Xem trước Giai đoạn 10 bằng 1 ví dụ thực hành đơn giản.
    
*   Lý thuyết: Không có thêm (sẽ học lý thuyết đầy đủ ở Giai đoạn 10).
    
*   Thực hành: Dùng Qiskit Optimization để giải 1 bài toán Max-Cut nhỏ (dùng lại Ising/QUBO đã học ở Giai đoạn 7, Ngày 720–721) bằng QAOA.
    

**Ngày 754: Ôn tập Tổng hợp Module 8.1**

*   Mục tiêu: Kết nối toàn bộ kỹ năng Qiskit đã học.
    
*   Lý thuyết: Vẽ sơ đồ tổng thể các thành phần Qiskit đã dùng.
    
*   Thực hành: 10 bài tập tổng hợp thực hành.
    

**Ngày 755: Kiểm tra kiến thức Module 8.1**

*   Mục tiêu: Tự đánh giá trước khi sang Cirq.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Bài test 15 câu + 1 bài thực hành viết code Qiskit hoàn chỉnh cho 1 yêu cầu mới.
    

## MODULE 8.2 - CIRQ (Ngày 756–770)

**Ngày 756: Giới thiệu Cirq**

*   Mục tiêu: Hiểu triết lý thiết kế khác biệt của framework Google.
    
*   Lý thuyết: Cirq tập trung vào kiểm soát chi tiết cho thiết bị NISQ thực tế (liên hệ trực tiếp Giai đoạn 7, Module 7.1 - Google Quantum AI), ít trừu tượng hóa hơn Qiskit.
    
*   Thực hành: Cài đặt Cirq (`pip install cirq --break-system-packages`), chạy ví dụ "Hello World".
    

**Ngày 757: Cirq - Qubit, Circuit Cơ bản**

*   Mục tiêu: Làm quen cú pháp cơ bản.
    
*   Lý thuyết: `cirq.LineQubit`, `cirq.GridQubit` (liên hệ trực tiếp layout 2D của superconducting chip, Giai đoạn 7 Ngày 649), `cirq.Circuit`.
    
*   Thực hành: Tạo circuit 2-qubit dùng `GridQubit`, thêm gate H.
    

**Ngày 758: Cirq - Gate và Moment**

*   Mục tiêu: Học khái niệm đặc trưng của Cirq không có tương đương trực tiếp trong Qiskit.
    
*   Lý thuyết: `Moment` - nhóm các gate có thể thực hiện song song (liên hệ trực tiếp Depth đã học ở Giai đoạn 3, Ngày 338).
    
*   Thực hành: In ra cấu trúc Moment của 1 circuit, đối chiếu với khái niệm depth.
    

**Ngày 759: Cirq - Simulator**

*   Mục tiêu: Thực thi mạch trên Cirq.
    
*   Lý thuyết: `cirq.Simulator()`, `.run()`, `.simulate()` (cho phép lấy cả state vector, khác Qiskit cần cấu hình riêng).
    
*   Thực hành: Chạy mạch Bell state, lấy cả kết quả đo và state vector đầy đủ.
    

**Ngày 760: Cirq - Dựng lại Bell State, GHZ State**

*   Mục tiêu: Ôn tập bằng framework thứ hai.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Dựng lại 2 mạch đã quen thuộc, so sánh cú pháp với Qiskit (Ngày 738).
    

**Ngày 761: Cirq - Dựng lại Grover's Algorithm**

*   Mục tiêu: Ôn tập tích hợp bằng framework thứ hai.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Cài đặt Grover's algorithm bằng Cirq (không có sẵn thư viện tiện lợi như Qiskit - phải tự xây oracle và diffusion operator, tốt cho việc củng cố hiểu biết).
    

**Ngày 762: Cirq - Custom Gate Definition**

*   Mục tiêu: Học cách định nghĩa gate tùy chỉnh - hữu ích để mô phỏng gate đặc trưng hardware cụ thể.
    
*   Lý thuyết: Kế thừa `cirq.Gate`, định nghĩa `_unitary_()`.
    
*   Thực hành: Định nghĩa 1 gate tùy chỉnh (ví dụ 1 phép quay góc bất kỳ), tích hợp vào circuit.
    

**Ngày 763: Cirq - Device Model và Validation**

*   Mục tiêu: Kết nối trực tiếp với Giai đoạn 7 (ràng buộc phần cứng thực tế).
    
*   Lý thuyết: `cirq.Device` mô tả ràng buộc vật lý (qubit nào kết nối được với qubit nào, gate nào hợp lệ) - Cirq validate circuit theo device model này chặt chẽ hơn Qiskit mặc định.
    
*   Thực hành: Tạo 1 device model đơn giản, thử chạy 1 circuit vi phạm ràng buộc kết nối, quan sát lỗi báo về.
    

**Ngày 764: So sánh Cú pháp Cirq vs Qiskit**

*   Mục tiêu: Củng cố hiểu biết bằng cách đối chiếu trực tiếp.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Viết cùng 1 thuật toán (ví dụ Bernstein-Vazirani) song song bằng cả Qiskit và Cirq, lập bảng so sánh cú pháp dòng-đối-dòng.
    

**Ngày 765: Cirq - TensorFlow Quantum Integration**

*   Mục tiêu: Nhìn trước sang Giai đoạn 10 (Quantum Machine Learning).
    
*   Lý thuyết: TensorFlow Quantum (TFQ) xây trên nền Cirq, cho phép tích hợp mạch lượng tử vào pipeline machine learning cổ điển.
    
*   Thực hành: Đọc tổng quan TFQ, ghi chú ý tưởng chính (không cần cài đặt chi tiết ở giai đoạn này).
    

**Ngày 766: Dự án nhỏ - Implement Bernstein-Vazirani bằng Cirq**

*   Mục tiêu: Tổng hợp kỹ năng Module 8.2 qua 1 dự án hoàn chỉnh.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Viết đầy đủ chương trình Cirq giải Bernstein-Vazirani cho secret string tùy ý do người dùng nhập.
    

**Ngày 767: Đọc Tài liệu Cirq**

*   Mục tiêu: Lấp lỗ hổng bằng tài liệu chính thức.
    
*   Lý thuyết: Đọc chọn lọc Cirq documentation, phần Circuits và Simulation.
    
*   Thực hành: Ghi chú tổng hợp 2 trang.
    

**Ngày 768: Ôn tập Tổng hợp Module 8.2**

*   Mục tiêu: Kết nối toàn bộ kỹ năng Cirq đã học.
    
*   Lý thuyết: Vẽ sơ đồ tổng thể.
    
*   Thực hành: 8 bài tập tổng hợp.
    

**Ngày 769: Bài tập Tổng hợp Cirq**

*   Mục tiêu: Luyện tập thêm trước khi kiểm tra.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: 6 bài tập thực hành viết code.
    

**Ngày 770: Kiểm tra kiến thức Module 8.2**

*   Mục tiêu: Tự đánh giá trước khi sang PennyLane.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Bài test 12 câu + 1 bài thực hành viết code Cirq.
    

## MODULE 8.3 - PENNYLANE (Ngày 771–790)

**Ngày 771: Giới thiệu PennyLane**

*   Mục tiêu: Hiểu triết lý thiết kế thứ ba - tối ưu cho differentiable programming (tính đạo hàm qua mạch lượng tử).
    
*   Lý thuyết: PennyLane định vị bản thân là cầu nối giữa quantum computing và machine learning, xây để tích hợp mượt với PyTorch/TensorFlow/JAX.
    
*   Thực hành: Cài đặt PennyLane (`pip install pennylane --break-system-packages`), chạy ví dụ "Hello World".
    

**Ngày 772: PennyLane - QNode và Device**

*   Mục tiêu: Học 2 khái niệm trung tâm của framework.
    
*   Lý thuyết: `qml.device()` (chọn simulator hoặc hardware backend), `@qml.qnode` decorator biến 1 hàm Python thành mạch lượng tử khả vi (differentiable).
    
*   Thực hành: Viết 1 QNode đơn giản trả về `qml.expval(qml.PauliZ(0))`.
    

**Ngày 773: PennyLane - Xây Circuit Cơ bản**

*   Mục tiêu: Thành thạo cú pháp gate.
    
*   Lý thuyết: `qml.Hadamard()`, `qml.CNOT()`, `qml.RX()`, v.v. - cú pháp gần giống Cirq nhưng tích hợp trực tiếp với autodiff.
    
*   Thực hành: Dựng lại Bell state bằng PennyLane, so sánh cú pháp với Qiskit và Cirq.
    

**Ngày 774: PennyLane - Dựng Bell State, Grover**

*   Mục tiêu: Ôn tập bằng framework thứ ba.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Dựng lại Grover's algorithm bằng PennyLane.
    

**Ngày 775: PennyLane - Quantum Gradients: Parameter-Shift Rule**

*   Mục tiêu: Học kỹ thuật độc đáo nhất của PennyLane, sẽ dùng liên tục ở Giai đoạn 10.
    
*   Lý thuyết: Parameter-shift rule - công thức tính đạo hàm chính xác (không xấp xỉ) của expectation value theo tham số gate, bằng cách đánh giá circuit tại θ+π/2 và θ-π/2.
    
*   Thực hành: Tính đạo hàm của ⟨Z⟩ theo θ cho gate Ry(θ) bằng parameter-shift rule (tính tay), kiểm chứng bằng `qml.grad()`.
    

**Ngày 776: PennyLane - Kết nối với PyTorch/TensorFlow**

*   Mục tiêu: Thấy sức mạnh tích hợp với hệ sinh thái machine learning cổ điển.
    
*   Lý thuyết: `interface='torch'` hoặc `interface='tf'` cho phép QNode tham gia trực tiếp vào computational graph của PyTorch/TensorFlow.
    
*   Thực hành: Viết 1 QNode với interface PyTorch, thực hiện 1 bước backpropagation qua mạch lượng tử.
    

**Ngày 777: PennyLane - Variational Circuits**

*   Mục tiêu: Học khái niệm trung tâm sẽ chiếm phần lớn Giai đoạn 10.
    
*   Lý thuyết: Variational circuit (ansatz) - mạch có cấu trúc cố định nhưng tham số có thể tối ưu hóa, kết hợp optimizer cổ điển để tìm tham số tốt nhất.
    
*   Thực hành: Đọc tổng quan variational circuits, ghi chú vai trò của layer lặp lại (giống deep learning).
    

**Ngày 778: PennyLane - Cost Function và Optimization Loop**

*   Mục tiêu: Thành thạo vòng lặp huấn luyện hybrid quantum-classical.
    
*   Lý thuyết: Cost function trả về giá trị từ QNode, optimizer cổ điển (`qml.GradientDescentOptimizer` hoặc Adam) cập nhật tham số qua nhiều bước.
    
*   Thực hành: Viết 1 vòng lặp tối ưu hóa đơn giản: tìm θ sao cho ⟨Z⟩ của Ry(θ)|0⟩ đạt giá trị -1 (tức tìm θ=π).
    

**Ngày 779: PennyLane - Ví dụ VQE Đơn giản**

*   Mục tiêu: Xem trước ứng dụng chính của Giai đoạn 10, kết nối lại Local Hamiltonian Problem (Giai đoạn 5, Ngày 507–509).
    
*   Lý thuyết: Variational Quantum Eigensolver - dùng variational circuit + optimizer để tìm ground state energy của 1 Hamiltonian.
    
*   Thực hành: Chạy VQE cho 1 Hamiltonian đơn giản (ví dụ tổ hợp vài toán tử Pauli trên 2 qubit), so sánh kết quả với eigenvalue tính bằng `numpy.linalg.eigh`.
    

**Ngày 780: PennyLane - Ví dụ QAOA Đơn giản**

*   Mục tiêu: Xem trước ứng dụng thứ hai của Giai đoạn 10.
    
*   Lý thuyết: Quantum Approximate Optimization Algorithm - kết nối trực tiếp Ising model (Giai đoạn 7, Ngày 720).
    
*   Thực hành: Cài đặt QAOA cho bài toán Max-Cut nhỏ bằng PennyLane, so sánh với kết quả Qiskit Optimization ở Ngày 753.
    

**Ngày 781: PennyLane - Ansatz Cơ bản cho QML**

*   Mục tiêu: Học các mẫu cấu trúc mạch phổ biến dùng làm ansatz.
    
*   Lý thuyết: Hardware-efficient ansatz, `qml.StronglyEntanglingLayers` - cấu trúc lặp lại gồm rotation gate + entangling gate.
    
*   Thực hành: Xây 1 ansatz 3 layer bằng `StronglyEntanglingLayers`, đếm số tham số cần tối ưu.
    

**Ngày 782: PennyLane - Data Encoding Strategies**

*   Mục tiêu: Học cách đưa dữ liệu cổ điển vào mạch lượng tử (bước bắt buộc cho mọi ứng dụng QML).
    
*   Lý thuyết: Amplitude encoding (mã hóa vào biên độ, tận dụng không gian mũ nhưng khó chuẩn bị), angle encoding (mã hóa vào góc quay gate, đơn giản hơn nhưng tuyến tính về số qubit cần).
    
*   Thực hành: Cài đặt cả 2 kiểu encoding cho 1 vector dữ liệu 4 chiều, so sánh số qubit cần thiết.
    

**Ngày 783: PennyLane - Templates Có sẵn**

*   Mục tiêu: Làm quen thư viện mẫu dựng sẵn giúp phát triển nhanh.
    
*   Lý thuyết: `qml.templates` - bộ sưu tập ansatz, encoding, và các khối mạch phổ biến trong literature.
    
*   Thực hành: Duyệt qua danh sách templates có sẵn, chọn 2 template áp dụng thử vào 1 bài toán demo.
    

**Ngày 784: PennyLane - Kết nối với Hardware Thật qua Plugin**

*   Mục tiêu: Thấy tính linh hoạt "phần cứng bất khả tri" (hardware-agnostic) của PennyLane.
    
*   Lý thuyết: PennyLane có plugin kết nối tới Qiskit (IBM), Cirq (Google), Braket (AWS, bao gồm IonQ, Rigetti) - cùng 1 code chạy được trên nhiều loại hardware ở Giai đoạn 7.
    
*   Thực hành: Đọc tổng quan các plugin PennyLane khả dụng, ghi chú cách đổi device backend chỉ bằng 1 dòng code.
    

**Ngày 785: Dự án nhỏ - VQE cho Phân tử H2**

*   Mục tiêu: Chạy ví dụ VQE thực tế đầu tiên có ý nghĩa vật lý cụ thể.
    
*   Lý thuyết: Không có thêm (dùng lại Ngày 779, mở rộng cho Hamiltonian phân tử H2 thực tế).
    
*   Thực hành: Dùng `qml.qchem` để lấy Hamiltonian phân tử H2, chạy VQE tìm ground state energy, so sánh với giá trị tham khảo đã biết trong tài liệu hóa học lượng tử.
    

**Ngày 786: Dự án nhỏ - QAOA giải Max-Cut**

*   Mục tiêu: Hoàn thiện dự án QAOA với đồ thị lớn hơn.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Chạy QAOA cho đồ thị Max-Cut 6-8 đỉnh, so sánh nghiệm với brute-force cổ điển.
    

**Ngày 787: Đọc Tài liệu PennyLane**

*   Mục tiêu: Lấp lỗ hổng bằng tài liệu chính thức.
    
*   Lý thuyết: Đọc chọn lọc PennyLane documentation và demos, tập trung phần QML.
    
*   Thực hành: Ghi chú tổng hợp 2 trang.
    

**Ngày 788: Ôn tập Tổng hợp Module 8.3**

*   Mục tiêu: Kết nối toàn bộ kỹ năng PennyLane đã học.
    
*   Lý thuyết: Vẽ sơ đồ tổng thể, đặc biệt nhấn mạnh parameter-shift rule và variational loop - 2 nền tảng cho toàn bộ Giai đoạn 10.
    
*   Thực hành: 10 bài tập tổng hợp.
    

**Ngày 789: Bài tập Tổng hợp PennyLane**

*   Mục tiêu: Luyện tập thêm trước khi kiểm tra.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: 8 bài tập thực hành viết code.
    

**Ngày 790: Kiểm tra kiến thức Module 8.3**

*   Mục tiêu: Tự đánh giá trước khi sang Q#.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Bài test 15 câu + 1 bài thực hành viết code PennyLane.
    

## MODULE 8.4 - Q# VÀ MICROSOFT QUANTUM DEVELOPMENT KIT (Ngày 791–800)

**Ngày 791: Giới thiệu Q# và Microsoft QDK**

*   Mục tiêu: Làm quen framework có triết lý khác biệt nhất trong 4 framework của Giai đoạn 8.
    
*   Lý thuyết: Q# là 1 ngôn ngữ lập trình riêng biệt (domain-specific language) được thiết kế từ đầu cho quantum computing, không phải thư viện nhúng trong Python như Qiskit/Cirq/PennyLane.
    
*   Thực hành: Cài đặt Microsoft QDK, chạy ví dụ "Hello World" bằng Q#.
    

**Ngày 792: Q# - Cú pháp Cơ bản**

*   Mục tiêu: Làm quen cú pháp ngôn ngữ mới.
    
*   Lý thuyết: Kiểu dữ liệu Qubit là tài nguyên được quản lý (resource management) tường minh qua `use` statement - khác triết lý object-based của 3 framework trước.
    
*   Thực hành: Viết 1 chương trình Q# đơn giản cấp phát 1 qubit, áp gate H, đo, giải phóng qubit.
    

**Ngày 793: Q# - Operations và Functions**

*   Mục tiêu: Học cách tổ chức code theo triết lý Q#.
    
*   Lý thuyết: `operation` (có thể tác động lên qubit, có hiệu ứng phụ) vs `function` (thuần túy, không hiệu ứng phụ) - phân biệt tường minh mà Python không có.
    
*   Thực hành: Viết 1 operation tạo Bell state, gọi từ operation chính (Main).
    

**Ngày 794: Q# - Dựng lại Bell State, Teleportation**

*   Mục tiêu: Ôn tập bằng framework thứ tư.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Cài đặt đầy đủ giao thức Teleportation (Giai đoạn 2, Ngày 244) bằng Q#, so sánh cấu trúc code với 3 framework trước.
    

**Ngày 795: Q# - Resource Estimation Tool**

*   Mục tiêu: Học công cụ đặc trưng mạnh nhất của hệ sinh thái Microsoft, kết nối trực tiếp Giai đoạn 6 (Module 6.4).
    
*   Lý thuyết: Azure Quantum Resource Estimator - ước tính số physical qubit, thời gian chạy cần thiết cho 1 thuật toán dưới giả định fault-tolerant cụ thể (tương tự bài tập Giai đoạn 6, Ngày 624 nhưng bằng công cụ chuẩn hóa).
    
*   Thực hành: Chạy resource estimator cho cài đặt Shor's algorithm bằng Q#, so sánh kết quả ước tính với tính toán thủ công ở Giai đoạn 6.
    

**Ngày 796: Q# - Azure Quantum Integration**

*   Mục tiêu: Hiểu hệ sinh thái cloud đi kèm.
    
*   Lý thuyết: Azure Quantum cho phép chạy Q# trên nhiều loại hardware backend khác nhau (bao gồm cả IonQ, Quantinuum - liên hệ Giai đoạn 7) qua cùng 1 nền tảng cloud.
    
*   Thực hành: Đọc tổng quan Azure Quantum, ghi chú danh sách hardware backend khả dụng.
    

**Ngày 797: So sánh Q# vs Qiskit/Cirq/PennyLane**

*   Mục tiêu: Tổng hợp toàn diện 4 framework đã học trong Giai đoạn 8.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Lập bảng so sánh cuối cùng: triết lý ngôn ngữ (DSL vs Python-embedded), điểm mạnh, hệ sinh thái công ty đứng sau, use case phù hợp nhất cho mỗi framework.
    

**Ngày 798: Đọc Tài liệu Q#**

*   Mục tiêu: Lấp lỗ hổng bằng tài liệu chính thức.
    
*   Lý thuyết: Đọc chọn lọc Microsoft Quantum documentation.
    
*   Thực hành: Ghi chú tổng hợp 2 trang.
    

**Ngày 799: Ôn tập Tổng hợp Module 8.4**

*   Mục tiêu: Củng cố toàn bộ module.
    
*   Lý thuyết: Tổng hợp.
    
*   Thực hành: 6 bài tập.
    

**Ngày 800: Kiểm tra kiến thức Module 8.4**

*   Mục tiêu: Tự đánh giá trước khi bước vào dự án tổng hợp cuối Giai đoạn 8.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Bài test 10 câu + 1 bài thực hành viết code Q#.
    

## DỰ ÁN TỔNG HỢP - MINI QUANTUM FRAMEWORK (Ngày 801–810)

**Ngày 801: Thiết kế Kiến trúc Mini Quantum Framework**

*   Mục tiêu: Tổng hợp toàn bộ hiểu biết về 4 framework đã học thành 1 dự án cá nhân, đối chiếu trực tiếp với API đã quen thuộc.
    
*   Lý thuyết: Không có.
    
*   Thực hành: Thiết kế trên giấy API cho framework riêng (lấy cảm hứng từ điểm mạnh nhất của mỗi framework đã học): `Circuit`, `Gate`, `Simulator`, `QNode`\-style differentiable interface.
    

**Ngày 802: Cài đặt Circuit Class API**

*   Mục tiêu: Xây nền tảng API quen thuộc.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Viết class `Circuit` với method chaining kiểu Qiskit (`.h(0).cx(0,1).measure_all()`), dùng lại simulator core đã xây ở Giai đoạn 3.
    

**Ngày 803: Cài đặt Gate Library**

*   Mục tiêu: Hoàn thiện thư viện gate đầy đủ.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Đảm bảo framework hỗ trợ đầy đủ gate đã học ở Giai đoạn 3 (X,Y,Z,H,S,T,Rx,Ry,Rz,CNOT,Toffoli,SWAP).
    

**Ngày 804: Cài đặt Simulator Backend**

*   Mục tiêu: Mở rộng simulator Giai đoạn 3 với các tính năng đã học ở Giai đoạn 8 (noise model đơn giản, nhiều backend).
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Thêm tùy chọn chạy với/không noise model depolarizing đơn giản vào simulator.
    

**Ngày 805: Cài đặt Visualization**

*   Mục tiêu: Hoàn thiện trải nghiệm người dùng framework.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Viết hàm vẽ circuit diagram đơn giản (text-based hoặc matplotlib) và histogram kết quả đo, tương tự `circuit.draw()` và `plot_histogram()` của Qiskit.
    

**Ngày 806: Cài đặt Parameterized Circuit + Gradient**

*   Mục tiêu: Tích hợp tính năng độc đáo nhất học từ PennyLane.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Cài đặt hỗ trợ tham số (Parameter) trong gate, và hàm tính gradient bằng parameter-shift rule (Ngày 775).
    

**Ngày 807: Test Framework với Bell State, Grover, VQE Đơn giản**

*   Mục tiêu: Kiểm chứng toàn bộ framework end-to-end.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Chạy lại 3 ví dụ đã quen thuộc (Bell state, Grover, VQE đơn giản) hoàn toàn bằng framework tự viết, xác nhận kết quả khớp với Qiskit/PennyLane.
    

**Ngày 808: Viết Documentation cho Framework**

*   Mục tiêu: Rèn kỹ năng viết tài liệu kỹ thuật (kỹ năng software engineering thực tế, không chỉ về quantum).
    
*   Lý thuyết: Không có.
    
*   Thực hành: Viết README.md mô tả API, ví dụ sử dụng, kiến trúc nội bộ của framework tự xây.
    

**Ngày 809: Ôn tập Tổng hợp Toàn Giai đoạn 8**

*   Mục tiêu: Kết nối 4 module: Qiskit, Cirq, PennyLane, Q# + dự án framework.
    
*   Lý thuyết: Vẽ sơ đồ tư duy tổng thể so sánh 4 framework và framework tự xây.
    
*   Thực hành: 15 bài tập tổng hợp toàn giai đoạn.
    

**Ngày 810: Tổng kết Giai đoạn 8**

*   Mục tiêu: Xác nhận sẵn sàng chuyển sang Giai đoạn 9 (Quantum Networking).
    
*   Lý thuyết: Ôn lại toàn bộ Giai đoạn 8; framework cá nhân đã xây ở dự án cuối sẽ tiếp tục được dùng làm công cụ thực hành cho các giai đoạn còn lại nếu muốn, song song với các framework công nghiệp.
    
*   Thực hành: Bài kiểm tra tổng hợp 25 câu bao quát cả Giai đoạn 8, bao gồm ít nhất 1 câu về mỗi framework (Qiskit, Cirq, PennyLane, Q#).
    

# GIAI ĐOẠN 9 - QUANTUM NETWORKING (40 ngày, Ngày 811–850)

## PHẦN A - TẦM NHÌN QUANTUM INTERNET (Ngày 811–815)

**Ngày 811: Giới thiệu Quantum Internet**

*   Mục tiêu: Hình dung bức tranh tổng thể trước khi đi vào chi tiết kỹ thuật.
    
*   Lý thuyết: Quantum Internet không thay thế Internet cổ điển mà bổ sung khả năng mới: truyền entanglement, truyền qubit chưa biết (qua teleportation, Giai đoạn 2), phân phối khóa mật mã tuyệt đối an toàn.
    
*   Thực hành: Đọc tổng quan ngắn về tầm nhìn Quantum Internet (ví dụ roadmap của Quantum Internet Alliance châu Âu), ghi chú.
    

**Ngày 812: So sánh Quantum Internet vs Classical Internet**

*   Mục tiêu: Hiểu rõ điều gì thay đổi và điều gì giữ nguyên.
    
*   Lý thuyết: Không thể "copy-paste" gói tin lượng tử qua router như dữ liệu cổ điển (no-cloning, Giai đoạn 2); nhưng vẫn cần kênh cổ điển song song để truyền kết quả đo (liên hệ teleportation, Giai đoạn 2 Ngày 247).
    
*   Thực hành: Viết bảng so sánh 5 hàng: đơn vị truyền, khả năng khuếch đại, khả năng sao chép, vai trò kênh cổ điển, ứng dụng đặc trưng.
    

**Ngày 813: Các Use Case Chính của Quantum Internet**

*   Mục tiêu: Nắm rõ động lực thực tế thúc đẩy xây dựng hạ tầng này.
    
*   Lý thuyết: (1) QKD - bảo mật tuyệt đối, (2) Distributed quantum computing - nối nhiều quantum computer nhỏ thành 1 hệ lớn hơn, (3) Clock synchronization độ chính xác cao, (4) Entanglement-enhanced sensing/telescopy.
    
*   Thực hành: Viết 1 đoạn mô tả ngắn cho mỗi use case, xếp hạng theo mức độ khả thi gần hạn (near-term) hay dài hạn.
    

**Ngày 814: Kiến trúc Tổng thể - End Nodes và Repeater Nodes**

*   Mục tiêu: Làm quen thuật ngữ và vai trò các thành phần chính.
    
*   Lý thuyết: End node (nơi thực hiện tính toán/ứng dụng cuối), repeater node (trạm trung gian mở rộng khoảng cách - sẽ học chi tiết ở Phần B).
    
*   Thực hành: Vẽ sơ đồ khối đơn giản: Alice (end node) - Repeater 1 - Repeater 2 - Bob (end node).
    

**Ngày 815: Ôn tập Phần A**

*   Mục tiêu: Củng cố ngày 811–814.
    
*   Lý thuyết: Tổng hợp.
    
*   Thực hành: 5 bài tập tổng hợp.
    

## PHẦN B - ENTANGLEMENT DISTRIBUTION VÀ QUANTUM REPEATERS (Ngày 816–830)

**Ngày 816: Vấn đề Truyền Entanglement qua Khoảng cách Xa**

*   Mục tiêu: Hiểu thách thức vật lý cốt lõi của toàn bộ phần B.
    
*   Lý thuyết: Photon bị hấp thụ/tán xạ dọc theo sợi quang, xác suất truyền thành công giảm theo khoảng cách.
    
*   Thực hành: Đọc tổng quan về suy hao sợi quang, ghi chú đơn vị đo (dB/km).
    

**Ngày 817: Suy hao Tín hiệu theo Khoảng cách**

*   Mục tiêu: Định lượng chính xác vấn đề Ngày 816.
    
*   Lý thuyết: Công thức suy hao mũ: P(L) = P\_0 × 10^(-αL/10), với α ≈ 0.2 dB/km cho sợi quang tiêu chuẩn ở bước sóng telecom.
    
*   Thực hành: Tính xác suất truyền thành công 1 photon qua 100 km và 1000 km sợi quang, quan sát mức độ suy giảm.
    

**Ngày 818: Tại sao Không thể Dùng Amplifier Cổ điển**

*   Mục tiêu: Kết nối trực tiếp với no-cloning theorem (Giai đoạn 2).
    
*   Lý thuyết: Amplifier cổ điển (dùng cho Internet thường) khuếch đại tín hiệu bằng cách sao chép - điều này vi phạm no-cloning nếu áp dụng cho trạng thái lượng tử chưa biết.
    
*   Thực hành: Viết lại lập luận: tại sao "chỉ cần đặt thêm bộ khuếch đại quang mỗi 50km" (giải pháp cổ điển) không dùng được cho quantum signal.
    

**Ngày 819: Quantum Repeater - Ý tưởng Tổng quát**

*   Mục tiêu: Làm quen giải pháp thay thế cho vấn đề Ngày 818.
    
*   Lý thuyết: Thay vì khuếch đại tín hiệu, quantum repeater chia đường truyền dài thành các đoạn ngắn, tạo entanglement cục bộ trên từng đoạn (xác suất thành công cao hơn nhiều), rồi "nối" các đoạn lại bằng entanglement swapping.
    
*   Thực hành: Đọc tổng quan ý tưởng quantum repeater, ghi chú sơ đồ hoạt động 3 bước chính.
    

**Ngày 820: Entanglement Swapping - Ôn lại Chi tiết cho Repeater**

*   Mục tiêu: Áp dụng lại kỹ thuật đã học ở Giai đoạn 2 (Ngày 249) vào bối cảnh cụ thể này.
    
*   Lý thuyết: Node trung gian nắm giữ 2 cặp Bell (1 với Alice, 1 với Bob), thực hiện Bell measurement lên 2 qubit tại chỗ, kết quả làm Alice-Bob trở nên entangled dù họ chưa từng tương tác trực tiếp.
    
*   Thực hành: Vẽ lại sơ đồ swapping cho trường hợp cụ thể: Alice-Repeater-Bob (1 tầng), viết trạng thái kết quả tường minh.
    

**Ngày 821: Chia Đoạn (Segmentation)**

*   Mục tiêu: Hiểu tại sao chia nhỏ đoạn đường lại giúp cải thiện xác suất thành công tổng thể.
    
*   Lý thuyết: Với n đoạn bằng nhau, xác suất tạo entanglement mỗi đoạn cao hơn nhiều so với toàn tuyến; kết hợp lại qua (n-1) lần swapping.
    
*   Thực hành: Tính xác suất tạo entanglement thành công cho tuyến 1000km khi chia thành 1, 5, 20 đoạn, so sánh (dùng công thức suy hao Ngày 817 cho mỗi đoạn).
    

**Ngày 822: Entanglement Purification/Distillation - Áp dụng cho Repeater**

*   Mục tiêu: Kết nối lại với Giai đoạn 2 (Ngày 250) trong bối cảnh thực tế.
    
*   Lý thuyết: Sau nhiều lần swapping, chất lượng entanglement suy giảm (do lỗi mỗi bước) - cần purification định kỳ để "chưng cất" lại chất lượng cao.
    
*   Thực hành: Đọc tổng quan giao thức purification cơ bản (BBPSSW protocol), ghi chú ý tưởng.
    

**Ngày 823: Quantum Memory - Vai trò Lưu trữ**

*   Mục tiêu: Hiểu thành phần phần cứng thiết yếu thứ ba của repeater.
    
*   Lý thuyết: Vì swapping cần cả 2 cặp Bell sẵn sàng đồng thời (2 đoạn lân cận thành công cùng lúc, xác suất thấp), cần quantum memory lưu trữ cặp đã thành công trong khi chờ đoạn còn lại.
    
*   Thực hành: Viết 1 đoạn giải thích tại sao thiếu quantum memory sẽ làm rate tổng thể giảm theo cấp số mũ với số đoạn.
    

**Ngày 824: Quantum Memory - Công nghệ Hiện thực hóa**

*   Mục tiêu: Kết nối trực tiếp với Giai đoạn 7 (hardware).
    
*   Lý thuyết: Trapped ion (Module 7.2), NV center trong kim cương, rare-earth doped crystal - các ứng viên chính cho quantum memory với thời gian lưu trữ dài.
    
*   Thực hành: Tra cứu thời gian lưu trữ (storage time) hiện tại của 2-3 công nghệ quantum memory hàng đầu, so sánh.
    

**Ngày 825: Giao thức Repeater Đầy đủ**

*   Mục tiêu: Tổng hợp cả 3 thành phần (swapping, purification, memory) thành 1 quy trình hoàn chỉnh.
    
*   Lý thuyết: Sơ đồ đầy đủ: tạo entanglement từng đoạn → lưu vào memory chờ đồng bộ → swapping ghép đoạn → purification định kỳ → lặp lại tới khi phủ hết toàn tuyến.
    
*   Thực hành: Vẽ sơ đồ khối đầy đủ cho tuyến 4 đoạn.
    

**Ngày 826: Rate vs Distance Tradeoff**

*   Mục tiêu: Hiểu đánh đổi kỹ thuật cốt lõi khi thiết kế 1 mạng lượng tử thực tế.
    
*   Lý thuyết: Chia càng nhiều đoạn → xác suất mỗi đoạn cao hơn nhưng cần nhiều swapping/purification hơn → độ trễ (latency) tăng, rate cuối cùng giảm theo cách khác.
    
*   Thực hành: Vẽ đồ thị minh họa (trên giấy) mối quan hệ giữa số đoạn và rate tổng thể, xác định vùng tối ưu.
    

**Ngày 827: DLCZ Protocol - Giới thiệu Sơ lược**

*   Mục tiêu: Biết đến 1 giao thức repeater kinh điển cụ thể.
    
*   Lý thuyết: Duan-Lukin-Cirac-Zoller protocol - 1 trong các đề xuất đầu tiên hiện thực hóa được ý tưởng repeater dùng atomic ensemble làm quantum memory.
    
*   Thực hành: Đọc tóm tắt ý tưởng DLCZ protocol, ghi chú.
    

**Ngày 828: Satellite-based Quantum Communication**

*   Mục tiêu: Học hướng tiếp cận thay thế cho sợi quang mặt đất.
    
*   Lý thuyết: Vệ tinh Micius (Trung Quốc, 2016) đã chứng minh phân phối entanglement thành công qua khoảng cách >1000km bằng đường truyền quang học qua khí quyển (suy hao thấp hơn sợi quang ở khoảng cách rất xa).
    
*   Thực hành: Đọc tổng quan về thí nghiệm Micius satellite, ghi chú các mốc kết quả chính.
    

**Ngày 829: Dự án - Mô phỏng Entanglement Swapping qua Nhiều Node**

*   Mục tiêu: Tổng hợp lý thuyết Phần B vào code, dùng lại simulator từ Giai đoạn 3 và framework từ Giai đoạn 8.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Viết mô phỏng chuỗi 3-4 node với xác suất thành công mỗi đoạn cho trước, thực hiện swapping tuần tự, đo fidelity cặp Bell cuối cùng giữa 2 đầu mút.
    

**Ngày 830: Ôn tập Tổng hợp Phần B + Kiểm tra**

*   Mục tiêu: Củng cố và tự đánh giá toàn bộ Phần B.
    
*   Lý thuyết: Vẽ sơ đồ tổng thể: Suy hao → Repeater → Swapping → Purification → Memory → Satellite.
    
*   Thực hành: Bài test 15 câu bao quát Phần B.
    

## PHẦN C - QUANTUM CRYPTOGRAPHY & KEY DISTRIBUTION (Ngày 831–845)

**Ngày 831: Giới thiệu Quantum Cryptography**

*   Mục tiêu: Hiểu động lực nền tảng, kết nối lại 2 kết quả cốt lõi đã học ở Giai đoạn 2.
    
*   Lý thuyết: An ninh của QKD dựa trên vật lý (no-cloning + không phân biệt hoàn hảo được trạng thái không trực giao, Giai đoạn 2 Ngày 213–225), không dựa trên độ khó tính toán như RSA (Giai đoạn 4).
    
*   Thực hành: Viết lại chuỗi lập luận từ Giai đoạn 2 (Ngày 225) giải thích tại sao đây là nền tảng an ninh "vô điều kiện" (unconditional security) khác hẳn RSA.
    

**Ngày 832: BB84 Protocol - Giới thiệu**

*   Mục tiêu: Làm quen giao thức QKD đầu tiên và phổ biến nhất (Bennett-Brassard 1984).
    
*   Lý thuyết: Alice gửi từng qubit ở 1 trong 4 trạng thái (|0⟩,|1⟩,|+⟩,|−⟩ - chính là ensemble đã tính Holevo bound ở Giai đoạn 2, Ngày 276), Bob đo ngẫu nhiên theo 1 trong 2 basis.
    
*   Thực hành: Đọc Nielsen & Chuang mục 12.6 (hoặc tài liệu tương đương), ghi chú tổng quan giao thức.
    

**Ngày 833: BB84 Protocol - Chi tiết Từng bước**

*   Mục tiêu: Thành thạo toàn bộ quy trình.
    
*   Lý thuyết: (1) Alice chọn bit ngẫu nhiên + basis ngẫu nhiên, gửi qubit tương ứng; (2) Bob đo mỗi qubit bằng basis ngẫu nhiên của mình; (3) Sifting - 2 bên công khai basis đã dùng (không công khai kết quả), chỉ giữ lại các trường hợp basis trùng nhau.
    
*   Thực hành: Mô phỏng bằng tay 1 phiên BB84 ngắn (10 qubit) trên giấy: liệt kê bit Alice, basis Alice, basis Bob, kết quả đo Bob, và sifted key cuối cùng.
    

**Ngày 834: BB84 - Phát hiện Eavesdropping**

*   Mục tiêu: Hiểu cơ chế phát hiện Eve (kẻ nghe lén) - trái tim của an ninh giao thức.
    
*   Lý thuyết: Nếu Eve đo trộm qubit giữa đường (không biết basis đúng), theo Born rule (Giai đoạn 1) cô ta có 50% khả năng đo sai basis, làm rối loạn trạng thái qubit trước khi gửi tiếp cho Bob - gây ra error rate bất thường trong sifted key.
    
*   Thực hành: Tính xác suất lý thuyết Eve gây ra lỗi phát hiện được nếu cô ta chặn và đo lại toàn bộ qubit (kết quả kinh điển: 25% error rate trên các bit đã sifted).
    

**Ngày 835: BB84 - Chứng minh An toàn Cơ bản**

*   Mục tiêu: Hiểu trực giác an toàn (không cần security proof đầy đủ mức nghiên cứu).
    
*   Lý thuyết: Kết nối lại no-cloning (Giai đoạn 2) - Eve không thể sao chép qubit để giữ 1 bản kiểm tra sau và gửi bản gốc nguyên vẹn cho Bob; buộc phải đo (và làm nhiễu) hoặc không có thông tin gì.
    
*   Thực hành: Viết 1 trang tổng hợp toàn bộ chuỗi lập luận an toàn của BB84, từ no-cloning đến error rate observable.
    

**Ngày 836: BB84 - Privacy Amplification và Error Correction**

*   Mục tiêu: Học bước xử lý classical post-processing bắt buộc để có khóa cuối cùng hoàn toàn an toàn.
    
*   Lý thuyết: Information reconciliation (sửa lỗi giữa Alice-Bob dùng kênh cổ điển) và privacy amplification (rút gọn khóa bằng hash function để loại bỏ hoàn toàn thông tin Eve có thể có, dựa trên ước lượng lượng thông tin rò rỉ từ error rate).
    
*   Thực hành: Đọc tổng quan 2 bước này, ghi chú thứ tự thực hiện và lý do cần thiết.
    

**Ngày 837: E91 Protocol**

*   Mục tiêu: Học giao thức QKD thay thế dựa trên entanglement thay vì single photon (Ekert 1991).
    
*   Lý thuyết: Dùng cặp Bell chia sẻ trước, an toàn được chứng minh qua vi phạm bất đẳng thức Bell (CHSH - Giai đoạn 1 Ngày 158, Giai đoạn 2 Ngày 233) thay vì lập luận disturbance như BB84.
    
*   Thực hành: Viết 1 đoạn giải thích tại sao vi phạm CHSH tối đa đảm bảo Eve không có thông tin gì về khóa (device-independent flavor).
    

**Ngày 838: So sánh BB84 vs E91**

*   Mục tiêu: Đối chiếu 2 triết lý an ninh khác nhau.
    
*   Lý thuyết: BB84: an ninh dựa trên disturbance của phép đo; E91: an ninh dựa trên vi phạm bất đẳng thức Bell - về mặt lý thuyết đã được chứng minh 2 cách tiếp cận này tương đương nhau.
    
*   Thực hành: Lập bảng so sánh: yêu cầu nguồn (single photon vs entangled pair), phương pháp phát hiện Eve, độ phức tạp triển khai thực tế.
    

**Ngày 839: B92 Protocol**

*   Mục tiêu: Học biến thể đơn giản hóa dùng chỉ 2 trạng thái thay vì 4.
    
*   Lý thuyết: Bennett 1992 - chỉ dùng 2 trạng thái không trực giao (ví dụ |0⟩ và |+⟩), đơn giản hóa nguồn phát nhưng rate thấp hơn BB84.
    
*   Thực hành: Đọc tổng quan B92, so sánh ưu nhược điểm với BB84.
    

**Ngày 840: Continuous-Variable QKD - Giới thiệu Sơ lược**

*   Mục tiêu: Làm quen hướng tiếp cận khác, kết nối lại Giai đoạn 7 (Ngày 687, continuous-variable photonic QC).
    
*   Lý thuyết: CV-QKD mã hóa khóa vào biến liên tục (quadrature của trường điện từ) thay vì qubit rời rạc, tương thích với thiết bị viễn thông quang tiêu chuẩn hơn.
    
*   Thực hành: Đọc tổng quan CV-QKD, ghi chú ưu điểm thực tế (tận dụng hạ tầng viễn thông có sẵn).
    

**Ngày 841: Device-Independent QKD**

*   Mục tiêu: Học hướng tiếp cận an toàn nhất về lý thuyết, không cần tin tưởng vào thiết bị.
    
*   Lý thuyết: DI-QKD chỉ dựa vào việc quan sát vi phạm bất đẳng thức Bell từ bên ngoài, không cần giả định gì về cách thiết bị hoạt động bên trong - bảo vệ khỏi cả các lỗ hổng phần cứng (hardware side-channel).
    
*   Thực hành: Đọc tổng quan DI-QKD, ghi chú tại sao đây được coi là "chén thánh" (holy grail) của QKD dù rất khó triển khai thực tế.
    

**Ngày 842: Thực tế Triển khai QKD**

*   Mục tiêu: Kết nối lý thuyết với thị trường thương mại hiện tại.
    
*   Lý thuyết: Các công ty/dự án dẫn đầu: ID Quantique (Thụy Sĩ), Toshiba (Nhật), mạng QKD quốc gia Trung Quốc (kết hợp Micius satellite + mặt đất).
    
*   Thực hành: Tra cứu 1 case study triển khai QKD thực tế (ví dụ mạng backbone tài chính hoặc chính phủ), ghi chú tóm tắt.
    

**Ngày 843: Giới hạn Thực tế của QKD**

*   Mục tiêu: Có góc nhìn cân bằng, hiểu QKD không "hoàn hảo tuyệt đối" trong triển khai thực tế (dù an toàn về lý thuyết).
    
*   Lý thuyết: Photon Number Splitting attack (khai thác nguồn phát không hoàn hảo phát nhiều hơn 1 photon), side-channel attack lên thiết bị vật lý thực (detector blinding attack).
    
*   Thực hành: Đọc tổng quan về Photon Number Splitting attack và giải pháp đối phó (decoy state protocol), ghi chú.
    

**Ngày 844: Dự án - Mô phỏng BB84 Protocol Đầy đủ**

*   Mục tiêu: Tổng hợp toàn bộ Phần C vào code.
    
*   Lý thuyết: Không có thêm.
    
*   Thực hành: Viết mô phỏng Python đầy đủ: Alice (chọn bit + basis ngẫu nhiên), kênh truyền (có/không Eve chặn), Bob (đo ngẫu nhiên), sifting, tính error rate; test cả 2 kịch bản (không Eve, có Eve) và xác nhận error rate ~0% vs ~25%.
    

**Ngày 845: Ôn tập Tổng hợp Phần C + Kiểm tra**

*   Mục tiêu: Củng cố và tự đánh giá toàn bộ Phần C.
    
*   Lý thuyết: Vẽ sơ đồ tổng thể: BB84 → E91 → B92 → CV-QKD → DI-QKD, kèm các tấn công thực tế.
    
*   Thực hành: Bài test 18 câu bao quát Phần C.
    

## PHẦN D - QUANTUM INTERNET: PROTOCOL STACK VÀ HIỆN TRẠNG (Ngày 846–850)

**Ngày 846: Quantum Internet Protocol Stack**

*   Mục tiêu: Học cách tổ chức hệ thống theo tầng, tương tự mô hình OSI cổ điển.
    
*   Lý thuyết: Đề xuất protocol stack cho Quantum Internet (theo nghiên cứu của Wehner et al.): physical layer, link layer, network layer, transport layer, application layer - mỗi tầng đảm nhiệm 1 phần của bài toán phân phối entanglement đã học ở Phần B.
    
*   Thực hành: Đọc tổng quan protocol stack, vẽ sơ đồ các tầng và chức năng tương ứng.
    

**Ngày 847: Quantum Internet Hiện tại - Các Testbed Đang chạy**

*   Mục tiêu: Cập nhật hiện trạng thực tế 2026.
    
*   Lý thuyết: Chicago Quantum Exchange, QuTech Delft (Hà Lan), mạng thử nghiệm tại Trung Quốc - các testbed quy mô nhỏ đang chứng minh khái niệm.
    
*   Thực hành: Tra cứu tiến độ mới nhất của 1-2 testbed này, ghi chú khoảng cách và số node đã đạt được.
    

**Ngày 848: Thách thức Còn lại**

*   Mục tiêu: Có bức tranh thực tế về khoảng cách giữa hiện trạng và tầm nhìn đầy đủ.
    
*   Lý thuyết: Quantum memory chưa đủ thời gian lưu trữ dài, rate truyền còn thấp, thiếu chuẩn hóa protocol liên vận hành (interoperability) giữa các công nghệ khác nhau (liên hệ Giai đoạn 7).
    
*   Thực hành: Viết 1 trang tổng hợp roadmap dự kiến tới Quantum Internet quy mô lớn (dựa trên tài liệu tham khảo đã đọc), nêu rõ mốc thời gian ước tính nếu có.
    

**Ngày 849: Ôn tập Tổng hợp Toàn Giai đoạn 9**

*   Mục tiêu: Kết nối cả 4 phần: Tầm nhìn → Entanglement Distribution/Repeater → QKD → Protocol Stack.
    
*   Lý thuyết: Vẽ sơ đồ tư duy tổng thể toàn Giai đoạn 9.
    
*   Thực hành: 12 bài tập tổng hợp toàn giai đoạn.
    

**Ngày 850: Tổng kết Giai đoạn 9**

*   Mục tiêu: Xác nhận sẵn sàng chuyển sang Giai đoạn 10 (Quantum Machine Learning).
    
*   Lý thuyết: Ôn lại toàn bộ Giai đoạn 9, nhấn mạnh các khái niệm sẽ không quay lại trực tiếp ở phần còn lại của syllabus (networking) nhưng là mảnh ghép bắt buộc cho bức tranh toàn cảnh ngành.
    
*   Thực hành: Bài kiểm tra tổng hợp 25 câu bao quát cả Giai đoạn 9; liệt kê 3 điểm yếu nhất cần ôn thêm.
