Conway’s Game of Life
Conway’s Game of Life is a classic. Invented by John Conway in 1970, the “zero player game” is a wonderful example of emergent behavior. Although each cell follows the same simple rules, wonderful patterns emerge. As time went on, the Game was shown to be Turing Complete, meaning any program could be represented as an initial state to Conway’s Game of Life given a large enough grid. That’s incredible!
I made the original, then I had fun playing with the rules, making “Conway’s Editor”, and exploring the world of “Cellular Automata”. I hope you enjoy it.
Data Structures and Algorithms Curriculum
This repository contains curriculum materials designed to help schools, educators, companies, non-profits, or anyone at all teach an introductory computer science course. The materials here target concepts at the very core of computer science, and are focused primarily on introducing data structures and algorithms to students who have already been learning to program.
All the material in this repository has been released to the public domain, feel free to copy, clone, and modify these materials for any purpose whatsoever.
Hash Tables and Hash Functions
Hash tables and hash functions are at the heart of computer programming. They are ubiquitous and diverse. From checksums to crypto currency and from chaining to cuckoo hashing, hash functions have earned their place in the computer science hall of fame. This repository is meant to help you learn about checksums and hash tables. Read each section, then build a series of hash functions and incorporate them into a hash table. This is an
npm package, with tests provided.
Love a Mole
Love A Mole was my submission to a homework problem given to me by Etsy. It was by far the most fun I’ve had as part of an interview. Love A Mole was a fantastic excuse to program something fun, light-hearted, and experimental. The code contains aspects of story-telling that you could never get away with in a “production” code base. The whole thing is absolutely silly, and that’s what I love about it.
Learn Deep Learning
An ongoing project to introduce crucial concepts of machine learning and neural networks. New articles will be added as they are produced, as will new code samples and Jupyter Notebooks. Start from the very beginning and learn about deep learning!
Learn Computational Genetics
An ongoing project to explore the connections between genetics and computer programming. Start from the basics and learn how to process genetic data. New articles and code samples will be added as they are created.