Programming for Artificial Intelligence (M) COMPSCI5097

  • Academic Session: 2019-20
  • School: School of Computing Science
  • Credits: 10
  • Level: Level 5 (SCQF level 11)
  • Typically Offered: Semester 1
  • Available to Visiting Students: No
  • Available to Erasmus Students: No

Short Description

The course provides the students with basic programming skills through the development of simple machine intelligence approaches. After an introduction to the main concepts underlying machine learning (e.g., supervised and unsupervised learning, etc.) and signal processing (time domain measurements, convolution, etc.), the students will be guided through the development of algorithms capable to extract information from data.


Three hours per week for 10 weeks. Every week the course includes one lecture of one hour and two hours of practical work.

Requirements of Entry

The course is open to the students of the "UKRI CDT on Socially Intelligent Artificial Agents" and there are no prerequisites. However, previous programming experience (including familiarity with scripting languages) and knowledge of the main statistical concepts (random variables, distributions, etc.) is an advantage.  

Excluded Courses





Every week, the students will develop a program capable to execute one algorithm over an available set of data. The evaluation will be performed on the basis of the following criteria:

■ Ability to develop a program according to given specifications;

■ Understanding of the theory underlying the developed algorithms

■ Ability to report on the results obtained.

Main Assessment In: April/May

Are reassessment opportunities available for all summative assessments? No

Reassessments are normally available for all courses, except those which contribute to the Honours classification. For non-Honours courses, students are offered reassessment in all or any of the components of assessment if the satisfactory (threshold) grade for the overall course is not achieved at the first attempt. This is normally grade D3 for undergraduate students and grade C3 for postgraduate students. Exceptionally it may not be possible to offer reassessment of some coursework items, in which case the mark achieved at the first attempt will be counted towards the final course grade. Any such exceptions for this course are described below.



Course Aims

The aim of the course is to provide the students with basic programming skills while developing familiarity with the statistical data analysis methodologies underlying simple Artificial Intelligence approaches.

Intended Learning Outcomes of Course

By the end of this course students will be able to:

■ To design and evaluate python code aimed at histogramming experimental data, including detection of outliers and formulation of the relationship between histogram and probability distribution;

■ To design and evaluate python code implementing the most common probability distributions and probability density functions (including, e.g., Gaussians, Multinomials, Possonian, etc.);

■ To design and evaluate python code aimed at the statistical analysis of data, including estimate of main statistical measurements (average, variance, median, etc.);

■ To design and evaluate python code performing basic algorithms for multivariate data clustering, including k-means, etc.;

■ To design and evaluate python code implementing supervised learning methodologies, including, e.g., Na├»ve Bayes approaches and Gaussian Discriminant Functions; 

■ To compare multiple methodologies in view of finding the one most suitable for a problem to be solved;

■ To formulate the common principles underlying the methodologies presented in the course.

Minimum Requirement for Award of Credits

Students must submit at least 75% by weight of the components (including examinations) of the course's summative assessment.