Computer Science BSc


Computer Science BSc


Bachelor of Science (BSc) in Computer Science


Degree program



Accreditation number



Department of Programming Languages And Compilers
Department of Software Technology And Methodology
Department of Data Science and Engineering
Department of Computer Algebra
Department of Algorithms And Their Applications
Department of Media & Educational Informatics
Department of Information Systems
Department of Numerical Analysis
Department of Cartography And Geoinformatics




6 semesters (3 years)

ECTS credits


Minimum number of students


Maximum number of students


Short description

The objective is to train Computer Scientists with a professional knowledge based on a solid theoretical background knowledge.  They have the skills to take part in software development, in developing information systems and system management in various areas. Computer Scientists often acts as mediators between the customers of information systems and the producers. In this way, the job of a Computer Scientist synthesises the constructive activity of engineers with the general problem-solving attitude of mathematicians while participating in teams of large-scale projects.

The program provides students with a broad education in Computer Science and Software Engineering in combination with specialised work in computer and information processing techniques, programming languages, data structures, information retrieval, operating systems, compiler design etc. Students learn the theory as well as the methodologies and techniques in the development and implementation of computer systems. The more practical programming courses are aided by several courses in pure and applied mathematics and theoretical computer science courses throughout the curriculum.

Strength of program

The high standard of training is guaranteed by the highly qualified academic staff. Teaching is supported by modern infrastructure and well equipped computer labs (artificial intelligence, databases, and robotics). The library of the Faculty contains several thousand volumes. The students of higher years and PhD students help the first year students in a mentor system to overcome their first challenges at the university.

In addition to the high level of theoretical training, the Faculty's relationship with the business community, the joint research and development projects offer up-to-date practical knowledge and experience to the students. The Faculty has concluded bilateral agreements with numerous universities in the world, which allows students to study one or two semesters or participate in research projects at a partner institution.

Extracurricular undergraduate research activities of the students are supported and supervised by leading scientists of the Faculty. These students present their findings at a conference organised by the Faculty every year.

Workshops are also organised with international partners.


Preparation course for academic studies

Compulsory courses

Precalculus practices
  • Logical bases (the use of expressions with logical signs).

  • Algebraic and radical expressions (identities, polynomials).

  • Proofs by mathematical induction.

  • Quadratic equationsand inequalities.

  • Solving equations and inequalities.

  • Functions (domain, graph, transformations, inverse).

  • Trigonometric identities, equations, inequalities and functions.

  • Sequences (arithmetic and geometric sequence, boundedness, monotonicity).

  • Summation, set of points.

Read more »

Analysis 1
  • The set of real numbers, bounded sets, least upper bound (sup), greatest lower bound (inf).

  • Numerical sequences, monotone sequences. Convergence, Cauchy criterion.

  • Algebraic operations and convergence.

  • Convergence of monotone sequences.

  • The n-th root of numbers.

  • Extended real number line, limit in extended sense. Infinite numerical series, convergence, absolute convergence. Convergence tests. Alternating (Leibniz type) series.

  • The associativity (brackets in the series).

  • The permutation of the terms.

  • Products of series, Mertens’ theorem. padic fraction representation of real numbers.

  • Power series, Cauchy-Hadamard theorem.

  • Sum function of power series, elementary functions.

  • Limits of functions.

  • „Transfer principle”,


Read more »

Analysis 2
  • Differentiability of real functions.

  • Taylor series.

  • Applications of differentiability.

  • Mean value theorems.

  • The L’Hospital rule.

  • Convex and concave functions. Investigation of functions.

  • Primitive functions. The Riemann integral, Newton-Leibniz rule.

  • The definite integral function.

  • Applications of Riemann integral: area, length, cube, surface.

Read more »

Analysis 3
  • Basic topological properties of finite dimensional linear spaces.

  • Vector sequences and their convergence.

  • Compact sets of vectors.

  • Limit and the continuity of vector-vector functions.

  • Curves and surfaces.

  • Differentiability of vector-vector functions.

  • Jacobian matrices, gradient.

  • The basic rules of differentiation.

  • Young’s and Taylor’s theorems.

  • Applications of differentiation, extrema.

  • The Riemann integral of multivariable functions.

  • Transformations of the integral.

  • Applications in geometry and physics.

Read more »

Numerical methods 1
  • Floating point representation of numbers, absolute error, relative error.

  • Norms and condition numbers.

  • Solving systems of linear equations: Gaussian elimination, pivoting, LU, QR, Cholesky decomposition. Iterative methods: Jacobi, Gauss-Seidel, Richardson, ILU iteration.

  • Iterative solution of nonlinear equations: secant and bisection method, fixed point iteration, Newton’s method.

Read more »

Numerical methods 2
  • Eigenvalues, eigenvectors: Gersgorin theorems. The power method, inverse iteration, Jacobi’s method, eigenvalues of tridiagonal matrices. LR, QR algorithm.

  • Singular value decomposition, the Moore-Penrose generalised inverse. Least squares approximation to discrete data.

  • Numerical integration: Newton Cotes formulas, composite forms. Orthogonal polynomials, Chebysev, Gauss quadrature.

Read more »

Models and Algorithms
  • The notion of the implicit function and its role in the solution of the system of equations.

  • The implicit and the inverse function theorems.

  • Constrained extrema of functions of several variables.

  • The notion of ordinary differential equations. Separable, exact and linear equations.

  • The theorem of Picard-Lindelöf, the successive approximation.

  • Linear system of differential equation with constant coefficients.

  • Higher-order linear differential equation with constant coefficients.

  • Sequences and series of functions.

  • Convergence, uniform convergence. The Weierstrass theorem.

  • The continuity, integrability, differentiability of the limit function.

  • The orthogonality of the trigonometric system. Uniformly convergent trigonometric


Read more »

Discrete mathematics 1
  • Logical operations, quantifiers, formulas. Sets, set operations, subsets. Binary relations,equivalence relation, equivalence classes, partial ordering. Functions, Cartesian product of sets, general relations, connection to relational data bases. Binary operations, operations in general, logical operations.

  • Peano-axioms, natural numbers, induction, recursion. Operations with natural numbers, ordering of natural numbers. Semigroup, unit element, group, Abelian group.

  • Numbers: integers, rational numbers, real and complex numbers, quaternions. Ring, integral domain, skew field, field.

  • Finite sets. Combinations, permutation. Polynomial theorem, sieve formulae.

  • Divisor, prime and irreducible numbers. Divisibility in rings. Euclidean algorithm. Basic theorem of


Read more »

Discrete mathematics 2
  • Graphs: examples, path, cycle. Isomorphic graphs, subgraphs, complement of a subgraph.

  • Eulerian path, Hamilton-cycle. Labeled graphs, Kruskal’s algorithm. Directed graphs, strongly connected graphs, directed trees and their applications. Planar graphs, the theorem of Kuratowski , Euler’s theorem.

  • Groups, subgroup, normal subgroup, factorgroup the homomorphism theorem. Cyclic groups, permutation groups. Ring, subring, ideal, factorring, the homomorphism theorem.

  • Polynomials, the ring of polynomials, Euclidean rings, Euclidian algorithm. Finite fields, factorization of polynomials, rational functions. the theorem of Gauss. Polynomials with several indeterminants.

  • Information, bit, entropy. Compression, optimal character coding, other coding types and the


Read more »

Linear Algebra
  • Introduction to Systems of Linear Equations, Gaussian Elimination, Homogeneous Systems, Matrices and Matrix Operations, Rules of Matrix Arithmetic, Different Methods of Finding the Inverse, Determinant, Properties of Determinant Function, Cofactor Expansion, Cramer’s Rule, Vectors in 2D and 3D, Norm, Dot Product, Projection, Cross Product, Lines and Planes, Vector Spaces, Subspaces, Linear Independence.

  • Basis, Dimension, Orthonormal Basis, Gram-Schmidt Process, Change of Basis, Linear Transformations, Kernel, Range, Matrices of Linear Transformations, Similarity, Eigenvalues, Eigenvectors, Diagonalization of Matrices, Symmetric Matrices.

Read more »

Logic and theory of computation

The subject and the aim of logic. The most important mathematical tools. The notion of the language. Propositional logic: Description language and semantical properties of the formulas. Semantical notion of the consequence. Deduction theorem. Decision problems. Semantical/tautological equivalence. Laws of propositional logic. Formalization. Ways of inference. Problem solving. First-order logic. First-order and zero-order statements. Description language, signature. One- and many-sorted logic. Formalization by first-order formulas. Syntactical test of first-order formulas. Term substitution. Mathematical structure and it’s description language. Semantics, interpretation, and variable evaluation. Possible interpretation stuctures for a given universe U and a given signature. Truth


Read more »

Algorithms and data structures I.

I. Fundamentals

1. Running time of algorithms;

2. Abstraction levels of data types

II. Basic data structures

3. Arrays;

4. Stacks;

5. Queues;

6. Priority queues;

7. Lists;

8. Trees

III. Search trees

9. Binary search trees;

10. AVL-trees;

11. 2-3-trees and B-trees

IV. Sorting

12. Bubble sort, insertion sort and sorting with maximum search;

13. Tournament sort;

14. Heapsort;

15. Quicksort;

16. Merge sort;

17. Lower bound for running

Read more »

Algorithms and data structures II.

I. Hash coding

1. Hash tables, hash functions, open addresses;

2. Sorting in linear time: Radix sort, bucket sort

II. Graph algorithms

3. Representation of graphs;

4. Breadth-first search;

5. Single source shortest paths: Dijkstra’s algorithm, Bellman-Ford algorithm;

6. Minimum spanning trees: algorithms of Prim and Kruskal;

7. All pairs shortest pairs: Warshall-Floyd algorithm;

8. Depth-first search;
9. Topological sort;

10. Strongly connected components

III. Data compression

11. Huffman-coding;

12. Lempel-Ziv-Welch (LZW) algorithm

IV. String matching

13. Knuth-Morris-Pratt algorithm;

14. Quick search;

15. Rabin-Karp algorithm

Read more »

Formal Languages
  • Fundamental notions of formal language theory (alphabet, word, language, language family, operations on words and languages).

  • Constructive methods of description of languages (pure listing, logical formula, structural recursion, partial decision algorithms, enumeration, mathematical machines, formal grammars).

  • The generative grammar, examples, classification of grammars and languages. Restricted versions of grammars, normal forms.

  • The Chomsky-hierarchy of languages, the limits of description by grammars, the Church-thesis.

  • Relation between Chomsky-families and language operations.

  • The word-problem and its decision on Chomsky-families.

  • Finite automaton models, their equivalence, examples.

  • Type 3 languages and their related automata.


Read more »

Artificial intelligence
  • Problem modeling and graph representation. State-space representation. Solving problems by irrevocable searches: hill-climbing search, tabu search, algorithm of simulated annealing, genetic algorithms.

  • Tentative searches: backtracking, heuristic graph-search methods.

  • Decomposition and AND/OR graphs. Two-player games.

  • Logical reasoning by resolution and rule based systems.

  • Reasoning by uncertain knowledge. Probabilistic reasoning systems. Semantic nets and frames.

  • Decision trees, machine learning general logical formulas, artificial neural networks.

Read more »

Programming fundamentals
  • Problem solving strategies, foundations of problem solving in software technology. Software tools and methods for problem solving. Steps of problem solving. The procedure of programming, how to develop a program. Problems and solutions. Principles of program development. The origins of algorithmic and data structures, programming models. Tools for algorithmic notation.
  • The notions of constants, variables, types. Basic and complex data, file handling. Integer and real numbers, boolean values, characters. The notion and usage of arrays, strings, records. Algorithmic structures. Basic algorithms for typical problems. The problems and solutions of: summation, decision, search, count, maximum, selection, sorting.
  • Basic building blocks of a programming language (assignment, input,


Read more »

Fundaments of computers
  • Basic building blocks of computers, their logical and physical levels and their functionality.

  • Multi processor and multicore systems. Data and program in the memory, instruction, data and number representation.

  • Operating systems, command line and graphical user interfaces, file systems, office program suites. The (secure) use of networked computers, required hardware and software tools.

  • The basic use of the networked computer.

  • Basic operating system script files, file management, process management and filtering.

  • Writing scripts, powershell basics and powershell scripts.

Read more »

Programming Languages (C++)

Bases of the programming languages: syntax, semantics, interpreter, compiler, byte-code, compilation unit, specification, body, declarations, definitions, scope, life, visibility, global and local variables, block structure, strongly-typed languages, parameter-passing, parameters and arguments, default parameters. Mathematical computations in FORTRAN. The structure of the C++ programming language. Preprocessor. Constants, types, differences between C and C++, operators, evaluation of expressions, different  ways to handle memory. Dynamic declarations. Type conversion. Functions, overloading, parameter passing, default parameters, references. Object-oriented programming in C++: classes, members, constructors, destructors, static members, access modifiers, namespaces, operators.


Read more »

Programming languages (Java)

The students should learn the main concepts of programming languages and get acquainted with the constructs in imperative class-based object-oriented languages. As a concrete language, Java is used both for illustration purposes and for the practicals. The following topics are covered. Imperative programming (types, variables, operators, expressions, evaluation, statements and control structures, comments). Procedural programming (subprograms/methods, parameter passing, overloading, execution stack, recursion, exception handling). The main focus is on OOP (class, object, instantiation, members, constructors and initialization, access control, encapsulation and abstraction, inheritance, inclusion polymorphism, overriding, static and dynamic binding, static and dynamic types,


Read more »

Functional programming

The course introduces the concepts of functional programming, computational model and elements of functional programming languages. Students get assignments in programming in Haskell and Clean.

The functional programming paradigm: referential transparency, evaluation, normal form, strictness analysis. The elements of the programming languages Clean and Haskell: function definitions, local definitions, higher order functions, patterns, guards modules. Simple data structures, lists, tuples, records, arrays, ZF expressions, filters. Type systems, polymorph types, algebraic types. Type classes, instances, interactive functional programs.

Read more »

Practical software engineering 1

History of object-oriented programming. Object-oriented languages, Java. Object-oriented modelling, UML. Class diagram, object diagram, relations (association, aggregation, composition, inheritance). State-chart diagram, sequence diagram, collaboration diagram, activity diagram. Use-case diagram. Component diagram, packages. Implementation of objectoriented modells.

Read more »

Practical software engineering 2

Design and implementation of GUI. Concurrency in Java. Access of databases through JDBC.
Programming of mobile telephones in Java ME. Role and use of patterns in software development.

Read more »

Application development

Construction of object-oriented programs. Pointers. Concept of classes (visibility, construction, destruction, operators, friend). Inheritance in code reusability. Support of analogous programming with reusability. Realisation of data structures with pointers. Templates, Iterator template classes.

Read more »

Tools of software projects

Today software development is supported by a high number of software tools from make systems to source control. During this course students will learn the theoretical background and the practical usage of the most fundamental tools. Students will participate in the implementation of a smaller project and practice its maintenance. They became familiar with regular expressions, build systems (gmake). Using source and version control systems they learn how to work in small-medium sized teams. We overview the building life-cycle: compilation, linking, running/interpreting and getting familiar with the creation and usage of dynamic and static libraries, binary compatibility and patching issues. We will introduce some code quality metrics and learn refactoring techniques. Test tools


Read more »


The goal of the course is to introduce the students to the basic concepts of compilers and to address the practical issues of compiler construction.


  • structure and task of compilers

  • methods for lexical analysis

  • LL parsing

  • LR parsing

  • symbol table handling

  • semantical analysis, ATGs

  • assembly basics

  • code generation for basic imperative language constructs

  • some techniques for code optimization


  • exercises for lexical analysis, flex

  • exercises for LL parsing

  • bisonc++

  • exercises for LR parsing

  • assembly programming exercises, NASM

Read more »

Operating Systems
  • Operating system concepts, its functions, its role in a computer system; firmware, middleware; interrupts, exceptions, system calls 

  • Design goals, application categories, architectural concepts; application programming interface; examples 

  • Process concepts and implementation; process descriptor, process table; thread concepts and different implementations; difference between thread and process; examples

  • Interactive, batch and real-time processes and their scheduling; scheduling algorithms; examples

  • Basic concepts and types of parallel execution, race condition; problem and solution of critical sections; shared memory and message passing; examples

  • Semaphores, monitors and their implementations; deadlocks, their characterization;


Read more »

Computer Networks
  • Introduction, Internet, network layers, reference models

  • Physical layer: Basics, limits on the data rate, self-clocking codes, baseband, broadband, modulation 

  • Data link layer: error detection, error correction, Hamming distance, block codes, CRC, backward error correction, alternating bit protocol, sliding windows, MAC sublayer, static

  • multiplexing, dynamic channel allocation, collision based protocols, Aloha, CSMA, contention free protocols, limited contention, Ethernet, LAN-interconnection

  • Network layer: link-state routing, distance-vector routing, RIP, IGRP, OSPF, inter-AS routing, BGP, IP addressing, CIDR, ARP, IPv6, DHCP, IPSec

  • Transport layer: multiplexing, TCP, Tahoe, Reno, AIMD, fairness

  • Network applications, socket programming

  • Read more »

Distributed systems

The course presents the main concepts of distributed systems and middlewares. Students get programming assignments in Java.

Concepts: middleware, distributed file systems, persistency, transparencies: access, location, relocation, migration, replication, concurrency, failure, persistency. Scalability, transactions, authentication and authorization. Client-server model. Communication: protocols, message passing, channels, RPC, RMI, parameter passing, references, distributed object model. Processes:, threads, multithreaded clients and servers, code migration, agents, trusted code. Name spaces, mobile entities, reference counting, distributed garbage collection. Global state, consistent cut, time stamp, termination detection, clock synchronization). Consistent


Read more »

Data Bases 1

The concept of data bases. Physical and logical data independence. The data base administrator. Basic characteristics of data base handling languages. Classical data processing modes and the comparison of data base handling systems. The levels of data modelling. Tendencies in data modelling. The hierarchical, the netted, the relational data models.

Read more »

Data Bases 2

Relational data models. Concept of the domain, the attribute, the record. Relation as a concept of Descartes series, as mapping, as a table. The key and is characteristics. The functional dependence and its properties, families. Decomposition and it’s properties. The four normal forms. Normalisation. The operations of relational algebra. Application of the dBase III language in data base handling. XML, DTD, XML Schema, XPath, XQuery, XSLT.

Read more »

Computer Graphics


  • Representations of point, line and plane. Cartesian and homogenous coordinates

  • Affine and projective transformations. Projections

  • Geometric models in computer graphics

  • Elements of the graphics pipeline

Practical classes:

  • Elements and functions of graphical application programming interfaces,

  • and their application (OpenGL and DirectX Graphics)

Abilities to form

  • Understanding basic concepts, transformations, primitives, and

  • fundamentals of geometric models, applied in computer graphics

  • Knowledge and application of graphical API-s, and problem solving by using them

Read more »

Principles of economics
  • Subject and method of economics. Supply and demand curve, the Marshall-cross. How markets work. Shifts in the demand/supply curve. Elasticity of demand and supply and its application.

  • The consumption decisions. Description of preferences, representing preferences with indifference curves. Properties of indifference curves. Budget constraints, consumers’ optimum choice. Income and price changes, determinants of individual demand-curve and Engel-curve, income and substitution effects.

  • The firm decisions: Production function and its properties. Сonсept of short and long runs.

  • Short-run production function: Dynamics and relationship of marginal and average returns to a variable factor. Long-run production function and its characteristics. Сonсept and types of&n


Read more »

Basic Legal and Business Knowledge

1. Starting a Business

2. The Types of Enterprises

3. Foundation, Operation and Bankruptcy of Enterprise

4. Business low

5. The Strategic Planning process

6. Business Planning

7. The Marketing Concept and the Marketing-mix

8. Management of Fixed Assets

9. Management of Current Assets

10. Human Recourses Management

11. Innovation

12. Information and Communication System

13. Finance

14. Characteristics of non-profit organization

Read more »


The concept of programming based on programming patterns. Algorithm patterns (programming theorems) on functions mapping from an integer interval: summation, counting, maximum selection, selection, linear and logarithmic searching, conditional maximum searching, computing recursive function. Designing programs with analogous programming based on programming theorems and their implementation in language C++. Embedded analogous programming. Elimination of recursive functions. Functions and modules in C++. Data type and its implementation with class. Collections. General programming theorems on enumerators. Abstract enumerators.

Read more »

Probability and statistics

The notion of probability, elementary properties. Kolmogorov probability field. Combinatorial calculation of probabilities. Conditional probability, properties, calculation. Bayes' theorem. Independency. Random (vector)variable and its distribution, joint distributions. Independent random variables. Random walk and ruin probabilities. Particular discrete distributions. Mean and variance, properties, calculation, inequalities. Median, moments. Covariance and the coefficient of correlation. Distribution and density functions. The distribution of sums of independent random variables (convolution). Particular absolute continuous distributions and their properties. Weak law of large numbers. Central limit theorem. Normal and multivariate normal distribution. 

Statistical space,


Read more »

Free credits - 9 ECTS

Thesis credits - 20 ECTS


Career opportunities

Computer Scientists are welcome in every sector of informatics. Jobs are offered by large international computer companies, outstanding Hungarian firms, banks, large enterprises, state institutions, software development companies, research institutes and universities where they may be engaged in the preparation of integrated data processing systems, electronic trade transactions and electronic money transfers, solving telecommunication problems (networks, programming mobile phones), performing image recognition, computer-aided design, image processing or preparing multimedia applications.

Job examples
  • Computer programmer
  • Software engineer
  • Web developer
EU/EEA students
non-EU/EEA students
Tuition fee/semester

3,000 EUR

3,000 EUR

Application fee

80 EUR (non-refundable)

80 EUR (non-refundable)

Registration fee

60 EUR (For registering for a new semester.)

60 EUR (For registering for a new semester.)

Other costs

textbooks (~EUR 100)

textbooks (~EUR 100)

non-EU/EEA students
Tuition fee/semester

3,000 EUR

Application fee

80 EUR (non-refundable)

Registration fee

60 EUR (For registering for a new semester.)

Other costs

textbooks (~EUR 100)

Offered for the next academic year


Start program

09, Sep, 2019

Deadline for applications - September intake

30, Apr, 2019

Is there a February intake


Admission requirements

Entry requirements

Applicants are required to have sufficiently good grades in their secondary school finishing documents, especially from Mathematics. Intermediate level of English knowledge is also required.

Language requirements

A proof of at least Intermediate level English language skills is required (secondary school grades are sufficient, language exams are preferred).

Documents to submit with application
Document Comment
Online application form -
Record of the final two years in secondary school -
Secondary school certificate -
CV -
Motivation letter -
Copy of the main pages of the passport needs to be valid
Passport photo -
Medical certificate -
Language certificate if available
Application procedure

The application starts on the online application system . Students need to register in the system, fill in the online application form, upload the required documents and follow the instructions during the application process.

Applicants are required to transfer the admission fees (application fee: 80 EUR, registration fee: 60 EUR) only in case of admission, together with the tuition fee in the amount of 3000 EUR until the end of the first month of their first educational term (September intake: 30 September, February intake: 28 February).

Applications are only accepted being submitted through the online application system.

Procedure of the entrance examination:

Admitted students will write a test from Mathematics and English at the beginning of September.  Upon failing, the student will be redirected to our Preliminary Course.

Type of entrance examination: written 

Program leader

Prof. Ferenc WEISZ

Program coordinator

Senior Lecturer
Postal address: ELTE Faculty of Informatics, H-1117 Budapest, Hungary, Pázmány Péter sétány 1/C

Assistant coordinator
TEL: +36-1-372-2500/8136

More information
Faculty website
Program website

Faculty of Informatics

Faculty of Informatics