-
Introduction
-
The 4 Areas of AI
-
Projects:
-
Learning Resources
"Artificial Intelligence" is among today's most popular topics because many have understood that this field will help us surpass our limits, but a commonly forgotten fact says that this field was born in 1950 and also went through the "hype-era" between 1956 and 1982. After reading "Life 3.0: Being Human in the Age of Artificial Intelligence" by Max Tegmark and write and essay about it in my second semester, I decided that I want to major AI. The book revealed the both the potential dangers and potential advantages to develop the AI domain further. After wighing the scale with both pros and cons, I believe that there is a way to ensure that AI will develop for the sake of humanity and I want to be a part of it. This is when I really decided that I want to major in AI.
In this module, students are taught about the fundamental knowledge of artificial intelligence using Python, but without using any frameworks/libraries; At least up to the topic "Learning" that highlights the implementation of "Machine Learning Algorithms". The "AI Basics" module is divided into 3 sections in each session: 1. Terminologies, Philosophy, and Meanings 2. Algorithms used in AI programming and its Implementation 3. Mathematical Formula for the Algorithm
The first part enables me to communicate within the AI domain, to understand the motivation of AI development, and to grasp the potentials of AI technologies. For the second part, algorithms, students get dirty in coding with Python using its mathematical library and data visualization library; Numpy and Matplotlib. The mathematical part enlightens students about the dynamic happening under the hood of the algorithms. To showcase the knowledge gained through the semester, I decided to do 4 projects that cover the 4 areas of AI. These projects are also used in CS50's Introduction to Artificial Intelligence with Python from 2020.
- Planning - The task of finding sequence of actions to accomplish a goal in discrete, deterministic, static, fully observable nvironment (AMAAI, p. 362).
- Knowledge and Reasoning - Knowledge is a field of AI which uses reasoning for an internal representation of knowledge extracted by the logical techniques "induction" and "Deduction" to decide what actions to take (AMAAI, p. 226).
- Optimization - A field of AI which which explores the process of finding input values for a function such that the output value of that function is maximal or minimal (AI Guild - Asynchronous Learning, Optimization).
- Tic-Tac-Toe - Implementation of minimax and alpha-beta pruning algorithms to solve "adversarial search and games" problem
- Knights and Knaves - Implementation of "Propositinal Logic" (knowledge base) to decide (reason) if a statement is True or False
- Crosswords - Implementation of backtracking search algorithm to solve the constraint satisfaction problems
- Google Classroom: AI Guild - Asynchronous Learning
- Google Classroom: SE_14 - Artificial Intelligence Basics
- Artificial Intelligence: A Modern Approcah, 4th Global Edition
- Russel, J. and Norvic, P. (2021). Artificiall Intelligence: A Modern Approach. 4th Global edn. Pearson Education 2021.
- CS50: Introduction to Artificial Intelligence with Python
1. All the images in this repository are either self-made using Miro Board, taken from [AIMA: Pseudo Code Section](http://aima.cs.berkeley.edu/algorithms.pdf), or from [CS50 Introduction to AI with Python](https://cs50.harvard.edu/ai/2020/). These images are uploaded for educational purposes only.
2. The theories stated in this repository are either taken from the [Artificail Intelligence: A Modern Approach, Global Fourth Edition](http://aima.cs.berkeley.edu/), by Stuart Russel and Peter Norvic, [CS50 Introduction to AI with Python](https://cs50.harvard.edu/ai/2020/) moderated by [Brian Yu](https://brianyu.me/), or from the materials prepared in Google Classroom by my Frank Trollmann, Ph. D., professor of software engineering at CODE University of Applied Sciences.
3. The analysis of all results, time complexities, and space complexities are written based on my conclusions from the actual experience of implementing the algorithms taken from both sources (see Nr. 2).