Computer Science Principles by Kevin P Hare