Dr. Mark Humphrys

School of Computing. Dublin City University.

Home      Blog      Teaching      Research      Contact

My big idea: Ancient Brain


CA216      CA249      CA318

CA400      CA651      CA668

CA318 - Advanced Algorithms and AI Search

Quickest way to find this web page:
Google ca318 dcu
Think about it: All other ways (starting at the CA site, Googling my name, etc.) will take much longer to get here.
Just Google module code and DCU and it is the first hit.

Course Descriptor

How to contact me

See How to contact me.

About the notes

My notes contain many hyperlinks to background material. Some students get confused about what is the core course. The core course is anything that is linked to directly on this front page. All other links are just background material.


Week 1

Introduction to AI
  1. Introduction to AI
  2. Survey of AI

Week 2

Introduction to AI
  1. Continuum of Autonomy
  2. History of AI

Reference and links

  1. AI Links
  2. Robotics Links

Week 3

Search and Learning
  1. Search

Machine Learning

  1. Maximising a function

Week 4

Machine Learning
  1. Machine Learning

Week 5

JavaScript intro (for practical)
  1. JavaScript
    1. Reference
    2. Debugging

  2. Javascript page change demo
  3. Minimal size demo of changing page

  4. Lab - Javascript


  1. jQuery
    1. Anonymous functions

  2. jQuery - test page

  3. Minimal size demo of calling server-side program with jQuery

  4. Minimal size demo of fetching server-side resource with jQuery

Week 6

JavaScript graphics (3D graphics rendering on client-side)
  1. JavaScript graphics

  2. Demos:

3D models

  1. 3D models in JavaScript graphics

  2. Demos:

  3. JavaScript graphics (more)

Week 7

State space Search
  1. State space Search

Heuristic Search

  1. Heuristic Search

Week 8

Heuristic Search
  1. More Heuristic Search

Week 9

Adversarial Search
  1. Adversarial Search

Machine Evolution

  1. Computational Evolution

Week 10

Machine Evolution
  1. Encoding the Genotype
  2. Picking the fittest
  3. Boltzmann "soft max" distribution

Week 11

Machine Evolution
  1. Reproduction

  2. Discussion

  3. Sample code for Genetic Algorithms
  4. How to make a decision probabilistically

Week 12

Machine Evolution
  1. Advanced Topics in Machine Evolution

  2. GA Exercise - Adaptive Landscape
  3. Computational Evolution - Reference

General AI

  1. Comparison of Neural Net and GA
  2. Continuum of Autonomy

  3. Open Issues in AI
  4. What is Intelligence?

Extra notes - Not on course this year

Philosophy of AI
  1. Philosophy of AI
  2. Philosophy and Future of AI

  3. What is Intelligence?
  4. What is Consciousness?
  5. What is Life?


  1. Chaotic functions
  2. Chaos Theory demo

  3. Architectures of Autonomous Agents

Algorithms in natural evolution

  1. Nature's elegant algorithms

Machine Learning with Neural Networks

  1. Single-layer Neural Networks
  2. Multi-layer Neural Networks
  3. Continuous Output - The sigmoid function
  4. Notation [REFERENCE]

  5. Back-propagation [MULTI-LAYER LEARNING RULE]
  6. The Back-propagation algorithm [REFERENCE]
  7. Infinite weights/thresholds are bad
  8. Specialisation

  9. Sample code for Neural Networks
  10. Neural Net Exercise - Binary Encoder Network
  11. Neural Net Exercise - X and O recogniser
  12. Machine Learning - Reference

  13. Alternatives to Supervised Learning

String search algorithms

  1. String searching
  2. Knuth–Morris–Pratt string search algorithm
  3. Boyer-Moore string search algorithm

Notes on Assignment Notation

I often use   :=   for assignment to distinguish from   =   for equality.


I may hold a hands-on lab for the practical. If so, date will be announced.


Individual projects.
Do in your own time.
Deadline: Friday of Week 12.
Different this year.
On a new server.
Code in JavaScript.

Repeat Practical 2017

Do the Practical again.
Deadline Fri 4 Aug 2017.

Come to L125 on Fri 4 Aug 2017 at 2 pm.
You will demo your work and I will query you on it.


  1. Coverage of both the symbolic and the biological approaches to AI in one book:

  2. Genetic Algorithms:

  3. Neural Networks:

Library categories

Copyright of Luger and Morelli images

  1. I use some images from Luger's book in this course.
    These images will be protected by a password I will give out in class.
    Images can be used for class access but not public access on the Web.
    Copyright notice:

    This work is protected by regional copyright laws and is provided solely for the use of instructors in teaching their courses and assessing student learning. Dissemination or sale of any part of this work (including on the Internet) will destroy the integrity of the work and is not permitted. The copyright holder grants permission to instructors who have adopted the textbook accompanying this work to post this material online only if the use of the website is restricted by access codes to students in the instructor's class that is using the textbook and provided the reproduced material bears this copyright notice.

  2. I also use some images from Morelli's course below. These images are used with the kind permission of Ralph Morelli.

Morelli course (gone)

This course was formerly useful as another way of seeing the concepts.
But unfortunately it is now down.


Sometimes I link to Wikipedia. I need to write something in defence of this.

On the one hand, Wikipedia is deeply flawed, so you should use all links to Wikipedia with extreme caution. Many people refuse to link to it.

On the other hand, it is often clearly the best thing to link to on a topic. I say: Link to it, but use with caution and scepticism.

Mark calculator

Exam (75): Practical (25):

Total mark:      

Feeds      w2mind.org      ancientbrain.com

On the Internet since 1987.