Professional Courses in Informatics at The University of Edinburgh

Artificial Intelligence Programming in Java


Java is a modern computer programming language that provides system designers and implementors with easy access to current best practice in computer system development. Barely ten years after its first release, Java is in widespread use due mainly to its key features: first, a program written in Java which is developed on any one of the current major computing platforms (Microsoft Windows, Sun Solaris, Linux, etc.) can then be deployed immediately on all the major platforms; and, second, Java provides immediate support for the technologies of the World-Wide Web, making it the language of choice for implementing Web-based systems.

Due to the richness of its standard libraries and the power of its storage manager, Java is also one of the few languages which appears well suited to tackling problems involving Artificial Intelligence techniques, such as resource or activity planning and scheduling. Use of the established AI languages, Lisp dating from 1960 and Prolog dating from 1970, is considered generally to be very expensive, requiring highly skilled and specialised practioners. This has greatly hindered their use outside academia, and has resulted in a consequent impact on organisations' ability to use AI techniques effectively. Java provides a relatively inexpensive, general purpose path to deploying AI-based solutions without requiring companies to invest in specialist tools, systems and staff.

Course Outline

This course provides an introduction to Java and object-oriented programming. It covers the basics of the Java 2 Platform by taking as a case study the Java implementation of a tool designed to use Genetic Algorithms to solve timetabling problems, looking at its design and implementation, and opening up the source code to students.

  • Object-oriented programming concepts
    • classes, objects, sub-classes, inheritance
    • encapsulation, polymorphism
  • The Java programming language and standard library packages
    • packages, classes, interfaces, instances, fields, methods, variables, identifiers
    • expressions, statements, conditionals, loops, labels
    • exceptions, threads, i/o
    • arrays, strings, collections, garbage collection
  • Basic Graphics
    • Components, Containers, Events
    • AWT, Swing
The course has a strong hands-on flavour. Students will be provided with full course notes and a copy of the software used.

Course Schedule

This course runs over 5 days, either at AIAI or, exceptionally, at the offices of a host organisation.

Course Presenters

Contact Information

Ken Baird,
AIAI/Centre for Intelligent Systems and their Applications,
Division of Informatics, The University of Edinburgh,
80 South Bridge, Edinburgh EH1 1HN, UK
Tel: +44 131 650 2732; Fax: +44 131 650 6513; Email:


The course is intended for analysts, engineers, programmers, managers and teachers who would like to become familiar with Java and its use in solving complex problems.


Having completed the course, a student should be able to:
  • design, build and run programs in Java which can be read and understood by other people;
  • use the standard Java packages: particularly, java.lang, and java.util;
  • create simple graphical interfaces using javax.swing;
  • navigate the standard Java online documentation.


The course is intended for practising analysts, engineers, managers and teachers who are probably already familiar with a programming language such as C or Basic. No previous knowledge of either Java or object-oriented programming will be assumed. Although attendance on the related Genetic Algorithms and Genetic Programming course or other previous knowledge of these techniques would be informative for this course, this is not in any way essential. However, we do assume some familiarity with the basic concepts of computing, such as "variable", "identifier" and "array".

Related Courses

This course may be combined usefully with a sister course on Genetic Algorithms and Genetic Programming which explains the principles behind the Genetic Algorithms and Genetic Programming techniques. The tool used as a case study by the Java course is used as an experimental test bed by the Genetic Algorithms and Genetic Programming course.

Page maintained by, Last updated: Thu Aug 1 11:41:15 2002