A guide how to create smart applications, AI, genetic algorithms, pruning, heuristics and metaheuristics and Tic Tac Toe

### What you’ll learn

• Get a good grasp of artificial intelligence
• Understand how AI algorithms work
• Able to create AI algorithms on your own from scratch
• Understand meta-heuristics
• Tic Tac Toe game from scratch

### Requirements

• Basic Java (SE)
• Some basic algorithms ( maximum/minimum finding )
• Basic math ( functions )

### Description

This course is about the fundamental concepts of artificial intelligence. This topic is getting very hot nowadays because these learning algorithms can be used in several fields from software engineering to investment banking. Learning algorithms can recognize patterns which can help detecting cancer for example. We may construct algorithms that can have a very  good guess about stock price movement in the market.

Section 1:

• path findinf algorithms
• graph traversal (BFS and DFS)
• enhanced search algorihtms
• A* search algorithm

Section 2:

• basic optimization algorithms
• brute-force search
• stochastic search and hill climbing algorithm

Section 3:

• heuristics and meta-heuristics
• tabu search
• simulated annealing
• genetic algorithms
• particle swarm optimization

Section 4:

• minimax algorithm
• game trees
• applications of game trees in chess
• Tic Tac Toe game and its implementation

In the first chapter we are going to talk about the basic graph algorithms. Several advanced algorithms can be solved with the help of graphs, so as far as I am concerned these algorithms are the first steps.

Second chapter is about local search: finding minimum and maximum or global optimum in the main. These searches are used frequently when we use regression for example and want to find the parameters for the fit. We will consider basic concepts as well as the more advanced algorithms: heuristics and meta-heuristics.

The last topic will be about minimax algorithm and how to use this technique in games such as chess or tic-tac-toe, how to build and construct a game tree, how to analyze these kinds of tree like structures and so on. We will implement the tic-tac-toe game together in the end.

Thanks for joining the course, let’s get started!

### Who this course is for:

• This course is meant for students or anyone who interested in programming and have some background in basic Java