Courses



Knowledge of elementary notions about random processes, Markov processes; Knowledge of the main estimation problems in the field of mobile robots; Knowledge of the main localization techniques; Knowledge of the operating principles of a global positioning system (e.g. GPS); Knowledge of the main filtering techniques (complementary filter, Kalman filter, particle filter); Knowledge of the main techniques for simultaneous localization and map estimation (SLAM); Knowledge of the main techniques for path planning (DFS, BFS, A*, RRT); Knowledge of the main linear control techniques (PID).

For the course: Understanding and knowing the advanced software development tools that application developers have at their disposal, including high-level libraries, advanced technologies, modern programming paradigms, design templates, visual development environments; Understanding the concepts of designing and developing software systems based on the integration of various components and/or software services under advanced visual development environments; Understanding modern approaches to software development, existing development technologies and the particularities of state-of-the-art development environments (e.g., the aspect-based development approach). For applications: Implementing user interfaces based on analysis and principles of interaction and aesthetics; Acquiring programming knowledge using state-of-the-art development environments and programming languages; Acquiring practical working knowledge necessary for developing applications that use technologies from areas such as databases, web applications, distributed applications; Familiarizing students with collaborative work environments and methodologies for developing applications in teams.

This course equips students with the concepts and techniques for conducting relevant performance analysis and comparisons. It presents tools for monitoring the performance of the subsystems of the Linux and Windows operating systems, along with methods for clear data presentation.

For the course: Deepening the principles underlying e-commerce; Creating an e-commerce site using Magento Technology; Architectural concepts specific to e-commerce and the activities involved in e-commerce will be presented: marketing (direct mailing, banner campaigns, search engines, registration in web directories, banner/link exchange, affiliate programs), sales, payments (credit cards, cash on delivery system, postal order, payment orders), transaction completion, customer service; Comparisons will be made between B2B and B2C online business models; The performance of an e-commerce server is analyzed, as well as its security and scalability; Interactivity utilities, data mining concepts and techniques for site customization are presented. For the project Creating an e-commerce site; Creating the Catalog, Inventory, Marketing, Orders, Profile, Electronic Payment systems as well as the Order Processing System using the facilities offered by Magento or another technology of your choice.

During the course and the project, students will become familiar with modern computer-aided design methods for VLSI circuits and systems and will go through the stages of specification, logic simulation, mask design, design rule verification, parameter extraction (based on the mask description and the technology used), placement/routing and performance estimation (operating frequency, power dissipation and area occupied on the Si wafer). Case studies will consider both numerical subsystems and complex numerical systems. As a result of graduating from the course, students will be able to address problems related to the specification, design, simulation and implementation of VLSI numerical subsystems/systems, both in the form of ASIC circuits and FPGA circuits.

Acquiring the knowledge necessary to understand the administration of a relational database, the design and use of applications that use databases and familiarization with tools for working with them. Data analysis algorithms (data mining).

Machine learning aims to create programs that improve problem-solving performance based on data and previously achieved/observed solutions. The course presents the theory and practice of machine learning from different perspectives. At the end of the course, students will know methods and algorithms of supervised and unsupervised learning, inductive learning, statistical learning, reward learning, learning with artificial neural networks and genetic algorithms.

This course focuses on data storage and processing technologies. It makes a transition from Relational Databases on a single instance to the distributed NoSQL used in Big Data. The course is divided into 2 sections. In the first part of the course, we will discuss relational databases from the point of view of architecture design and data processing using procedural languages for both operational databases (OLTP) and data warehouses (OLAP). The second part of the course focuses on the field of Big Data and NoSQL storage technologies. We will discuss the main classes of NoSQL databases from the point of view of both architecture implementation and data processing languages.

Students will use, for the entire life cycle of an information system, the information technology tools and methods that ensure their development and proper functioning, according to imposed quality criteria and standards. Within the laboratory, students will know and apply reference models, for example CMMI, for managing the specific phases of the life cycle of an information product or service

The MPS course aims to acquire skills in planning and organizing software projects, aiming at the correct choice of management tools and an appropriate management style with an emphasis on project tracking and monitoring. The main role is to allow students to express themselves in a real team, with specific positions and duties, with a common goal: to provide quality software! MPS proposes to create the right context for developing solutions with the perfect mix of fun and responsibility. The secondary role is to transmit knowledge in the area of management techniques regarding the project life cycle, how to design, document, develop, test, lead, evaluate, monitor.

Students will acquire basic knowledge in human-computer interaction (HCI), including how to design, implement, and evaluate specific applications. An emphasis will be on considering interaction with human-oriented artificial intelligence (AI) using Large Language Models, but also ”classical” interfaces, with direct manipulation, will be studied. User modeling, the laws of user experience, and cognitive ergonomics in HCI are studied. An introduction is also made to related fields involved in HCI, such as psychology, physiology, sociology and cognitive philosophy. Limitations and problems of AI approaches are discussed, highlighting the specific elements of the human factor: creativity, personality, style and how they can be supported by AI. During the semester, students will also develop a team project, in which they will implement an interactive system.

The course aims to explain and acquire the fundamental ideas underlying embedded and real-time systems. An embedded system is designed for a specific purpose, in comparison to a regular computer that must perform multiple tasks. The course deals with the hardware and software architecture of embedded systems from the point of view of performance, cost and usage constraints. Techniques for optimizing the design of embedded systems and real-time event handling are studied. The course also presents the concepts underlying the design of operating systems that run on an embedded system

For the course: In the first part of the course, we will review the basic notions about signals: how they are represented mathematically, how we describe a system that processes signals, what are the applications and needs of these processings. Then we will discuss the Fourier transform on analog signals. After that, we will explain the sampling process and related issues, and we will discuss digital signal processing and the Fourier transform on discrete (digital) signals. Finally, we will focus on convolution and filtering methods. In the last course, industry experts will explain to students how these notions are applied in practice. For the project: Students will choose a recent research article related to the topics covered in the course and will conduct an implementation of the methods described in the article and their own evaluation of those methods.

The Network Design course aims to acquire knowledge and skills in the design, diagnosis, and development of computer networks, as well as elements of data science.

Description of components in multi-processor systems; Understanding the interaction between components and the operation of the system;

The course and the laboratory/project cover the following topics: Mathematical model of parallel computing. Granularity of parallel structures: the relationship between parallel architectures and parallel algorithms. Limit of parallel computing. Levels of parallelism. Determining parallelism at the microoperation level. Estimating the minimum cost of implementing a set of microoperations. Synchronization in parallel and distributed systems. Parallelization of operations in structures with superscalar architecture.

The Local Computer Networks course aims to acquire skills in configuring, diagnosing and securing a local computer network. More specifically, the course aims to: Familiarize yourself with the fundamental concepts related to local area networks; Learn how to configure various network equipment; Learn the skills necessary to troubleshoot and secure networks.

For the course: Acquiring knowledge regarding the mathematical expression of two- and three-dimensional graphic transformations. Developing the ability to use these transformations and combine them for different purposes; Understanding the operations in the “programmable graphics pipeline” (Graphics pipeline); Acquiring knowledge regarding the realistic rendering of 3D scene images by applying algorithms for eliminating invisible parts of images; Acquiring fundamental knowledge regarding the introduction of light into images by simulating reflection and refraction using empirical models. Increasing the realism of synthesized images by adding shadows to images, simulating transparency and fog. Understanding a global illumination model: Ray-tracing; Acquiring knowledge regarding the approximation of graphic primitives in discrete space and their rendering on the display surface: fundamental algorithms for rasterization and clipping of vectors, circles, ellipses and polygons. For applications: Familiarization with the use of the OpenGL 3.x library and the GLSL language for developing graphic applications; Deepening the theoretical knowledge transmitted in the course by developing 2D and 3D graphic applications; Learning the ability to use the knowledge acquired in practical examples; Training the skills of designing and implementing graphic applications, by completing 3 assignments; Introduction to programming modern graphics processing units (GPU).

For the course: Understanding and knowledge of specific programming methods and models for applications that use parallel and distributed computing; Understanding the concepts of design and development of parallel and distributed algorithms; Understanding modern approaches to program development that use specific concepts and models for parallelization and/or distribution. For applications: Acquiring the skills, knowledge and engineering methods necessary to design, adapt and implement parallel and distributed algorithms, verify their correctness and increase performance in a given context; Improving the ability to analyze, model, design and implement applications that use parallel and distributed algorithms; Identifying problems specific to the implementation of parallel and distributed algorithms; Acquiring the practical working knowledge necessary to develop applications that use parallel and distributed algorithms.

The course presents the elements of the theory of automata and formal languages, computability with the Turing Machine. The main objective of the seminar activity is to deepen the theoretical elements presented in the course, by solving specific types of problems. Applications are also developed - such as lexical analyzers, in the implementation of which the theoretical elements studied are directly used. At the end of the course/applications, the student will be able to: design different types of automata; specify languages by writing associated grammars; evaluate the computability of a problem; classify problems into specific complexity classes; design and implement a lexical analyzer.

The course and laboratory/project will cover the following topics: Functional units, Internal resources, External communication, Instruction cycle, Machine cycle, Interrupt operation, Synchronization with external logic. Emphasis is placed on the design of structures (motherboard) based on 16/32 and 64-bit processors.

This courses teaches students the basics of computer security, starting from an introduction to access control and cryptography, to the current security threats in web, network or application security. The main focus of the lecture is to give students the security vocabulary and to encourage them to further investigate the continuing evolving landscape of security.

After completing the Computer Systems Architecture course, students will be able to: Describe the computing systems they work on using PMS primitives; Identify the class to which the computing systems encountered belong; Implement efficient algorithms in terms of performance and memory usage on SIMD and MIMD computing structures; Describe and implement a switching network for connecting resources in a parallel computing system; Be able to choose the optimal benchmark for testing a computing system; Be able to port code and program applications for architectures with heterogeneous or special processors (GP-GPU); Be able to analyze the correctness, efficiency and performance of programs; Be able to write applications with support for vector computing.

The course aims to explore hardware and software reliability, from secure application development to the theory behind system availability.

For the course: Understanding the specifics and challenges of each software development activity; Understanding the advantages, disadvantages and challenges of various software life cycle models; Understanding the complexity of software development on an industrial scale; Specifying the requirements of a software project; Acquiring software systems modeling practices using UML (Unified Modeling Language); Familiarizing with software design practices and reuse based on design patterns; Acquiring theoretical and practical knowledge of program verification and validation, especially those based on testing; Acquiring basic knowledge regarding the quality of software products. For applications: Training the skills of identifying and using appropriate practices for the development of medium and high complexity software systems.; Familiarizing students with UML modeling techniques; Familiarizing students with the use of a software dedicated to teamwork (SVN); Acquiring the basic experience necessary for user requirements analysis, software requirements and architectural design activities; Acquiring basic experience in developing requirements specification documents and architectural design; Acquiring practical experience in developing a medium-complexity software application, in a team, from requirements specification to delivery, approximating in the academic environment the software development conditions encountered in the industry.

Presentation of the general structure of technical and scientific documents; Elaboration of reports/summaries after reading a scientific article; Deepening of writing techniques and methods; Awareness of typical errors in writing technical texts, at all levels (language, coherence, adherence to a narrative thread, attractiveness, presentation style); Evaluation and correction of scientific articles; Refining of oral presentation techniques

The general objective of the course in Business Economics is to develop an economic mindset that will contribute to the understanding and correct assessment of the opportunities and risks that exist in an open economy that is constantly changing. Taking the course in Business Economics allows students to understand how economists analyze and explain what is happening in an economy; how microeconomics underpins both managerial and public policy decisions; how general economic conditions can influence finding a job or the success of a business; and to evaluate both the impact of other firms' decisions and the impact of macroeconomic conditions on a firm's business activity. At the end of the course, students will be able to analyze demand, costs, and efficiency in different types of markets. They will also understand how pricing policies are established, how investment decisions are made, and decisions related to actual production.

Taking the General Economics course allows students to understand how economists analyze and explain what is happening in an economy; to appreciate the objectives and goals of macroeconomic policy; to understand how general conditions in the economy can influence finding a job or the success of a business; to evaluate both the impact of other firms' decisions and the impact of macroeconomic conditions on a firm's business activity. The general objective of the General Economics course is to develop an economic mindset that contributes to the understanding and correct assessment of the opportunities and risks existing in an open economy that is constantly changing.

Upon successful completion of this subject, students will be able to: explain the choice of how to address the consumer; describe the constituent elements of the marketing mix; appropriately use elements of marketing research; calculate various indicators of the company's market and the product market.

Upon successful completion of this subject, students will be able to: explain the choice of how to address the consumer; describe the constituent elements of the marketing mix; appropriately use elements of marketing research; calculate various indicators of the company's market and the product market.

Knowledge of the notions, concepts and theoretical approaches of management as a process and as a systematic activity in general and of the management of the student class, in particular; Capturing the general and specific elements of the management of education and teaching processes and units; Identifying the managerial skills of the teaching staff involved in the educational process; Identifying the types of relationships within the student class; Describing the relationships between managerial styles and the classroom climate.

Using the computer in learning activities; Operating with entities specific to the field of knowledge; Analyzing and selecting appropriate programs (software); Acquiring notions related to methods and technologies for delivering learning content; Developing communication skills and abilities using new technologies; Acquiring the skills necessary to design and implement assessment forms using information technologies; Integrating educational game software into current school activities; Transferring and applying IT acquisitions to the development of the institution.

Ability to use programming languages with different characteristics from the point of view of representation and problem solving. Ability to choose a programming language and mode adapted to the solved application.

The course deals with the principles underlying the structural organization, operation, architecture, design, design, simulation and implementation of numerical systems and knowledge related to the learning of hardware description languages. The aim will thus be to acquire knowledge of how to describe numerical systems at different levels of abstraction, depending on the intended purpose: behavioral description (high-level simulation), structural description (logic simulation), performance evaluation following the implementation of the project in a given technology (occupied area, operating frequency); learning hardware description languages; representation of information in numerical calculators, the main arithmetic algorithms and their hardware implementations, in terms of complexity and performance; knowledge of implementation solutions for both integrated and microprogrammed execution units and control units; design of a numerical calculator, its simulation and implementation. The applications will be aimed at familiarizing with modern methods and platforms for the design, simulation and implementation of numerical systems; operationalization of knowledge of hardware description languages, in particular VerilogHDL, as well as implementation and testing on reconfigurable systems of numerical systems projects similar or complementary to those presented in the course.

Course:knowledge of the operation of the main semiconductor devices; knowledge of the elementary principles of the technologies used in the realization of linear integrated circuits; basic knowledge of amplifiers realized with bipolar and field-effect transistors; study of the principles of realization of various applications of operational amplifiers and other linear integrated circuits; basic knowledge of the problems of power supplies for electronic equipment; basic knowledge of the generation of harmonic signals as well as of signal modulation and demodulation. Seminar: knowledge of the main programs for the analysis, simulation and design of electronic circuits; basic skills in the use of specific electronic laboratory equipment; understanding of how to analyze simple circuit schemes with discrete transistors and operational amplifiers; "

The OS course aims to understand how the inner workings of the computing system work in order to become a better software engineer/developer, regardless of the language and platform used. The primary role is to develop and improve skills such as: understanding code written by others, developing quality code that contains as few software defects as possible.The secondary role is to understand what happens behind the scenes when we perform operations (memory, I/O, etc.), how system resources are managed so that the user has a good experience when using it. Regardless of the operating system used, things look similar, and for that we use 2 different operating systems for exemplification: Linux and Windows.

Discussion of the intrinsic properties of problems in terms of computability and complexity and the implications of these properties on the actual solution process. Presentation of some methods for classifying problems, in relation to the difficulty of the actual solution, and of some methods for tractable NP-hard problems.Presentation of the main techniques for checking and analyzing the complexity of algorithms.Use of the theory taught in the course for cases frequently encountered in the practice of designing software systems.Comparison of variants of algorithms for solving difficult problems.

For the course: the course presents the theory and practice of object-oriented programming using the Java language. Concepts of the object-oriented programming paradigm such as data abstraction, encapsulation, inheritance, aggregation, polymorphism, generic programming are presented; at the end of the course students will be able to:use specific design tools specific to the object-oriented paradigm in the design of applications; specific and implement applications in Java. For applications: the laboratory activity aims to deepen programming knowledge and apply the concepts and methods presented in the course; students will implement and test complete programs and also develop existing programs, adding new features.

For the course: Knowledge and understanding of the concepts, methods, models and algorithms related to the design and implementation of communication protocols in computer networks. Understanding the principles of protocol layering and prioritization, the role of standardization and the importance of open technologies for the development of the Internet. Knowledge of the main Internet protocols and technologies (from the TCP/IP suite), both low-level (for data transfer) and high-level (application-oriented). Analysis of protocols for high-performance networks, mobile networks and ad-hoc networks.Learning new methods and mechanisms used to achieve high performance in computer networks.Study of high-level protocols (for remote access, e-mail, Web, file transfer) and their use for building Internet services. For applications: Acquiring the skills, knowledge and engineering methods necessary to design, adapt and implement protocols for computer networks, perform their correctness checking and enhance their performance in a given context.Improving the ability to analyze, model, design and implement software sub-systems for computer networks (Internet). Identify specific problems in the implementation of protocols and develop effective solutions to solve them. Learning the techniques for developing software components for open systems based on standards for networking protocols. Using software development tools in the field of protocol engineering.

Discussion of the intrinsic properties of problems from the perspective of possible solution methods and presentation of the main exact solution methods.Discussion of the relationship between the characteristics of problems, the solution mode and the quality of solutions.Presentation of the main approximate solution techniques for difficult problems. Design of algorithms for solving typical problems encountered in the practice of software systems development.Comparison of variants of algorithms for solving difficult problems.

Course: knowledge of the operation of the main elementary pulse processing circuits; knowledge of the principles of technologies used to create digital integrated circuits; acquisition of basic knowledge about the creation and use of integrated logic circuits made with field-effect transistors; knowledge of the principles of creation, operation and use of combinational and sequential CMOS integrated circuits; knowledge of the principles of creation, operation and use of SRAM and DRAM, ROM and Flash memories; knowledge of the principles of operation of pulse generation and formation circuits used in computing. Applications: acquisition of basic skills in using electronic equipment specific to an electronic laboratory; acquisition of the knowledge necessary to test integrated circuits made in various technologies; understanding the constraints imposed by the structure of pulse circuits in their interconnection and the use of interfaces.

Understand the inner workings of applications;Understand the vulnerabilities that arise from memory misuse and how they can be prevented; Acquire application optimization skills; Acquire application security and troubleshooting skills; Understand interoperability between different programming languages, in the context of using the right language for the task at hand.

The course aims to: Form and develop the conceptual framework of the ever-changing field of creativity psychology; Optimize personality in general and stimulate creative potential.

Cultivation of students' positive and intrinsic motivation for the teaching profession; Analysis of the basic components of the teaching process and the relationships between them; Learning active strategies for using constructive feedback; Description of the principles of the teaching process and identification of concrete situations of their application; Analysis of models of teaching design; Comparative analysis of the main teaching methods; Highlighting the pedagogical potential of teaching methods; Practicing the ability to design different variants of teaching strategies; Training the ability to operate with various assessment techniques.

Understanding the need to operationalize educational objectives; Knowledge of teaching methods used in teaching specialized subjects; Knowledge of forms of organizing student activity. Development of evaluation tools. Use of computers in learning activities.

The course aims at learning the techniques of structured programming, knowledge of elementary data types and operations with this data, familiarization with the main instructions, knowledge of how to use a programming environment, modular programming, by defining and using functions, mastering the correct use of pointers, vectors, strings, presentation of some classical programming problems. In terms of applications, we aim to use basic programming language concepts to create applications, design, consolidate, execute and debug programs, use variables ,arrays, strings and files, use control statements, use iteration and recursion, use pointers to access arrays and variables, create structured code using functions, create abstract data types, write file-based applications, create C applications consisting of multiple source files.

The course presents the concepts of linear algebra, analytic geometry, differential equations, necessary for the specialized disciplines in the fields of Computer Science and Information Technology: numerical methods, design and analysis of linear models in signal and systems theory, networks, digital images, data compression, artificial intelligence (machine learning, data mining), computer graphics. Students will encounter and solve problems with direct applications in computer science (data compression, principal component analysis in image recognition, q-bits and quantum computations, Markov chains, PageRank algorithm, resonance phenomenon).

Mathematical Analysis is a fundamental discipline, necessary for any specialized engineering training, in particular for Computer Science and Information Technology. Students will become familiar with the basic concepts of Mathematical Analysis such as convergence, continuity, approximation, integrals, power series and will encounter applications of these concepts in a number of areas both in Computer Science (creating graphs or images, simulations, problem solving applications, coding in applications, creating statistical solutions and designing and analyzing algorithms) and in Physics (calculating mechanical work, the center of gravity and mass of a material wire or a material surface, the volume of a body, moments of inertia, etc.).

Logic design aims to acquire knowledge of digital circuits and to train practical skills for the analysis and synthesis of digital circuits of medium complexity. Objectives include: Acquisition of basic knowledge of digital signals, Boolean algebra and logic minimization techniques;Knowledge of the most important families of combinational logic circuits, the sources of delays in combinational circuits and the effects on their operation and performance;Knowledge of the most important families of sequential logic circuits, the timing of these circuits;Analysis and design of complex sequential circuits; Acquiring the knowledge and skills to design logic circuits, automatic state machines, microprogrammed control units;Acquiring the ability to use the acquired knowledge in practical examples;Acquiring the basic skills to realize a technical project;Designing, within a complex homework, a sequential automaton based on a technical specification.

Understanding and solving elementary problems of complex numbers, complex functions, complex integrals, residues and residue theorem, integral transformations (Fourier, discrete Fourier, Laplace, discrete Laplace).Assimilation of elementary concepts in probability theory and mathematical statistics (probability function, probability schemes, discrete and continuous random variables, mean and dispersion of a random variable, random vectors, strings of random variables, elements of selection theory, confidence intervals, statistical hypothesis testing).

The course aims at acquiring knowledge in the field of data modeling using the concept of abstract data type (ADT), with reference to fundamental types:, manifolds, lists, stacks, queues, trees, graphs.

For the course: creation, analysis and implementation of algorithms for solving problems in continuous mathematics; Complexity analysis, error analysis and propagation, problem conditioning and numerical stability of numerical algorithms; Presentation of classical and modern numerical methods for solving scientific and engineering problems; Choice of the most appropriate numerical methods for a given problem. For applications: Using the basic concepts of the Matlab language to implement numerical algorithms and methods; Designing, strengthening, executing and debugging numerical methods in Octave (open-source implementation for Matlab); Using vector operations; Using control statements; Creating structured code using functions; Writing applications with files; Creating applications that optimize memory access as well as stored memory.

The PCLP2 course aims to develop the ability to thoroughly understand the operation of a program from the highest to the lowest level. The main role of the course is to provide an overview of the computing system and a holistic perspective on a program. These insights will facilitate the investigation, understanding and debugging of programs.The secondary role is to impart knowledge and skills in working with memory, assembly languages, computing architectures, program security, etc.

The course is aimed at acquiring skills to use the computer and operating system effectively. Spending as much time as possible creatively and as little time as possible on petty things. Using the best means to the professional goal required. The primary role is to impart skills (understanding how the system works, use of documentation, use of best means, efficiency) and a practical and engineering way of thinking and approach, enjoyment of exploring and understanding.The secondary role is to impart knowledge in the area of (operating) systems: files/storage, processes, security/permissions, networking, hardware/architectures.

The Electrical Engineering course aims at learning the concepts necessary to model, simulate and analyze electrical circuits related to electrical and electronic systems. To this end, theoretical presentations on terminology, notations and symbols of the theory of electrical circuits, the laws and theorems of the theory, will be interspersed with: calculation applications to acquire the necessary skills to analyze circuits in different operating modes (direct current, alternating current, periodic mode, general variable mode), the use of software tools (circuit simulators) for this analysis and the performance of real experiments to acquire some minimal skills to measure the electrical current and voltage, using analog/digital measuring instruments or oscilloscope. Connections of this subject with other subjects in the program will be highlighted: graph theory, numerical methods, data structures, systems theory, electronics.

By participating in Physical Education lessons, the aim is to maintain an optimal state of health of students practicing physical exercise, in order to increase their potential for work in their daily activities. To develop basic motor skills and those specific to certain branches of sport. Forming the habit of continuous physical exercise in leisure time. Cultivation of fair-play attitude, efficient and disciplined behavior.

Improvement of basic motor skills (strength, speed, stamina, endurance, dexterity); acquisition and reinforcement of basic technical elements and procedures in athletics, gymnastics, applied sports; learning basic notions from the rules of sports games (volleyball, basketball, handball, gymnastics) for organizing and conducting various competitions; stimulating students' interest in systematic and independent practice of physical exercise individually and collectively on a daily or weekly basis; creating the habit of observing the rules of sports hygiene and accident prevention; developing the capacity for self-defense and self-development.

Course: giving presentations on historical topics by various faculty members. Laboratory: various topics (beautifying the Linux terminal, brief introduction to Python, git, etc.).

The course aims to introduce notions of mathematical logic that constitute tools for approaching different phenomena in computers and information technology. Also, to lay the foundations of a logical-mathematical thinking necessary for future engineers and to make connections between prior knowledge and newly acquired knowledge.

Training communication skills and stimulating communication behavior. Practicing speech and dialog.

Analysis of classic texts for the Western tradition of thought; Assimilation of fundamental concepts for understanding the development of computer science and cognitive science; Ability to explain in a coherent way one's own philosophical conceptions; Assimilation of conceptual tools necessary for the development of critical thinking.

Reading and analyzing parts and drawings; Representation of technical drawings using Autocad software as a working tool; Analysis of parts, landmarks and their representation in orthogonal projection;

The subject is optional and is addressed to Computer Engineering students. The general objectives of the subject are: to acquire the fundamental concepts necessary for the numerical and computational study of physical phenomena, to understand the context in which the analytical approach to physical problems becomes difficult or impossible, and to develop practical skills in the application of numerical methods for the simulation of physical processes.

Understanding and learning to use the fundamental laws of physics in the study of mechanical, thermal, electromagnetic phenomena, as well as the behavior of quantum systems; Initiation in the techniques of measurement and statistical analysis of experimental results; Understanding the relationship between theory and experiment; Developing the skills of measuring physical quantities specific to the phenomena studied; Developing practical skills of analytical and graphical processing of experimental data and evaluation / interpretation of results.

Familiarization with Unix family operating systems; Efficient use of the command line; Obtaining troubleshooting skills for computer system problems; Obtaining documentation skills, searching for information and applying the solution.

The course Applied Informatics 3 (Computer Tools) aims to provide basic knowledge on the use of computer tools for the generation, manipulation and presentation of scientific documents using text editors, spreadsheets and word processors. It will also discuss topics of interest related to the creation of web pages by learning introductory notions of HTML, basic knowledge of annotation languages, as well as structuring data in XML/JSON files and their validation using specific languages through concrete practical examples from engineering fields. The main role is to provide students with competences appropriate to the needs of today's qualifications, a scientific and technical preparation corresponding to the bachelor level, allowing them to enter the job market quickly after graduation, and the possibility to continue their studies through master and doctoral programs.

At least minimal knowledge of the conceptual apparatus in the field of psychology; Identification of theoretical data in determining the psychological processes and personality traits of those involved in the educational process (students and teachers); Determination of the structure of school learning by types of learning; Identification of the possibilities of individual and group stimulation of creativity in students; Determination of the psycho-pedagogical profile of each age in the period of personality formation.

Forming a responsible attitude towards professional development for the teaching career and quality assurance in education; Knowledge of the fundamental issues concerning the concepts, forms, dimensions and directions of educational development; Analyzing the role of education in the development of the student's personality; Understanding the usefulness of education as a permanent process, realized throughout life; Knowledge of the main educational alternatives in the Romanian education system; Understanding the usefulness of pedagogical research from the perspective of quality assurance in education; Analyzing the particularities of educational management and the school as a learning organization; Forming general and systematic representations of the aims of education and curriculum, their complexity and interdependence; Knowledge and understanding of models of curriculum analysis and types of curriculum; Forming the ability to critically analyze school documents in technological subjects.

For the course:Identification of national non-reimbursable programs that can be accessed for submitting project proposals.Identification of European non-reimbursable programs that can be accessed for submitting project proposals. To contribute to the identification of the funds available for start-ups vs firms with a rural vs urban background, as well as the funds available for PFAs, SRLs, NGOs and public institutions. Acquiring the necessary knowledge to prepare funding applications in the IT and related fields. Developing practical skills necessary for future entrepreneurs. For applications: Learning the ability to prepare funding applications for accessing national and or European non-reimbursable funds. Basic skills for self-evaluation of project proposals.

Course: Analysis and application of supervised and unsupervised shallow machine learning techniques in data science with a focus on applied industrial cases; Analysis and application of supervised and unsupervised deep machine learning techniques in data science with a focus on applied industrial cases; Understanding of data mining, preprocessing, analysis and visualization techniques as well as various inter-disciplinary cases of application of deep machine learning methods in industrial cases where inferential analysis and predictive modeling are preferred; Presentation and discussion of a predefined set of scientific papers relevant to the field of Data Science with focus on applicability to industrial cases. Lab: Use of various parallel tensor computing platforms and libraries for the optimization and operationalization of acyclic oriented deep graphs in data science experiments; Operationalization from all perspectives of a data science experiment into a functional product; Data production data download, analysis, modeling, neural model design, training, testing and experiment uploading by simple means in online environments.

Familiarization with fundamental methods of complex and statistical data analysis. Ability to solve data modeling and analysis problems using specialized software, knowledge and methods from statistics and computer science. categories, as well as the techniques and methods needed to approach certain types of problems frequently arising in computer science, especially those involving structural and functional considerations.

Course: Acquiring theoretical and practical perspectives on type systems in the context of functional programming languages; Formal specification and analysis of type systems; Discussion of properties of relevant type systems; Training of learned concepts in elegant problem modeling. Applications: Using operational semantics for the specification of functional programming languages; Implementing interpreters and type synthesizers for functional programming languages from formal specifications.

After completing the course Programming in Java with Spring and Hibernate students will be able to: Understand and use advanced Java programming concepts using the Spring framework: control inversion/dependency injection, aspect-oriented programming (AOP), creating Java applications using Spring Boot; Understand and use advanced Java programming concepts using the Hibernate framework: Entities, entity access types, mapping database objects, modeling and inheritance mapping between entities; To create concurrent applications in Java using asynchronous programming, CompletableFuture, combine and compose CompletableFuture objects.

Development of intelligent agent-based applications. Design and development of many-agent systems.

For the course: Identifying the specific characteristics of real-time information processing; Identifying theoretical solutions for the design and implementation of real-time processing systems and knowing the advantages and disadvantages of each technology studied; Acquiring skills in solving concrete problems that require real-time information processing. For applications: Familiarizing yourself with the Robot Operating System; Designing, implementing and testing an application in C / Java /; Python corresponding to a real-time information processing system.

The ability to analyze a financial market and evaluate the implications—both risks and potential gains—of investing in various financial instruments within a real-world market context.

At the end of lectures students will be able to: evaluate the security level of an computing system; identify threats and vulnerabilities at system level; Select solutions, applications, libraries and architectures to maximize the security level of a system; Design and develop secure components in information systems; Use good practices in reliable and secure integration of components and manage a computing system. The practicl side will focus on: Analysis of security specifications of computing systems, operating systems, applications and services; Discovering vulnerabilties by system investigation, code auditing and reverse engineering. Using mitigation techniques for protecting systems and applications.

Students will acquire the fundamentals of artificial intelligence (AI) and its applications, with an emphasis on the human factor. It will be discussed the current paradigm in AI, based on machine learning in natural language processing, and in particular on deep neural networks, with an emphasis on Large Language Models. However, the knowledge-based, symbolic paradigm will also be presented. The limitations and problems of these approaches are discussed, highlighting the specific elements of the human factor: creativity, personality, style and how they can be supported by AI. The concepts of mental model and user model will be introduced, with applications in the design and implementation of intelligent interfaces and intelligent adaptive systems. During the semester, they will also develop a team project, in which they will implement an AI system that considers the human factor.

For the course: learning the basics of designing and programming video games; learning advanced concepts and particularities in the design and programming of various types of video games; aspects of programming multiplayer games; learning the basics of Artificial Intelligence, Virtual and Augmented Reality in game programming; aspects of game development on mobile devices. For applications: Implementation of various types of video games; Implementation of multiplayer video games; Understanding and application of Artificial Intelligence algorithms in games; Understanding and application of Virtual and Augmented Reality technologies in video games; Implementation of video games for mobile devices; Understanding and use of human-computer interaction systems using graphical interfaces, devices and sensors.

For the course: The course aims to complete the professional training of undergraduate students by transmitting information regarding the real exposures of systems and networks from a security point of view, and by presenting techniques and methods for developing and implementing security policies and procedures within computer networks. For applications: In complementarity with the "Systems and Networks Security" course, which aims to provide theoretical knowledge for testing the security of computer systems and networks, the applications provide practical skills and abilities for testing the security of systems and networks, focusing on experiments with modern hardware equipment and specialized software; The aim is to familiarize students with widely used equipment for modeling, simulating and testing systems and networks. The use of these equipment will be done on real systems and networks in order to be able to make a more precise quantitative and qualitative analysis; The systems and network security applications aim to create a framework to prepare participants for the use of specialized equipment in network testing and simulation, culminating in a simulation of auditing their own communications networks used by the laboratory equipment on which they completed the training; Hands-on applied training activities benefit from hardware and software support and know-how in systems security, through partnerships with prestigious companies in the field such as Fluke Networks Romania, Marctel Romania.

For the course: Understanding the domain issues and relational, NoSQL and distributed data models; Mastering a systematic design model for relational databases (entity-association model), data warehouses (star, snowflake model, etc.), NoSQL models (key-value, document-oriented, column-oriented) and some data processing algorithms (OLAP, Map-Reduce); Mastering the knowledge necessary to understand the functioning of the presented systems; Mastering advanced elements of database theory: distributed databases and ensuring operational safety; Mastering different languages for manipulating information in the different systems presented: the API for MongoDB, Riak and Cassandra, JavaScript, CQL, Java for Hadoop and Scala for Spark. For the project: Mastering how to use the NoSQL management system or the Big Data ecosystem; Mastering how to use the specific language used by the NoSQL database or Big Data ecosystem.

At the end of lectures students will be able to: identify threats and vulnerabilities at system level; design attack vectors for validating vulnerabilities and discovering the thread model; select solutions, applications, libraries and architectures to maximize the security level of a system; design and develop secure components in information systems; evaluate the security level of an application or service. The practicl side will focus on: analysis of security specifications of computing systems, operating systems, applications and services; discovering vulnerabilties by system investigation, code auditing and reverse engineering; exploiting application vulnerabilities; using mitigation techniques for protecting systems and applications.

Understanding the components of a banking software system; understanding the specific requirements of the banking IT domain; knowledge of the properties of existing solutions; and the ability to design a banking software system based on existing components.

Course: Understanding data storage, querying, and processing models; understanding the use of supervised machine learning and data mining methods for building classification and prediction models; understanding the use of unsupervised machine learning and data mining methods for creating clustering models; acquiring the necessary knowledge for modeling an information extraction system. Laboratory: Acquiring practical skills in using the most commonly applied algorithms in the field; covering all aspects related to Data Mining, including data preprocessing; algorithms for association rules and frequent itemsets; classification algorithms (supervised learning); clustering algorithms (unsupervised learning); and methods for information integration.

After taking the Parallel Programming course the students will be able to: Describe using the advanced models of parallel programming, complex applications; To implement efficient algorithms from the performance view point and from the usage of memory based on efficient computational structures: parallel systems that are multi-procesor and multi-core (homogeneous and heterogeneous); To port and optimize parallel applications that are very big in size on different computational multi-processor systems (vectorization/load balancing); To estimate the performance of an application (computational and data traffic requirements) on a given computational structure, to evaluate the performance of the systems and to propose and implement improvement options.

Knowledge of basic concepts of access control în the Internet; Knowledge of key exchange mechanisms; Understanding the mechanisms of establishing a secure connection; Analyis of the security of a communication protocol; Knowledge of usual attacks în the Internet and protection methods.

Knowledge of the fundamental elements of cryptography. Knowledge of the weaknesses in existing and older cryptographic algorithms and implementations.Understanding the security of a cryptographic system. The ability to perform a security evaluation for a cryptographic system. Knowledge of the most popular cryptographic algorithms, both with symmetric and asymmetric keys. and asymmetric keys. Understanding the functionality and security of some of the most popular cryptographic systems, such as TLS and EMV.

Understanding the models of knowledge representation; Design and implementation of systems based on artificial intelligence that use knowledge and automatic reasoning; Use of knowledge representation models in problem solving; Implementation of systems based on artificial intelligence that use knowledge and automatic reasoning

In the case of the course, the main objective is to teach the theoretical concepts, methods and techniques of modern implementation of 3D graphics or real-time image processing applications using the power of graphics cards. For applications, we aim to deepening the theoretical notions taught in the course, by implementing vertex shader, fragment shader, geometry shader and tessellation shader programs in order to obtain photo-realistic effects and animation. Familiarization with OpenGL Shading Language (GLSL) and other languages dedicated to the implementation of shaders. Integrating shaders in graphical applications. Initiṭering in the development of compute shader programs to perform parallel processing for algorithm optimization in 3D real-time applications.

For lecture: The course introduces the theoretical concepts, methods and techniques of modeling three-dimensional objects for real-time applications and games. For laboratory: The projects in this discipline aim to familiarize the student with the technical requirements of three-dimensional modeling, with the working mode, software and common commands by modeling a real object of medium complexity.

Course: definition of virtual reality and its essential dimensions; review of the various categories of applications; presentation of specific equipment; in-depth presentation of immersion and its components; presentation of the associated trans-disciplinary aspects; discussion of the trends in the evolution of the field; introductory discussion of augmented reality, its similarities and complementarities with virtual reality; discussion of numerous case studies, analyzing immersion and trans-disciplinary aspects in depth. Seminar: hands-on work with specific virtual reality technologies (various HMDs, body tracking, hand tracking, 3D audio, haptic equipment) - lab topics for practicing each of them; practical understanding of immersion through dedicated lab topics; preliminary design, at high-level functionality and architecture level, of virtual reality systems with predefined or student-proposed topics.

The e-Government course offers theoretical and practical aspects of electronic governance so that a student can understand the basic concepts. At the end of this course, the student will be able to understand the purpose of electronic governance and will be able to create, maintain and optimize an e-government system. Thus, its objectives are: deepening the principles underlying electronic governance, defining the participants in electronic governance, establishing the characteristics of an e-government project, defining the architecture of e-government applications, detailing interoperability aspects. At the same time, the performance of an e-Government system is analyzed, as well as its security and scalability. Within the applications, the creation of electronic forms and the creation of an e-Government system by integrating its fundamental components are pursued.

For the course:The course will focus on models, methods, techniques, algorithms for designing, implementing and analyzing Big Data services. The Hadoop/Spark ecosystem and NoSQL system will be used as tools/standards for creating services that can process very large amounts of data. The course material will be extracted from textbooks and recent specialized literature. The following topics will be covered: distributed systems models, Big Data applications, service-oriented architecture, microservices, Hadoop ecosystems, in-memory computing (Apache Spark), storage services for Big Data, Big Data Analytics and Big Data ethical issues. The course presents theoretical models and general techniques for processing and storing big data, along with practical examples and use cases. The course provides a service-based approach to Big DataFor the project: Offering a balanced perspective on theory and practice, the project should enable students to understand the use and build practical large-scale systems for data processing (e.g. Big Data analytics) and Big Data storage services.

For the course: Presentation of the issues of implementing an integrated information system; Database architectures and applications; Security of database applications; Security of database systems; Distributed database systems; Methods of analysis, design and modeling of integrated systems; Methodologies for implementing and securing distributed information systems; The role of integrated applications in business activity; Design methods and modeling levels of ERP systems; For applications: Specific problems of administering a database system; Administration of users, privileges and roles; Database dictionary; Allocation of hardware and software resources for a database; Administration of objects created in the database; Statistics on relational databases; Optimizing the performance of a relational database.

This course focuses on presenting concepts related to decentralization systems and techniques, as well as the evolution of web technologies. The course aims to guide students in understanding the advantages and limitations of Web2 and Web3 technologies, and how they can be used together to create decentralized applications.

For the course: Understanding the Data Mining domain and its subdomains; Use of domain-specific IT tools; Knowledge and understanding of concepts, principles and theories in the field of Data Mining and data warehousing; Getting the knowledge necessary to efficiently use Data Mining algorithms; Getting the knowledge required to implement a software system; Acquiring the knowledge necessary to identify and analyze specific problems as well as acquiring the necessary skills to develop strategies for solving their problems; Acquiring knowledge to ensure the quality of IT products and services. For applications: Acquiring the way of use for the most commonly used algorithms in the field.All Data Mining elements are addressed: Preprocessing data; Algorithms for association rules and multiples of articles; Classification algorithms (supervised learning); Clustering algorithms (unsupervised learning); Semi-supervised learning algorithms; Integrity of information; Web Mining Elements; Data warehouses and dimensional modeling.

Knowledge of organizational structures in the banking IT sector; understanding how to design banking processes; and the ability to create, modify, and evaluate banking processes

Knowledge of the testing stages and quality assurance within various software design models; understanding the different types of testing; the ability to analyze requirements and design test cases; and the management of testing activities in a software project.

Studying the current problems in the field of distributed computer network processing. Researching the latest solutions to address complex issues in distributed systems, linking processes, replicating data to enhance performance, ensuring consistency, fault tolerance, and security in Web-based systems.Study heterogeneous systems based on objects, mobile networks and mobile agents.Getting the practical skills required for designing, implementing and evaluating distributed system components. Identify concrete issues related to current distributed systems and find effective solutions to solve them. Effective use of distributed system design and implementation tools. Installation, operation and maintenance of programs for distributed systems.

The specific objectives of this lecture are: Knowing the architecture of operating systems for mobile devices; Knowing the security models and mechanisms for mobile devices; Understanding the mechanisms of secure booting and updating of the operating system; Understanding attacks and malicious applications for mobile devices.

For the course:Acquiring knowledge about project management (how to plan and how to manage a project). Correct knowledge of the fundamental elements; Integrating IT into information, communication and managerial processes in economic units; Knowledge of the essential elements of a contract and the conditions of legal validity; Acquiring the knowledge necessary to assess risks in order to ensure the performance of projects and services in the IT field; Enumeration of factors to be taken into account when choosing a software for project management; Understanding the standards for commercial conditions for supply and order forms; Ensuring competent and professional preparation for accessing a management position; The course is structured in chapters that target the stages of project development: initiation, planning, execution, monitoring and control, closing and releasing resources. For applications: The student is guided to learn creatively and applicatively; Laboratory platforms clarify the basic notions in the field, the fundamental concepts and constitute an encouragement for individual study and practical applications on the computer; The student must acquire the knowledge necessary to find applicative solutions to problems in the stages of a project's development, on the computer, to form practical skills according to the theoretical training acquired.

For the course: Understanding the knowledge needed to manage product and process quality in digital project management; Understanding the agile development model for innovative digital products in a start-up system; Understanding the differences and specific challenges in developing innovative digital products versus traditional product development; Understanding the techniques and challenges of leading multi-disciplinary technical teams; Understanding the techniques for validating digital product requirements and investigating user experiences; Understanding the risks and challenges of data security and privacy in the context of GDPR. For applications: Understand and apply techniques for defining technical requirements with the customer; Understand and apply techniques for refining human-machine interfaces based on interaction with potential users; Understand specific metrics for digital products and be able to select the optimal metrics for a given product; Understand and apply the opportunities offered by social platforms for developing innovative digital products; Understand and apply specific communication techniques within technical teams; Understand and apply methods for adopting and incorporating emerging technologies.

Gaining the necessary knowledge to manage product and process quality in software project management. Familiarization with tools used in software development.

For the course: basic knowledge of the architecture of distributed systems; basic knowledge of the characteristics of Grid, Cloud and service-based architectures; knowledge of the main characteristics; basic knowledge of the existing processing methods for BigData, both batch and streaming; knowledge of the main mechanisms of HDFS and other methods of data organization; understanding how Apache Hadoop and Spark work. Understanding how Apache Hadoop and Spark work. For the Project: Learning the ability to analyze a dataset and evaluate the steps needed to process it; Creating a detailed scientific analysis of existing data analysis tools and methods; Implementing and evaluating distributed data analysis methods using Apache Hadoop or Apache Spark; Evaluating the results obtained and the distributed algorithm performance.

Course:Understanding of the main techniques and algorithms for image and sound processing, starting with general methods, reaching advanced computer vision processing and speech recognition. Ability to develop complex audio applications. Ability to develop complex image processing applications. Applications: Applications follow software implementations of the main techniques and algorithms presented in the course

For the course: the course presents the theoretical concepts, methods and modern implementation techniques in two important sub-domains of Computer Graphics, with numerous practical applications: ”Volume rendering and reconstruction techniques“ and ”Animation techniques"; The main methods of visualization and reconstruction of volumes and ways of real-time rendering by graphics-board programming are presented, with important applications in medicine, archaeology, geology, biology, cultural heritage, creation of virtual spaces, visualization of scientific data and other fields. The course also introduces the main techniques of computer animation, with applications in various fields: scientific visualization, computer games, making movies for big screens, etc. ; For applications: Through the projects in this discipline, the aim is, firstly, to familiarize the student with the field in which the project is related and to know the current state of the art in the field, and secondly, to realize an application of medium complexity that solves the requirements of the project; Through the laboratory, the aim is to understand the theoretical notions taught in the course, by implementing volumetric visualization and computer animation methods.

For the course: learning the basics of artificial intelligence and machine learning used in developing logic for video games. For applications: Ability to develop software modules based on artificial intelligence and machine learning algorithms dedicated to computer games; Ability to easily learn artificial intelligence and machine learning libraries that can be integrated with those used for game development; Seminar: Introduction; Simulating the motions of objects/characters in games; Mapping game worlds to data structures; Determining paths (A* algorithm); Modeling character behavior; Modeling character experience; Decision methods - decision trees; Decision methods - finite state automata; Decision methods - fuzzy logic; Clustering methods; Reward learning I; Reward learning II; Developing a game that includes artificial intelligence components I; Developing a game that includes artificial intelligence components II.

For the course: presentation of the theoretical notions necessary to develop a video game through all its stages, including post-launch and post-mortem maintenance; Conception and testing of a video game idea, comparing it with the desired market and validating it using feasibility and originality criteria; Transcription of ideas and concepts into formalized documents, according to the standards in the field, validating them using performance criteria; Actual implementation of the game objectives and testing them using current techniques. For applications: the project and the labs of this course are dedicated to take the student through all the stages of game development in an accelerated way. Work is done in teams, with students conceiving initial ideas and then implementing them according to a detailed schedule designed to familiarize them with how the industry works and working in a video game team.

For the course: This course provides knowledge about the design and implementation of an e-government application. The application will have to implement a series of services necessary for the modern citizen. Electronic governance is seen as a result of research activity and, as such, can be considered a field in full development. At the end of the course, students will have the following skills: Principles of designing e-Government projects; Steps necessary to implement an e-Government project. Steps necessary to implement an e-Government project carried out by European funds; Project and project team organization; Critical factors for the success of the application. For the project: After completing the project hours, students will be able to know the models and principles of e-Government architectures and develop specific applications using electronic services. They will also be able to design and implement electronic forms and a specific portal for the interaction between a user and an administrative institution.

The course offers an overview of the development of e-Health systems, through theoretical and practical aspects. It takes into account the permanent innovative nature of the field and studies current technologies and trends in the field, such as: telemedicine, virtual and augmented reality, machine learning, computer vision and others. The course also targets design and engineering elements through architectural, interoperability or security analyses of e-Health systems. In terms of knowledge application, the course proposes both a series of practical laboratories covering a wide area of knowledge, as well as a collaborative project, developed in teams of students. Thus, it aims to apply technologies and knowledge commonly found in this field: client and server web technologies, mobile development, security, machine learning, standards and dedicated data structures.

Understanding of a wide range of concepts, principles, theories, methods, and algorithms specific to symbolic and statistical machine learning (regression, classification, clustering, prediction, etc.); Modelling and designing software systems which employ methods and algorithms for to symbolic and statistical machine learning in real world applications; Implementing a software system that uses advances methods and concepts in symbolic and statistical machine learning; Competences in the study and understanding of specific elements needed to assess and evaluate the performance of machine learning methods applied in various practical domains.

This course has as objective to empower students to acquire methods and Artificial Intelligence techniques of modelling, design, implementation, and evaluation of Natural Language Processing systems. Students will learn the main approaches, both state-of-the-art (based on deep neural networks and Large Language Models) and classical (grammar and knowledge-based) approaches, models, and theories of the field. During the semester, students will also develop a project in teams, in which they will implement a NLP application.

Getting to know theoretical and practical knowledge about intelligent agents and multi-agent systems. Study of different types of agents and multi-agent systems. Learning the reasoning methods of intelligent agents.Learning methods of developing applications based on the multi-agent paradigm. Development of applications based on intelligent agents. Ability to design and develop multi-agent systems.

For the course: Understanding the issues of the Data Mining field and its subfields. Using IT tools specific to the field; Knowledge and understanding of concepts, principles and theories of the Data Mining field (extraction of knowledge from data) and data warehouses; Acquiring the knowledge necessary to effectively use Data Mining algorithms; Acquiring the knowledge necessary to identify and analyze specific problems as well as learning the skills necessary to develop strategies for their solution; Acquiring the knowledge necessary to ensure the quality of products and services in the IT field; For applications: Acquiring the use of the most commonly used algorithms in the field; All elements related to the Data Mining field are addressed: Data preprocessing; Algorithms for association rules and frequent sets of items; Classification algorithms (supervised learning); Clustering algorithms (unsupervised learning); Semi-supervised learning algorithms; Web mining elements; Data warehouses and dimensional modeling.

For the course: Presentation of CASE concepts; Architecture and areas of use of CASE systems; Development environments and types of CASE tools; Generations of CASE tools; Comparison methods between CASE tools; Designing software applications using CASE tools. For the laboratory: Xcase Database Design Software tool (Oracle, MySQL, SQLServer, DB2, Sybase database modeling) Oracle Application Express tool (database creation, web application design, report generation, statistics and graphics generation) Oracle Oracle Business Intelligence tool (report generation, statistics and graphics generation).

Acquiring the knowledge necessary to understand: Organizing computer clusters and the Linux operating system; Exploiting Oracle database architecture and DB creation methods; Administering an Oracle DB instance; Configuring the Oracle network and data storage structures; Administering Oracle DB users, concurrent data access and auditing a DB; DB maintenance activities, performing DB backup and restoration, recovering an Oracle DB. The ability to think algorithmically, in successive or recurring steps, to solve technical problems that can be solved with the help of a computer.

For the course: Understanding the concepts of relational and object-oriented DB and specific theoretical elements (e.g. relational algebra); Mastering specific relational/object-oriented DB languages; Mastering the algorithms presented; Deepening the specific knowledge of operating systems used in dealing with concurrency in DB systems; Using domain-specific IT tools; Mastering the knowledge necessary to implement a DB management system; For the project: the project that aims to demonstrate mastery of the elements presented in the course by applying them in the design, optimization and maintenance of a small-sized relational DB.

After completing the course High Performance Computing, students will be able to: Describe, using specific mathematical methods (for example, through systems of differential equations), applications from scientific fields such as: elementary physics, molecular chemistry, fluid mechanics, seismology, etc.; Implement efficient algorithms in terms of performance and memory usage on state-of-the-art computing structures: multiprocessor and multi-core parallel machines (homogeneous and heterogeneous); Port and optimize computationally intensive parallel applications on computing systems with processors (vectorization/load balancing); Be able to estimate the performance of a given application (computational requirements and data traffic) on a specific computing structure, evaluate the performance (profiling), propose and implement methods to improve them.

Course: Presentation and use of current technologies used by microprocessors, as well as advanced processing technologies; Presentation of advanced features of microprocessor systems; General and functional description of advanced architectures of microprocessor systems: advanced vector and multimedia architectures; stream architectures; multithread, multicore architectures and multiprocessor circuits; polymorphic architectures based on core grid, clusters, FPGA or asynchronous; Presentation and use of advanced programming and compilation models; Presentation and use of virtual machines in the development and execution of current microprocessor systems; Presentation and application of dynamic compilation methods in advanced microprocessor systems; General and functional description of advanced fault-tolerant architectures; Application of ML (“Machine Learning”) techniques to advanced microprocessor systems; Applications: Study, development and analysis from a hardware/software point of view of advanced microprocessor systems; Conducting research reports in the field of advanced design of processors and processor systems.

Knowledge of cloud and grid systems components. Knowledge of systems that assure identity of different entities and trust relationship between them.Know minimal security rules to prevent and counteract attacks in the virtual environment.

Knowledge of cloud and grid systems components. Knowledge of systems that assure identity of different entities and trust relationship between them.Know minimal security rules to prevent and counteract attacks in the virtual environment.

This discipline aims to develop students' skills in ensuring data confidentiality across various scenarios and technologies (data privacy), while adhering to standards, user rights, and legal requirements, including the General Data Protection Regulation (GDPR) (Regulation (EU) 2016/679). The course will cover the main concepts and mechanisms for data protection, the types of scenarios and technologies required to ensure confidentiality, as well as the possibilities of attacks and their prevention.

The specific objectives of the course are: Knowledge of the fundamental concepts of designing a sensor node; Knowledge of the fundamental concepts related to specific protocols and operating systems for IoT; Implementation of IoT systems using domain-specific protocols, algorithms and operating systems; Programming, simulation and design of IoT nodes and networks.

Deepen the models and mechanisms for the design and development of data structures, algorithms and intelligent Internet/Web applications with high performance requirements when handling large amounts of data.Analyze the current state of the art of current solutions for intelligent Internet/Web systems using data mining, machine learning, natural language processing, computational vision.Research and design innovative solutions using techniques and methods specific to intelligent applications over Internet/Web systems, using heterogeneous data (text, images, voice, etc. Acquiring the skills and knowledge necessary for the design, implementation and evaluation of real-world intelligent systems (with a focus on machine learning and natural language processing).Familiarization with practical solutions and publicly available implementations widely used in the field (with a focus on machine learning and natural language processing).Study the performance implications of various methods for implementing intelligent solutions on Internet/Web systems.

Understanding the basic elements of marketing, with a focus on the specific characteristics of the digital environment; knowledge and use of marketing research tools in the electronic medium; knowledge and use of promotional tools in the digital space; acquiring the fundamentals of strategic digital marketing planning; and gaining the essential knowledge required to design, launch, and promote an online business through a website.

Explaining the interactions between the various components of a business; analyzing the business environment and identifying strategic options and challenges; integrating managerial, financial, marketing, and human resource decisions into a coherent strategy; and understanding the IT infrastructures dedicated to strategic management.

To establish and deepen practical knowledge of basic financial valuation and the rationale for investment budgets, long-term financing, risk assessment, capital structure and dividend policy, short-term financing and the implementation of mergers and acquisitions. The fixation and deepening of practical knowledge will enable students to master financial statement analysis, long-term financial planning, risk analysis, real options and investment budgeting. The development of analytical problem-solving skills, systems thinking and creativity are essential for students.

This course introduces the notion of mobile computing and offers students an in-depth understanding of the mobile world from various viewpoints, such as technologies, applications and infrastructures. The course covers multiple topics, ranging from mobile operating systems to network protocols, or building applications for smartphones and all other types of embedded devices.

Understand the main dangers of unsafe Internet access; Knowledge of minimal secure access to the Internet; Know minimal security rules to prevent and counteract attacks in the virtual environment.

For the course:Acquiring knowledge about project management (how to plan and how to manage a project). Correct knowledge of the fundamental elements; Integrating IT into information, communication and managerial processes in economic units; Knowledge of the essential elements of a contract and the conditions of legal validity; Acquiring the knowledge necessary to assess risks in order to ensure the performance of projects and services in the IT field; Enumeration of factors to be taken into account when choosing a software for project management; Understanding the standards for commercial conditions for supply and order forms; Ensuring competent and professional preparation for accessing a management position; The course is structured in chapters that target the stages of project development: initiation, planning, execution, monitoring and control, closing and releasing resources. For applications: The student is guided to learn creatively and applicatively; Laboratory platforms clarify the basic notions in the field, the fundamental concepts and constitute an encouragement for individual study and practical applications on the computer; The student must acquire the knowledge necessary to find applicative solutions to problems in the stages of a project's development, on the computer, to form practical skills according to the theoretical training acquired.

Deepening the models and mechanisms for the design and development of data structures and applications with very high performance requirements when handling huge amounts of data.Analyzing the current state of current solutions for information retrieval on the Web and in enterprise environments. Study the particularities of each of these electronic environments.Research and design of innovative solutions focused on increasing the quality offered by current search mechanisms in heterogeneous environments, as well as on proposing new methods for accessing unstructured or hard-to-identify information.Acquiring the skills and knowledge necessary to design, implement and evaluate real search systems. Familiarization with practical solutions and publicly available implementations widely used in the field. Study the performance implications of various implementation approaches for information retrieval solutions.

Understanding the characteristics and principles to design self-organizing systems; Developping the capacity to use results from cooperative game theory for creating self-organizing systems; Understanding several swarm intelligence tehniques using them for creating intelligent systems; Developping the capacity to tune a self-organizing system by choosing the appropiate values for the system parameters; Developping the capacity to analyze a self-organizing system and to compare the performances of two or more self-organizing systems.

Through this discipline students will acquire knowledge in the field of image content analysis, with applications in: object recognition and classification, optical character recognition and machine reading, intelligent clustering and segmentation, etc.

Course: Getting the basics of massively parallel SIMD programming; Getting advanced notions about the architecture of applications using GPGPU programming; Implementation aspects using GPGPU techniques (Compute shaders, OpenCL, CUDA); Presentation of the most important areas of interest that can benefit from GPGPU programming and learning their specific features. Seminar: Implementation of GPGPU programs using programmable graphics tape (Compute shaders); Implementation of GPGPU programs using OpenCL; Implementation of GPGPU programs using CUDA; Implementation of a practical project based on the theoretical notions taught in the course; Familiarization with different areas of interest where GPGPU programming can be successfully used: 3D rendering of virtual scenes using RayTracing, intelligent car industry, artificial intelligence and machine learning, advanced computer networks, computer vision, physical simulations, etc.

Course:Learning the basics of the functionality of 3D engine components; Learning advanced concepts of modern 3D engine architecture; Implementation aspects using Graphics Processing Unit (GPU) processors; Basic knowledge of multiplayer and Massive Multiplayer Online Games engines. Seminar: Realization of a practical project based on the theoretical notions taught in the course;Implementation of specific components and their integration into a 3D engine;Familiarization with different technologies and libraries that are commonly used for the development of real-time 3D engine components: OpenGL for the graphics components of the engine, libraries for the implementation of multimedia components (audio and video), Python/Lua for the scripting component and other development tools.

For the course:Understanding and knowledge of the specific characteristics of distributed systems in order to use them correctly in practice;Understanding and knowledge of the models and architectures that provide access control to resources in these systems; Learning the skills of analytical analysis of the degree of control offered by systems and applications;Understanding and knowledge of the concepts necessary to evaluate and manage access policies correctly; Understanding the concepts of design and development of access policies to increase their degree of trust. For applications: Practical knowledge of how to test and analyze access policies; Implementation of resource access management solutions; Implementation of access policies for distributed systems; Practical knowledge of how to ensure security in order to increase access control of systems.

For the course: Acquiring basic knowledge of security mechanisms; Acquiring basic knowledge of existing methods for authentication, authorization, securing communication and large-scale information systems; Knowing the main mechanisms for securing web applications and mobile devices; Analyze and design complex security systems for Clouds and other large distributed systems; Acquire the knowledge and skills to design access control mechanisms for web services and large distributed systems; Know the most important categories of attacks, unauthorized access or malicious access that can be undertaken on a computer system. For the Project: Learning the ability to analyze a concrete application in terms of its security requirements; Creating a detailed scientific analysis of the security mechanisms required for the project; Implementing and evaluating security methods for a computer system in terms of performance and the level of security provided; Performing a simulation of a computer attack, understanding its effects and protection methods.

The course aims to introduce modern concepts related to the multi-tier architecture of Java Enterprise applications and the relationships between the various components. Students will gain theoretical and practical knowledge of Java EE programming, learning the skills to program scalable and secure applications from scratch, with database support and that can run distributedly in the production environment. Real-life case studies are also presented as well as design templates that show the best practices for implementing Java Enterprise projects. Practical applications concretely exemplify the concepts and models taught in the course by using the APIs provided by the Java EE 8 platform as well as frameworks such as Spring. Students will develop several open source applications in Spring with MySQL/PostgreSQL database support, starting from a given set of specifications and going through all stages of the software development cycle (IntelliJ will be used as the IDE).

Knowledge of systems that ensure the identity of entities as well as the trust links between them; Knowledge of minimal security rules to prevent and counter attacks in the virtual environment.

The course aims to train students to properly design and implement an Information Security Management System (ISMS) using internationally and nationally recognized standards. The specific objectives of the course are: Knowledge of the elements necessary to design and implement an information security management system; Knowledge of the applicable international/national standards on information security (ISO27k, COBIT, NIS directive etc); Implementation of an information security management system (ISMS); Auditing an ISMS.

For the course: The course describes specific concepts in the Cloud Computing domain, such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Container as a Service (CaaS) and Software as a Service (SaaS). The course covers aspects related to security in Cloud environments, economic models for Cloud Computing, Cloud Service models, as well as understanding specific mechanisms and tools for the development and execution of Services and Applications in Cloud environments (with examples during the application hours). The course thus aims, in particular, to understand specific concepts for Business Grid, Cloud Computing, specific Platforms and Methodologies for the development of Cloud Services. For applications: Practical applications focus on presenting the notions of microservices and containers, in the context of applications and services in Cloud environments. Thus, students will become familiar with the terms of containers and containerization using Docker, and then with container and microservice orchestration using Kubernetes. During the application classes, case studies will be discussed and demonstrative applications will be implemented for each objective, this being the basis for the realization of the practical applications proposed in this discipline.

After completing the course, students will be able to: make a technical presentation in an area of expertise and interest to them; prepare technical fact sheets and reports / summaries after reading a scientific article; prepare technical documentation for scientific research projects; prepare a scientific article and poster from a formal point of view; draft documentation for a research project; be able to evaluate and correct scientific articles and posters, as well as proposals for scientific projects.

Course: in-depth technical analysis of specific VR & AR technologies; in-depth discussion of the categories of VR & AR applications; understanding of concrete VR & AR systems, presented as case studies; learning from the experience of invited industry specialists; Seminar: developing the ability to create innovative, original VR & AR systems, by realizing a complex project, going through the phases of conception, design, implementation and iterative Agile refinement.