ECTS credits: 5
Lectures: 2
Exercises: 2

Course objective:

Acquisition of knowledge and skills related to the use of computer procedures that differ from the usual ways of solving problems, such as the use of genetic algorithms, neural networks and fuzzy systems.

Course contents:

Introduction into unconventional computer procedures. Genetic algorithms. Java implementation of genetic algorithms. Neural networks. Methods of learning neural networks. Encog framework for neural networks. Image recognition using neural networks. Fuzzy logic. Implementation of fuzzy systems. Tuning of fuzzy systems using genetic algorithm.

Competences:

Understanding the difference between problem solving using conventional programming with regard to the use of unconventional methods and procedures. Understanding the methodology of genetic algorithms and evaluation of solution quality in each generation of individuals. Use of Java framework to solve problems using genetic algorithms. Understanding the operating mode of neural networks and learning methods. Use of Encog framework for neural networks. Use of neural networks to solve problems of image pattern recognition. Understanding of fuzzy logic and its practical use. Understanding the way of implementing fuzzy systems.

Learning outcomes:

Having passed the exam, the student will be able to: 1. Write an application which uses genetic algorithms to solve practical problems. 2. Develop a function of goodness according to which individuals will be classified in generations with genetic algorithms. 3. Integrate Java programming code which uses genetic algorithms into other Java applications. 4. Develop a program which uses neural networks. 5. Combine parts of the Encog framework with his own parts of programming code in Java in order to achieve required results more quickly and efficiently. 6. Recommend the use of neural networks to solve problems in practice. 7. Judge in which situations it would be better to use fuzzy systems instead of conventional ways of solving problems. These outcomes contribute to the learning outcomes of the study program: - Propose solutions to engineering problems in the profession. - Use the functionalities of contemporary engineering tools. - Develop software applications by using contemporary structural, procedural and object programming languages - Use professional literature and search accessible information bases and knowledge bases..