# Artificial Intelligence I: Optimization and Games in Java

## 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

## Course content

- Preview02:00

## 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

## Instructor

Hi!

My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist. At the moment I am working as a simulation engineer at a multinational company. I have been interested in algorithms and data structures and its implementations especially in Java since university. Later on I got acquainted with machine learning techniques, artificial intelligence, numerical methods and recipes such as solving differential equations, linear algebra, interpolation and extrapolation. These things may prove to be very very important in several fields: software engineering, research and development or investment banking. I have a special addiction to quantitative models such as the Black-Scholes model, or the Merton-model.

Take a look at my website if you are interested in these topics!