CENG561 ARTIFICIAL INTELLIGENCE

Course Code:5710561
METU Credit (Theoretical-Laboratory hours/week):3 (3.00 - 0.00)
ECTS Credit:8.0
Department:Computer Engineering
Language of Instruction:English
Level of Study:Graduate
Course Coordinator:Prof.Dr. FERDA NUR ALPASLAN
Offered Semester:Fall or Spring Semesters.

Course Objectives

At the end of this course, students will be able to:

  • Express data and knowledge using logical models and knowledge representation schemes.
  • Apply logical principles for sound reasoning to prove theorems.
  • Analyze  knowledge rich domains to formulate heuristics.
  • Understand algorithms for uninformed, informed and local search, game playing, and constraint satisfaction problems, and develop efficient solutions.
  • Analyze real-life applications to represent uncertain knowledge with the help of probability theory.
  • Investigate the use of Bayesian Networks and Partially Observable / Markov Decision Processes (PO/MDP) for probabilistic rational reasoning.
  • Expose themselves to major usage areas of artificial intelligence algorithms in the field of robotics.
  • Use a wide variety of artificial intelligence techniques and tools that are covered in the course.
  • Evaluate and compare AI algorithms in terms of time and space complexity, completeness and optimality.
  • Design and implement AI software solutions to realistic problems.

Course Content

Problem solving and search strategies. Game playing. Knowledge Representation. Expert systems and rule chaining. Vision. Natural language processing. Machine translation. Machine learning. Neural networks.


Course Learning Outcomes

Student that pass the course satisfactorily will be able to:

  • Analyze the computational complexity of algorithms by using discrete mathematics.
  • Express facts and situations by using symbolic logic and set theory.
  • Apply logical principles for sound reasoning.
  • Apply probability theory and statistics to handle uncertainty.
  • Analyze the power and limitations of abstract models of computation.
  • Infer facts and relationships from collected data.
  • Design computer-based systems with realistic requirements.
  • Evaluate and adapt standard algorithms (e.g. sorting, searching, string processing, language recognition, combination generation, and graph processing) for realistic tasks.
  • Design and implement algorithms, heuristics and supporting data structures as packaged components.
  • Construct mathematical or logical models of computational problems.
  • Use non-verbal modes of communication, e.g. graphical.
  • Use a programming language in non-imperative paradigm, e.g. functional and logic.