CMPS 451 - Artificial Intelligence



Instructor:  Nicholas Harkiolakis, Ph.D.       


Course Description: 

Introduction of basic concepts and methods of artificial intelligence from a computer science perspective. Emphasis will be on the selection of data representations and algorithms useful in the design and implementation of intelligent systems. The course will contain an overview of AI languages Prolog and Lisp and some discussion of important applications of artificial intelligence methodology.


Teaching Goals:

·      To introduce artificial intelligence, beginning with a brief history and important application areas.

·      To introduce research tools for AI problem solving like predicate calculus language and the algorithms and data structures used to implement search.

·      To present rule based expert systems along with case-based and model –based reasoning systems

·      To present models for reasoning with uncertainty as well as the use of unreliable information.

·      To present neural networks, their technology  and applications.

·      To introduce genetic algorithms and evolutionary approaches to learning and optimization.

·      To introduce society-based learning with examples from artificial life.

·      To introduce natural language processing and the development of NLP parsers


Learning Objectives:

The students will be able to:

·      To understand AI principles and methodologies

·      To familiarize themselves with search techniques and apply them in real life situations

·      Be able to develop expert systems using expert system shells

·      Solve problems using AI technologies like neural networks and genetic algorithms

·      Understand and develop applications using agent approaches and technologies

·      Experience the difficulties in simulating human intelligence


Syllabus/Course Topics:

·      Searching techniques and methods

·      Heuristic search

·      Informed search and exploration

·      Constraint satisfaction problems

·      Adversarial search

·      Knowledge representation and reasoning

·      First order logic

·      Uncertainty

·      Prolog programming language

·      Agent technology

·      Communication

·      Perception

·      Acting

·      Robotics

·      Lisp programming language

·      Expert systems

·      Uncertainty management

·      Fuzzy expert systems

·      Frame based expert systems

·      Artificial neural network

·      Pattern recognition

·      Vision

·      Evolutionary computation

·      Genetic algorithms

·      Genetic programming

·      Hybrid intelligent systems

·      Society-based learning – artificial life

·      Natural language processing


Course Assignments/Projects

·       Prolog and Lisp: Small program development

·        Game programming: Develop a computer program for the board game Go. At the end of the course a tournament will be held and the winner will get extra credit.

·       Expert systems: Development of an expert system using Jess (Java based expert system shell).

·        Agent technology:

o       Software agent: Develop a spider program for www.

o       Robot programming: Program a Mindstorm Lego robot using lejos (Java based API).

·        Neural networks: Exercise in pattern recognition

·        Genetic algorithms: Exercise in optimization problems

·       Natural language programming: Development of a simple NLP parser

·       Artificial life: Ecosystem simulation program