Topic
computer-science
5 resources tagged “computer-science”.

Algorithms
Jeff Erickson
A rigorous algorithms textbook built from the author's courses at the University of Illinois. Covers recursion, dynamic programming, greedy algorithms, graphs, NP-hardness, and more, emphasizing intuition and the problem-solving process alongside formal proofs.
AlgorithmsAdvancedCreative CommonsPDF · 24 MB
Open Data Structures (in C++)
Pat Morin
An open textbook covering the design and analysis of fundamental data structures — arrays, linked lists, hash tables, binary and balanced search trees, heaps, tries, and graphs — with full C++ implementations and mathematical analysis.
Data StructuresIntermediateCreative CommonsPDF · 1.5 MBOperating Systems: Three Easy Pieces
Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau
A widely used operating systems textbook organized around three themes: virtualization (CPU and memory), concurrency (locks and condition variables), and persistence (disks, RAID, and file systems).
Operating SystemsAdvancedOfficial Free DistributionPDF
How to Think Like a Computer Scientist: C++ Version
Allen B. Downey
A gentle introduction to programming and computer-science thinking using C++. Builds from variables, expressions, and functions up to recursion, classes, vectors, and larger programs, emphasising problem decomposition over syntax.
C++BeginnerCreative CommonsPDF
Think Python
Allen B. Downey
A concise introduction to Python and computer-science thinking, built around problem decomposition. Covers variables, functions, conditionals, recursion, iteration, strings, lists, dictionaries, and a light introduction to classes and objects.
PythonBeginnerCreative CommonsPDF · 900 KB