Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Artificial Intelligence
Tok studiów:
2013/2014
Kod:
EEL-2-204-SG-s
Wydział:
Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej
Poziom studiów:
Studia II stopnia
Specjalność:
Smart Grids Technology Platform
Kierunek:
Elektrotechnika
Semestr:
2
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Angielski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
Kułakowski Konrad (kkulak@agh.edu.pl)
Osoby prowadzące:
Kułakowski Konrad (kkulak@agh.edu.pl)
Krótka charakterystyka modułu

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 He/She knows basic AI terms and concepts EL2A_W05 Odpowiedź ustna
M_W002 Student knows the role of uncertainty in AI EL2A_W05 Aktywność na zajęciach
M_W003 Student know basic learning AI algorithms EL2A_W05 Egzamin
Umiejętności
M_U002 Student is able to write application in at least one AI Language such as Lisp, Clojure, Prolog etc. EL2A_W05 Projekt
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Inne
Zaj. terenowe
Zaj. warsztatowe
E-learning
Wiedza
M_W001 He/She knows basic AI terms and concepts + - + - - - - - - - -
M_W002 Student knows the role of uncertainty in AI + - - - - - - - - - -
M_W003 Student know basic learning AI algorithms + - - - - - - - - - -
Umiejętności
M_U002 Student is able to write application in at least one AI Language such as Lisp, Clojure, Prolog etc. + - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
  1. Uncertainty

    • Uncertainty
    • Probability
    • Syntax and Semantics
    • Inference
    • Independence and Bayes Rule
    • Bayes Rule creation
    • Efficient representation

  2. Machine Learning

    • Classification vs. Regression
    • Spam filtering
    • Linear Regression
    • Gradient methods
    • Perceptron approach & linear separation
    • k nearest Neighbors



  3. Planning under uncertainty

    • Markov Decision Process (MDP)
    • * looking for optimal policy functions
    • * reward, objective
    • * value iteration algorithm
    • Partial Observable MDP
    • *introduction


  4. Reinforcement learning

    • MDP
    • Temporal Difference Learning Algorithm
    • Q-Learning approach

  5. Solving by Searching

    • Problem-solving agents
    • Problem types
    • Problem formulation
    • Example problems
    • Basic search algorithms
    • BFS, DFS, ID DFS

  6. Rational Agent

    • Agents and environments
    • Rationality
    • PEAS (Performance measure, Environment, Actuators, Sensors)
    • Environment type
    • Agent types

  7. Intelligent Robotics 2

    • Problems of Intelligent Robotics
    • Space representation
    • Types of Knowledge & Knowledge representation
    • Benchmark problems
    • * Navigation
    • * Localization
    • * SLAM
    • * USAR

  8. Introduction to AI languages

    • Prolog
    • * syntax of prolog
    • Lisp
    • * syntax of Lisp

  9. Clojure Concurrent Programming

    Java Synchonization Models

    • Hoare’s Monitor
    • ReentrantLock
      Clojure Synchronization Models
    • Atoms
    • Refs
    • Transactional Memory

  10. Introduction to AI

    An introductory terms such as Agents, Search, Logic, Planning, Uncertainty, Learning, and AI Robotics are introduced

  11. Probabilistic Inference

    • Exact inference by enumeration
    • Exact inference by variable elimination
    • Approximate inference by stochastic simulation
    • Approximate inference by Markov chain Monte Carlo

  12. Intelligent Robotics 1

    • Intelligent autonomous robot architecture
    • * Hierarchical planning
    • * Reactive, Behavior driven
    • * Hybrid
    • Hybrid, 3-Tiered Hierarchical, State Architectures

  13. Clojure language

    • Java Virtual Machine principles
    • Clojure language
    • Clojure syntax
    • Clojure language network resources

  14. Unsupervised Learning

    • Introduction
    • k-Mean method
    • Expectation maximization (as k-Mean generalization)


Ćwiczenia laboratoryjne:
  1. Introduction JVM Platform

    • Introduction to Java VM
    • Introduction to Eclipse platform

  2. Functional Programming

    • Principles of Functional Programming
    • Prolog vs. Lisp
    • Basic Clojure/Lisp syntax
    • Compilation and Execution

Ćwiczenia laboratoryjne:
  1. Clojure programming

    • Introduction to JVM
    • Introduction to Clojure
    • Setup working environment
    • Setup Eclipse platform
    • Introduction to Eclipse

  2. Sequence in Clojure

    • What is a Sequence
    • Using the Sequence Library
    • Lazy and Infinite Sequences
    • Clojure Makes Java Seqable
    • Calling Structure-Specific Functions

  3. Clojure & Concurrency 1

    • The Problem with Locks
    • Refs and Software Transactional Memory
    • Use Atoms for Uncoordinated, Synchronous Updates

  4. Clojure & Concurrency 2

    • Use Agents for Asynchronous Updates
    • Managing PerThread State with Vars

  5. Clojure Macros 2

    • Design Macros
    • Expand Macros
    • Test Macros
    • Local Variables in Macros
    • Macros and Debugging

  6. Clojure & Multimethods 1

    • Living Without Multimethods
    • Defining Multimethods
    • Moving Beyond Simple Dispatch

  7. Simple program in Clojure

    • Input/Output
    • Hello World written in Clojure
    • Clojure Basics
    • * Forms
    • * ReaderMacros
    • * Functions
    • * Vars,Bindings,andNamespaces
    • * FlowControl
    • * Iterations
    • * Metadata

  8. Functional Programming

    • Functional Programming Concepts
    • How to Be Lazy (use of lazy seq structures)
    • Lazier Than Lazy
    • Recursion

  9. Clojure & Multimethods 2

    • Creating AdHoc Taxonomies
    • When the multimethods should be used

  10. Project in Clojure

    • Design and implement your own concurrent App in Clojure
    • * Concurrent Simulation
    • * Robot Control Application
    • * Symbolic processing
    • * Web Crawling & Data Mining

  11. Clojure & Concurrency 3

    • Dying Philosophers problem
    • Write a simple concurrent simulation without using macros

  12. Clojure Macros 1

    • Macros
    • When to Use Macros
    • Writing a Control Flow Macro
    • Making Macros Simpler

  13. Programm Debugging

    • What is a debugger
    • How to debug program in Clojure
    • Printouts
    • Watching variables

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 100 godz
Punkty ECTS za moduł 4 ECTS
Egzamin lub kolokwium zaliczeniowe 100 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

average calculated on the basis of labs’ grades and the result of exams

Wymagania wstępne i dodatkowe:

Principles of programming (possibly in Java, Lisp – it would be perfect, but in fact any programming language is welcome).

Zalecana literatura i pomoce naukowe:
  • Artificial Intelligence – A Modern Approach, 3th ed., Russel & Norvig
  • Programming Clojure, 1st ed., S. Halloway
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Brak