Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy.

Praha & EU: Investujeme do vaší budoucnosti

Table of Contents

The exam based on SFE topics consists from two questions, one is based on SFE topics from compulsory courses of the degree study programme and the second one is based on SFE topics from the branch of study.

The question shall start with a copy of the topics as can be seen here. The question can be extended or clarified by the committee for the SFE.

Column **Subject** refers to the main subject of the topic, but the topic can also be found in other subjects.

# | Label | Topic | Subject |
---|---|---|---|

1. | BIE-SPOL-1 | Chomsky hierarchy of formal languages and grammars. Turing machines, universal Turing machine, recursive-enumerable and recursive languages. The P, NP, and NP-complete classes of problems. | BIE-AAG |

2. | BIE-SPOL-2 | Regular languages: Deterministic and nondeterministic finite automata. Determinization of a finite automaton. Minimization of a deterministic finite automaton. Operations on ﬁnite automata. Regular grammars, expressions, and equations. | BIE-AAG |

3. | BIE-SPOL-3 | Context-free languages, context-free grammars, pushdown automata and its variants. Models of parsing of context-free languages. | BIE-AAG |

4. | BIE-SPOL-4 | Basic notions of graph theory. Graph algorithms: breadth-first search and depth-first search, connected components, topological sort, distances in graphs, algorithms for minimum spanning tree construction and shortest paths in edge-weighted graphs. | BIE-AG1 |

5. | BIE-SPOL-5 | Binary heaps, binomial heaps. Search trees and their balancing. Hash tables. | BIE-AG1 |

6. | BIE-SPOL-6 | Asymmetric cryptosystems (the RSA cipher, the Diffie-Hellman protocol, the RSA digital signature), hash functions (SHA-2, HMAC). | BIE-BEZ |

7. | BIE-SPOL-7 | Symmetric block and stream ciphers (AES, 3DES, RC4) – basic parameters, block cipher modes of operation (ECB, CBC, CFB, OFB, CTR, MAC), their basic description and vulnerabilities. | BIE-BEZ |

8. | BIE-SPOL-8 | Public key infrastructure, key distribution, digital signature. Certificates, certificate authorities. Cryptographically secure pseudorandom number generators. | BIE-BEZ |

9. | BIE-SPOL-9 | Relational database and relational algebra as a query language. The SQL language (SELECT, DDL, DML, DCL, TCL). Declaration of integrity constraints in DDL. | BIE-DBS |

10. | BIE-SPOL-10 | Trasactions and their properties - ACID. | BIE-DBS |

11. | BIE-SPOL-11 | 3 layers of data abstraction in databases (conceptual, implementational, physical). Structures for storying data in relational databases for fast access (basic structures, special structures, indexes, etc.). | BIE-DBS |

12. | BIE-SPOL-12 | Systems of linear equations and their solvability, Rouché–Capelli-Frobenius theorem and related notions, characterization of a set of solutions, Gaussian elimination. | BIE-LIN |

13. | BIE-SPOL-13 | Matrices: matrix-matrix multiplication, regular matrices, inverse matrices and its calculation, matrix eigenvalues and their calculation, matrix diagonalisation. | BIE-LIN |

14. | BIE-SPOL-14 | Propositional logic: truth tables, disjunctive and conjunctive normal forms, universal system of logical connectives, logical consequence and its verification. | BIE-MLO |

15. | BIE-SPOL-15 | Predicate logic: language, interpretation, satisfaction of formulas, logical consequence and its verification, theories and models. | BIE-MLO |

16. | BIE-SPOL-16 | Processes and threads, their implementation. Synchronization tools. Classical synchronization problems. Thread scheduling. Allocation of resources, Coffman's conditions, ways to resolve a deadlock. | BIE-OSY |

17. | BIE-SPOL-17 | Principles of translation of logical-to-physical addresses for the virtual paged memory with/without segmentation. Page replacement algorithms in virtual paged memory. | BIE-OSY |

18. | BIE-SPOL-18 | Data types in programming languages. Statically and dynamically allocated variables, linked lists. Modular programming, procedures and functions, input and output parameters. Compiler, linker, debugger. | BIE-PA1 |

19. | BIE-SPOL-19 | Time and space complexities of algorithms. Searching algorithms (linear, binary), merging and sorting algorithms (BubbleSort, SelectSort, InsertSort, MergeSort, QuickSort). Lower bound of the sorting problem in the comparison model. Linear-time sorting algorithms. | BIE-PA1 |

20. | BIE-SPOL-20 | Recursive decomposition of a problem to subproblems using the Divide-and-Conquer method. Recursion vs. iteration. Dynamic programming. | BIE-PA1 |

21. | BIE-SPOL-21 | Object-oriented programming in C ++, encapsulation, inheritance, attributes, and methods, static attributes and methods, virtual methods, polymorphism, abstract classes, exceptions, templates, operator overloading, shallow and deep copy. | BIE-PA2 |

22. | BIE-SPOL-22 | Abstract data types, specification and implementation. Stack, queue, array, list, table, and set. Implementation using linked structures, trees, and arrays. | BIE-PA2 |

23. | BIE-SPOL-23 | ISO/OSI and TCP/IP network models. Link layer protocols. Forms of acknowledgement. Switching and routing. Principles of internetworking devices. | BIE-PSI |

24. | BIE-SPOL-24 | TCP/IP protocol family (IPv4, IPv6, TCP, UDP, application layer protocols). Data flow control. NAT - principle and usage. DNS system. | BIE-PSI |

25. | BIE-SPOL-25 | Rules for calculating probabilities, Bayes' formula. Random variables, common examples of distributons, cumulative distribution function, probability density function, moments. Independence of events and random variables. Central limit theorem, laws of large numbers. | BIE-PST |

26. | BIE-SPOL-26 | Basics of statistical inference, random samples, point estimates of the expectation and variance, interval estimates for the expectation, testing statistical hypotheses regarding the expectation. | BIE-PST |

27. | BIE-SPOL-27 | Combinational and sequential logic circuits (Mealy, Moore), their specification and implementation at the gate level. Logic function minimisation (using map representations). | BIE-SAP |

28. | BIE-SPOL-28 | Architecture of a digital computer, instruction cycle, basic types of the instruction set architectures (ISA). Computer memory subsystem, memory hierarchy, cache memory. | BIE-SAP |

29. | BIE-SPOL-29 | Representation of signed numbers and implementation of arithmetic operations (parallel adders/subtractors, arithmetic shifters, decoders, multiplexors, counters). Floating point number representations. | BIE-SAP |

30. | BIE-SPOL-30 | Tools supporting the software development process: bug tracking and task management tools (common tools, bug/task life cycle), source code management tools (principles of cooperation, main benefits, common tools). | BIE-SI1.2 |

31. | BIE-SPOL-31 | Analytical domain class model, lifecycle of identified classes (goals, UML class diagram, UML state diagram). | BIE-SI1.2 |

32. | BIE-SPOL-32 | Methods for solution of recurrent equations, formulation and solution of recurrent equations for time complexity analysis of algorithms. | BIE-ZDM |

33. | BIE-SPOL-33 | Modular arithmetics, introduction to number theory. Fermat's Little Theorem, diophantine equations, linear congruences, Chineese Remainder Theorem. | BIE-ZDM |

34. | BIE-SPOL-34 | Limit and derivative of a function (definition and properties, geometric interpretation), application to analysis of a graph of a function. | BIE-ZMA |

35. | BIE-SPOL-35 | Basics of integral calculus (primitive function, indefinite integral, Riemann integral (definition, properties, and geometric interpretation)). | BIE-ZMA |

36. | BIE-SPOL-36 | Numerical series (convergence, convergence tests, integral estimates of partial sums). | BIE-ZMA |