Adventures in Coding


Thoughts on programming, web development, and tech

Data Structures and Algorithms: Trees

Trees are a very common data structure that is important for new programmers to master. Examples you may have run across, whether or not you know that they are trees, including the following:

  1. Outlines of books and papers
  2. Biological classification (Kingdoms, phylum, class, order, family…down to species and subspecies)
  3. HTML elements and DOM nodes
  4. The file system on a computer, with disk drives, directories, and subdirectories
  5. URL’s of websites, with a domain and series of directories
  6. the organizational chart of a company (CEO, vice presidents, managers, etc.)

Linked Open Data and RDF

Linked Open Data and RDF are the basis of many digital publication projects. Libraries, archives, and other public knowledge institutions seek to publish their data in a way that is easily accessible, machine readable, and relatable to other data sets.


Data Structures and Algorithms: Recursion and Memoization

Recursion Recursion in programming simply means writing functions that call themselves. If you find that a problem is easily solved once a subproblem is solved, then recursion is often useful. (This technique is often known as divide and conquer). An example is the factorial function, defined as the product of integers in sequence from 1 to n. Mathematically the formula is n!=n·(n−1)·(n−2)…3·2·1. Recursively, factorial can be defined as n!=n·(n−1)! For a recursive solution to be effective, there must be a base case, from which the rest of the recursive calls can be evaluated. In the case of factorial, n! = 1 when n = 0. Then 1! = 1* 0! =1* 1=1, 2! = 2* 1! =2* 1 = 2, 3 = 3 * 2! = 3 * 2 = 6, etc. If you do not define a base case, the function will never stop running.


Library technologies, an introduction

I have been looking for jobs at the intersection of technology and academia, and this has taken me to web development positions for academic libraries. Libraries use a number of technologies behind the hood of their websites, especially to store information on their collection. Some of these are unique to libraries or similar cultural institutions, others are more widespread but have particular


Basic Data Structures and Algorithms: Linked Lists

If you are a new web developer, especially if you are a graduate of a bootcamp like Flatiron School, it is important to study data structures and algorithms. An obvious reason is that they are needed for technical interviews. But more importantly, learning data structures and algorithms gives you experience in problem solving, and also a better understanding of computer science. A foundation in some CS concepts allows you to understand how the computer represents, stores, and operates on your data. It will also give you the practical benefit of knowing what code will run efficiently, and what will become impossibly slow (or take up too much memory) as data sets grow.