Introduction to ComputingExplorations in Language, Logic, and MachinesDavid
Evans

Computer science studies how to describe, predict properties of, and
efficiently implement information processes. This book introduces the
most important ideas in computing using the Scheme and Python
programming languages. It focuses on how to describe information
processes by defining procedures, how to analyze the costs required to
carry out a procedure, and the fundamental limits of what can and cannot
be computed mechanically.