This course will start with a brief introduction to fuzzy sets. The differences between fuzzy sets and crisp sets will be identified. Various terms used in the fuzzy sets and the grammar of fuzzy sets will be discussed, in detail, with the help of some numerical examples. The working principles of two most popular applications of fuzzy sets, namely fuzzy reasoning and fuzzy clustering will be explained, and numerical examples will be solved. Fundamentals of neural networks and various learning methods will then be discussed. The principles of multi-layer feed forward neural network, radial basis function network, self-organizing map, counter-propagation neural network, recurrent neural networks, deep learning neural network will be explained with appropriate numerical examples. The method of evolving optimized fuzzy reasoning tools, neural networks will be discussed with the help of some numerical examples. Two popular neuro-fuzzy systems will be explained and numerical examples will be solved. A summary of the course will be given at the end.