How are artificial neural networks different from normal computer programs (or software)?
ANNs learn and adapt to the patterns inside inputs, however, general PCs don't. PCs take the process as input and provide results based on user preferences, but never adapt i.e., always depends on users what to do with the data, meanwhile, ANNs are customized for specific tasks like forecasting, function approximations etc.
Well, a computer consists of the hardware (CPU, GPU, memory, etc.), the operational system (OS) and software/programs (OS is also a software, but it is a very special software).
A neural network is simply a program that runs on a computer. Like a calculator app. In fact, the most simple NNs are indeed just some sort of a calculator that performs matrix multiplications.
Personal Computers are hardware, whereas artificial neural networks are software. (There are also neuromorphic chips, but that is a different story.)
A traditional computer program receives some input, calculates stuff based on predefined rules / flow diagrams and generates the output and side effects (such as changed files). The complexity often lies in the number of rules: What is the most reasonable part to adjust, given a change of requirements / a bug? How can I be sure I didn't forget an important edge case? Do I have off-by-one errors? Null-Pointer references? Overflows?
An artificial neural network is just one machine learning model.
Machine learning programs are also software, but they take data and an optimization criterion to infer the desired rules. There is no machine learning without data. The side effect of a machine learning programs training algorithm is the trained model, which usually is a big binary file. The complexity often lies in the data/the model: Is the training data representative for my real task? Did the model learn something reasonable? When / how often do I have to retrain? How can we maintain this?
To be more precise, here is Tom Mitchells definition of machine learning:
A computer program is said to learn from experience E with respect to some task T and some performance measure P if its performance on T, as measured by P, improves with experience E.