Module 2.1 · Steps that work (Các bước chạy được)
Thuộc Package 2 · Design an Algorithm.
Tôi viết ra được dãy bước không mơ hồ, và kiểm tra nó chạy đúng ngay trên giấy.
| Unit | 3 |
| Mastery level | 2 tới 11 |
| Lớp (VN) | 2 tới 12 |
| Key concept chính | Communication (Giao tiếp) · Systems (Hệ thống) |
Unit 1 · Unambiguous instructions (Chỉ dẫn không mơ hồ)
Tôi sẽ làm được viết chỉ dẫn mà mọi người làm theo đều ra cùng một kết quả.
Mastery level 2-6 · Lớp 2-7 · Communication (Giao tiếp)
| Bậc | Learner làm được gì |
|---|---|
| Đang hình thành | Dùng từ mơ hồ: "một ít", "gần đó", "khi cần" |
| Đạt | Mỗi bước chỉ hiểu được theo đúng một cách |
| Vững | Tự phát hiện chỗ mơ hồ trong chỉ dẫn của chính mình trước khi đưa cho ai |
Bằng chứng đạt. Ba người làm theo chỉ dẫn của learner và cả ba ra cùng kết quả.
Hiểu lầm thường gặp. Người đọc sẽ hiểu đúng ý mình. Con người tự lấp chỗ trống bằng phỏng đoán, còn máy tính thì không, và đó là lý do chỉ dẫn dùng được với người vẫn có thể vô nghĩa với máy.
Knowledge node. Tính không mơ hồ · Chỉ dẫn chính xác · Định nghĩa thuật toán
Unit 2 · Order, choice, repetition (Tuần tự, rẽ nhánh, lặp)
Tôi sẽ làm được dùng ba cấu trúc cơ bản này để diễn tả gần như mọi quy trình.
Mastery level 4-9 · Lớp 4-10 · Systems (Hệ thống)
| Bậc | Learner làm được gì |
|---|---|
| Đang hình thành | Chỉ viết được dãy bước tuần tự |
| Đạt | Dùng được cả rẽ nhánh và lặp trong mô tả của mình |
| Vững | Nhận ra mọi thuật toán đều dựng từ ba cấu trúc này, dù phức tạp tới đâu |
Bằng chứng đạt. Learner mô tả một quy trình đời thật bằng sơ đồ có đủ cả rẽ nhánh lẫn lặp.
Hiểu lầm thường gặp. Bài toán phức tạp cần những cấu trúc phức tạp. Ba cấu trúc này là đủ cho mọi thứ, và độ khó nằm ở cách ghép chúng chứ không ở việc thiếu công cụ.
Knowledge node. Cấu trúc tuần tự · Rẽ nhánh · Vòng lặp · Sơ đồ khối
Unit 3 · Trace it by hand (Chạy tay từng bước)
Tôi sẽ làm được chạy thuật toán của mình trên giấy với một bộ dữ liệu nhỏ, trước khi lên máy.
Mastery level 5-10 · Lớp 6-11 · Systems (Hệ thống)
| Bậc | Learner làm được gì |
|---|---|
| Đang hình thành | Bỏ qua bước này, lên máy chạy thử luôn |
| Đạt | Lập bảng giá trị các biến qua từng bước |
| Vững | Chọn được bộ dữ liệu nhỏ nhưng đủ lộ ra lỗi, không phải bộ dễ nhất |
Bằng chứng đạt. Learner tìm ra lỗi logic của mình trên giấy, trước khi viết dòng code nào.
Hiểu lầm thường gặp. Chạy tay chậm, lên máy nhanh hơn. Chạy tay mất năm phút và bắt được lỗi logic mà gỡ trên máy có thể mất một giờ, vì trên máy learner sẽ sửa mò thay vì hiểu.
Knowledge node. Chạy tay thuật toán · Bảng giá trị biến · Kiểm tra trước khi lập trình
Dạy module này theo kiểu IB
Concept-based. Khái niệm dẫn dắt là Communication: một thuật toán là một thông điệp gửi cho thứ không có khả năng đoán ý.
Inquiry. Khuôn hướng dẫn vẽ hình giấu kín:
Learner A cầm một hình vẽ, learner B không nhìn thấy
↓
A mô tả bằng lời, B vẽ theo. KHÔNG được hỏi lại.
↓
So hai hình
↓
"Chỗ nào B vẽ sai? Do A nói mơ hồ chỗ nào?"
↓
Đổi vai, làm lại. Lần hai thường tốt hơn hẳn.Ràng buộc không được hỏi lại là điểm mấu chốt, vì đó chính là quan hệ giữa lập trình viên và máy tính. Learner tự trải nghiệm việc chỉ dẫn của mình bị hiểu theo nghĩa khác, và chuyện đó dạy nhanh hơn mọi lời nhắc về tính chính xác.