The Bachelor (undergraduate) studies are organized following the Bologna system and they have a three year duration. The information regarding the admission to the Faculty of Computer Science can be found here.

The study plans are elaborated and updated every year, taking into account the development of knowledge and technology in the computer science field, as well as the labor market requirements. The study plans contain a large number of optional modules which offer students the possibility to specialize in their preferred direction.

Study Plan 2018-2019 (detailed version)

Year 1 (class 2019-2022)

Semester 1Data Structures (6 ECTS, Syllabus, Website)
  
 Computer Architecture and Operating Systems (5 ECTS, Syllabus, Website)
  
 Logics for Computer Science (6 ECTS, Syllabus, Website)
  
 Mathematics (5 ECTS, Syllabus, Website)
  
 Practice – Introduction to Programming (4 ECTS, Website)
  
 English Language I (4 ECTS, Syllabus)
  
 Supplementary courses
  
 Competitive Programming I (3 ECTS)
  
 Physical Education (1 ECTS)
  
 Educational Psychology (5 ECTS)
  
Semester 2Object – Oriented Programming (6 ECTS, Syllabus, Website)
  
 Operating Systems (6 ECTS, Syllabus, Website)
  
 Algebraic Foundations of Computer Science (5 ECTS, Syllabus, Website)
  
 Probabilities and Statistics (4 ECTS, Syllabus, Website)
  
 Algorithms Design (5 ECTS, Syllabus, Website)
  
 English Language II (4 ECTS, Syllabus)
  
 Supplementary courses
  
 Competitive Programming II (3 ECTS)
  
 Physical Education (1 ECTS)
  
 Ethics and academic integrity (3 ECTS, Syllabus)
  
 Pedagogy I (Foundations of pedagogy + Evaluation Theory and methodology) (5 ECTS)
  

Year 2 (class 2018-2021)

Semester 1Computer Networks (6 ECTS, Syllabus, Website)
  
 Databases (6 ECTS, Syllabus, Website)
  
 Formal Languages, Automata and Compilers (5 ECTS, Syllabus)
  
 Graph Algorithms (5 ECTS, Website)
  
 Optional Course 1
  
   Computability, Decidability and Complexity (4 ECTS, Syllabus)
  
   Principles of Programming Languages (4 ECTS, Syllabus)
  
   Genetic Algorithms (4 ECTS)
  
   Continuous Models and MATLAB (4 ECTS)
  
 English Language III (4 ECTS, Syllabus)
  
 Supplementary courses
  
 Competitive Programming III (3 ECTS)
  
 Physical Education (1 ECTS)
  
 Industry Training I (3 ECTS)
  
 Pedagogy II (Instruction theory and methodology + Evaluation theory and methodology) (5 ECTS)
  
Semester 2WEB Technologies (6 ECTS, Website)
  
 Advanced Programming (5 ECTS, Syllabus)
  
 Software Engineering (6 ECTS, Syllabus, Website)
  
 DBMS Practice (4 ECTS, Syllabus, Website)
  
 Optional Course 2
  
   Functional Programming (5 ECTS, Website)
  
   Introduction to Cryptography (5 ECTS, Syllabus, Website)
  
   Entrepreneurship and Innovation in IT (5 ECTS)
  
   Embedded systems (5 ECTS, Syllabus, Website)
  
 English Language IV (4 ECTS, Syllabus)
  
 Supplementary courses
  
 Competitive Programming IV (3 ECTS)
  
 Physical Education (1 ECTS)
  
 Teaching Techniques for Computer Science (5 ECTS)
  

Year 3 (class 2017-2020)

Semester 1Machine Learning (6 ECTS, Syllabus)
  
 Information Security (5 ECTS, Syllabus, Website)
  
 Artificial Intelligence (6 ECTS, Syllabus, Website)
  
 Optional Course 3
  
   Introduction to .NET (4 ECTS, Syllabus)
  
   Physical systems development using microprocessors (4 ECTS, Website)
  
   Neural networks (4 ECTS, Syllabus, Website)
  
   3D computer animation: fundamental algorithms and techniques (4 ECTS, Syllabus, Website)
  
 Optional Course 4
  
   Probabilistic programming and modeling (5 ECTS, Syllabus, Website)
  
   Full-Stack Web Development (5 ECTS)
  
   Special Chapters in Operating Systems (5 ECTS, Syllabus)
  
   Automotive specific software engineering (5 ECTS)
  
 Practice – Python Programming (4 ECTS, Syllabus)
  
 Supplementary courses
  
 Competitive Programming V (3 ECTS)
  
 Industry Training II (3 ECTS)
  
 Computer Assisted Education (2 ECTS)
  
 Teaching Traineeship 1 (compulsory pre-higher education) (3 ECTS)
  
Semester 2Numerical Calculus (4 ECTS, Syllabus, Website)
  
 Computer Graphics (4 ECTS, Syllabus, Website)
  
 Optional Course 5
  
   Rule-based Programming (5 ECTS, Syllabus, Website)
  
   Programming Techniques on the Android Platform (5 ECTS, Syllabus)
  
   Computational Aspects on the Number Theory (5 ECTS, Syllabus, Website)
  
 Optional Course 6
  
   Psychology of the Professional Communication in IT industry (6 ECTS)
  
   Cloud Computing (6 ECTS, Syllabus, Website)
  
   Techniques of natural language engineering (6 ECTS)
  
   Social Media Networks Analysis (6 ECTS, Syllabus, Website)
  
 Optional Course 7
  
   Petri Nets and Applications (6 ECTS, Syllabus)
  
   Smart Cards and their Applications (6 ECTS, Syllabus, Website)
  
   Special Topics on .NET programming (6 ECTS)
  
 Diploma Project Development (5 ECTS)
  
 Supplementary courses
  
 Competitive Programming VI (3 ECTS)
  
 Class management (3 ECTS)
  
 Teaching Traineeship 2 (compulsory pre-higher education) (2 ECTS)