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
 

Charles University, Faculty of Mathematics and Physics
Ke Karlovu 3, 121 16 Praha 2, Czech Republic
VAT ID: CZ00216208

HR Award at Charles University

4EU+ Alliance