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
- 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
- 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
-
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 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
- 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
-
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
-
-
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
- 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
144
Computer Graphics
118
Math
39
AI
27
Retrocomputing
27
Algorithms
17
Compilers and Interpreters
16
Operating Systems
15
Text editors
11
Other
9
Command Line and Tools
9
Debuggers
9
Game Programming
8
Physics
8
Other lists
7
Computer Networks and Network Programming
7
Databases
6
Web programming
6
Command line and tools
5
GUI Programming
5
Low Level Stuff
5
Emulators and Virtual Machines
5
Hardware
4
Robotics
4
Multithreading and Concurrency
3
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
63
WebGPU
47
Linux command line
47
Game Engines
32
Computer Games AI
28
Machine Learning
25
Topology
23
C++ <span id="cpp">
19
Zig
18
CSS
17
Vim
12
DOS
11
Lisp dialects
10
Operating Systems Development
9
Books by Fabien Sanglard
9
Assembly
9
Rust
9
Shaders
8
C
8
Probability and Statistics
7
Emacs
5
Demoscene
4
Theoretical Computer Science
4
Algebra
4
JavaScript
3
Curl
3
Vulkan
3
Category Theory
3
Regular expressions
3
Haskell
2
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