---
url: https://docs.nemo12.com/curriculum/tin/implement.md
description: >-
  Package Tin học 3 (Implement): learner biến ý tưởng thành chương trình chạy
  được và người khác đọc hiểu được.
---

# Package 3 · Implement (Viết thành chương trình)

Thuộc [Curriculum Computer Science](/curriculum/tin/). Package lớn nhất, và là nơi phần lớn nội dung chương trình trong nước rơi vào.

| | |
| --- | --- |
| **Module** | 5 |
| **Unit** | 19 |
| **Mastery level** | 3 tới 12 |
| **Lớp (VN)** | 3 tới 12 |
| **Key concept chính** | Communication (Giao tiếp) · Systems (Hệ thống) |

## Module trong package

| Module | Nội dung | Unit |
| --- | --- | --- |
| [3.1 · First programs](/curriculum/tin/implement/first-programs) (Chương trình đầu tiên) | Biến, nhập xuất, biểu thức | 4 |
| [3.2 · Control flow](/curriculum/tin/implement/control-flow) (Điều khiển luồng) | Rẽ nhánh và vòng lặp | 4 |
| [3.3 · Store many things](/curriculum/tin/implement/store-many) (Lưu nhiều dữ liệu) | Mảng, chuỗi, từ điển, và chọn cái nào | 4 |
| [3.4 · Functions](/curriculum/tin/implement/functions) (Hàm) | Đặt tên cho một ý, rồi dùng lại | 4 |
| [3.5 · Code people can read](/curriculum/tin/implement/readable-code) (Code người khác đọc được) | Đặt tên, chú thích, cấu trúc | 3 |

## Toàn bộ unit

| Unit | Mastery level (B21) | Lớp (VN) | Key concept |
| --- | --- | --- | --- |
| 3.1.1 Give the computer an instruction (Ra lệnh cho máy) | 3-7 | 3-8 | Systems |
| 3.1.2 Variables hold values (Biến giữ giá trị) | 4-8 | 5-9 | Models |
| 3.1.3 Types matter (Kiểu dữ liệu có ý nghĩa) | 5-10 | 6-11 | Form |
| 3.1.4 Input and output (Nhập và xuất) | 5-9 | 6-10 | Communication |
| 3.2.1 If this, then that (Nếu thế này thì thế kia) | 5-9 | 6-10 | Systems |
| 3.2.2 Repeat until done (Lặp cho tới khi xong) | 6-10 | 7-11 | Patterns |
| 3.2.3 Loops inside loops (Vòng lặp lồng nhau) | 8-12 | 9-12 | Systems · Patterns |
| 3.2.4 Off by one (Lỗi lệch một đơn vị) | 7-12 | 8-12 | Evidence |
| 3.3.1 A list of things (Danh sách) | 6-10 | 7-11 | Form |
| 3.3.2 Text is data too (Chuỗi cũng là dữ liệu) | 7-11 | 8-12 | Form |
| 3.3.3 Look up by key (Tra cứu theo khoá) | 9-12 | 10-12 | Relationships |
| 3.3.4 Choose the right structure (Chọn đúng cấu trúc dữ liệu) | 10-12 | 11-12 | Function · Systems |
| 3.4.1 Name a piece of logic (Đặt tên cho một đoạn xử lý) | 7-11 | 8-12 | Communication |
| 3.4.2 Arguments and return (Tham số và giá trị trả về) | 8-12 | 9-12 | Systems |
| 3.4.3 One function, one job (Một hàm, một việc) | 9-12 | 10-12 | Development |
| 3.4.4 Use a library (Dùng thư viện có sẵn) | 9-12 | 10-12 | Communities |
| 3.5.1 Names that explain themselves (Tên tự giải thích) | 6-12 | 7-12 | Communication |
| 3.5.2 Comment why, not what (Chú thích vì sao, không phải cái gì) | 9-12 | 10-12 | Communication |
| 3.5.3 Read someone else's code (Đọc code của người khác) | 9-12 | 10-12 | Communities · Communication |

## Chỗ hay bị bỏ qua

Module **3.5** hiếm khi được chấm điểm, và đó là lý do nó bị bỏ. Nhưng code là thứ được đọc nhiều hơn được viết, và người đọc lại nhiều nhất chính là learner ba tuần sau, lúc đã quên hết.

Unit **3.5.2** nói một chuyện ngược với thói quen: chú thích *"tăng i lên 1"* là vô dụng vì code đã nói thế rồi. Chú thích có giá trị là chú thích nói **vì sao**, thứ mà code không bao giờ nói được.

Unit **3.2.4** là lỗi phổ biến nhất trong toàn bộ ngành, đủ phổ biến để có tên riêng. Nó xuất hiện đủ nhiều để đáng đứng thành một unit thay vì bị coi là chuyện bất cẩn.

[Package 4 · Debug & Verify →](/curriculum/tin/debug/)
