First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

AI Programming in Java

Duration: 5 Days

Intended Audience

This course is for those who wish to or need to explore the classical and more modern Artificial Intelligence programming paradigms using Java as their language of choice. It can also serve as a fairly intensive introductory course to practical AI programming techniques.

Course Overview

Modern Java is a powerful language that lends itself well to the implementation of AI applications. Not only does it provide a powerful and rich syntax for object oriented programming, it also has powerful generic libraries for manipulating complex collections of data and persistence frameworks such as Hibernate and JPA2 for persisting data to relational databases such as e.g. PostgreSQL. Additionally professional quality semantic web and ontology building tools such as Protege, and reasoners such as HermiT are implemented in Java.

This course assumes a reasonable familiarity with Java programming, The course will be based on Java 8 and on Russell and Norvig's book "Artificial Intelligence a Modern Approach" which will be the set book for the course. The goals of the course are to introduce attendees to the various AI programming paradigms including the foundations of logic programming and machine learning.

Course Contents

  • Artificial Intelligence - an overview
  • Java as a language for building AI applications
  • Intensive overview of Java programming features useful for building AI applications
  • Introduction to Functional programming in Java
  • Problem solving - and implementing problem solvers in Javan
    • Search algorithms and how to implement them in Java
    • Depth first and breadth first search
    • Adversarial search
    • Search and constraint satisfaction
  • Knowledge and Reasoning
    • Approaches to knowledge representation
    • Knowledge representation in Java
    • Logical reasoning and inference
    • An introduction to Java logic reasoners
  • Uncertain Knowledge and Reasoning
    • Approaches to Quantifying Uncertainty
    • Introduction to probabilistic reasoning
    • Introduction to Java based probabilistic reasoners
    • Decision making and decision support systems using Java
  • Machine learning techniques in Java
    • Learning from Examples
    • Knowledge in Learning
    • Learning Probabilistic Models
    • Reinforcement Learning
  • Basics of Natural language processing in Java