The study lasts three academic years (i.e. six semesters), 180 ECTS credits. Candidates for admission to this study program must have completed a four-year high school. The professional title that is obtained is Baccalaureate/Bachelor of Mathematics – Theoretical Computer Science

The main goal of the study is to provide students with knowledge and skills that qualify them to access the second cycle of studies and enable them to work as software engineering graduates. During their studies, students acquire knowledge and competences in various areas of mathematics and computer science, which enable them to understand the necessary IT systems at all levels of integration and in a wide range of relevant problems. The acquired knowledge and skills can be applied by diploma holders on various information systems used by various software companies or other institutions that need to use specific computer applications. Depending on the choice of elective subjects, students have the opportunity to acquire additional knowledge in various areas of computer science, mathematics or teaching methods.

### Learning outcomes specific to mathematics

Diploma holders are able to:

- formulate and solve problems in general mathematics at the level of typical introductory mathematics courses,
- formulate and solve a problem from the basics of various areas of theoretical mathematics, such as analysis, linear algebra and geometry,
- model and solve basic problems from some areas of applied mathematics.,
- Learning outcomes specific to computer science

### Diploma holders are able to:

- effectively use the operating system, as well as computer applications in the field of word processing, spreadsheet calculations and business graphics, as well as
- some algebraic computer packages,
- analyze the possibilities and methods of solving simpler problems with the help of computers,
- develop simpler programming solutions in different programming languages, both without and with the application of object-oriented and generic techniques,
- use and implement standard algorithmic techniques and data structures,
- create and implement websites,
- create, implement and maintain different databases.
- Generic learning outcomes

### Diploma holders are expected to:

- develop analytical and problem-solving skills,
- develop research skills,
- are able to successfully communicate their ideas using different media,
- are able to work independently as well as in a team,
- use literature in English and other foreign languages related to mathematics and computer science.

The bachelor’s degree in software engineering qualifies the holder to work in companies and institutions that develop and use computer applications, such as (but not exclusively) software companies, insurance companies and banks, as well as in other companies and institutions that employ bachelors in software engineering. In addition to completed courses in the pedagogical-psychological and didactic-methodical areas of the first cycle of studies of the Department of Mathematics, the holder of the diploma is qualified to independently teach IT subjects in elementary schools.

## Curriculum for the major "Theoretical Computer Science"

Valid for students enrolled from the academic year 2016/17

(Nastavni planovi i programi za studente upisane do akademske 2015./2016. godine)

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 |

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 |

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 |

Code | Course Title | Semester IV | ECTS |
---|---|---|---|

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

CS 260 | Computability | 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 |

Code | Course Title | Semester V | ECTS |
---|---|---|---|

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

CS 330 | Databases | 3+0+2 | 5 |

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

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

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

Elective Course 2 | min 4 |

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 380 | Graph Theory | 3+2+0 | 6 |

Elective Course 3 | min 5 |

Code | Course Title | ECTS |
---|---|---|

OTH 260 | English Language | 5 |

CS 285 | Computer Architecture | 5 |

PMAT 280 | Combinatoric | 5 |

Code | Course Title | ECTS |
---|---|---|

AMAT 340 | Dynamical Systems | 4 |

CS 345 | Compilers | 4 |

CS 335 | Network Programming | 5 |

CS 325 | Selected Topics in Computer Science | 4 |

Code | Course Title | ECTS |
---|---|---|

CS 395 | Introduction to Artificial Intelligence | 5 |

CS 385 | Mobile Application Development | 5 |

AMAT 365 | Integer Programming | 5 |

AMAT 375 | Selected Topics in Graph Theory | 5 |