# Theoretical Computer Science

This degree programme is designed to develop both the depth and breadth in the students' knowledge of math and computer science and is also intended to prepare graduates for careers in public and private sector for which BSc degree in software engineering is required. Upon successful completion of this programme students should have the knowledge and skills needed for continuing their education on the next level – second cycle. Depending on their preferences students can through elective courses acquire additional knowledge from various areas of mathematics, didactics and computer science.

### Learning outcomes related to competencies and skills specific to math

Upon succesful completion of the programme students will be able to:

- Identify, formulate, abstract, and solve mathematical problems that use tools from a variety of mathematics,
- design and implement mathematical models from applied math.

### Learning outcomes related to competencies and skills specific to computer science:

Upon succesful completion of the programme students will be able to:

- Analyze a problem, and identify and define the computing requirements appropriate to its solution,
- design, implement, and evaluate a computer-based system, process, or program to meet desired needs within realistic constraints,
- to use current techniques, skills, and tools necessary for computing practice
- apply design and development principles in the construction of software systems of low to medium complexity, which would for example include work and problems related to database management, web programming etc.

### Learning outcomes - generic

Upon succesful completion of the programme students will be able to:

- develop problem solving and analytical skills, • successfully transfer their ideas using different media,
- to communicate effectively with a range of audiences • work independently and in a team,
- use literature written in English and other foreign languages,
- reflect on their own personal performance, to draw conclusions from this and to take action to guide themselves in terms of performance and development in their professional area,

The holder of BSc in software engineering degree is qualified for employment in various companies and institutions which employ BSc in software engineering, like software engineering companies, IT companies, banks, insurrance companies etc. Provided that the holder has succesfully passed courses required for classroom teaching, the holder is qualified for employement at teaching posts in elementary schools.

**Bachelor of Mathematics-Software Engineering**

Theoretical Computer Science – curriculum

(academic year 2016/17)

Bachelor's (first cycle) academic study programme

COURSE CODE | COURSE TITLE | SEMESTER I | ECTS |
---|---|---|---|

PMAT 110 | Elementary Mathematics | 2+2+0 | 4 |

PMAT 120 | Analysis I | 4+4+0 | 9 |

PMAT 130 | Introduction to Mathematics | 3+2+0 | 5 |

CS 120 | Computer Systems | 3+3+0 | 5 |

CS 110 | Programming I | 2+2+2 | 7 |

COURSE CODE | COURSE TITLE | SEMESTER II | ECTS |
---|---|---|---|

PMAT 160 | Analytic Geometry | 2+2+0 | 6 |

PMAT 170 | Analysis II | 4+4+0 | 8 |

PMAT 180 | Elementary Number Theory | 2+2+0 | 4 |

CS 160 | Programming II | 3+2+2 | 6 |

PMAT 195 | Linear Algebra | 3+3+0 | 6 |

COURSE CODE | COURSE TITLE | SEMESTER III | ECTS |
---|---|---|---|

PMAT 235 | Selected Topics in Analysis | 3+3+0 | 6 |

PMAT 220 | Probability Theory | 2+2+0 | 4 |

AMAT 230 | Cryptology | 2+1+0 | 3 |

AMAT 210 | Differential Equations | 3+2+0 | 6 |

CS 220 | Numerical Methods | 2+1+2 | 4 |

CS 210 | Data Structures and Algorithms | 3+2+2 | 7 |

COURSE CODE | COURSE TITLE | SEMESTER IV | ECTS |
---|---|---|---|

AMAT 260 | Statistics I | 2+1+2 | 5 |

CS 260 | Theory of Computation | 3+2+0 | 6 |

CS 270 | Computer Networks | 2+0+2 | 5 |

CS 280 | Operating Systems | 2+0+2 | 4 |

PMAT 290 | Algebra for Computer Science | 3+2+0 | 5 |

------------- | Elective course 1 | ------------ | min 5 |

COURSE CODE | COURSE TITLE | SEMESTER V | ECTS |
---|---|---|---|

CS 310 | Analysis and Synthesis of Algorithms | 3+0+2 | 6 |

CS 330 | Database Systems | 3+0+2 | 5 |

CS 320 | Web Programming | 2+0+2 | 5 |

CS 340 | Software Development | 3+0+2 | 5 |

AMAT 310 | Operations Research | 3+2+0 | 5 |

------------- | Elective course 2 | ------------ | min 4 |

COURSE CODE | COURSE TITLE | SEMESTER VI | ECTS |
---|---|---|---|

CS 360 | Machine Learning | 2+0+2 | 5 |

CS 370 | Dynamic Web Systems | 2+0+2 | 5 |

CS 380 | Introduction to Computational Geometry | 2+0+2 | 4 |

CS 390 | Comparative Analysis of Programming Languages | 3+0+2 | 5 |

AMAT 360 | Graph Theory | 3+2+0 | 6 |

------------- | Elective course 3 | --------------- | min 5 |

### Elective Courses

COURSE TITLE | ECTS |
---|---|

English | 5 |

Computer Architecture | 5 |

Combinatorics | 5 |

COURSE TITLE | ECTS |
---|---|

Dynamical Systems | 4 |

Compilers | 4 |

Network Programming | 4 |

Selected Topics in Computer Science | 4 |