Here's the article: 40 Key Computer Science Concepts Explained in Layman's Terms. It includes important (and often confusing) concepts like big O notation, hill climbing, P vs NP, etc. I thought analogies are great for explaining complicated stuff to beginners and students. Formal/academic style explanations can be too boring sometimes! What do you guys think? Feel free to point out any inaccuracies or suggest new concepts to add .