From Mathematics to Generic ProgrammingInteractive Algorithm Visualizations

Zhou Jing's BlogGitHub

Contents

  • Section 2.1 - Egyptian Multiplication (Russian Multiplication)
  • Section 3.2-3.3 - Sieve of Eratosthenes
  • Exercise 3.3 - Prime Counting Function
  • Exercise 3.4 - Palindromic Primes
  • Section 4.2 - Euclidean Algorithm (GCM/GCD)
  • Section 5.1 - Prime Number Checker
  • Exercise 7.1 - How Many Additions Does the Basic Fibonacci Algorithm Need? (Time Complexity: O(φⁿ))
  • Section 7.7 - Calculate nth Fibonacci Number Using Power Algorithm (Time Complexity: O(log n))
  • Section 8.6 - Finding Shortest Distance Between Any Two Nodes in a Directed Graph
  • Exercise 9.2 - Finding an Upper Bound for π Through Visual Proof
  • Section 11.3 - Demonstration of Sequence Rotation Algorithm
  • Exercise 12.1 - Performance Comparison of Stein and Euclidean GCD Algorithms
  • Section 13.4 - RSA Algorithm

To be a good programmer, you need to understand the principles of generic programming. To understand the principles of generic programming, you need to understand abstraction. To understand abstraction, you need to understand the mathematics on which it's based.

That is the story From Mathematics to Generic Programming hopes to tell.

From Mathematics to Generic Programming Book Cover