This textbook is intended as a textbook for one-semester, introductory computer science courses aimed at undergraduate students from all disciplines. Self-contained and with no prerequisites, it focuses on elementary knowledge and thinking models. The content has been tested in university classrooms for over six years, and has been used in summer schools to train university and high-school teachers on teaching introductory computer science courses using computational thinking.
This book introduces computer science from a computational thinking perspective. In computer science the way of thinking is characterized by three external and eight internal features, including automatic execution, bit-accuracy and abstraction. The book is divided into chapters on logic thinking, algorithmic thinking, systems thinking, and network thinking. It also covers societal impact and responsible computing material - from ICT industry to digital economy, from the wonder of exponentiation to wonder of cyberspace, and from code of conduct to best practices for independent work.
The book's structure encourages active, hands-on learning using the pedagogic tool Bloom's taxonomy to create computational solutions to over 200 problems of varying difficulty. Students solve problems using a combination of thought experiment, programming, and written methods. Only 300 lines of code in total are required to solve most programming problems in this book.