Machine Learning is an alternative approach to create computer programs to solve problems.
In the traditional approach, a programmer needs to design an algorithm and writes explicit instructions for the computer to execute.
In other words, the programmer needs to know (or design) a priori what are the required steps to produce an output y from an input x.
In Machine Learning, a learning algorithm generates another program to solve a problem. The programmer does not need to specify an explicit algorithm.
On the other hand, we need to provide a dataset containing examples of the required output for each input to the learning algorithm.
The amount of data required will vary on the chosen learning algorithm and the complexity of the problem to be solved.