Machine learning programs can do things that is hasn't been told to do by a programmer. Machine learning programs will be shown some patterns. These patterns will be an input (such as a question) and an output (the answer to the question). Then, the machine learning program will predict the output based on the input. Machine learning isn't always necessary. Computers can do simple tasks by being told instructions. However, sometimes there are a lot of things that control the output. Then, it is hard for a human to tell the computer all of the instructions. It is sometimes easier to tell the computer how to teach itself.