CS 441 Artificial Intelligence
Classes: Friday 9.00 – 11.00 am
Location: A3-02 (Some meetings might be planned online)
Instructor: Dr. Şadi Evren ŞEKER (+9 0531 605 6726, Ezgi for concatcs)
- History and Philosophy of the Artificial Intelligence (AI)
- Classical AI approaches like search problems, machine learning, constraint satisfaction, graphical models, logic etc.
- Learning how to model a complex real-world problem by the classical AI approach
- Introduction to Artificial Intelligence Problems
- Programming with a mathematical notation language
- AI Programming skills including and based on Data Structures, Automata, Theory of Algorithm courses.
- Writing a real world application with an AI module (like a game)
- Introducing sub-AI topics like neural computing, uncertainity and bayesian networks, concept of learning (supervised / unsupervised) etc.
- S. Russell and P. Norvig Artificial Intelligence: A Modern Approach Prentice Hall
- A must check : http://aima.cs.berkeley.edu
- Some parts of the course is related to Machine Learning, Data Science, Data Mining, Pattern Recognition, Natural Language Processing, Statistics, Logic, Artificial Neural Networks and Fuzzy Logic, so you can read any [text] books about the topics.
Grading One individual term project and one individual homework track covering all the topics covered in the course : 50%, Homeworks submitted each week : 50% (duration of homework submission is 1 week until the starting time of the class (11.00 a.m), after Friday 11.00 a.m. the submission will be considered as late submission and will not be taken into grading, any attempt against code of honor will result disciplinary actions and fail from the class)
There will be a final project submission only. Final Project will be individual work, and expectations are :
- Project Report : all the details explained during the project, including your approach to problem, design issues or problem solving details.
- Project Presentation : presentation holding the key points of your project implementation and problem solving, you will also use this file for the presentation
- Running Code in Python: please provide full list of required libraries and execution guide, necessary data files (if you have required for the execution) and all other required files and please put enough comments to your code for readability.
Projects should include at least 2 separate implementation from following list (so, you will re-implement 2 different solutions for the same problem): Search/ Heuristic, CSP, Game Trees, Logic, Fuzzy, Machine Learning / ANN
You will compare your 2 different solutions from the below perspectives, at least:
- performance of computation / memory,
- success rate and implementation
- difficulties perspectives.
Late Submission Policy: Submissions are due to Ma 19, mid-night, any late submission will get 10% penalty for each day. Also Presentations will be digital submission from any environment you prefer, the presentations will be open to all class members so please share the connection information for every body and at least hold them online for 2 weeks during the final exams period, so everybody can get an opportunity to watch the presentation.
After your submissions (including project report, presentation and running code), I can request a Q&A session from you and I will contact you for the schedule.
- Introduction and Agents (chapters 1,2)
- Search (chapters 3,4,5,6)
- Logic (chapters 7,8,9)
- Planning (chapters 11,12)
- Uncertainty (chapters 13,14)
- Learning (chapters 18,20)
- Natural Language Processing (chapter 22,23)
Schedule and Contents (Tentative):
- Class 1, :[PPT] Introduction : Course Demonstration Slides, Introduction Slides. Homework 1 : Write an essay about what is AI, what do you think about the limits and current achievements in AI. You can also mention about the movies you have watched about AI.
- Class 2,: [PPT] Agents, Homework 2: Design an agent in any environment (from real life, or a digital world, game or metaverse etc.) Answer the P.E.A.S. for your agent and also give the environement types (parallel to the concepts in class). Write two python codes about your agent. One reflex agent with if-else statements one model agent with state machines. Your code should also include a test case and demo code to show your agent can act for certain cases in the environment. Submit your codes and report of your agent design (P.E.A.S. and a brief info about your agent and your imaginations) in a zip file to the course e-mail before the next class starts.
- Class 3,: [PPT] Search, Homework 3: Design states of your agent in the environment. Draw and/or explain the state diagram and code a state transition graph for your agent (with states, transitions, costs and goal states). Implement DFS and BFS for the goal state of your agent.
- Class 4,: Deadline of Project Proposals, [PPT] Heuristic Search, Homework 4: Implement A* search for your problem, apply the a* search on your search space and also indicate your heuristic function merely. Project proposal : until Apr 30 : please explain your project idea and alternative solution approaches from the course content, together with your data set and outcomes you plan to achieve. Send it in an e-mail with project proposal subject. Your project is very important for the course and possible problems might be related to the data set, algorithms, approaches or your purposes on the project. No late submissions or submissions with misinformation will be replied, so take the risk by your own.
- Class 5,: [PPT]Constraint Satisfaction Problems, Homework 5: Implement CSP for your problem, apply the backtracking algorithm with any improvement (you can pick any improvement we have covered in the class).
- Class 6,: [PPT] Game Playing, Homework 6: For the first part of the homework, implement Game playing tree and minimax or maximax tree depending on the story of your game. In the second part of the homework use the heuristic function from homework 4 and try to shorten the game tree. In the third part of the homework, compare the results from first and second parts of the homework.
- Class 7, : [PPT] Logic, Homework 7: Implement a logic agent with rule based system, discuss the rules in your rule base system and compare the benefits of logical operators in your rule based system with the previous implementations.
- Class 8,: [PPT]First Order Logic, Inference in First Order Logic, Homework 8: Enhance your previous homework with first order logic and compare the success of new operators in your implementation.
- Class 9,: [PPT] Uncertainity and Fuzzy Logic , Homework 9: Re-implement the logical rules with fuzzy rules and operators, also compare the outcomes from all implementations in a table (your search, heuristic, game-tree, cap, logic, FOL and Fuzzy implementations), discuss the results.
- Class 10,: Supervised / Unsupervised Learning and Classification / Clustering Problems, k-nn and k-means
- Class 11,: Supervised / Unsupervised Learning and Classification / Clustering Problems, k-nn and k-means
- Class 12,: [PPT] Artificial Neural Networks
- Class 13,: RL, Deep Learning
- Class 14,: [PPT] Genetic Algorithms
Coding Practices (from aima.cs.berkeley.edu )
|1-2||AGENTS||.py||532||Implement Agents and Environments (Chapters 1-2).|
|3-4||SEARCH||.py .txt||735||Search (Chapters 3-4)|
|5||CSP||.py .txt||449||CSP (Constraint Satisfaction Problems) problems and solvers. (Chapter 5).|
|6||GAMES||.py||285||Games, or Adversarial Search. (Chapters 6)|
|7-10||LOGIC||.py .txt||887||Representations and Inference for Logic (Chapters 7-10)|
|11-12||PLANNING||.py||6||Planning (Chapters 11-12)|
|13-15||PROBABILITY||.py .txt||170||Probability models. (Chapter 13-15)|
|17||MDP||.py .txt||141||Markov Decision Processes (Chapter 17)|
|18-20||LEARNING||.py||585||Learn to estimate functions from examples. (Chapters 18-20)|
|21||RL||.py||14||Reinforcement Learning (Chapter 21)|
|22||NLP||.py .txt||169||A chart parser and some grammars. (Chapter 22)|
|23||TEXT||.py .txt||364||Statistical Language Processing tools. (Chapter 23)|
|DOCTESTS||.py .txt||42||Run all doctests from modules on the command line. For each|
|PY2HTML||.py||109||Pretty-print Python code to colorized, hyperlinked html.|
|UTILS||.py .txt||713||Provide some widely useful utilities. Safe for “from utils import *”.|
Collaboration Policy: You may freely use internet resources and your course notes in completing assignments and quizzes for this course. You may not consult any person other than the professor when completing quizzes or exams. (Clarifying questions should be directed to the professor.) On assignments you may collaborate with others in the course, so long as you personally prepare the materials submitted under your name, and they accurately reflect your understanding of the topic. Any collaborations should be indicated by a note submitted with the assignment.