Invitation to computer science - Schneider, G. Michael (Cengage Learning, 2016)