Bài 1: Tư duy máy tính, Hệ nhị phân & Kiến trúc máy tính
1. Bốn trụ cột của Tư duy tính toán (Computational Thinking)
Tư duy máy tính không đơn thuần là việc gõ code, mà là phương pháp tư duy giải quyết vấn đề logic có hệ thống để con người hoặc máy tính có thể thực thi một cách tối ưu.
1. Phân rã (Decomposition)
Chia nhỏ một bài toán phức tạp thành nhiều bài toán con độc lập, đơn giản hơn để lần lượt giải quyết.
2. Nhận diện mẫu (Pattern Recognition)
Tìm kiếm các điểm tương đồng, xu hướng lặp lại giữa các vấn đề nhằm tái sử dụng các giải pháp đã biết.
3. Trừu tượng hóa (Abstraction)
Lược bỏ các chi tiết thừa thãi, chỉ tập trung vào các đặc trưng cốt lõi quan trọng nhất của đối tượng.
4. Thiết kế thuật toán (Algorithm Design)
Xây dựng chuỗi các chỉ dẫn từng bước rõ ràng, hữu hạn, không mập mờ để giải quyết trọn vẹn bài toán.
2. Hệ đếm nhị phân (Binary) & Biểu diễn dữ liệu
Mọi thiết bị điện tử kỹ thuật số đều hoạt động dựa trên các bóng bán dẫn (Transistor) đóng vai trò như các công tắc đóng/ngắt (1 = Có điện thế cao, 0 = Điện thế thấp).
| Hệ đếm | Cơ số | Tập ký tự | Ví dụ giá trị 45 | Ứng dụng trong CNTT |
|---|---|---|---|---|
| Thập phân (Decimal) | 10 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 | 45 | Giao tiếp thường nhật của con người |
| Nhị phân (Binary) | 2 | 0, 1 | 101101₂ | Mã máy, cổng logic điện tử, lưu trữ bit/byte |
| Thập lục phân (Hexadecimal) | 16 | 0-9, A, B, C, D, E, F | 2D₁₆ (0x2D) | Địa chỉ ô nhớ RAM, mã màu Web (#RRGGBB), mã hóa Byte |
1 × 2⁵ + 0 × 2⁴ + 1 × 2³ + 1 × 2² + 0 × 2¹ + 1 × 2⁰ = 32 + 0 + 8 + 4 + 0 + 1 = 45 (Thập phân)
Đơn vị lưu trữ chuẩn: 1 Byte = 8 Bits. 1 KiB = 1024 Bytes. Kiểu số nguyên có dấu 32-bit (int) lưu từ -2³¹ đến 2³¹-1 theo phương pháp Bù hai (Two's complement).
3. Kiến trúc máy tính & Compiler vs Interpreter
Kiến trúc Von Neumann gồm 3 khối cốt lõi: CPU (Bộ vi xử lý), Bộ nhớ chính (RAM) và Thiết bị I/O. CPU thực hiện chu trình liên tục: Fetch (Tìm nạp lệnh) → Decode (Giải mã lệnh) → Execute (Thực thi) → Store (Ghi kết quả).
- • Quét toàn bộ mã nguồn (.cpp), kiểm tra cú pháp và dịch toàn bộ thành mã máy nhị phân (.exe hoặc file ELF) một lần duy nhất trước khi chạy.
- • Ưu điểm: Tốc độ thực thi cực kỳ nhanh, tối ưu hóa phần cứng sâu, không cần mã nguồn khi phân phối.
- • Nhược điểm: Thời gian build lâu hơn, mã máy phụ thuộc vào kiến trúc CPU đích (x86_64, ARM).
- • Đọc, dịch và thực thi mã nguồn (.py) theo từng dòng lệnh một thông qua máy ảo PVM (Python Virtual Machine) dịch sang Bytecode (.pyc).
- • Ưu điểm: Thử nghiệm nhanh, viết mã linh hoạt, chạy đa nền tảng dễ dàng không cần biên dịch lại.
- • Nhược điểm: Tốc độ thực thi chậm hơn C++ từ 10 - 50 lần do chi phí thông dịch run-time.
Câu hỏi củng cố kiến thức (4 câu)
1 Trong 4 trụ cột của tư duy tính toán, kỹ năng 'lược bỏ các chi tiết thừa thãi, chỉ giữ lại những thông tin mấu chốt quan trọng nhất' được gọi là gì?
2 Giá trị của số nhị phân 101101₂ trong hệ thập phân (Decimal) là bao nhiêu?
3 Một byte trong kiến trúc máy tính tiêu chuẩn bao gồm bao nhiêu bit?
4 Điểm khác biệt cốt lõi nhất giữa Trình biên dịch (Compiler như C++) và Trình thông dịch (Interpreter như Python) là gì?