Textbooks have been used for learning for centuries. However, in general, and especially in our specific context — computing education — they suffer from some critical defects:
- Textbooks are passive. The reader does not know how well they have actually understood something. (Some people, including us, have tried to create “active textbooks”, but these only partially ameliorate the other issues.)
- Textbooks tend to be focused on conceptual learning. Often, students want and need hands-on, practical learning.
- Textbooks are not an authentic learning environment. When a student goes into the workforce, as a programmer, they will be working with repositories, not textbooks.
- In computing learning, it is typical for a learner to also be constructing some software. However, this sits completely separate from the textbook,