 One of the most important concepts in computer science is how to define new commands. How to add your own words to a computer language. Most computer languages have only about 100 words or commands and really the art and magic is in defining your own new words out of these building blocks. We do this all the time in sports. For example, in basketball you start by learning how to dribble, how to do a layup, how to rebound. Once you've learned these really basic moves, you learn new moves and put together these building blocks like a pick and roll or a give and go. And you can then go from there to do more complex plays. And once you learn that play and give it a name, everybody on the team knows how to do it. Similarly, once you've taught a computer how to do an action once using these sequence of commands you can make up your own name for that action. So it's easy to repeat it later. When you define your own command and give it a name, that's called a function.