Fundamentals of Computer Science

A Definitions-First Approach to Computer Science

Welcome, learners! This website is your guide to mastering the fundamentals of Computer Science, Computer Programming, and Problem Solving. Consider it your home base for navigating the concepts within this book.

This textbook takes a definitions-focused approach to learning. We believe that a strong understanding starts with precise definitions. These definitions will form the bedrock of your knowledge, upon which you’ll build a comprehensive understanding of programming concepts through examples and practice. Each definition is carefully illustrated with examples. Don’t worry if a definition doesn’t immediately click: Instead, treat them as fundamental truths. As you work through the examples, you’ll see how these definitions operate in practice, solidifying your understanding.

Our journey begins with the most fundamental building blocks: values and types. From there, we’ll progressively build your knowledge, adding new concepts and restrictions upon these core ideas along the way. Expect a gradual start with plenty of hands-on practice before moving to more complex coding challenges. This approach ensures a solid foundation for later concepts and the rapid pace of later chapters.

Our Learning Path:

Chapter 1 - Values and Types - Understanding the core of data and its representation. - Chapter 1.1 - Booleans - Chapter 1.2 - Numbers - Chapter 1.3 - Chars and Strings

Chapter 2 - Variables and Scope- Managing data and memory within your programs.

Chapter 3.1 - Branching - Dictating the behavior of your programs.

Chapter 3.2 - Looping - Allows for repetition in programs.

Chapter 4.1 - Arrays - Efficiently grouping and handling contiguous data.

Chapter 4.2 - Linked Lists - Handling data of varying size effectively.

Chapter 5 - Classes, Methods, and Object - Modeling real-world concepts in your code.

Now enough of that, let’s get started with Chapter 1 - Values and Types.

Note: Branching Lab can be found here.