Comprehensive exam

Goal: The comprehensive exam serves as an important milestone prior to the beginning of students’ specialization studies, ensuring that they systematically organize and consolidate the professional, engineering, and programming knowledge acquired during the first two years of the program.

Topics: The knowledge required to successfully complete the comprehensive exam is based on the material covered in the following courses: Electronics Basic, Electronics, Digital Systems, Problem-Solving Using Programming, Basics of Software Development, and Algorithms and Data Structures.

Within the Electronics and Digital Systems subject group, the exam covers fundamental electrical quantities such as charge, current, voltage, power, and energy, as well as resistance, capacitance, inductance, conductance, Ohm’s law, and Kirchhoff’s laws. Students are expected to understand voltage and current division, superposition, source transformation, Thevenin’s and Norton’s theorems, phasor relationships for circuit elements, impedance and admittance, and impedance combinations. The topics further include semiconductor devices such as diodes, DC power supplies, rectifier circuits, limiting and clamping circuits, bipolar junction transistors and their modes of operation, current–voltage characteristics, transistor configurations, and transistor operation as a switch. Operational amplifiers are also covered, including their ideal characteristics, differential and common-mode signals, negative feedback, inverting and non-inverting configurations, closed-loop gain, input and output resistances, as well as applications such as difference amplifiers, integrators, and differentiators. Additional topics include MOS field-effect transistors, their current–voltage characteristics, biasing methods, configurations, and switching behavior. The digital systems portion includes binary arithmetic, Boolean algebra, Karnaugh maps, decoders, encoders, multiplexers, demultiplexers, combinational logic circuits, arithmetic circuits such as adders, subtractors, and multipliers, as well as sequential logic circuits including various types of flip-flops, sequential circuit analysis using state tables, state diagrams, and timing charts, and registers and shift registers.

Within the Programming subject group, the exam covers object-oriented programming principles, basic algorithms for array operations, sorting algorithms, and operations on sorted arrays, including binary search, union, and intersection. Students are expected to understand divide-and-conquer algorithms such as merge sort and quicksort, as well as dynamic programming and backtracking techniques, including algorithms for solving the 0–1 knapsack problem. The topics also include linked data structures and their operations, such as stacks, queues, lists, and priority queues, binary search trees and their operations, hash functions and dictionary implementations, and fundamental graph algorithms, including breadth-first search, depth-first search, and shortest-path algorithms.

Comprehensive exam