Comprehensive exam questions for students majoring System Engineering BSc
Before choosing a question, each student has to write a simple program using a computer and an arbitrary programming language within 30 minutes. In case of an unsuccessful attempt, the student will fail the exam. In case of an unsuccessful exam, the result of the successful programming assignment may not be transferred to subsequent semesters. Students choose three of the following four groups of questions, and then they will choose one question from each of the three groups. If a student gives an unsatisfactory answer to any one of the three questions, they will fail the exam. Data structures and algorithms group A1. Classification of data structures. Operations over data structures. Sorting and searching algorithms. A2. The stack and the queue data structures. Walking queue, cyclic queue. A3. Representation of data structures (continuous and linked representation). A4. Representation of the set and the multiset data structures. A5. The array data structure. Triangular matrix, sparse matrix. A6. The table data structure. Serial, ordered, and self-ordering tables. A7. The list data structure. A8. The tree data structure. Traversal algorithms of binary trees. A9. Balanced and perfectly balanced trees, search trees. A10. The red and black tree data structure. A11. The B-tree data structure. A12. The net data structure. Traversal algorithms of nets. Database systems group B1. ER-to-relational mapping. B2. Functional dependencies and inference rules. B3. Database, database management system, database system. B4. The relational model concepts. B5. SQL DML statements and their semantics. B6. SQL DCL statements and their semantics. B7. Normal forms and normalization. B8. Integrity constraints in the relational data model. B9. Basic concepts of data modeling: entity, attribute, relationship, schema. B10. The concept, properties, and operation of transactions.
Programming languages group C1. Exception handling and events. C2. Concurrent programming. C3. Data types. C4. Expressions. Evaluation of expressions. Side effect, overloaded operators, type conversions. C5. The object-oriented paradigm. C6. Abstract data types and encapsulation constructs. C7. Syntax and semantics. Variables, named constants, and reserved words. C8. Parameter passing methods. C9. Iterative statements (loops). C10. Subprogram and block. C11. Scope, lifetime, and referencing environment. C12. Two-way and multiple-way selection statements. Operating systems group D1. Continuous storage allocation. Strategies, fragmentation. D2. The main components of an operating system. D3. The run-time system. D4. Processes and threads. Process states. Process control block. D5. Process synchronization. The critical section problem. Classical synchronization problems. D6. Process scheduling. Criteria and algorithms. Preemptive scheduling, priority, starvation. Scheduling queues, feedback. D7. Virtual memory management. D8. The evolution of operating systems: batch, multiprogrammed, time sharing, real-time, personal computer, network systems. D9. Integrated development environment (IDE). D10. Paging and segmentation. Page tables. D11. The functional architecture of a modern computer. Dual mode operation, interrupt system.