Package 3 · Implement (Viết thành chương trình)
Thuộc Curriculum Computer Science. 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.
Tôi biến được ý tưởng trong đầu thành chương trình chạy được, và người khác đọc hiểu được.
Code được đọc nhiều hơn được viết. Chương trình chạy đúng mà không ai đọc nổi, kể cả chính learner ba tuần sau, mới chỉ xong một nửa việc.
| 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 (Chương trình đầu tiên) | Biến, nhập xuất, biểu thức | 4 |
| 3.2 · Control flow (Điều khiển luồng) | Rẽ nhánh và vòng lặp | 4 |
| 3.3 · Store many things (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 (Hàm) | Đặt tên cho một ý, rồi dùng lại | 4 |
| 3.5 · Code people can read (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.