Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
programming-math-science
This is a list of links to different freely available learning resources about computer programming, math, and science.
https://github.com/bobeff/programming-math-science
Last synced: 4 days ago
JSON representation
-
Computer Graphics
-
Ray Tracing
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- A raycasting engine in 7 easy steps
- Getting Started With DirectX Raytracing
- How to build a BVH
- Part 1
- Part 2
- Physically Based Rendering: From Theory To Implementation
- Ray-Casting Tutorial For Game Development And Other Purposes
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Demystifying multiple importance sampling
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing with Voxels in C++
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
-
Linux command line
- 3D Math Primer for Graphics and Game Development
- A Gentle Introduction to D3D12
- Computer Graphics from Scratch
- GPU Gems
- GPU Gems 2
- GPU Gems 3
- GPU Performance for Game Artists
- Let's Make a Voxel Engine
- Lode's Computer Graphics Tutorial
- Marching Cubes, Explained Using Marching Squares
- Part 1
- Part 2
- Part 1
- Part 2
- RasterTek toturials
- WebGL2 Fundamentals
- Part 2 - Visibility buffer
- Part 3 - Cluster rendering
- Part 4 - LOD generation
- Part 5 - A basic material pass
- Part 6 - LOD generation - faster, better, simpler
- Part 7 - Runtime LOD selection
- Part 1 - The Plan
- Part 8 - Mesh shader time
- Learn Computer Graphics From Scratch
- Physically Based Rendering in Filament
- Crash Course in BRDF Implementation
- GPU Work Graphs mesh nodes in Microsoft DirectX® 12
-
Curves and Surfaces
-
Demoscene
-
Shaders
-
Vulkan
- I Am Graphics And So Can You - a series of blog posts about implementing a Vulkan renderer for Doom 3 by *Dustin H. Land*
- Vulkan Raytracing Tutorials
- How I learned Vulkan and wrote a small game engine with it
-
WebGPU
-
OpenGL
-
Image Processing
-
-
Programming languages
-
Python
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Composing Programs
- From Python to Numpy
- Learn Python the Right Way
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Practical Python Programming
- Python Asyncio: The Complete Guide
- Python for Data Analysis, 3rd edition
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Think Python, 3rd Edition
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- How Python Asyncio Works: Recreating it from Scratch
- Modern Good Practices for Python Development
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Think Python, 2nd Edition
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Test-Driven Development with Python
-
Go
-
Simulations
-
Assembly
- A fundamental introduction to x86 assembly programming
- Part 0 - Setup and First Steps
- Part 1 - Metaprogramming in Flat Assembler
- Part 2 - We're Writing a Virtual Machine
- Part 3 - Arithmetic and Logic
- NASM Tutorial
- RISC-V Assembly Programming
- x86-64 Assembly Language Programming with Ubuntu
- NASM Tutorial
-
Basic
-
C
- Compiler Options Hardening Guide for C and C++
- Coroutines in C
- Demystifying bitwise operations, a gentle C tutorial
- Object-Oriented Programming with ANSI-C - Tobias Schreiner* **[pdf]**
- So You Think You Know C?
- Writing a Simple Garbage Collector in C
- How to implement a hash table (in C)
- Implementing smart pointers for the C programming language
-
C++ <span id="cpp">
- Awesome Modern C++
- C++ exceptions under the hood
- C++20 Coroutines: sketching a minimal async framework
- C++20 Concepts: The Definitive Guide
- Fiber in C++: Understanding the Basics
- Hacking C++
- Microsoft C++ language documentation
- Performance Analysis and Tunning on Modern CPUs
- The Boost C++ Libraries
- Part 2: Memory Usage Case Study
- Part 3: Memory Footprint with SDE
- Part 4: Memory Footprint Case Study
- Part 5. Data Locality and Reuse Distances
- Part 4: Catching what you throw
- Part 20: Running destructors while unwinding
- Part 8: Two-phase handling
- Part 14: Multiple landing pads & the teachings of the guru
- Appendix II: Metaclasses and RTTI on C++
- Appendix III: RTTI and exceptions orthogonality
-
D
-
Haskell
-
Java
-
JavaScript
-
Lisp dialects
- Babashka Babooka: Write Command-Line Clojure
- Clojure Concurrency Tutorial
- Clojure for the Brave and True
- Learn Lisp The Hard Way
- Successful Lisp: How to Understand and Use Common Lisp
- Typed Lisp, A Primer - hassy*
- Part II
- Beautiful Racket
- How to Design Programs
- Structure and Interpretation of Computer Programs
-
Nim
-
OCaml
-
Oberon-2
-
Pascal
-
PostScript
-
Prolog
-
Pyret
-
Regular expressions
-
Rust
- A Gentle Introduction to Rust
- Beginner's guide to Error Handling in Rust
- Effective Rust
- Exploring ways to make async Rust easier
- Learning Async Rust With Entirely Too Many Web Servers
- Rust Atomics and Locks: Low-Level Concurrency in Practice
- Things you can’t do in Rust (and what to do instead)
- 100 Exercises To Learn Rust
- Things you can’t do in Rust (and what to do instead)
-
Smalltalk
- Smalltalk Resources - A list of free smalltalk books.
-
Forth
-
Odin
-
Ada
-
-
AI
-
Machine Learning
- Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control
- Deep Learning
- Deep Learning Course
- Deep Learning: Foundations and Concepts
- Dive into Deep Learning Compiler
- Information Theory, Inference, and Learning Algorithms
- Mathematical Introduction to Deep Learning: Methods, Implementations, and Theory
- Mathematics for Machine Learning
- Neural Networks: Zero to Hero - A course by *Andrej Karpathy*
- Physics-based Deep Learning
- Probabilistic Machine Learning: An Introduction
- Probabilistic Machine Learning: Advanced Topics
- The Little Book of Deep Learning
- A Course in Machine Learning
- Deep Reinforcement Learning: Zero to Hero!
- Machine Learning Engineering Book
- Machine Learning Engineering Open Book
- Speech and Language Processing, 3rd edition
- The Elements of Differentiable Programming
- Learning Theory from First Principles
- Alice’s Adventures in a differentiable wonderland
- Applied Machine Learning for Tabular Data
- Deep Learning Interviews
- Crash Course in Deep Learning (for Computer Graphics)
- The Engineer's Guide To Deep Learning
-
Computer Games AI
-
-
Algorithms
-
Computer Games AI
- Foundations of Data Science
- Algorithms
- Algorithms and Data Structures
- Algorithms for Optimization
- The Arcane Algorithm Archive
- Competitive Programming Algorithms
- Competitive Programmer's Handbook
- Exact String Matching Algorithms
- How does B-tree make your queries fast?
- Introduction to Algorithms: A Creative Approach
- Planning Algorithms
- Principles of Algorithmic Problem Solving
- Purely Functional Data Structures
- Sequential and Parallel Data Structures and Algorithms: The Basic Toolbox
- Monte-Carlo Graph Search from First Principles
- Collision Detection
- Data Structures for Data-Intensive Applications: Tradeoffs and Design Guidelines
-
-
Art
-
Computer Games AI
-
-
Biology
-
Computer Games AI
-
-
Command line and tools
-
Computer Games AI
- Driving Compilers
- Getting started with tmux
- NixOS & Flakes Book - An unofficial book for beginners by *Ryan Yin*
-
Curl
-
-
Command Line and Tools
-
Computer Games AI
-
Linux command line
-
Curl
-
-
Compilers and Interpreters
-
Linux command line
- Part 1
- Part 2: Building a baseline JIT for Lua automatically
- Creating the Bolt Compiler
- How Clang Compiles a Function
- How LLVM Optimizes a Function
- Part 1
- Part 2
- Part 3
- Part 1: Introduction, selecting a language, and doing some planning
- Part 2: A lexer
- Part 3: A parser
- Part 4: Testing
- Part 5: A code generator
- Part 6: Input and output
- Part 7: Arrays
- Part 8: Strings, forward references, and conclusion
-
-
Computer Networks and Network Programming
-
Cryptography
-
Debuggers
-
Databases
-
Design Patterns
-
Distributed systems
-
Electronics
-
WebGPU
-
-
Emulators and Virtual Machines
-
Game Programming
-
WebGPU
- 2D Game Development: From Zero To Hero
- Books by Wireframe Magazine
- Roguelike Tutorial - In Rust
- Reverse engineering the rendering of The Witcher 3
- Scroll Back: The Theory and Practice of Cameras in Side-Scrollers
- Write a First Person Game in 2KB With Rust
- Write a First Person Game in 2KB With Rust
- Books by Wireframe Magazine
-
Game Engines
-
-
GUI Programming
-
Hardware
-
Logical Games
-
Low Level Stuff
-
Math
-
Game Engines
- 3Blue1Brown lessons
- A Gentle Introduction to Tensors
- A Programmer's Introduction to Mathematics
- An Infinite Descent into Pure Mathematics
- An Infinitely Large Napkin
- An introduction to graph theory
- Books by *Dr. Kenneth Kuttler*
- Euclid's Elements
- Everything You Always Wanted To Know About Mathematics
- Introduction to Homotopy Type Theory
- Paul's Online Math Notes
- The Princeton Companion to Mathematics - editor* **[pdf]**
- A Gentle Introduction to the Art of Mathematics
- Approved Textbooks
- An animated introduction to Fourier Series
-
Algebra
-
Calculus
-
Category Theory
-
Probability and Statistics
- Bayes Rules! An Introduction to Applied Bayesian Modeling
- Digital textbook on probability and statistics
- Introduction to Modern Statistics (2nd Ed) - Rundel and Johanna Hardin*
- Introduction to Probability for Data Science
- Probability 101, the intuition behind martingales and solving problems with them
- Probability and Statistics Cookbook
- Introduction to Modern Statistics (2nd Ed) - Rundel and Johanna Hardin*
- Probability 101, the intuition behind martingales and solving problems with them
-
Theoretical Computer Science
-
Topology
-
Geometry
-
-
Multithreading and Concurrency
-
Operating Systems
-
Topology
- A Journey in Creating an Operating System Kernel
- Linux Insides
- Making our own executable packer
- Operating Systems: Three Easy Pieces - Dusseau* and *Andrea C Arpaci-Dusseau*
- OSDev.org
- Systems Programming: Lecture Notes
- The Art of Unix Programming
- Unix as IDE
- Unix as IDE
- Advanced Linux Programming
- Writing an OS in Nim
-
Operating Systems Development
-
-
Photography
-
Topology
-
Operating Systems Development
-
-
Physics
-
Topology
-
Simulations
-
Operating Systems Development
-
-
Retrocomputing
-
Zig
- A Guide to the Graphics of the Sega Mega Drive / Genesis
- An Afterlife User's Guide to the C64
- Apple II Documentation Project
- Commodore 64 Guides
- Commodore Bookmarks - Bookmarks for the Commodore 64, 128, Plus4, C16, VIC20 & PET Community.
- Famicom Party: Making NES Games in Assembly
- First Steps in Z80 Assembly Language
- How to Write ZX Spectrum Games
- Learn Multiplatform Assembly Programming
- MEGA65 Documentation
- MEGA65 Welcome Guide
- Michael Abrash’s Graphics Programming Black Book, Special Edition
- Multiplying and Dividing on the 6502
- Sinclair ZX Spectrum BASIC programming
- The Lost Ways of Programming: Commodore 64 BASIC
- Z80 User's Manual
- Usborne 1980s Computer Books
- Neil Parker's Apple II page
- Commodore Bookmarks - Bookmarks for the Commodore 64, 128, Plus4, C16, VIC20 & PET Community.
-
Adevent of code on retro machines
-
Books by Fabien Sanglard
-
DOS
-
-
Reverse engineering
-
Robotics
-
SIMD programming
-
DOS
-
Books by Fabien Sanglard
-
-
Text editors
-
Books by Fabien Sanglard
-
DOS
-
Emacs
-
Vim
-
-
Unicode
-
Version control tools
-
Web programming
-
Other
-
CSS
- Agner Fog's Website
- Beej's Guides
- Explained from First Principles
- How These Things Work - a book about abstraction
- Rocket and Space Technology
- Software Technical Writing: A Guidebook
- The Fundamentals of Control Theory
- The Scientist and Engineer's Guide to Digital Signal Processing
- Project Oberon: The Design of an Operating System, a Compiler, and a Computer
- Green Tea Press: Free books by Allen B. Downey
-
-
Other lists
-
CSS
- Build Your Own X
- Electronic References - a loosely-categorized collection of links to CS textbooks in a variety of areas that are freely available online.
- Free Computer Books
- Free Tech Books
- GPU Optimization for GameDev
- Project Based Learning
- Free Tech Books
- Electronic References - a loosely-categorized collection of links to CS textbooks in a variety of areas that are freely available online.
-
-
Data Science
-
Fluids Simulation
-
Optimization
Programming Languages
Categories
Programming languages
146
Computer Graphics
119
Math
40
Retrocomputing
28
AI
27
Algorithms
17
Compilers and Interpreters
16
Operating Systems
16
Text editors
11
Other
10
Computer Networks and Network Programming
9
Physics
9
Command Line and Tools
9
Game Programming
9
Debuggers
9
Other lists
8
Web programming
6
Databases
6
Command line and tools
5
Low Level Stuff
5
GUI Programming
5
Emulators and Virtual Machines
5
Hardware
4
Robotics
4
Multithreading and Concurrency
4
Design Patterns
3
Reverse engineering
3
Unicode
3
SIMD programming
3
Photography
2
Biology
2
Distributed systems
2
Optimization
2
Logical Games
2
Data Science
2
Fluids Simulation
2
Electronics
1
Cryptography
1
Art
1
Version control tools
1
Sub Categories
Ray Tracing
71
Python
64
WebGPU
50
Linux command line
48
Game Engines
32
Computer Games AI
28
Machine Learning
25
Topology
25
C++ <span id="cpp">
19
Zig
19
CSS
19
Vim
12
DOS
11
Operating Systems Development
10
Lisp dialects
10
Books by Fabien Sanglard
9
Assembly
9
Rust
9
Shaders
8
C
8
Probability and Statistics
8
Emacs
5
Demoscene
4
Theoretical Computer Science
4
Algebra
4
JavaScript
3
Curl
3
Haskell
3
Vulkan
3
Category Theory
3
Regular expressions
3
Go
2
Pyret
2
Calculus
2
Simulations
2
Adevent of code on retro machines
2
Curves and Surfaces
1
OpenGL
1
Smalltalk
1
Oberon-2
1
Odin
1
Geometry
1
D
1
PostScript
1
Java
1
Image Processing
1
Nim
1
Basic
1
Ada
1
Forth
1
OCaml
1
Pascal
1
Prolog
1