#### Functional Programming - Python

- to give students a thorough understanding of the Python programming language and it's rich set of libraries;
- to expose students to applications where Python programming is effective, and
- c) to introduce students to pros and cons of scripting vs. compiled programming languages.

It has easy to understand syntax which allows programmers to develop programs faster and be more efficient. Python has proven to be equally as useful for small scripts as well as large scale software systems.

Due to Python’s ease of use, students will gain expertise with many details of the language as well as programming fundamentals in a short period of time.

#### Graph Theory

The intended learning outcome of this course is to give good knowledge of graph theoretical concepts, and to practice how to use them in mathematics, natural science and computer science.

After completing the course, students should be able to:

- know some important classes of graph theoretic problems;
- be able to formulate central theorems about trees, matching, connectivity, colouring and planar graphs;
- be able to describe and apply some basic algorithms for graphs;
- be able to use graph theory as a modelling tool.

#### Data Structures

Students learn to develop applications where complete implementation requires high skills in structured programming domain. The main objectives are to specify, conceive and develop modules implementing the fundamental data structures and to choose the most appropriate data structure to represent data in a given problem and to allow its resolution by applying efficient and optimal operations.