1. Understanding Recurrence Relations Using Automata, Python Code, And Javascript Visualizations

    , by

    Recurrence relations are very often taught in first- or second-year computer science and discrete mathematics courses. This post takes a somewhat different and more visual approach to understanding linear recurrences and solving them by drawing the link between linear recurrences, automata, and matrices, using the problem of generating all domino-tilings of a board as the springboard. Code in Python and visualizations in JavaScript are used to demonstrate the ideas.

  2. Combinatorial Generation Using Coroutines With Examples in Python

    , by

    Approaching combinatorial generation algorithms using coroutines, with examples in Python. Inspired by Knuth's work in his volume 4 of The Art of Computer Programming, as well as his "Deconstructing Coroutines" paper, co-written with Frank Ruskey.

  3. Common Substring Permutation

    , by

    Short post on a simple problem on common subsequence permutations with a neat one-line Python solution.

  4. Problem-Solving Lessons From George Pólya

    , by

    What I learned from Newman's selections of Pólya's How to Solve It, the influential and beautifully written book on problem-solving techniques and heuristics.