Index
Front Matter
Review of Mathematics
Arithmetic
Set Theory
Naive Set Theory
Tuples
Relations
Natural Numbers
Functions
Sequences
Categories
Classes
Combinatorics
Counting
Graph Theory
Mathematical Logic
Informal Logic
Symbolic Logic
Abstract Algebra
Basic Notions
Operations
Algebraic Structures
Commutativity
Associativity
Identity Element
Distributivity
Semigroups
Commutative Semigroup
Monoid
Commutative Monoid
Groups
Abelian Groups
Rings
Isomorphism
Geometry
Trigonometry
Linear Algebra
Axioms
Probability Theory
Axioms
Number Theory
Divisibility
Modular Arithmetic
Radices
Prime Factorization
Numerical Analysis
Discrete Mathematics
Induction
Invariants
Strong Induction
Real Analysis
Constructing the Reals
Real-valued Functions
Polynomial Functions
Periodic Functions
The Derivative
Limits
Derivatives of Trigonometric Functions
Derivative Manipulation
Implicit Differentiation
Derivatives of Exponential & Logarithmic Functions
Linear Approximations
Quadratic Approximations
Curve Sketching
Maxima & Minima
Related Rates
Newton's Method
The Mean Value Theorem
Introduction to Integration
Definite Integrals
𝑢-Substitution
Riemann Sums
The Fundamental Theorem of Calculus
Common Applications of Integrals
Areas Between Curves
Techniques of Integration
Infinite Sequences
Series
Complex Analysis
Review of Computer Science
Fundamentals
Variables & Types
Conditionals
Variable Scope
Arrays
Loops
Functional Programming
Simple Data Types
Compound Data Types
Asynchronous Programming with JavaScript
Fundamentals
Control Flow
Arrays
Object Literals
Keyword 'this'
Functional Programming Techniques
TypeScript
Data Structures & Algorithms
Prelude: Data Structures & Algorithms
Complexity Analysis
Numeric Algorithms
Arrays
Lists
Strings
Time Algorithms
Matrices
Disjoint Sets
Stacks
Queues
Hash Tables
Trees
Binary Trees
Tree Traversal
Preorder Traversal
Inorder Traversal
Postorder Traversal
Breadth-first Traversal
Comparing Traversal Methods
Traversal Sketching
Traversal Complexities
Traversal Generation
Order Determination
Tree Summation
Binary Search Trees (BST)
Searching BSTs
Inserting New Nodes
BST Constructor
Deleting Nodes
BST Traversal Generation
BST Costs
AVL Trees
Rotations
Right-rotation
Left-rotation
Right-left-rotation
Left-left-rotation
General Form of AVL Rotations
B-trees
Red-black Trees
Fenwick Trees
Heaps
Graphs
Sorting Algorithms
Recursion
Caches
Backtracking
Potpourri
Computer Systems
Language Overview: C
Pointers
Digital Signals
Binary Representation
Floating Point Numbers
Boolean Logic
Logic Gates
The ALU
Implementing Time
Memory
RAM
PC
Machine Language
Memory Hierarchy
Memory in x86-64
The CPU
Assemblers
x86 Assembly
Virtual Machines
Implementing a Virtual Machine
Compilers
Code Optimization
Linkers
Interrupts
Computer Networks
Overview
Application Layer
Application Architectures
Client-server Applications
P2P Applications
Hybrid Applications
Network Processes
What Is a Socket?
Web Browsing
HTTP Connections
Nonpersistent HTTP
Persistent HTTP
Persistent HTTP without Pipelining
Persistent HTTP with Pipelining
How a Browser Works in General
The HTTP Request Message
HTTP Methods
The HTTP Response Message
Cookies
Web Caches
Web Applications
Data Layer
Mobile Systems
MVVM
Swift
Computer Languages
Introduction to Parsing
Tools
Bash
Git
C++
Build Systems
Time Complexities
Language: C++
Errors
Operators
Variables & Types
Header Files
Overflow
Value v. Reference Semantics
Strings
Functions
Function Overloading
Function Templates
Argument Passing
Function Returns
Variable Scope
Static Variables
Recursion Generally
Preprocessing
Libraries
I/O Streams
Namespaces
Collections
Pointers
Classes
Friend Functions
Metaprogramming: Templates
Categories
This chapter covers notes on categories, more generally providing an overview of
category theory
.
Foundational Definitions