Exam information
About the exam
Oral exams will be organized in the examination period. You have to register for the exam in the Neptun System, only registered students are allowed to do the exam.
Students are called in for the exam in 15 minutes intervals one-by-one. Students draw two topics from the list of topics at the beginning of the exam (you do not know which ones you pull, they are covers, so practically, you get random topics). After that, they are allowed to make notes and prepare themselves for 30 minutes for the actual oral exam. While making notes the students are only allowed to use a pen, it is forbidden to communicate with other students by any means. Sheets of paper will be provided by the lecturer. Then the lecturer reads the notes and asks questions about them (missing items, inconsistencies, etc.). Based on the notes and the answers of the students the lecturer determines the final evaluation of the oral exam.
Changes in Exam procedures in 2021 (due Remote Education):
- I will call you over MS Teams. If you cannot pick the call up, please send me a chat message when you are available (do not call me back, as I will start the examination with the next student). I will call you in alphabetical order in which you can be found in the Neptun exam sheet.
- Please, use a WEBcam, and test your microphone and WEBcam in advance.
- I will assign two topics from the list of topics for any student.
- Students are supposed to start their answers immediately. I do not expect students to give a detailed, long answer, but they should provide a short list of concepts, technologies it worth mentioning related to the topic, and how they are related (kind of draft or outline of the topic). After that, I will specify one of those, which should be elaborated in more detail in a similar manner (no long speech, just drafts).
- Please, do not learn the slides "by heart", like a verse. It just does not work, I am not interested in that. I am much more interested in your "usable" knowledge. It is much easier to get an average (3) mark by some knowledge, than by citing the slides correctly after one another (but without understanding them).
Topics
The topics cover the presented information during classes. Do not prepare yourself for the exam based on the topics, understand and learn the subject, topics are only for the exam. As everything is interrelated, the exam may "wander" to other topics related to the actual assigned topic, e.g., if you have to speak about UML class diagrams, you are supposed to relate it to object-oriented programming or parallel programming if the lecturer ask about that.
These are the exam topics:
- The definition of Software Technology and Technology generally. Human aspects. The specialty of embedded software compared to generic software. Software quality.
- Problems of complex software systems and how we handle them. SW reuse.
- Programming paradigms and their history.
- Restricting programming languages, why, and how they help software quality. MISRA C as an example (including fundamental rules).
- MISRA C fundamentals and details, essential type model, conversions, control flow rules.
- Fundamentals of object-oriented programming, the relationships of classes and objects, parts of objects, association and aggregation, the concept of reference, JAVA examples.
- Criterions for object orientation and the detailed discussion of them with examples. Objects and data types, the information conveyed by the type of the object (from the point of view of the compiler/interpreter and the programmer). Criterions of object orientation and type. How these are present in JAVA.
- Parts of objects, attributes, and behavior, lifecycle and interfaces. JAVA examples.
- Persistent objects. JAVA examples.
- Objects and classes from the point of view of their relationships. Template classes. JAVA examples.
- Fundamental concepts of parallel and event-driven programming.
- The concept of a task, state, and scheduling of tasks, simple and complex scheduling.
- Complex scheduling algorithms and their evaluation and handling of time.
- Operating system and its relations to HW, HW architectures (single CPU to NUMA), and their influence on the OS, comparison of FreeRTOS, and Linux.
- Implementations for tasks. From simple SW architectures to the OS. How tasks are implemented on them, and how this depends on HW.
- Cooperation of tasks in general, and the details of the solutions for shared memory-based parallel SW.
- Cooperation of tasks in general, and the details of the solutions for message-passing based parallel SW.
- Typical problems of cooperation and their avoidance.
- Remote procedure call and its implementations and application.
- Fundamentals of model-driven software development. How does it relate to generic engineering? Software development methodologies and methods and their relationship. How models can be utilized in the development process. UML history.
- UML and SysML diagrams and their relationship, the application of individual diagrams during the development process. Generic, non-detailed introduction.
- UML use-case and class/object diagram and its possible applications during the development process.
- UML sequence and activity diagram and its possible applications during the development process.
- UML state machine diagram and its possible applications during the development process. Implementation of the state machine diagram, embedded switch, and state table-based implementations.
Closing exam on Thesis Defense
It is also possible to select the subject as a closing exam subject on the Thesis Defense. The same topics apply for the closing exam as for the regular exam, but I will randomly pick one of the listed topics only (1 out of the 24), and ask that. Students are supposed to start their answers immediately on the closing exam. I do not expect students to give a detailed, long answer, but they should provide a short list of concepts, technologies it worth mentioning related to the topic, and how they are related (kind of draft of the topic). After that, I will specify one of those, which should be elaborated in more detail in a similar manner (no long speech, just drafts).