This publication has moved to:
Please check it out. Subscribe via RSS or email!
Dynamic programming is breaking down a problem into smaller sub-problems, solving each sub-problem and storing the solutions to each of these sub-problems in an array (or similar data structure) so each sub-problem is only calculated once.
It is both a mathematical optimisation method and a computer programming method.
Optimisation problems seek the maximum or minimum solution. The general rule is that if you encounter a problem where the initial algorithm is solved in O(2 n) time, it is better solved using Dynamic Programming.
This is a book I wrote on job applications. It’s now available for free right here, with no catches. Seriously. You do not have to buy anything or sign up for anything. This is the entire book, for free, with 0 content taken away and 0 added. It’s really long.
If you like this blog post, but don’t want to buy it, sign up to my email list below to get this book in a PDF.
Also, this was automatically converted using Pandoc. There may be some visual errors in this blog post. …
Divide and conquer algorithms aren’t really taught in programming textbooks, but it’s something every programmer should know. Divide and conquer algorithms are the backbone of concurrency and multi-threading.
Often I’ll hear about how you can optimise a for loop to be faster or how switch statements are slightly faster than if statements. Most computers have more than one core, with the ability to support multiple threads. Before worrying about optimising for loops or if statements try to attack your problem at a different angle.
Divide and Conquer is one of the ways to attack a problem from a different angle…
Public key cryptography seems magical to everyone, even those who understand it. In this post, I’m going to explain public key cryptography. Public Key Cryptography is based on asymmetric cryptography, so first let us talk about symmetric cryptography.
Your front door is usually locked by a key. This key unlocks & locks your front door. With symmetric cryptography, you have one key which you use to unlock and lock things.
Only people with the key or a copy of the key can unlock the door. Now, imagine you’re on holiday in Bali. …
The United States Naval Research Laboratory developed The Onion Routing Protocol (T0r) to project U.S. intelligence communications online. Ironically, Tor has seen widespread use by everyone — even those organisations which the U.S. Navy fights against.
You may know Tor as the hometown of online illegal activities, a place where you can buy any drug you want, a place for all things illegal. Tor is much larger than what the media makes it out to be. According to Kings College much of Tor is legal.
This article doesn’t talk about what’s on Tor, or how to access Tor. This article…
Finding anagrams of words does not look like a difficult problem but has an interesting solution.
This article has been updated. Find the updated version here:
An anagram is a word or sentence that can be transformed into another word or sentence. Elvis has all the same letters as Lives, so Elvis is an anagram of Lives.
Hey! This blog post features all content from the lecture slides, things Rasmus has said, vital discussions, material from the book of the course & things from Google. As well as all the tutorials that are required for this class test.
I’m going to somehow embed my tutorial answers / write-ups here, once I figure out what software Medium supports for embedding PDFs 😁✨
Most of the test is focussed on chapter 3 (I asked Rasmus), so if you’re strapped for time only focus on chapter 3 😁🔥
Hi! If you’re not a University of Liverpool student, you may find this article pointless. Please do not waste your time unless you really, really like database design.
This blog post covers lectures 1–6 & tutorials 1–2, as per the discussion on VITAL here.
Transactions are sequences of queries. Transactions are either wholely executed or not at all. You either commit or abort a transaction.
ACID is a set of rules. It’s a good idea to follow ACID in database design.
Atomicity — Executed entirely or not at all. …
Decision trees, one of the simplest and yet most useful Machine Learning structures. Decision trees, as the name implies, are trees of decisions.
An updated version of this article can be found here: