• To give an overview of the systems engineering discipline, to introduce the main principles and history.
• To describe the nature of life cycle and its role in systems engineering.
• To explain the role of requirements analysis and different aspects of requirements.
• To give an overview of different types of specifications, to learn how to use specifications throughout the design process.
• To introduce architectural design and its implications.
• To learn about systems testing, maintenance and management.
• To get acquainted with project management principles, version management and quality assurance.
• To learn how to develop complex hardware-software systems.
Having completed the course, a student:
• has an understanding about the systems engineering principles and knows the terminology;
• recognizes the need for a disciplined approach to system development;
• knows different requirements analysis techniques and knows how to apply one of a range of techniques to elicit and then describe the requirements for a particular system;
• recognizes the characteristics of a high quality specification and can create a high quality specification of a given system;
• knows how to select and implement an appropriate approach to design for a range of possible applications;
• recognizes the range of tests appropriate for each stage of the systems life cycle;
• can select an appropriate combination of tests for ensuring the quality of a system;
• understands the nature of maintenance in computer systems engineering;
• recognizes and knows how to address the major problems of project management in computer engineering including multi-disciplinary issues;
• knows the main design steps for designing complex computer-based systems.
• Principles, history and terminology of systems engineering discipline, Life cycle and its role in systems engineering.
• Requirements analysis and different aspects of requirements.
• Specifications, use of specifications throughout the design process.
• Architectural design and its implications.
• Systems testing, maintenance and management.
• Project management principles, version management and quality assurance.
• Development steps of complex hardware-software systems.
The primary goals are:
1. Give the students a basic understanding of ideas following which data records are organized into different data structures and stored into computer memory.
2. Describe and explain the basic algorithms used on different data structures for main data processing operations like inserting and removing of records, searching a specific record, sorting, etc.
3. Give an overview about theoretical concepts like abstract types, complexity, etc.
4. Improve the students’ practical programming skills in C.
After successfully completing this course, the student:
• is acquainted with the most used data structures applied to store data in computer memory;
• is acquainted with the fundamental data processing algorithms on those structures;
• knows the reasons affecting the data processing speed;
• is able to select data structures best suited for solution of a concrete data processing problem;
• is able to select algorithms best suited for solution of a concrete data processing problem;
• is able to implement all this in a program written in C.
1. Refreshing skills in C-programming.
2. Data structures and their building principles: arrays and linked structures. Operations on data structures.
3. Some specific data structures: sparse matrixes, circular buffers, etc.
4. Abstract data structures. List, stack, queue, dictionary.
5. Algorithm complexity analyses.
6. Recursion and recursive algorithms.
7. Sequental search and binary search.
8. Trees. Tree balancing problem. AVL-trees.
9. Self-organizing trees.
10. B-trees and red-black trees. B*-trees.
11. Structures for data stored in external memory. B+ trees.
12. Digital search trees and tries. Existence tables. Trinary trees.
13. Priority queue and heap. Leftist heaps. Binomial queues.
14. Hashing. Hash functions. Separate chaining and open addressing. Extendible hashing.
15. Simple sorting algorithms. Shell sort. Quick sort. Merge sort. Radix sort. Heap sort.
16. Pattern matching problem. Boyer-Moore method. Rabin-Karp method.
17. Data compression. Huffman coding. Lempel-Ziv method principles.
18. Graphs. Shortest path problem. Spanning tree. Minimum spanning tree. Connectivity and articulation points.
19. Types of algorithms. Divide and conquer algorithms. Greedy algorithms. Dynamic programming principles. Randomized algorithms.
• to elaborate knowledge of the design process from design description in VHDL through functional simulation, synthesis, timing simulation, and PLD (FPGA) programming;
• to gain experience in designing and verifying digital systems using synthesis and simulation tools;
• to provide students the theory and practice of rapid prototyping of digital systems in a laboratory environment;
• to combine the knowledge and skills needed for integration of the computer engineering and signal processing;
• to provide students an understanding of specifying, designing and analyzing of asynchronous systems.
Having finished the study of the subject a student:
• proceeds from a digital system description in VHDL to its implementation in a PLD (FPGA) using of a number of computer-aided design software tools;
• understands how to interpret design tool outputs in evaluating alternative system designs for a specific set of requirements, and how to use the knowledge gained to improve the design;
• integrates heterogeneous blocks such as digital hardware and analog interfaces while optimizing power consumption, performance, cost;
• applies hardware design techniques to simulate, synthesize, and test digital signal processing systems;
• understands and comprehends asynchronous design methods, computational models, design terminology.
• Digital systems design methodology using VHDL and PLD (FPGA).
• FPGAs as means for building reconfigurable systems.
• Rapid prototyping of digital systems.
• Digital signal processing with FPGA devices.
• Principles of asynchronous design (a systems perspective).
• The course is based on the development of a real-world projects and case studies.
• To present the main problem areas in the industrial data communication;
• To explain the classifications and working principles of the data communications protocols that are employed by the industrial applications;
• To create an understanding about the evolution and trends of industrial networking technologies and architectures;
• To train students in solving practical tasks related to the above-mentioned topics.
Having finished the study of the subject a student has to be able:
• to understand the main concepts, peculiarities and trends of industrial data communications;
• to grasp the principles of the far-spread data communications standards and protocols;
• to employ the evaluation criteria in order to find the most suitable data communications solution for a given industrial application;
• to choose the means that enable to enhance a particular quality of data communications system (e.g. efficiency, noise immunity, fault tolerance, safety) and to understand the effect of chosen means on the other qualities of data communications system.
• Digital and analog communications. Standardization of data communications.
• Hierarchy levels of industrial communication networks.
• Criteria for selecting the suitable communications network.
• Peculiarities and requirements of industrial data communications.
• Communications protocol stacks (MAP/TOP).
• Interoperability and collaboration in industrial enterprises (MIS, MES).
• Electrical noise and interference.
• Serial interface standards (RS-232, RS-485).
• Error detection and correction.
• Asynchronous and synchronous transmission.
• Data encoding techniques.
• Transmission synchronization in bit, byte and frame level.
• Data transparency requirement.
• Bit- and byte-oriented data link control protocols.
• Flow control methods.
• Medium Access Control (MAC) methods.
• Ethernet.
• Peculiarities of industrial ethernet.
• Industrial networking standards.
• Inter-process communications (OPC).
• To give an overview of complex systems modeling and control methods and their applications in design of reliable control systems.
• To give an overview of artificial intelligence methods (artificial neural networks, fuzzy systems, genetic algorithms) based systems identification and control techniques and their applications in development of intelligent control systems.
• To give an overview of artificial intelligence methods based classification and recognition techniques and their applications.
• Knows about main methods of modeling and control of complex systems, has an overview of practical applications of these methods;
• Can design, simulate and analyze behavior of nonlinear systems in MATLAB/Simulink environment;
• Knows and can use different artificial neural networks training algorithm;
• Knows and can use self-learning neural networks;
• Knows and can use artificial neural networks based methods in identification, control and image recognition;
• Can choose the structure of a neural Network and identify nonlinear systems;
• Can use different types of artificial neural networks for image recognition and pattern classification;
• Knows and can use fuzzy systems based methods and algorithms in different applications for systems identification and control;
• Knows and can use genetic algorithms for identification and control of complex nonlinear systems and processes;
• Can combine different methods for finding the best solution of a particular problem;
• Can design adaptive control systems for linear and all of the most widespread classes of nonlinear systems;
• Can design intelligent control systems and implement the corresponding algorithms;
• Can analyze and compare different control techniques and estimate limits of their applicability in practice.
• Nonlinear systems, Principes of nonlinear systems identification and control; Adaptive control systems;
• Artificial neural networks. Structures of artificial neural networks and training algorithms;
• Artificial neural networks based identification of nonlinear systems;
• Artificial neural networks based control of nonlinear systems;
• Self-learning neural networks;
• Artificial neural networks based image recognition and pattern classification;
• Fuzzy control;
• Dynamic feedback linearization based control of nonlinear systems;
• Genetic algorithms and their applications for identification and control of nonlinear systems.
• To show the structure of control systems and various instruments types;
• To describe PID control methods and controller tuning techniques;
• To select the appropriate sensor and actuation devices for particular application;
• To perform experiments and prepare reports.
Learning outcoms. Students will have the following knowledge and abilities:
1. understand and use electrical and process control drawings;
2. have knowledge about the common controller types and their mathematical basis;
3. describe the advantages and disadvantages of different controllers structures;
4. understand limitations when simplified models are used to describe complex dynamical systems;
5. to write simple sequence control programs;
6. use measurement instruments to test control system coponents;
7. to preform simple control experiments on laboratory setups to derive a system that behaves according to specifications;
8. determine the performance of a control system from simulation and experiment;
9. select and connect the proper sensors and actuators to controllers;
10. to use computer tools for control tasks.
Control system instrumentation.
Interfacing techniques with industrial instrumentation systems.
Programmable logic controller.
PID controller design and tuning.
Industrial sensor and transducer types: motion, level, pressure, temperature.
Actuators.
Electric motor characteristics and speed control.
Pneumatic and hydraulic actuators.
Valves.
The aim is to support development of student´s entrepreneurial character traits and attitudes and improve their knowledge and skills about entrepreneurship.
The aim is also to teach creative thinking, principles of entrepreneurial behavior and give knowledge about recognition of business opportunities and about development, evaluation and implementation of business ideas in different entrepreneurship environments.
• Students know basic concepts and processes of entrepreneurship. Know the history and development trends of entrepreneurship, entrepreneurship culture in different countries and different forms of enterprises.
• Know necessary character traits for entrepreneurs and can evaluate themthelves as potential entrepreneurs.
• Obtain skills to think creatively and in entrepreneurial manner; ability to generate, develop and evaluate business ideas.
• Can analyse the impact of entrepreneurship environment on the activities of the enterprise.
• Know entrepreneurship policy and business support system.
• Pick up experience of team work (developing business ideas, evaluating the need for resources, solving problems in case studies etc.).
• Creativity and innovation, possibilities to act in entrepreneurial way in business, social and cultural context.
• Entrepreneurship and entrepreneurs - main definitions.
• Character traits of entrepreneurs.
• Becoming an entrepreneur, necessary traits and skills for an entrepreneur, development of entrepreneurial competence.
• History and development trends of entrepreneurship, entrepreneurship culture.
• Level of entrepreneurial activities and factors that have influence on it.
• Managing risks.
• Different possibilities for becoming an entrepreneur: starting a new business, franchising, buying an existing business.
• Entrepreneurship process.
• Recognising business opportunities.
• Development and evaluation of business ideas.
• Business model.
• Necessary steps for business start-up.
• Evaluating need for resources necessary for implementation of business ideas.
• Different forms of entrepreneurship: technology entrepreneurship, international entrepreneurship, social entrepreneurship, cooperative entrepreneurship, family business etc.
• Corporate social responsibility.
• Entrepreneurship policy and business support system.
• Development of creative thinking and skills for entrepreneurial behavior with active learning methods.
• Solving case studies of enterprises.
• To give overview about software project management principles and methods.
• To give practical recommendations for software project management.
• To teach brainstorming principles for problem solving.
• To teach pair-work and group-work principles.
• To teach project planning, project starting, project organizing and project managing principles.
• To give overview about project document management.
• To give overview about software processes improvement.
Having finished the study of the subject a student is able:
• to plan and to start software projects;
• to manage developers groups;
• to manage project recourses (money, hardware, software etc.);
• to monitor projects and compile project reports;
• to analyze projects success and software development processes quality;
• to know how to organize different style of development activities: individual work, pair work, group-work.
• Management principles, group-work, management of the time and people, motivation and delegation.
• Projects economics.
• Starting and organizing a project, role of project manager, project planning, managing and monitoring.
• Software maturity, metrics of software development processes, reviews, testing, tests analysis.
• to give overview about phases, methods and tools of modern microchips and embedded systems design process;;
• to give thorough overview about digital systems modeling;
• to give thorough overview about hardware description languages VHDL, Verilog, SystemVerilog and SystemC, and about their features;
• to give overview about embedded systems modeling languages;
• to give overview about analog systems modeling using languages SPICE and VHDL-AMS;
• to teach how to use different hardware description languages at various abstraction levels;
• to give overview about synthesis of digital systems at register transfer and logic levels;
• to teach how to use commercial simulation an synthesis tools;
• to obtain pre-requisites for follow-up courses of the study line.
• Knowledge about phases, methods and tools of modern microchips and embedded systems design process; how to use various hardware description languages at these phases.
• Knowledge how to create models of digital systems in VHDL, Verilog and SystemC.
• Knowledge how to create models of simpler analog systems in SPICE and VHDL-AMS.
• Knowledge how to use at least one commercial simulation tool and one synthesis tool.
• Modeling concepts for digital and analog hardware.
• Hardware description languages - VHDL, Verilog, SystemC.
• Description levels in VHDL - behavioral/functional, structural and data-flow levels.
• Simulation engines of hardware description languages.
• Verilog, and SystemC - description levels and simulation engines.
• Synthesizable VHDL and Verilog.
• Phases and methods of digital systems synthesis.
• Description languages for analog hardware - Spice, VHDL-AMS.
• Simulation and synthesis using modern design tools.
• to give overview about automation of phases, methods and tools of modern microchips and embedded systems design process;
• to give thorough overview about different phases of VLSI, ASIC and SoC synthesis - system, high, register transfer, logic and physical level syntheses;
• to teach efficient use of different synthesis methods;
• to give overview of optimization algorithms used in synthesis, and about their features;
• to teach how to use the two most common hardware description languages - VHDL and Verilog - in synthesis;
• to teach how to use commercial synthesis tools;
• to teach how to use field programmable logic for prototyping.
Having finished the study of the subject a student:
• knows about phases, methods and tools of modern microchips and embedded systems design process and automation possibilities;
• knows how to use hardware description languages VHDL and Verilog in synthesis at different phases and abstraction levels;
• knows the usability of different optimization algorithms at various abstraction levels;
• knows how to use both simulation and prototyping to verify functionality of the chip or system under design;
• knows how to use at least one commercial synthesis tool.
• Design methodology of modern chips – VLSI, ASIC and SoC - design phases and teamwork.
• Computer Aided Design (CAD) systems.
• Hardware description levels - system, high, register transfer, logic and physical levels.
• System level description languages.
• Synthesis tasks at different description levels.
• Allocation, scheduling, and binding in high-level synthesis.
• Mapping and scheduling in system-level synthesis.
• VLSI, ASIC and SoC synthesis with modern design tools.
• Using field programmable logic for prototyping.
• To give knowledge about the principles of relational databases and SQL databases as well as to give knowledge and skills about the database language SQL and development of SQL databases.
• To give knowledge about the principles of relational databases and SQL databases as well as to give knowledge and skills about the database language SQL and development of transactional SQL databases.
1. Knows the relational data model.
2. Knows how to use the database language SQL as well as the problems of SQL.
3. Knows a possible methodology for performing conceptual, logical, and physical design of transactional SQL databases.
4. Knows the basics of the architecture and functionality of database management systems.
5. Can decompose data-centric transaction-oriented information systems into subsystems.
6. Can design a transactional SQL database and develop a prototype of the system. Knows how to use UML, a CASE tool, a SQL-based database management system, and an application development tool for this purpose.
7. Can use the SQL database language in order to perform queries and modification of data. Can use SQL in order to create the structure (tables) and behaviour (constraints that are associated with tables) of a database.
• Database.
• Database management system.
• Data models.
• Relational data model.
• Relational algebra.
• SQL database language and database objects that one can create by using it.
• A methodology of transactional SQL database design.
• Strategic analysis.
• Detailed analysis.
• Entity-relationship diagrams and using UML to create these.
• Data modeling patterns.
• Normalization.
• Denormalization.
• Logical and physical design of a transactional SQL database.
• The use of a CASE tool during SQL database design.
• In the practice sessions desktop database management system MS Access will be used.
• Explain the reasons leading to increased importance of dynamic properties in software (e.g. networked embedded systems, pervasive computing systems).
• Justify the extension of Turing computation based paradigm to interactive computation paradigm.
• Introduce interaction-centred model of computation and its use for modelling software.
• Provide some practical experience in analysing dynamic properties of software.
After passing the course a student should be able to reason and justify the necessity, and have practical knowledge:
• to apply, in addition to Turing computable functions, more sophisticated functions (e.g. during system integration);
• to analyse dynamic (situation-dependent) software properties, and interactions between software components;
• to handle appropriate theoretical methods and tools.
• Time-determined behaviour of software.
• Two types of concurrency (common and forced concurrency).
• Three synchronisation modes (synchronous, semi-synchronous, asynchronous).
• Time selective inter-process communication.
• Sufficiently sophisticated time model for analysing timing of interactions in software.
• Classes of timing properties.
• Interaction-centred time-sensitive model of computations (Q-model) and its basic notions - process, channel, channel function, state.
• Channel types.
• Time-sets.
• Tolerance, equivalence and simultaneity intervals.
• Multicast.
• Relationship with RT UML profile.
• Formal timing analysis of a software specification.
The goal of the course is to create an understanding about the essence of entrepreneurship and its processes, the role of entrepreneur and the principles of business planning process, also to give a general knowledge about the main aspects of the activities of enterprises in the context of external business environment.
The course develops skills for business model design, methods for analysis and calculations needful for business planning as well as gives an opportunity for students to go through the business process, design business model and compile business plan on the basis of their own business idea.
The course is relying on the characteristics of entrepreneurship of the study speciality.
• Knowledge of the nature of entrepreneurship, innovation and the business planning process, also of the main aspects of the economic activity of an enterprises in Estonian legal and business environment;
• Skills to evaluate business opportunities and analyse the impact of business environment for the activities of the enterprise;
• Practical experience of creating a business model, writing a business plan and planning finances;
• Experience of team work in developing business ideas and finding possibilities for implementing them;
• Skills of justifying the implementation of business ideas and presenting them;
• Knowledge of starting an enterprise and solving problems related to it;
• Knowledge of enterprises' activities in different sectors (IT, mechanics, energetics).
The concept of the course is based on the entrepreneurship process starting from the business idea generation, opportunity recognition, assessment and implementation on three levels: individual (personal traits, motivation, and skills), group (business ideas, contribution of team members) and society (economic policy, business environment, technology).
The main topics are:
• main concept and processes of entrepreneurship;
• entrepreneurship and entrepreneurial skills;
• entrepreneur and entrepreneurial employee;
• business idea generation;
• opportunity recognition and assessment;
• business model formation (methods and practical exercising);
• specifics of business models in different fields;
• business planning;
• structure of a business plan;
• industry and competitor analysis;
• legal forms of enterprises;
• company mission, vision, objectives;
• corporate social responsibility;
• internal and external environment of entrepreneurship;
• development of business strategies incl strategies for innovation, growth and internationalisation;
• marketing (main principles and planning) and tactics of marketing and sales;
• major issues of growth stage;
• structure of costs and methods of cost accounting;
• calculation of product/service prices;
• basic financial planning and budgeting;
• sources of venture financing;
• financial analysis;
• time value of money;
• valuation of private equity investments;
• entrepreneurship policy and supporting services for enterprises.
Lectures contain examples and cases from the practical world with the focus on different sectors (IT, mechanics, engineering, etc.) as well as solving the problems related to these cases. Start-up enterprises and their support system. In exercise sessions teams of students are looking for a business idea, and test it in the real world. Thereafter, teams sketch a business model suitable for this idea, compile a business plan and defend it based on the real conditions of the entrepreneurship environment, market opportunities, competitor situation, etc.
To acquire English presentation skills at Level B2/C1 for the purpose of participating in international projects, conferences, seminars and discussions, presenting results of research work, discussing project aims and work results, etc. To prepare for lecturing and holding colloquiums on specific subjects.
• Can express ideas clearly and fluently.
• Can take the floor in discussions and give arguments to justify the expressed opinions.
• Can compose and give informative presentations on both general and subject-specific topics.
• Can ask purposeful questions about the expressed viewpoints.
• Can differentiate between questions and comments disguised as questions and treat them accordingly when answering.
• Can skilfully use both electronic and conventional presentation devices.
Composing and giving presentations in English. Learning and practicing the pertinent vocabulary. Accepted conventions for giving presentations in English (presentation structure, coherence, involvement of the audience, eye contact, etc). Video training. Using visuals.
• to learn the criteria of testability of digital systems, the principles of self-testing and self-diagnosis, and the methods of evaluating the efficiency of embedded test and diagnosis methods;
• to get an overview about self-testing architectures, on-line testing circuits, and embedded diagnosis methods;
• to get practice in using theoretical methods for solving different self-testing and self-diagnosis related tasks;
• to get hands-on training in using professional CAD tools for design for testability of digital systems and evaluating the efficiency of self-testing, self-diagnosis and fault-tolerance in the laboratory;
• to investigate and compare the efficiency of different self-testing methods and architectures with using CAD tools in the laboratory;
• to get understanding of cause-effect relationships during experimental research of self-testing and self-diagnosis in digital systems;
• to get acquainted with the economic aspects of design for testability by solving tradeoffs between the dependability and system total cost.
Having finished the study of the subject a student:
• knows the main concepts and methods of dependability of digital systems;
• is able to analyze and improve the testability and diagnosability of digital systems;
• is able to use the professional CAD tools for evaluating the dependability of digital systems;
• is able to choose alternative solutions, methods and architectures for self-testing, self-diagnosing, on-line testing and self-repair of digital systems;
• is able to analyze the economic aspects of testing and dependability, and to solve the trade-off problems between different design criteria.
• Dependability related system design criteria: testability, diagnosability, reliability, fault-tolerance, safety, security, dependability.
• Economic tradeoffs of testability and quality policy.
• Measures for controllability, observability, testability, diagnosability.
• Design for testability: ad hoc and structural methods.
• Scan-Path design.
• Linear feedback shift registers.
• Pseudorandom testing and signature analysis.
• Self-testing systems, circular self-testing, store-and-generate universal test architectures.
• Test standards: Boundary Scan, IEEE P1500 standard for System on Chip (SoC) test.
• Testing of Networks-on-Chip (NoC).
• Embedded self-diagnosis.
• Optimization of self-testing and self-diagnosis.
• On-line testing.
• Self-repair in systems.
• Error detecting and correcting codes.
• Evaluation of dependability.
The goal of the course is to give an overview of the cyber security area, main concepts and technology, management of cyber security.
Upon completion a student has:
• overview of the terminology and technologies of cyber security;
• knowledge about the standards concerning cyber security.
• Cyber war;
• Cyber attack;
• Hackers;
• Main principles of cyber security issues;
• Management of cyber security.
Standards:
• COBIT;
• ITIL;
• ISO 27000.
The goal of the course is to teach about the evaluation of business opportinities in the field of information technology;
Understanding financing possibilities of start-ups and growth companies;
Skills in wording and communicating new business project for investors and ohter stakeholders.
• Student is able to evaluate business opprtunities at the choosen field of technology.
• Has knowledge of starting an enterprise and solving problems related to it.
• Has skills of justifying the implementation of business ideas and business plan and presenting them.
• Ability to define business opportunities in their chosen field of technology;
• understanding of the specific technology in business;
• ability to initiate or to participate in business projects;
• ability to create a brief introduction to the company;
• presentation and business planning, mapping and evaluation;
• the growthcompany versus a lifestyle company;
• sources of technology-based business ideas;
• realization in the technology-based business idea;
• intellectual property technology-based business;
• problem definition and value of consumer/client.
SGX - Performance & Security Evaluation
Intel Software Guard Extensions (SGX) is collection of instruction set extensions and mechanisms for memory access that provide integrity and confidentiality guarantees on modern Intel processors. SGX is able to launch secure containers named enclaves that remain shielded from all CPU privilege levels.
This paper approaches SGX from security perspective, studying SGX from hardware to system level. Important security features like key hierarchy, encryption and attestation are broken down. Security evaluation is presented based on known vulnerabilities, attacks and exploits.
Performance of three SGX edge routine methods are benchmarked in two SGX environments - host and guest Linux, both fully capable of running SGX. This is achieved through experimental software offered by Intel. SGX virtualization uncovers interesting results both from systems and security perspectives.