About study programme
The Computer Science programme is a logical continuation of the Bachelor's programme of the same focus. Students have the opportunity to specialize in one of the defined areas of computer science. Areas that students may pursue include machine learning, deep learning, social network analysis, machine vision, parallel programming, software systems development, theoretical computer science computational networks and systems, biologically inspired algorithms, and many others. The ratio of practical and theoretical knowledge is balanced so that graduates are able to be valid members of development and research teams in software and other companies.
Graduate's employment
Graduates of the study programme have a wide range of employment opportunities on the labour market. All graduates of the programme can work as software developers, even in complex projects, as software architects and in many other related positions. Their chosen specialization also allows them to work as a data analyst, consultant, machine learning or artificial intelligence specialist, database systems specialist, computer vision or computer modeling specialist, computer network specialist and other IT-related positions. The Master's degree also provided graduates with a sufficient foundation for positions in academia, either at the level of continuing graduate studies or in entry-level positions in science and research.
Study aims
A graduate of the Computer Science programme is an engineer who has successfully completed courses in which he/she has acquired or deepened his/her knowledge in the field of informatics. The structure and self-selection of the courses have enabled him/her to develop his/her skills in an individual way. The common basis of study, which can include programming, software and database systems, mathematics or theoretical computer science, was extended by the graduate by choosing one of the offered specializations. This allowed him to specialise in his chosen field as a software developer, data analyst, database specialist, computer graphics and image processing specialist, developer of specialised applications or designer of corporate infrastructure. The ability to study independently, the ability to plan and schedule the steps needed to achieve a goal, and last but not least, the ability to present the results using modern tools are also prerequisites for a successful graduate. The above gives the graduate a good basis for direct employment in the labour market or for further development in postgraduate studies.
Graduate's knowledge
After completing the compulsory courses, the student is introduced to selected concepts from mathematics and statistics, which will give him/her a better insight into more advanced concepts and techniques used in individual fields. In addition, knowledge of software development and working with database tools necessary in almost every IT position. This knowledge builds on the knowledge already acquired during the Bachelor's degree. A deeper understanding of the selected algorithms and their efficiency and complexity is also an integral part of the course, which then enables graduates to use appropriate resources and procedures when designing complex programs. During the course of the degree, the student profiles in one of the areas described below.
A successful graduate of the Data Analysis and Processing specialization has expanded his/her knowledge and skills towards advanced data processing during the Master's degree. He or she can distinguish the nature of the data under study, understand the needs of data processing, and can design and use appropriate methods for data analysis. At an engineering level, he/she can explain the principle of the selected methods, can parameterise and adapt them to the needs of the tasks to be solved, and is able to identify their strengths and weaknesses. The graduate has the potential to implement selected methods for data analysis with respect to current trends in the development of software or hardware components. He/she is able to present the methods used and the outputs of the analyses in an appropriate manner.
The graduate of the Database Systems specialization has the knowledge of a Bachelor's degree graduate and furthermore focuses more on the efficiency of working with data as well as other technologies related to database systems (hereinafter DBS). The graduate knows the data structures and their operations used in common DBS, can view the execution plan of an SQL statement, navigate through it and critically assess the quality of the SQL statement execution. The graduate can choose a physical database design suitable for a specific use in an information system. In addition to physical design, the student can use other DBS options to increase the throughput of workload operations. The graduate can use DBS extensions to store and query spatial data, text documents and graph data. In addition, he/she is familiar with other types of DBS such as NoSQL or in-memory DBS.
The graduate of the Computer Graphics and Image Analysis specialization is able to work within the framework of virtual scene modeling, displaying scenes virtual or real, including photorealistic display, animation and composition, using visualization in the form of virtual and augmented reality, and also within the visualization of general interdisciplinary data. He also has knowledge of image and video transmission and compression, camera systems, and removing degradation in images and video sequences. The student understands and is able to apply knowledge in analyzing the content of images, creating 3D models of real scenes using photogrammetry methods. The student is proficient in 3D modeling methods from cameras and laser sensors. The graduate can handle the analysis of video sequences and tracking objects and analyzing their behavior over time. Finally, the graduate is also able to apply deep learning and neural network methods for 2D/3D object detection and recognition, action recognition, anomaly recognition, image segmentation, image reconstruction.
The Computer Systems graduate gained deeper theoretical and practical knowledge of enterprise network environments, including network architecture, advanced network infrastructure management, monitoring, and data center security in the context of recent developments in cloud computing. Graduates have expanded their knowledge and skills in related disciplines, understanding advanced features of operating systems, modular operating systems for robotic and real-time applications and embedded devices, the Internet of Things, and edge computing capabilities including data collection, transmission, and preprocessing.
Graduates of the Software Engineering major are able to participate in software development in all phases of the software life cycle. In particular, in the development of code, design and architecture of SW. He has knowledge of software development such as techniques and methods of requirements gathering, writing, analysis, organization and integration. Understands the differences between architecture design and module design, architectural styles, design patterns and their principles, reference architectures, and techniques for evaluating and developing SW architecture. Furthermore, he/she is able to understand and apply methods of business modeling and workflow systems, especially in terms of their use in the software process; procedures leading to the creation of a software work that meets user requirements in predicted time and cost - SCRUM, RUP; software work testing and software quality assurance.
Graduates of the Theoretical Computer Science major have a deeper knowledge of the design and analysis of efficient algorithms and their computational complexity, proving correctness of algorithms, as well as a deeper knowledge of logic and its applications in computer science and artificial intelligence, for example in natural language processing or for agent communication and decision making in multi-agent systems. They understand algorithm design and have a solid level of proficiency in several programming languages. They have no problem designing and implementing applications with a high degree of parallelism.
Graduate's skills
Graduates of the follow-up master's program are able to apply for any position within software development from programmer to analyst and software architect. Thanks to his/her knowledge, he/she is able to navigate independently in different areas and is able to specify development tasks and work as a team leader. Thanks to the knowledge gained from his/her chosen field, he/she is able to work as a specialist in the field and work not only on development but also on research tasks, solving complex problems with insight and acceptance of the surrounding links and contexts. The graduate of the programme is able to approach the assigned problems creatively and to propose new solutions within the scope of his/her expertise or to adopt working models from other areas and disciplines. He/she is able to fully understand the requirements from practice and effectively design and implement solutions within the software work. Thanks to the choice of professional focus within the study and elective courses, the student is able to cover the basics of other expertise and apply these in his/her job.
Graduate's general competence
The graduate is able to communicate with other team members or customers in specifying assignments, solving problems and delivering product. He/she is also able to manage the work of a team of solvers, set goals, determine strategies, choose alternative solutions, present and defend his/her opinions and chosen solution procedures, communicate with experts in the field in a foreign language, take responsibility for his/her decisions and for the work of the team, study professional literature and further expand his/her knowledge and skills in the fields of each specialization and related fields. This includes the ability to make decisions on technical and economic issues of the field and technical solutions. The student will be able to work independently and creatively in locating information sources in the field of computer science and critically evaluating them. Able to oversee the ethical and societal implications of the development of the field. Can independently lead professional teams, coordinate them and control the results of their work. The graduate is guided in the course of his/her studies to actively use the English language, and will encounter the preparation and formulation of project objectives, grants and technical assignments. He/she will learn how to have active conversations with different staff members in finding and achieving solutions, gain a basic understanding of the financial implications of technical solutions, master different roles in a team of researchers and collaborators, from leading small groups to assisting technical work and activities, and be able to further his/her education.