During one of my evenings aimlessly searching the web (something I entertain myself with when I don’t have the mental energy to do anything productive), I stumbled across Numberphile on Youtube. In particular, their video detailing how a sum can be calculated for Grandi’s Series. Having not sat down to do any formal maths since my A-Levels, I’d not heard of Grandi’s Series, but the fact that someone was claiming to be able to calculate […]

The Insertion Sort algorithm is a (very) simple sorting algorithm used to order the elements in a given list/data structure. Similar to it’s Bubble Sort counterpart, this algorithm is a staple of algorithms courses/lessons but is rarely used in the professional world due to it’s high computational cost/low efficiency when compared to other sorting algorithms. Uses: Because of its simplicity, Insertion Sort is commonly used to introduce the concept of sorting algorithms, to students. Step-by-Step […]

The Bubble Sort algorithm is a (very) simple sorting algorithm used to order the elements in a given list/data structure. The algorithm is a staple of algorithms courses/lessons but is rarely used in the professional world due to it’s high computational cost/low efficiency when compared to other sorting algorithms. Uses: Because of its simplicity, Bubble Sort is commonly used to introduce the concept of sorting algorithms, to students. Donald Knuth, in his famous book “The Art […]

After spending an evening looking at SPL, I thought I’d take a look into some other esoteric languages on my evenings off/lunch breaks. Today I’ve been looking at David Morgan-Mar’s “Chef”. Chef’s design goal is to make programs look like simple recipes. Chef code consists of a title, a list of variables (ingredients, either wet or dry depending on whether you want numerical or character output) and their data values and a list of stack […]

For those of you not familiar with esoteric programming languages, the Shakespeare Programming Language (or SPL) is a simple language created by Karl Hasselström & Jon Åslund in 2001. Their design goal was to make a language with beautiful source code that resembled Shakespeare plays. There aren’t any fancy data or control structures, just basic arithmetic and go-tos, in their own words “You could say we have combined the expressiveness of BASIC with the user-friendliness […]

The Fibonacci Search algorithm is a simple searching algorithm for finding the index of a target value within a sorted list of values (very similar to the Binary Search algorithm). This algorithm has an small advantage over the Binary Search algorithm in slightly reducing the average time needed to access a storage location. Uses: The Fibonacci Search is sometimes used in programs that require access to non-uniform storage (like magnetic tape), where the time taken […]

The SQRT(3) subdivision algorithm is a geometric method used to create increasingly smooth surfaces from arbitrary triangular mesh topologies. It was devised by & documented in 2000 by Lief Kobbelt at the Max-Planck Institute for Computer Sciences in Saarbrücken, Germany (UC Stanford hosts a copy of the paper here). The algorithm devises it’s name from it’s method of splitting a singular triangle face into three other faces during each refinement iteration, Kobbelt explains the name […]

The Catmull-Clark subdivision algorithm is a geometric method used to create increasingly smooth surfaces from arbitrary mesh topologies. It was devised by Edwin Catmull & Jim Clark in 1978 at the University of California, Berkeley. Uses: Subdivision algorithms, such as Catmull-Clark, are regularly used in computer animation software (such as those used in the development of video games & animated movies) to produce smoother meshes at closer draw distances. Since Catmull & Clarks’s paper in […]