Web and Software Engineering, focused on Software Engineering (1801T044)

Abbreviations

p-sz - obligatory module of common theoretical basis, obligatory for all specialisations,
pv-ob - elective branch module, obligatory for selected branches,
pv-za - elective specialisation module, obligatory for selected specialisations,
p-hu - obligatory humanity module,
p-em - iobligatory economical-management module,
p-pr - obligatory project,
pv-hu - elective humanity module,
v - elective module.

module (abbreviation) dimension completion type of module lecturer recom. year
Statistics for Informatics ( MIE-SPI ) 4+1 z,zk p-sz Blažek, Ph.D. 1.
Parallel Algorithms and Systems ( MIE-PAR ) 3+1 z,zk p-sz prof. Tvrdík 1.
Systems Theory ( MIE-TES ) 2+1 z,zk p-sz prof. Moos 1.
Design Patterns and OOP ( MIE-DPO ) 2+1 z,zk pv-za Buš, Ph.D. 1.
Web Services and Middleware ( MIE-MDW ) 2+1 z,zk pv-ob Vitvar, Ph.D. 1.
Cybernality ( MIE-KYB ) 2+0 zk p-hu doc. Jirovský 1.
Mathematics for Informatics ( MIE-MPI ) 4+1 z,zk p-sz doc. Šolcová 1.
Formal Methods and Specifications ( MIE-FME ) 2+1 z,zk pv-za Dr. techn. Ratschan 1.
Advanced Database Systems ( MIE-PDB ) 2+1 z,zk pv-za Valenta, Ph.D. 1.
Advanced Information Systems ( MIE-PIS ) 2+1 z,zk pv-za prof. Mišovič 1.
elective module 2+1 z,zk v 1.
elective module 2+1 z,zk v 1.
Project Management ( MIE-PRM ) 1+2 z p-em Vala 1.
Problems and Algorithms ( MIE-PAA ) 3+1 z,zk pv-ob Schmidt, Ph.D. 2.
User Interface Design ( MIE-NUR ) 2+1 z,zk pv-za Žikovský, Ph.D. 2.
Runtime systems ( MIE-RUN ) 2+1 z,zk pv-za Vraný 2.
Master project ( MIE-MPR ) z p-pr 2.
elective module 2+1 z,zk v 2.
elective module 2+1 z,zk v 2.
Information Security ( MIE-IBE ) 2+0 zk p-em Čermák, CSc. 2.
elective module 2+1 z,zk v 2.
IT Support to Business and CIO Role ( MIE-CIO ) 3+0 zk p-em prof. Dohnal 2.
obligatory humanity module zk pv-hu 2.
Master Thesis (MIE-DIP) z p-pr 2.

MIE-CIO - IT Support to Business and CIO Role

Annotation

Students are introduced to the trends and challenges of ICT management. The module is focused on ICT support for the company business. Students are introduced to the importance of communication with business that will be illustrated on CRM.

Lectures program

  1. Introduction. IT trends and business support. CIO and CEO relationship. ICT Management (categorization, management models, services, processes).
  2. CIO role, responsibility. CIO Decision Cycle (business goals, innovation, strategy, plan, execution, measurement).
  3. The value chain and ICT support. Marketing and selling processes, business cycle.
  4. CIO priorities: Team management. Understanding of the business environment. ICT vision. Shape ICT demand and communicate expectations. IT Governance.
  5. CIO priorities: Bring business and ICT strategies together. Communication of the ICT value to business. Risk Management.
  6. CIO priorities: Creation of a new ICT. Change in the profile of ICT people. ICT competencies (technical, business, behavioral).
  7. ICT business cases on workforce (time management, meeting management, delegation).
  8. ICT business cases on workforce (appraisal, coaching, mentor, mentee).
  9. CRM as an example of ICT support of business processes. CRM and enterprise culture.
  10. CRM processes.
  11. CRM Technology. CRM innovation and the role of ICT.
  12. Specific tasks of ICT management (sourcing, cost cutting).
  13. Invited lecturer – CIO of a selected company, discussion.

MIE-DPO - Design Patterns and OOP

Annotation

The goal of this module is to provide students with a deeper, language-independent notion of object programming by means of catalog of the best software design practices – design patterns. The lectures are dedicated to explanation of design patterns at first by means of language independent graphical UML models. Then implementation details for the most often used object oriented languages C++, Java and C\# are discussed.

Lectures program

  1. Agile object oriented software design.
  2. Design patterns structure and organization.
  3. Creational patterns.
  4. Structural patterns.
  5. Behavioral patterns.
  6. Subsystem and component architecture patterns.
  7. Concurrency patterns.
  8. Resource acquisition patterns.
  9. Refactoring.

MIE-FME - Formal Methods and Specifications

Annotation

The goal of the module is to provide students with the ability to apply formal reasoning in software development. On one hand, this includes the ability to base their own software development activities on sound reasoning, even within an environment that does not systematically employ formal methods. On the other hand, this includes the ability to understand and use automated techniques and tools for supporting formal methods within the software development process.

Lectures program

  1. Predicate logic as a specification language.
  2. Proof techniques for predicate logic.
  3. [2] Basic techniques for giving formal semantics to programming language: Operational semantics, denotational semantics, axiomatic semantics.
  4. Hoare Logic (HL) and its practical use.
  5. HL: Partial vs. total program correctness. Loop invariants.
  6. HL: Termination. Correctness of subroutine calls.
  7. HL: Formal correctness of object-oriented programs.
  8. Formal methods and specifications for reactive systems. Temporal logics.
  9. Manual verification of reactive systems.
  10. Automatic verification of reactive systems: bounded model checking.
  11. Automatic verification of reactive systems: unbounded model checking.
  12. Formal methods for embedded systems.

MIE-IBE - Information Security

Annotation

The field of information security governance in modern organizations and companies is of growing importance. The module is to provide students a good overview of methods and standards for informstion security. The aim of the module is to let the students understand the importance of information security governance, to provide them sufficient arguments for the support of ISMS implementation process and for successfull implementation and/or management of ISMS.

Lectures program

  1. Management, management and governance, IT management.
  2. Information security management system, IS/ICT governance, international standards on IS/ICT security, legislation in the Czech Republic.
  3. Risk management.
  4. Physical security, access control system, information resource valuation, internal and external threats, evaluation of countermeasures,
  5. Administration security (guidelines, training).
  6. Disaster recovery planning, business continuity management, incident management,
  7. IS/IT audits, application security testing, penetration testing, certifications.
  8. Certification according ISO 27001, Best practises (ISO 17999),
  9. Information security trends.

MIE-KYB - Cybernality

Annotation

The goal of this module is to provide knowledge of cyberspace attacks, systems for their monitoring and analysis, and an overview of a corresponding legislative. It also familiarizes students with principles of network attacks and means how to defend against them at the organization level.

Lectures program

  1. Basic leslative norms relevant for operation of computer systems and networks, basic notions.
  2. Classification of attacks.
  3. Systems for computer network operation monitoring.
  4. Cybernetic attacks, psychologic and social aspects of a cybernetic attack, life cycle of exploiting the system weaknesses.
  5. Hackers - hacker comunity, types and motivations of the hacker behaviour.
  6. Cyberterorism, its demonstration and methods.
  7. Principles of infoware, the role of intelligent agents, strategic information warfare.
  8. Principles of attacks on the web, trends of attacks and attackers, phases of an attack, coordination and management of an attack.
  9. Basic types of attacks - DoS, forged node, manipulation with address sequences.

MIE-MDW - Web Services and Middleware

Annotation

Modern applications require a certain level of flexibility with respect to changes that may occur in requirements on applications. From this reason, there are new types of application architectures with services exposing application functionality that allow to configure application processes. Another important requirement is to provide scalable, secure, and reliable infrastructures for applications. This module provides information about concepts, architectures, and technologies for the development of such applications.

Lectures program

  1. Current and future roles of web services in ICT industry.
  2. Objects, components, services. SOA.
  3. Web Service Description Language (WSDL) and selected WS-* specifications.
  4. Representational State Transfer (REST) and its RESTful realization, comparison with WSDL.
  5. Process modelling workflow patterns, Business Process Execution Language (BPEL).
  6. Middleware architectures: ESB, P/S, MQ.
  7. Reliability and scalability of applications.
  8. P2P systems, Skype case study.
  9. Commercial software model vs. SaaS model.
  10. Cloud computing, architectures of modern applications.
  11. Infrastructure as a Service (IaaS), distributed processing and distributed file systems.
  12. Platform as a Service (PaaS), Google case study.
  13. Software as a Service (SaaS), SalesForce and GoodData case study.

MIE-MPI - Mathematics for Informatics

Annotation

Mathematics as a language for description of the world is a key discipline for an informatics engineer. The aim of this module is introduce students to the relevant parts of modern mathematics that form the theoretical background of many informatics disciplines.

Lectures program

  1. [2] Universal algebra: groups, finite groups, Cayley tables, group types, permutation, alternating, cyclic, and symmetry groups, normal subgroups.
  2. Finite fields, prime order of field, rings and their properties, integral domain, ideal. Lattices.
  3. Introduction to category theory, classes of objects, classes of morphisms and its properties, examples of categories: grupoid, category of all lattices, category of all commutative groups, category of all integral domains, category of all relations. Homomorphisms.
  4. Selected problems of graph theory, types of Hamiltonian problems. Algebraic solutions of combinatorial problems, Polya enumeration theorem.
  5. Algebra and algorithms (Algorithms for calculations of polynom roots - Newton' method, Lehmer-Schur's method, etc.).
  6. Convex sets, convex hull, pure convex set, theorem on partition of convex sets, Minkowski theorem on projection.
  7. Selected problems of number theory, quadratic congruence, Gauss algorithms. Special primes - factorial, palindromic, cyclic, Gauss', Eisenstein's primes. Examples of applications.
  8. Properties of Fermat primes, Little Fermat Theorem, primality tests, Pépin test, number theory and geometry, constructability of polygons.
  9. Selected numerical methods, Lagrange and Hermite interpolation, numerical integration, numerical solution of ordinary differential equations, calculating of eigenvalues of matrices, methods of solving of linear equations systems.
  10. Fast algorithms: multiplication, numerical searching of square roots, Fourier transformation, Fermat transformation.
  11. Axiomatic systems and their properties, recursive functions, proofs in the axiomatic system, examples of axiomatic systems, Peano's arithmetics, von Neumann's model of numbers.
  12. Special logics, multi-valued logics, modal logics, fuzzy logics.

MIE-NUR - User Interface Design

Annotation

The module deals with the area of human-computer interaction with the emphasis on theoretical cognitive theory background, design methodologies. and latest technological advances in implementations of human-computer interaction.

Lectures program

  1. Human-Computer Interaction (HCI) and User Interface (UI), definition, examples, history.
  2. Information and UI, various levels of inputs and outputs, user skills, ways of interaction. Standards for UI.
  3. Cognitive aspects of HCI theories, human sensors, information processing in human brain.
  4. HCI theories (descriptive, predictive, Norman-Gulfs).
  5. Parameters of human perception, limitations, use of perceptual issues in UI design.
  6. User model, conceptual model of UI, personae.
  7. Formal methods of dialog description (grammars, state diagrams).
  8. Software tools and technologies for UI design.
  9. Design cycles of UI design, known procedures. Scenarios. User support within UI (error handling).
  10. Methods of UI evaluation and testing.
  11. Speech UI. Speech synthesis and recognition.
  12. Modality and multimodal UI.
  13. Special UIs (3D, mobile, and others).

MIE-PAA - Problems and Algorithms

Annotation

Many practical tasks are computationally infeasible. Students will learn to distinguish tasks where the complexity grows too fast with the task size from those which are undecidable independently of size. They will learn fast algorithms for exact and, primarily, approximate solution. Some of the more advanced ones are inspired by processes in nature and sometimes referred to as softcomputing. A series of homeworks will lead students from very simple tasks to applications of advanced heuristics on a practical problem.

Lectures program

  1. Discrete optimization, examples of practical tasks. Combinatorial problems. Algorithm complexity, problem complexity.
  2. State, state space, search space. Basic exact search methods.
  3. Decidable problems. models of computation. The classes P and NP. Polynomial hierarchy. The classes PO and NPO.
  4. The notion of completeness. Complexity comparison techniques. The classes NP-complete and NP-hard. The structure of NP and NPO.
  5. Deterministic approximation algorithms. Classification of approximative problems. Pseudopolynomial algorithms. Randomization and randomized algorithms.
  6. Practical deployment of heuristic and exact algorithms. Experimental evaluation.
  7. Simple local heuristics in state space and search space.
  8. Simulated annealing.
  9. Simulated evolution: taxonomy, genetic algorithms.
  10. Advanced genetic algorithms: competent GA, fast messy GA, the selfish gene method. Applications to multicriterial optimization.
  11. Stochastic optimization: models and applications. Bayesian optimization.
  12. Tabu search.
  13. Global methods, taxonomy of decomposition-based methods. Exact and heuristic global methods, the Davis-Putnam procedure seen as a global method.

MIE-PAR - Parallel Algorithms and Systems

Annotation

The aim of the course is to provide students with the theoretical background for parallel algorithmization that lets them design and implement algorithms for parallel systems, from multicore systems and systems-on-chip to clusters, understand their behavior and estimate performance characteristics.

Lectures program

  1. Performance characteristics of parallel computations.
  2. Models of parallel systems with shared memory.
  3. Interconnection networks of parallel computers.
  4. Embeddings and simulations of interconnection networks.
  5. Models for interprocessor communication and routing.
  6. Collective communication algorithms.
  7. Fundamental parallel algorithmics.
  8. Parallel sorting algorithms.
  9. Parallel algorithms for linear algebra.
  10. Parallel combinatorial space search.

MIE-PDB - Advanced Database Systems

Annotation

The course provides students with knowledge that enables them to participate in the design of large database systems (relational, object-relational or object-based). The aim of the module is not to teach SQL tuning in a particular DB using a particular tool, but to equip them with knowledge of evaluation and optimization methods. These are in all DB engines practically the same. The module also deals with the problems of distributed DB systems and data warehouses. The ability to properly design and deploy data warehouses in organizations is highly valued.

Lectures program

  1. Object and object-relational database systems.
  2. [2] Object-oriented features of the SQL language, their impact on the schema design.
  3. Query evaluation methods in a relational database engine.
  4. Query optimization in relational database systems.
  5. The other advanced features of the SQL language.
  6. Distributed database systems.
  7. Integration of data sources.
  8. Query evaluation in distributed databases.
  9. Architecture of data warehouses.
  10. Queries in data warehouses.
  11. Modelling and design of data warehouses.

MIE-PIS - Advanced Information Systems

Annotation

An important module for understanding the role, functionality, architectures and implementation methods for information systems in enterprises and the public sector administration. Key for understanding of the patterns and requirements of connection between the world of ICT and business in modern institutions and firms.

Lectures program

  1. The business process logic and its computerization by an enterprise information system.
  2. Structured and object oriented paradigm for modeling of enterprise functionality.
  3. A classical computer logic resulting into application architecture of enterprise business software.
  4. Implementation of information systems, laws of a successful implementation.
  5. Information systems of consulting companies, e-business.
  6. Information systems for an entire and partial solution of a reduced and extended ERP process set conception.
  7. A service oriented enterprise conception and computerization logic of enterprise services.
  8. Agile and adaptive information systems based on artificial intelligence methods.
  9. Partial solutions for the SCM (Supply Chain Management) and ECM (Enterprise Content Management) process sets.
  10. Partial solutions for the CRM (Customer Relationship Management) and marketing process sets.
  11. Computerization of enterprise decision processes, the BI (Business Intelligence) set.
  12. Computerization of public government and processes of universities.
  13. Information systems, state-of-the-art, future trends.

MIE-PRM - Project Management

Annotation

Project management and project thinking became an integral part of management of projects of all kinds (research, development, finances, engineering, etc.). Knowledge of this field takes an important places in the process of recruitment. The aim of this subject is to acquaint student with all of the aspects of project management, refer to the relatated areas, introduce most important methodologies of PM and prepade students for the basic certification of theoretical knowledge of PM (e.g., IPMA – D grade). The most common and important software tools used in project management will also be introduced.

Lectures program

  1. Project management, project, process. Definition of project participants, aims, metrics, quantification, planning, budget.
  2. Role of the project manager (presentation, levels of communication, duties). Life cycle and stages of a project.
  3. Project documents. Pre-business and business stages of a project.
  4. Preparation and realization stages of a project. Operation and closure of a project.
  5. Stabilization of a project, feedback, control mechanisms (methodical, contractual, or matter-of-fact supervision), risk management.
  6. Contractual arrangement of a project, business negotations, quality of delivery (SLA, security), warranty.
  7. Demand, definition of services, evaluation of proposals, the act of public contracts, evaluation criteria.
  8. Financial control.
  9. Project team management - human resources (roles, CIO, conducting a meeting, written records, tasks).
  10. Management of large projects (by area, by volume). Multiproject enviroment (reporting, coordination).
  11. Principles of methodology of poject management – Prince2, PMI. Quality management of project according to norms ISO 10006, ISO 9001.
  12. Setting up project management to company (linear x project management, process management).
  13. Particularities of project management of IS development.

MIE-RUN - Runtime Systems

Annotation

The aim is to complete education in the field of programming languages with the knowledge of runtime systems and virtual machines for different kinds of programming languages.

Lectures program

  1. Runtime for C/C++, static vs. dynamic linking, position independent code, memory management.
  2. Calling conventions, system calls, signals and exceptions.
  3. Virtual machines for high-level languages: JVM, MSIL, Squeak, SELF.
  4. Organization of object heap. Object table. Immediate values.
  5. Memory management, basic garbage collection methods.
  6. Bytecode and its interpretation.
  7. Just-in-time compilations, method lookup optimizations techniques.
  8. Advanced optimization techniques: inlining, custom-compilation. SELF SIC.
  9. Thread implementation. Green vs. Native threads.
  10. JVM: mapping of threads and synchonization primitives to OS resources.
  11. Exceptions - implementation in C++, JVM, Smalltalk.
  12. Security mechanisms in VMs. Verification of the bytecode. Security Manager.
  13. Foreign function calls. Cross-language calls.
  14. VM Bootstrap. metacircular VM.

MIE-SPI - Statistics for Informatics

Annotation

The aim of the module is to provide an introduction to probability, information theory and stochastic processes. Furthermore, the module brings knowledge needed for data analysis and processing. It provides students with knowledge of computational methods and gets them acquainted with the use of statistical software.

Lectures program

  1. Basics of Probability Theory: Probability Space, Definitions, Properties, Sigma-continuity, etc.
  2. Basics of Probability Theory: Conditional Probability, Independence, Commented Examples
  3. Basics of Probability Theory: Random Variables, Cumulative Distribution Function, Probability Density Function, Dependence, Random Vectors, Marginal and Joint Distribution
  4. Basics of Probability Theory: Conditional Distribution, Conditional Expectation, Characteristics of Random Variables, Selected Examples of Probability Distributions
  5. Basics of Probability Theory: Poisson Process, Simulation Methods, Generating Functions
  6. Basics of Probability Theory: Strong Law of Large Numbers (SLLN), Central Limit Theorem (CLT), Large Deviations, Entropy
  7. Discrete-time Markov Chains with Finite State Space: Basic Concepts, Irreducibility and Periodicity of States, Absorption Probability, Stopping Times
  8. Discrete-time Markov Chains: Examples: Generalized Random Walk, Random Walk on a Graph, Gambler's Ruin, Coupon Collector
  9. Discrete-time Markov Chains: Asymptotic Stationarity, Uniqueness and Existence of Stationary Distributions, Convergence
  10. Discrete-time Markov Chains: Branching Processes, Birth & Death processes
  11. Monte Carlo Methods: Markov Chain Monte Carlo (MCMC) – Basic Concepts and Examples
  12. Monte Carlo Methods: Fast convergence of MCMC, Propp-Wilson Algorithm, Sandwiching, Simulated Annealing
  13. Monte Carlo Methods: Monte Carlo Estimates, Monte Carlo Tests, Reduction of Variance
  14. Stochastic Processes: Definition, Distribution Function, Characteristics of Stochastic Processes
  15. Stochastic Processes: Characteristics and Classification of Stochastic Processes, Examples
  16. Basics of Queueing Theory: Elements of Queueing Systems, Request Arrival Process, Queueing Policy, Service Policy, Kendall Notation
  17. Stochastic Processes: Application of the Poisson Process to Model Arrivals in Queueing Systems
  18. Stochastic Processes: Application of the Poisson Process in Queueing Theory
  19. Stochastic Processes: Non-homogeneous Poisson Process, Spatial Poisson Process, M/G/infinity Queue
  20. Continuous-time Markov Chains: Jump Rates, Timing Jumps by Poisson Process Arrivals, Kolmogorov Equations
  21. Basics of Queueing Theory: M/M/m Queues, Queueing Systems
  22. Basics of Queueing Theory: Open and Closed Queueing Systems
  23. Bootstrap Methods: Properties of Bootstrap Approximations, Bootstrap Correction of Estimation Bias
  24. Bootstrap Methods: Bootstrap Confidence Intervals, Permutation Bootstrap
  25. Bootstrap Methods: Bootstrap Confidence Intervals for Parameters in Linear Regression
  26. Estimation of Probability Density Functions: Histogram, Kernel Estimates, Maximum Likelihood Estimation, Estimation by the Method of Moments

MIE-TES - Systems Theory

Annotation

We are surrounded by phenomena and things that are too complex to be completely and in detail described, understood, and analyzed. However, it turns out that many of them, even though of various nature, show similar properties and behaviors: for example, the number of wolfs hunted down in Canada has similar time characteristics as the oscillations of an electronic relaxation oscillator. The structure of a system, i.e., the way how it is assembled from components, often plays substantial role. Students learn to work with these general rules of law both for the analysis of behavior of such systems and for their construction.

Lectures program

  1. System definition. Structural and functional concept of a system.
  2. Compositional and dynamic systems. Hard and soft systems.
  3. Identification of a system.
  4. Structural tasks of the system analysis. Paths and feedbacks.
  5. Tasks of decomposition and composition of a system and tasks of system goals.
  6. System behavior, behavior models, the notion of a process.
  7. Formalisms for the analysis of model behavior: Petri nets, decision tables.
  8. Bulk analysis and other methods of system analysis.
  9. Soft systems, methods of their analysis.
  10. Selected methodologies of system design, the SSADM method.
  11. System synthesis with discrete time.
  12. Decision and decision processes.
  13. Information in a system and in its neighborhood, system regularity, system viability.


Last modified: 1.10.2010, 16:07