Welcome to Computer Science for Normal People Fundamentals of Algorithm Design Why do I sometimes read things about linked lists, binary trees, acyclic directed graphs, and other crazy data structures? What is recursion, and how would I know when I have a problem that needs a recursive solution? Level up your coding skills by learning how to write fundamental searching and sorting algorithms. What is "big O" notation all about? Computer Science: The Good Parts What are "monte carlo" simulations and how is it used to plan wifi networks, affect city planning, and perform wildlife simulations? What's the difference between top-down and bottom-up design? What is "Russian-doll" caching? What is a "turing-complete" solution and why should I care? How do I get started in the field of artificial intelligence?