Software and Data Engineering
Coordinated by: Department of Software Engineering
Study branch coordinator: Doc. RNDr. Tomáš Skopal, Ph.D.
Specializations:
- – Software engineering
- – Software development
- – Web engineering
- – Database systems
- – Big data processing
The study branch Software and data engineering aims at expertise in analysis, design and development of complex software solutions, and systems focused on big data processing. The portfolio of courses provided in the study covers a number of technological platforms, from classic, web-based, to modern cloud and distributed solutions. A required part of the study is a work on large software project where students apply not only the theoretical knowledge and technological skills but also team work abilities.
The graduate gains a deep knowledge of software and data engineering based on her/his specialization. With the specialization Software engineering the graduate is able to analyse requirements for software solutions, to design architectures, and to lead the development process. The specialization Software development prepares the graduate for leading a team of SW developers. The development of internet applications is covered by the specialization Web engineering. The graduate of Database systems is able to design schemas of databases and to implement complex database applications. With the Big data processing specialization the graduate is prepared for the role of data scientist with abilities in data mining and related data analytics knowledge.
4.1 Obligatory courses
Code | Subject | Credits | Winter | Summer | |
NTIN090 | Introduction to Complexity and Computability | 5 | 2/1 C+Ex | — | |
NTIN066 | Data Structures I | 5 | 2/1 C+Ex | — | |
NPRG027 | Credit for Project | 6 | 0/4 C | 0/4 C | |
NPRG023 | Software Project | 9 | 0/6 C | 0/6 C | |
NSZZ023 | Diploma Thesis I | 6 | 0/4 C | 0/4 C | |
NSZZ024 | Diploma Thesis II | 9 | 0/6 C | 0/6 C | |
NSZZ025 | Diploma Thesis III | 15 | 0/10 C | 0/10 C |
4.2 Elective courses
The student needs to obtain at least 48 credits for the courses from the following set:
Code | Subject | Credits | Winter | Summer | |
NDBI001 | Query Languages I | 5 | 2/2 C+Ex | — | |
NDBI006 | Query Languages II | 5 | — | 2/2 C+Ex | |
NDBI016 | Transactions | 3 | — | 2/0 Ex | |
NDBI019 | Stochastic Methods in Databases | 3 | — | 2/0 Ex | |
NDBI021 | Customer preferences | 5 | — | 2/2 C+Ex | |
NDBI023 | Data Mining | 9 | — | 4/2 C+Ex | |
NDBI034 | Multimedia Retrieval | 4 | 2/1 C+Ex | — | |
NDBI040 | Modern Database Concepts | 5 | 2/2 C+Ex | — | |
NDBI042 | Data Visualization Techniques | 3 | — | 2/1 C+Ex | |
NMAI060 | Probabilistic Methods | 3 | 2/0 Ex | — | |
NPFL054 | Introduction to Machine Learning | 5 | 2/2 C+Ex | — | |
NPRG014 | Concepts of Modern Programming Languages | 3 | 0/3 C | — | |
NPRG024 | Design Patterns | 3 | — | 0/2 MC | |
NPRG039 | Advanced aspects and new trends in XML | 5 | 2/1 C+Ex | — | |
NPRG042 | Programming in Parallel Environment | 6 | — | 2/2 C+Ex | |
NPRG043 | Recommended Programming Practices | 6 | — | 2/2 C+Ex | |
NPRG054 | High Performance Software Development | 5 | — | 2/2 C+Ex | |
NPRG059 | Advanced Programming Praxis | 2 | 0/1 C | — | |
NSWI021 | Computer Networks II | 3 | — | 2/0 Ex | |
NSWI035 | Principles of Distributed Systems | 3 | 2/0 Ex | — | |
NSWI041 | Introduction to Software Engineering | 5 | — | 2/2 C+Ex | |
NSWI045 | TCP/IP Protocol Suite | 3 | — | 2/0 Ex | |
NSWI068 | Object and Component Systems | 5 | 2/2 C+Ex | — | |
NSWI072 | Data Compression Algorithms | 3 | 2/0 Ex | — | |
NSWI073 | Modern Networking Solutions | 3 | 0/2 C | — | |
NSWI080 | Middleware | 5 | — | 2/1 C+Ex | |
NSWI101 | System Behaviour Models and Verification | 6 | 2/2 C+Ex | — | |
NSWI108 | Web Semantization | 5 | 2/2 C+Ex | — | |
NSWI126 | Advanced Tools for Software Development and Monitoring | 3 | — | 0/2 C | |
NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
NSWI131 | Performance Evaluation of Computer Systems | 5 | — | 2/1 C+Ex | |
NSWI144 | Data Integration and Quality | 4 | 2/1 C+Ex | — | |
NSWI145 | Web Services | 5 | — | 2/2 C+Ex | |
NSWI149 | Software Engineering in Practice | 3 | — | 2/0 C | |
NSWI150 | Virtualization and Cloud Computing | 3 | 2/0 Ex | — | |
NSWI152 | Cloud Application Development | 3 | — | 0/2 C | |
NSWI153 | Advanced Technologies for Web Applications | 5 | — | 2/2 C+Ex | |
NTIN043 | Formal Foundations of Software Engineering | 5 | 2/2 C+Ex | — | |
NTIN067 | Data Structures II | 3 | — | 2/0 Ex | |
NPFL114 | Deep Learning | 7 | — | 3/2 C+Ex |
4.3 State Final Exam
In addition to the two examination areas that are obligatory for all study branches, there are two additional obligatory areas based on the selected specialization as indicated below. The student will select the last examination area from the following list. In total, each student will get five questions.
Examination areas
- 1. Software analysis and architectures (obligatory for the specialization Software engineering)
- 2. Advanced programming (obligatory for the specializations Software engineering and Software development)
- 3. Software technologies (obligatory for the specialization Software development)
- 4. Web technologies (obligatory for the specialization Web engineering)
- 5. Databases - formal foundations and query languages (obligatory for the specializations Web engineering and Database systems)
- 6. Databases - implementation and administration (obligatory for the specialization Database systems)
- 7. Big and unstructured data processing (obligatory for the specialization Big data processing)
- 8. Data mining (obligatory for the specialization Big data processing)
Knowledge requirements
1. Software analysis and architectures
SW development processes, development phases. Business processes and their modeling using BPMN. UML and its use for analysis and design of structure and behavior of SW. Design patterns. SW testing, impact and change analysis. SW project planning, cost estimation, levels of project management. Legal aspects of SW, principal legal environment for IT projects. Types of SW architecture. Modeling and documentation of SW architecture. Classification of SW architecture quality attributes, their description using scenarios and tactics. Service oriented architectures. Algebraic methods, many sorted algebras, initial models. Formal principles of the UML language. OCL as a specification language, formal base of specification. Formal principles of RDF and OWL, the description logic.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
NSWI041 | Introduction to Software Engineering | 5 | — | 2/2 C+Ex | |
NTIN043 | Formal Foundations of Software Engineering | 5 | 2/2 C+Ex | — |
2. Advanced programming
Object concepts of modern languages. Concepts of classless languages. Generic programming and metaprogramming, generics and templates, policies, traits, type inference. Modern constructs of programming languages. Object references and lifetime. Advanced aspects of imperative languages. Exceptions, exception-safe programming. Implementation of object properties, runtime support, calling conventions, garbage collection. Modern language constructs and code performance. Design patterns. Scripting languages, prototype-based languages. Domain-specific languages. Functional programming. Principles of code quality, best practices. Refactoring. Testing, debugging, monitoring.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NPRG059 | Advanced Programming Praxis | 2 | 0/1 C | — | |
NPRG014 | Concepts of Modern Programming Languages | 3 | 0/3 C | — | |
NPRG024 | Design Patterns | 3 | — | 0/2 MC | |
NPRG043 | Recommended Programming Practices | 6 | — | 2/2 C+Ex | |
NSWI068 | Object and Component Systems | 5 | 2/2 C+Ex | — |
3. Software technologies
Operating system architectures, process management, memory management, communication and synchronization, parallelism, virtualization, paging. File systems, access rights and security. Portability, multiplatform applications. Testing and monitoring of performance and functionality. Architectures of web applications, server-side and client-side scripting, cooperation with database systems. Architecture of data servers, transactions, performance optimization. Cluster, Grid, and Cloud. IaaS, PaaS, and SaaS. MapReduce. Load balancing, high availability.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NSWI126 | Advanced Tools for Software Development and Monitoring | 3 | — | 0/2 C | |
NSWI153 | Advanced Technologies for Web Applications | 5 | — | 2/2 C+Ex | |
NDBI036 | A Practical Approach to Database Systems | 4 | 2/1 C+Ex | — | |
NSWI150 | Virtualization and Cloud Computing | 3 | 2/0 Ex | — |
4. Web technologies
Overview of basic web technologies. Network services for web technologies. Web services. Architecture of client-server applications, server-side and client-side scripting, web frameworks. Database systems in web applications, NoSQL databases, multimedia databases. Indexing and document searching, principles of web search engines. Linked Data, integration of semantic data to web pages. Security of information systems in the Internet environment, authentication, authorization, security models, cryptography basics, data security.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NSWI130 | Software System Architectures | 5 | 2/2 C+Ex | — | |
NSWI153 | Advanced Technologies for Web Applications | 5 | — | 2/2 C+Ex | |
NSWI145 | Web Services | 5 | — | 2/2 C+Ex | |
NDBI034 | Multimedia Retrieval | 4 | 2/1 C+Ex | — | |
NPRG043 | Recommended Programming Practices | 6 | — | 2/2 C+Ex |
5. Databases - formal foundations and query languages
Relational calculi, relational algebras. Relational completeness. Safe expressions, equivalences of relational query languages. Transitive closure of relation. Semantics of SQL. SQL standards. Object extension of relational data model. SQL/XML. Text databases – Boolean and vector model. Searching in text collections: Boolean and vector indexes, signatures, query result ranking. Querying XML data, similarity of XML documents. Datalog. Deductive databases. Recursion in SQL. Tableau queries. Preference modeling and querying, top-k algorithms, Fuzzy Datalog, recommending systems. RDF data model, SPARQL query language, similarity search in multimedia databases, metric indexes for similarity search.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NDBI001 | Query Languages I | 5 | 2/2 C+Ex | — | |
NDBI006 | Query Languages II | 5 | — | 2/2 C+Ex | |
NDBI021 | Customer preferences | 5 | — | 2/2 C+Ex | |
NDBI040 | Modern Database Concepts | 5 | 2/2 C+Ex | — | |
NDBI038 | Searching the web | 4 | — | 2/1 C+Ex |
6. Databases - implementation and administration
Architectures of database systems. Models and properties of transactions: locking protocols, time stamps. Transaction isolation, resource allocation. Distributed transactions. Error/failure recovery, journals. Distribution with horizontal fragmentation, implementation of NoSQL databases, CAP theorem. Indexing relational data. Spatial access methods. Algorithms for implementation of relational operations and aggregation functions. Query evaluation and optimization. Indexing XML data. Query evaluation in XML query languages. Data compression: text models, coding, Huffman coding, arithmetic coding, LZ algorithms, bitmap compression, sparse matrices compression, Burrows-Wheeler transformation.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NDBI016 | Transactions | 3 | — | 2/0 Ex | |
NPRG039 | Advanced aspects and new trends in XML | 5 | 2/1 C+Ex | — | |
NSWI072 | Data Compression Algorithms | 3 | 2/0 Ex | — | |
NSWI144 | Data Integration and Quality | 4 | 2/1 C+Ex | — | |
NDBI040 | Modern Database Concepts | 5 | 2/2 C+Ex | — | |
NTIN066 | Data Structures I | 5 | 2/1 C+Ex | — |
7. Big and unstructured data processing
Distribution with horizontal fragmentation, implementation of NoSQL databases, CAP theorem. Big Data management - distribution, scalability, replication, transactions. MapReduce. Key-value storages. Column storages. Document storages. Models for fulltext querying - vector, Boolean, probabilistic models. Data compression: text models, coding. Similarity search in multimedia databases, metric indexes for similarity search. Data visualization techniques. RDF(S) models, description and dynamic logic, web query languages, model of web semantization.
Recommended coursesy
Code | Subject | Credits | Winter | Summer | |
NDBI043 | Text Search Techniques | 3 | — | 2/0 Ex | |
NDBI040 | Modern Database Concepts | 5 | 2/2 C+Ex | — | |
NDBI034 | Multimedia Retrieval | 4 | 2/1 C+Ex | — | |
NDBI042 | Data Visualization Techniques | 3 | — | 2/1 C+Ex | |
NSWI108 | Web Semantization | 5 | 2/2 C+Ex | — |
8. Data mining
Basic principles of database systems, data warehouses and OLAP technology. Data mining – data preprocessing, concept description techniques, methods for mining association rules, methods for data classification and prediction, cluster analysis methods, data mining in database systems. Statistical methods for data mining. Discovery of different types of dependencies. Bayesian analysis, bayesian networks. Probabilistic models of information retrieval. Methods of learning for classification and regression. Support Vector Machines and kernel functions. Experiment evaluation. Data visualization techniques.
Recommended courses
Code | Subject | Credits | Winter | Summer | |
NDBI023 | Data Mining | 9 | — | 4/2 C+Ex | |
NDBI019 | Stochastic Methods in Databases | 3 | — | 2/0 Ex | |
NAIL029 | Machine Learning | 3 | — | 2/0 Ex | |
NDBI042 | Data Visualization Techniques | 3 | — | 2/1 C+Ex |