An introductory textbook on the Philosophy of Computer Science, which asks questions such as: What is Computer Science? What are computers, algorithms, and programs? What is hypercomputation? What is an implementation? Are programs theories? How do programs relate to the world? The book also introduces Computer Ethics and the Philosophy of Artificial Intelligence.
While the book hasn't been formally published, a continuously updated draft is available at: https://cse.buffalo.edu/~rapaport/Pap...
"As shown above, the distinction between software and hardware is not a sharp one. A different ontological approach to computational systems relies on the role of abstraction. Abstraction is a crucial element in computer science, and it takes many different forms."
This entire review has been hidden because of spoilers.