Computer science deals with people who have problems to solve. Algorithms help find the solutions to those problems. To be a computer scientist means first and foremost that you are a problem solver, capable of constructing algorithms either from scratch or by applying patterns from past experience.
In this text, we use Python as the programming language because it has a clean, simple syntax and an intuitive user environment. The basic collections are powerful yet easy to use. The interactive nature of the language creates a place to test ideas without the need for a lot of coding. Finally, Python provides a textbook-like notation for representing algorithms, alleviating the need for an additional layer of pseudocode. This allows the illustration of many relevant, modern, and interesting problems that make use of algorithms.








