Giao diện
Package 1 · Decompose (Phân rã bài toán)
Thuộc Curriculum Computer Science. Package không có chương tương ứng trong sách giáo khoa nào.
::: pearl-bigidea Tôi sẽ làm được gì
Tôi chia được một bài toán lớn thành những phần nhỏ mà tôi thật sự giải được.
::: Module3Unit10Mastery level1 tới 12Lớp (VN)1 tới 12Key concept chínhSystems (Hệ thống)
Package này không cần máy tính, và dạy được từ lớp 1. Nó cũng là chỗ phân biệt rõ nhất giữa learner học lập trình và learner học tư duy máy tính.
Module trong package
ModuleNội dungUnit1.1 · Break it down (Chia nhỏ ra)Từ một việc lớn thành các bước làm được31.2 · Find the pattern (Tìm quy luật)Chỗ nào lặp lại thì chỗ đó rút gọn được31.3 · Abstract away detail (Trừu tượng hoá)Bỏ đi cái không liên quan, giữ lại cái cốt lõi4
Toàn bộ unit
UnitMastery level (B21)Lớp (VN)Key concept1.1.1 Describe a task step by step (Kể một việc theo từng bước)1-51-6Systems1.1.2 Split a big task (Chia một việc lớn)3-83-9Systems1.1.3 What must happen first (Cái gì phải xong trước)4-94-10Systems · Development1.2.1 Spot what repeats (Nhận ra chỗ lặp lại)3-83-9Patterns1.2.2 Same shape, different numbers (Cùng dạng, khác số liệu)5-106-11Patterns1.2.3 Reuse instead of rewrite (Dùng lại thay vì viết lại)6-117-12Development1.3.1 What matters, what does not (Cái gì quan trọng, cái gì không)5-106-11Systems1.3.2 Name things well (Đặt tên cho đúng)6-117-12Communication1.3.3 Decide what data you need (Quyết định cần dữ liệu gì)8-129-12Systems1.3.4 Model the problem (Mô hình hoá bài toán)9-1210-12Models · Systems
Chỗ hay bị bỏ qua
Unit 1.3.4 là chỗ phần lớn bài toán thật được quyết định thắng thua, trước khi có dòng code nào. Cùng một bài về lịch học có thể mô hình thành danh sách, thành bảng, hoặc thành đồ thị, và lựa chọn đó quyết định phần còn lại dễ hay khó tới mức nào.
Unit 1.3.2 thì trông như chuyện hình thức nhưng không phải. Một biến tên x và một biến tên soHocSinhVang khiến chương trình chạy y hệt nhau, nhưng khiến người đọc hiểu hoặc không hiểu, và người đọc thường là chính learner ba tuần sau.