Foundations of Computer Science: A Rigorous, Non-Programming Introduction

Edition: 1

Copyright: 2022

Choose Your Format

Website

$144.70

ISBN 9781792492266

Details KHP Content w/Engagement 180 days


This product is currently not available.

Foundations of Computer Science: A Rigorous, Non-Programming Introduction provides a non-programming, yet rigorous, introduction to computer science.  Although programming is an essential skill for a computer scientist, there are a plethora of good programming textbooks, and the field is much broader, and much more intellectually rich and exciting, than just programming.  Instead, this book focuses on introducing the full breadth of the foundational areas of the field.  Instead of just being a "breadth-first" introduction to the field, however, coverage of each area includes deep dives into the actual subject matter that a junior or senior majoring in CS will encounter.  For example, instead of just mentioning the highlights of operating systems, the book includes chapters on the details of process synchronization mechanisms, virtual memory, files, and handling deadlocks.  This gives the beginning student a feel for the kinds of problems computer scientists study and for how computer scientists think, and exercises are designed to teach students to begin thinking like computer scientists.  The book and the course it came from were designed in part to address retention and recruitment in computer science programs.  It hopefully will pique the non-major's interest in the field (and increase the CS major's interest)  and while allowing both major and non-major students to  assess at an early stage whether the field is actually for them.  Versions of the textbook have been used successfully at the authors' instituation for a required first-year computer science course for many years, teaching hundreds of students.

Part I—Introduction
Chapter 1—What Is Computer Science?
Chapter 2—What Are computers?
Chapter 3—A Brief history

Part II—Digital Logic
Chapter 4—Digital Logic
Chapter 5—Language of Digital Logic: Boolean Algebra
Chapter 6—Logic Circuits and Minimization

Part III—Introduction
Chapter 7—Computer Architecture
Chapter 8—Data Representation
Chapter 9—Hardware Arithmetic
Chapter 10—Registers
Chapter 11—The CPU
Chapter 12—Secondary Storage
Chapter 13—Buses

Part IV—Introduction
Chapter 14—Programming Languages
Chapter 15—Statements and Control Structures
Chapter 16—Variables and Data Types
Chapter 17—Grammars and Parsing

Part V—Introduction
Chapter 18—Operating Systems
Chapter 19—Processes and Process Synchronization
Chapter 20—Memory Management & Virtual Memory
Chapter 21—Files and File Systems
Chapter 22—Resources and Deadlocks

Part VI—Introduction
Chapter 23—Networks
Chapter 24—Error Detection and Correction
Chapter 25—LAN Protocols
Chapter 26—Transport and Internet Layer Protocols

Part VII—Introduction
Chapter 27—Computers, Ethics, and Society
Chapter 28—Conclusions and the Future

Roy M Turner
The authors both received PhDs from Georgia Tech in computer science, specializing in artificial intelligence. After graduation, they were on the faculty at the University of New Hampshire for a few years, where they also worked with the Marine Systems Engineering Laboratory, then moved to their true academic home, the University of Maine, joining the faculty of the Department of Computer Science (later, the School of Computing and Information Science). Both have published scores of papers in artificial intelligence and several papers in computer science education about the approach taken in this book. Unfortunately, Elise passed away in 2008 after a long fight with cancer. Roy continues to be on the faculty of the School, where he has been for almost 30 years, teaching and pursuing research in context-sensitive reasoning for real-world AI systems, machine learning, computational ecology, and computer science education.
Elise H. Turner

Foundations of Computer Science: A Rigorous, Non-Programming Introduction provides a non-programming, yet rigorous, introduction to computer science.  Although programming is an essential skill for a computer scientist, there are a plethora of good programming textbooks, and the field is much broader, and much more intellectually rich and exciting, than just programming.  Instead, this book focuses on introducing the full breadth of the foundational areas of the field.  Instead of just being a "breadth-first" introduction to the field, however, coverage of each area includes deep dives into the actual subject matter that a junior or senior majoring in CS will encounter.  For example, instead of just mentioning the highlights of operating systems, the book includes chapters on the details of process synchronization mechanisms, virtual memory, files, and handling deadlocks.  This gives the beginning student a feel for the kinds of problems computer scientists study and for how computer scientists think, and exercises are designed to teach students to begin thinking like computer scientists.  The book and the course it came from were designed in part to address retention and recruitment in computer science programs.  It hopefully will pique the non-major's interest in the field (and increase the CS major's interest)  and while allowing both major and non-major students to  assess at an early stage whether the field is actually for them.  Versions of the textbook have been used successfully at the authors' instituation for a required first-year computer science course for many years, teaching hundreds of students.

Part I—Introduction
Chapter 1—What Is Computer Science?
Chapter 2—What Are computers?
Chapter 3—A Brief history

Part II—Digital Logic
Chapter 4—Digital Logic
Chapter 5—Language of Digital Logic: Boolean Algebra
Chapter 6—Logic Circuits and Minimization

Part III—Introduction
Chapter 7—Computer Architecture
Chapter 8—Data Representation
Chapter 9—Hardware Arithmetic
Chapter 10—Registers
Chapter 11—The CPU
Chapter 12—Secondary Storage
Chapter 13—Buses

Part IV—Introduction
Chapter 14—Programming Languages
Chapter 15—Statements and Control Structures
Chapter 16—Variables and Data Types
Chapter 17—Grammars and Parsing

Part V—Introduction
Chapter 18—Operating Systems
Chapter 19—Processes and Process Synchronization
Chapter 20—Memory Management & Virtual Memory
Chapter 21—Files and File Systems
Chapter 22—Resources and Deadlocks

Part VI—Introduction
Chapter 23—Networks
Chapter 24—Error Detection and Correction
Chapter 25—LAN Protocols
Chapter 26—Transport and Internet Layer Protocols

Part VII—Introduction
Chapter 27—Computers, Ethics, and Society
Chapter 28—Conclusions and the Future

Roy M Turner
The authors both received PhDs from Georgia Tech in computer science, specializing in artificial intelligence. After graduation, they were on the faculty at the University of New Hampshire for a few years, where they also worked with the Marine Systems Engineering Laboratory, then moved to their true academic home, the University of Maine, joining the faculty of the Department of Computer Science (later, the School of Computing and Information Science). Both have published scores of papers in artificial intelligence and several papers in computer science education about the approach taken in this book. Unfortunately, Elise passed away in 2008 after a long fight with cancer. Roy continues to be on the faculty of the School, where he has been for almost 30 years, teaching and pursuing research in context-sensitive reasoning for real-world AI systems, machine learning, computational ecology, and computer science education.
Elise H. Turner