Steve Yegge has an interesting blogpost in which he says : I think the best way to start learning math is to spend 15 to 30 minutes a day surfing in Wikipedia. It's filled with articles about thousands of little branches of mathematics. You start with pretty much any article that seems interesting (e.g. String theory, say, or the Fourier transform, or Tensors, anything that strikes your fancy.) Start reading. If there's something you don't understand, click the link and read about it. Do this recursively until you get bored or tired. Doing this will give you amazing perspective on mathematics, after a few months. You'll start seeing patterns, ... and you'll download a PDF or buy a book, and you'll figure out enough to make you happy for a while.
So with this project i'm trying to apply that but mostly for computer science concepts that i don't know and math concepts related to it.
- Idempotence
- Self-balancing binary search tree
- Referential transparency
- Lazy evaluation
- Locality of reference
- Homoiconicity
- Macros
- Pattern matching
- Communicating sequential processes
- Paramorphisms
- Polymorphic recursion
- Coinduction
- Hash consing
- Locality of reference
- Combinatory logic
- Fixed-point combinator
- Hamming distance
- Levenshtein distance
- Element distinctness problem
- Graph Theory
- Tail call
- What is difference between tail calls and tail recursion?
- What limitations does the JVM impose on tail-call optimization
- Method overriding
- Function overloading
- Type signature
- Polymorphism
- Scalability
- Distributed Computing
- Consensus
- Data redundancy
- Failover
- Single point of failure
- A primer on distributed computing
- Message queue
- Radix
- Substring
- Literal
- Boolean satisfiability problem
- Eventual Consistency
- Hamming Weight
- How To Avoid O-Abuse and Bribes
- O(n log n)
- On fibonacci numbers as an example of asymptotic complexity
- Proving Running Times With Induction
- Fast incremental sort
- A beginner's guide to Big O notation
- What would cause an algorithm to have O(log log n) complexity?
- What would cause an algorithm to have O(log n) complexity?
- What is pseudopolynomial time? How does it differ from polynomial time?
- Binary search algorithm
- QuickSelect Algorithm
- In-place algorithm
- Radix Sort
- Selection sort
- Binary Search
- Rabin–Karp algorithm
- String searching algorithm
- Approximate string matching
- Knuth–Morris–Pratt algorithm
- Breadth-first search
- In-place algorithm
- Depth First Search
- Breath First Search
- Cache-oblivious algorithm
- Flood fill
- Greedy algorithm
- Search Algorithm
- Linear Search
- Selection algorithm
- Subset sum problem
- Cycle detection
- Cycle detection: The Tale of the Teleporting Turtle.
- Extra, Extra - Read All About It: Nearly All Binary Searches and Mergesorts are Broken
- Are you one of the 10% of programmers who can write a binary search?
- Common bugs and why exercises matter (binary search part 2)
- Testing is not a substitute for thinking (binary search part 3)
- Writing correct code, part 1: invariants (binary search part 4a)
- Closest pair of points problem
- Using Uninitialized Memory for Fun and Profit
- Depth and Breadth First Search
- Overlapping subproblems
- Optimal substructure
- Maximum subarray problem
- Lowest common ancestor
- Range minimum query
- Recursion Reloaded
- Become a BST Ninja - Genin Level
- Selection algorithm
- QuickSelect Algorithm
- Floyd–Rivest algorithm
- QuickSelect (Wikipedia)
- The Median-of-Medians Algorithm (Blog post)
- Median of medians
- John Tukey’s median of medians
- Backtracking
- When should I choose bucket sort over other sorting algorithms ?
- Solving the Boggle Game - Recursion, Prefix Tree, and Dynamic Programming
- Prefix Sum
- The Knuth-Morris-Pratt Algorithm in my own words
- Understanding Knuth-Morris-Pratt Algorithm
- String Matching: Knuth-Morris-Pratt algorithm
- Boyer-Moore algorithm
- Boyer-Moore algorithm explanation
- Boyer–Moore–Horspool algorithm
- Rabin–Karp algorithm
- Rolling hash
- A general construction for rolling hash functions
- Rabin–Karp algorithm on P3G
- Rabin-Karp implementation in Python
- Why should hash functions use a prime number modulus?
- Why does Dijkstra's algorithm use decrease-key?
- Minimum spanning tree
- Kruskal's algorithm
- Topological sorting
- Online Algorithm
- Ukkonen's algorithm
- Interactive Wiki of Algorithms
- Linear probing
- Primary clustering
- Binary Search (TopCoder)
- Text Alignment (Dynamic Programming)
- Fisher–Yates shuffle
- Boyer–Moore majority vote algorithm
- Majority Voting Algorithm Blogpost
- Steiner tree problem
- Fractional Cascading
- Retrieve alphabetic order from dictionary
- Transpose graph
- Computing Strongly Connected Components
- Puzzling Graphs: Problem Modeling with Graphs
- Adjacency List
- Adjacency matrix
- Depth-first search algorithm wiki
- Breadth first search algorithm wiki
- Algorithms Wiki: Graph Traversal
- Algorithms Wiki: Basic graph definition
- Depth-first search (DFS)
- Connected components
- Djikstra's algorithm: experimenting with different implementation performance
- why Dijkstra's algorithm will not work with negative weights
- Introduction to Graph Theory: Finding The Shortest Path
- Iterative deepening vs depth-first search
- Iterative deepening depth-first search
- Computing Strongly Connected Components
- Disjoint-set data structure
- Disjoint-set Data Structures (Topcoder)
- Topological Sorting
- BFS vs DFS: Big O Isn't Everything
- Path
- Johnson's algorithm
- Bellman–Ford algorithm
- Prefix Sum
- Prune and search
- Knapsack problem
- Introduction to Dynamic Programming
- Dynamic programming and memoization: bottom-up vs top-down approaches
- Longest increasing subsequence
- Longest common subsequence problem (Wikipedia)
- Longest Common Subsequence
- Matrix Chain Multiplication
- Egg Dropping
- Optimal binary search tree
- Counting sort
- HeapSort
- Quicksort
- Merge Sort
- Insertion Sort
- Tim Sort
- Bucket Sort
- Why is quicksort better than other sorting algorithms in practice?
- External Sorting
- What is a the fastest sorting algorithm for an array of integers?
- In-Place Radix Sort
- An intuitive understanding of heapsort ?
- Investigating Radix Sort
- Schwartzian transform
- Multi-key quicksort
- Adaptive Sort
- SmoothSort
- Tree data structure - Rosetta code Tree traversal
- Splay Tree, An implementation in clojure
- Treap - An implementation in Go : https://github.com/steveyen/gtreap - Key-value persistence library with Treap as the fundamental data structure
- Retroactive data structures
- Zipper
- Linked list
- Binary search tree
- Double-ended queue
- 2-3 Tree
- Zipper
- Priority queue
- Pairing heap
- Binary tree
- Trie
- Prefix trees; Comparison between Trie, Ternary Search Tree and Radix Tree
- A Probing Hash Table Framework
- AVL tree
- Heap
- Hashtable
- Queue
- Hashtable introduction
- Five Myths about Hash Tables
- Disjoint-set data structure
- Search Data Structure
- Rosetta Code Priority Queue
- Double-ended priority queue
- Double-Ended Priority Queues definition and implementation
- Linked Lists Basics
- Tree traversal
- Tree Traversal (Wikipedia)
- Bit Array
- Stack
- Circular Buffer
- I've been writing ring buffers wrong all these years
- Bounded Priority Queue
- Heap as array
- Using Tries
- Trie C implementation
- Binomial heap
- Why is a Fibonacci heap called a Fibonacci heap?
- Fibonacci Heap Visualisation
- Bloom filter
- How HashMap works in Java
- B-Tree
- Rope Data Structure
- Original Paper on Rope Data Structure: Ropes: an Alternative to Strings
- Skiplist
- Segment tree
- The intuition behind binary indexed trees
- Fenwick tree
- On Tries (CodeForces)
- Binomial Heaps
- Implicit data structure
- What the Heck are Algebraic Data Types ?
- System F
- Typed lambda calculus
- Integer overflow
- Integer
- Duck Typing
- What is "duck typing"?
- Duck Typing Is More Than Quackery
- Monotonic function
- Topology
- Topological space
- Homotopy
- Pythagorean triple
- Coprime integers
- Equivalence relation
- Vacuous truth
- Sieve of Eratosthenes
- Möbius function
- Square free integer
- Inclusion–exclusion principle
- Prime Factor
- Euler number
- Inversion (discrete mathematics)
- Pandigital number
- Polydivisible number
- Inclusion–exclusion principle
- Rearrangement Inequality (AOPS)
- Rearrangement inequality (Wikipedia)
- Collatz conjecture
- Unimodular matrix
- Euclidean distance
- Fermat Point
- Zeller's congruence
- Concrete Mathematics Book First Chapter explanation
- IEEE floating point
- Why Are Floating Point Numbers Inaccurate?
- Overflow flag
- Signalling Integer Overflows in Java
- NUM00-J. Detect or prevent integer overflow
- Basic Integer Overflows
- Group Anagrams
- If a String Contains an Anagram of Another String
- Longest Substring Without Repeating Characters
- Algorithm to find top 10 search terms
- How to pair socks from a pile efficiently
- On a 2d array sorted in increasing order from left to right and top to bottom, best way to search for a target number?
- Searching a Sorted Matrix Faster
- Solving Every Sudoku Puzzle
- LinkedLists: The runner technique
- Algorithm On Intersecting linked lists
- Intersecting Linked Lists Faster
- How to Find All Overlapping Intervals
- Ring buffers and queues
- The desceptive Anagram question
- Trie application I - TopCoder SRM 342 Round 1: Tagalog alphabet sorting
- Solving Bogger: A nasality talisman for the sultana analyst
- Boggle solver series
- Boggle Solver: A Boggling return to C
- Counting inversion
- Finding a shortest path given a timetable
- How to determine the longest increasing subsequence using dynamic programming ?
- Longest palindromic substring