Introduction
This book provides an introduction to computer science from the
computational thinking perspective.
It explains the way of thinking in computer science through chapters of logic thinking,
algorithmic thinking,
systems thinking, and network thinking. It is purposely designed as a textbook for the first
computer science course serving undergraduates from all disciplines.
The book focuses on elementary knowledge such that all material can be covered in a one-semester
course of Introduction to Computer Science. It is designed for all students assuming
no prior programming experience. At the same time, students with prior programming experience
should not find the course boring.
Table of Content
- Preface
- Introduction
- 1. Overview of Computer Science
- 1.1. Computational Processes in Problem Solving
- 1.2. Characteristics of Computational Thinking
- 1.3. Relation of Computer Science to Society
- 1.4. Exercises
- 1.5. Bibliographic Notes
- 2. Processes of Digital Symbol Manipulation
- 2.1. Data as Symbols
- 2.2. Programs as Symbols
- 2.3. Computer as a Symbol-Manipulation System
- 2.4. Exercises
- 2.5. Bibliographic Notes
- 3. Logic Thinking
- 3.1. Boolean Logic
- 3.2. Automata and Turing Machines
- 3.3. Power and Limitation of Computing
- 3.4. Exercises
- 3.5. Bibliographic Notes
- 4. Algorithmic Thinking
- 4.1. What Are Algorithms
- 4.2. Divide-and-Conquer Algorithms
- 4.3. Other Examples of Interesting Algorithms
- 4.4. P vs. NP
- 4.5. Exercises
- 4.6. Bibliographic Notes
- 5. Systems Thinking
- 5.1. Systems Thinking Has Three Objectives
- 5.2. Abstraction
- 5.3. Modularization
- 5.4. Seamless Transition
- 5.5. Exercises
- 5.6. Bibliographic Notes
- 6. Network Thinking
- 6.1. Network Terms
- 6.2. Connectivity
- 6.3. Protocol Stack
- 6.4. Network Laws and Responsible Computing
- 6.5. Exercises
- 6.6. Bibliographic Notes
- 7. Projects
- 7.1. Turing Adder: Turing Machine for Serial Additions
- 7.2. Text Hider: Program to Hide Text in Picture
- 7.3. Human Sorter: Team Computer for Quicksort
- 7.4. Personal Artifact: Web Page of Creative Expression
- 8. Appendices
- 8.1. Multiples and Fractions
- 8.2. Programming Basics
- 8.3. Pointers to Supplementary Material
- Index