Blog

Group Project Survival Guide

I vaguely remember chilling in an afternoon class, trying to stay awake. My hand steadily sketched out notes as the professor rambled about computer algorithms or something. Then, randomly, the professor charged us to work with a neighbor to examine a problem just scribbled on...

The Tower of Hanoi

The Tower of Hanoi is a mathematical puzzle, often introduced to undergraduate college students. At face value, the puzzle seems pointless. You are simply moving discs around. Yet, something is interesting about the puzzle's nature. After careful inspection, it turns out we can...

Everybody Hates Recursion

Everybody hates recursion. Well, maybe I'm exaggerating but the technique is often dismissed as useless and complicated. You may be thinking: "I'll just keep my loops please." And there's nothing wrong with that. In many situations, loops or higher-order functions are...

Eating Meat: Evolution, Patterns, and Consequences

This blog post is a summary of Vaclav Smil's paper Eating Meat: Evolution, Patterns, and Consequences. Although I eat meat, it should be noted that I am not an expert in meat. Thus, please take this summary with a grain of salt. As with any scientific article, the information may...

4 Tips to Help Beginner Programmers

For this post, I am assuming you already have some programming skills, but feel stuck. There is a lot of stuff you could potentially learn. Yet, this diversity of options makes decision making difficult. What will give you the best bang for your buck, so to speak? Well, I am...

State Space Algorithm

Recently, I implemented the state space algorithm in Racket. It's a simple algorithm that can find a goal state in n-dimensional Euclidean space. All one needs is a computable function, a starting domain, and a goal value. How does it work? For example, let's say we want to find...