Principles of Computer Science

An Invigorating, Hands-On Approach

Book Cover

Description:
Principles of Computer Science is an invigorating and rapid adventure that covers core introductory theoretical computer science topics, including discrete mathematics, logic, programming languages, and programming language pragmatics. Readers dive deep into the syntax and semantics of constructing a small yet usable programming language (interpreter) containing paradigms from functional and non-functional programming. Additionally, users will gain an understanding of compilation by writing functions that translate code written in their high-level language down to low-level machine language. Moreover, Crotts provides a perspective on event-driven programming, memory management via garbage collection, and much more. Principles of Computer Science assumes no prior programming experience--all topics are taught from scratch, making this a highly approachable and inclusive textbook.

Purchase Links:
[J-Ross Publishing Store] [Amazon Store]

Resources:
[Errata] [WAV Resources Provided by J-Ross Publishing]

About the Author

Joshua Crotts is a computer science Ph.D. student at Indiana University with a strong interest in computer science pedagogy, as well as programming languages and compilers. He has spoken and published papers at conferences (e.g., SIGCSE, CMNA, ICEEL) about formal logic education, automatic detection of rhetorical devices (e.g., antithesis), and inductive logic programming as a means of argument mining in science-policy articles. His current research work aims to improve the transition of CS1 (first-semester) students to the CS2 (second-semester) domain.

Luddy Hall 3025Q
700 N Woodlawn Ave
Bloomington, IN 47408