The 1st edition of Dierbach's Introduction to Programming using Python provides chapters divided into sections where concepts are taught first "generically" with specific syntax following. Furthermore, extensive examples, programming assignments and end of chapter capstone assignments provide plenty of practice for problem solving. A "Beginner's Programming Guide" provides a quick online reference. Interactive versions of all program examples online provide additional support for learning.