A comprehensive collection of high-quality, free, and open-source textbooks covering core computer science disciplines, ideal for self-learners seeking rigorous academic resources without financial barriers.
Get targeted exposure with custom position pinning and highlighted placement.
A seminal text introducing fundamental programming concepts using Scheme, emphasizing abstraction, recursion, and interpreters. It provides a deep understanding of computational processes rather than just syntax, making it vital for foundational CS knowledge.
Often referred to as CLRS, this comprehensive book covers the full spectrum of modern algorithms, from sorting to advanced graph algorithms. It serves as a standard reference for algorithm design and analysis with detailed pseudocode and exercises.
This book bridges the gap between hardware and software, explaining how programs execute on machines, manage memory, and interact with systems. It is essential for understanding low-level programming and system architecture optimization.
A practical guide to distributed systems that focuses on real-world implementation challenges like consistency, availability, and partition tolerance. It offers accessible explanations of complex topics such as consensus algorithms and replication strategies.
This text breaks down operating systems into virtualization, persistence, and concurrency, making complex OS concepts approachable. It includes practical exercises and modern examples to help learners understand how modern operating systems function.
A thorough exploration of operating system principles, covering processes, memory management, file systems, and I/O. It balances theoretical foundations with practical insights into industry-standard implementations like Linux and Windows.
While not strictly open-source, this widely available guide is a masterwork on software construction and coding practices. It offers practical advice on variable naming, loops, error handling, and debugging that improves code quality significantly.
A series of accessible books that break down algorithmic concepts into digestible parts, starting with basic asymptotic analysis. It is excellent for beginners who need a gentle introduction to algorithm design and complexity analysis.
An introduction to programming using Python, emphasizing problem-solving and debugging skills. It is well-suited for beginners, offering clear explanations and numerous exercises to build a strong programming foundation.
A modern guide to Python programming that goes beyond basics to cover web frameworks, databases, and deployment. It is designed for learners who want to build real-world applications quickly while understanding the underlying mechanisms.
This book covers the hardware-software interface, explaining how computer architectures are designed and optimized. It provides insights into RISC-V, MIPS, and ARM architectures, crucial for understanding performance and efficiency.
A comprehensive resource for understanding data structures like lists, trees, and graphs alongside their algorithmic implementations in Python. It includes detailed code examples and complexity analysis for practical software development.
Known as 'Nand to Tetris,' this book takes learners from building a simple NAND gate to creating a full operating system. It provides a hands-on approach to understanding how computers work from the ground up.
This text covers relational database theory, SQL, transaction management, and query optimization. It is essential for understanding how databases store, retrieve, and manage data efficiently in modern applications.
This book introduces networking concepts starting from the application layer down to the physical layer. It uses real-world examples like HTTP and DNS to explain network protocols and architecture clearly.
A comprehensive introduction to AI, covering search algorithms, logic, planning, machine learning, and robotics. It is the standard textbook for AI courses, providing both theoretical depth and practical implementation details.
Often called the 'Deep Learning Bible,' this book covers the mathematical foundations and architectures of neural networks. It is essential for understanding modern AI techniques, including convolutional and recurrent networks.
A collection of programming insights that emphasize problem-solving and algorithmic thinking over mere coding. It offers clever solutions to common programming problems and promotes efficient, elegant code design.
This book focuses on software craftsmanship, offering advice on code maintenance, debugging, and career development. It is a timeless guide for becoming a more effective and thoughtful software developer.
A guide to writing readable, maintainable, and flexible code through refactoring and design principles. It provides practical examples of good and bad coding practices, helping developers improve code quality in real projects.