Course Description

Many problems of today are being solved by mixing techniques of mathematics and statistics, computer science, and computer engineering. Terms like \emph{deep learning} were developed to describe an approach based on various kindd of relatively complex neural networks.

Course Content

This course will focus on understanding neural networks and neural computing. The most recent versions of MATLAB come with a rich neural computing toolkit. This will make it possible to illustrate the ideas of the course quickly with code written in MATLAB.

What will one learn by taking this course

The student will gain hands on experience solving problems in neural computing utilizing MATLAB. The relevant theory will be introduced, using a variety of resources, including textbooks and papers. The specific topics may include:
  • A historical introduction to connectionism and neural networks.
  • A survey of various neural networks: Hopfield, soft-max, multi-layer, pattern recognition, probabilistic, convolutional, recurrent, long-short memory, self-organizing etc.
  • The anatomy of training of a neural network, both supervised and unsupervised
  • Relevant mathematics, including information theory and Bayesian inference.
  • Scaling up your programs: parallel programming (threads, thread pools, synchronisation, locking, etc.)

The use of realistic examples

The course will focus on providing complete, working solutions to realistic problems. This requires enough implementation detail to see both theoretical and practical difficulties which may occur in specific problems. Thus each example will combine mathematical theory, coding in MATLAB, addressing computational complexity and scaling up from tiny data to small data to REALLY BIG DATA.

Course Information

Textbooks and other course materials

Course materials will be provided by the instructor in electronic form as needed.

Assignments and Exams

This course will be project oriented. The grade in the course will be based on a number of assignments and small-to-medium programming projects (dozens to hundreds lines of MATLAB).


Basic programming skills are required, including familiarity with MATLAB.