GENERAL: To analyse in depth problems and situations; To select the most suitable methodologies for solving problems; To analyze, test and criticize solutions; Handling a mathematical software. SPECIFIC: To know and operate with complex numbers; To recognize and operate with matrices and determinants; To solve systems of linear equations; To determine eigenvalues and eigenvectors of a matrix; To identify and operate in vector spaces and linear transformation; To use free software to operate with complex numbers, matrices and solving systems of linear equations.



1) To promote the development of oral and written skills in terms of interpretation, comprehension, expression and production in English Language, demonstrating an increasing autonomy in the use of communication skills; 2) Mobilize previously acquired linguistic knowledge and apply it in new learning situations; 3) To provide the improvement of the English Language, adapting it to the socio-professional context of the trainees; 4) Use English as a working tool; 5) To allow an autonomous manipulation of the English Language as a way of access to the correct use of Information and Communication Technologies; 6) Improve the interpretation of scientific and technological matters.



General Objectives: GO1 – of digital systems; GO2 – of operating systems; GO3 – networks of computers. Specific Objectives: SO1 – understanding the nature of digital systems (to achive GO1); SO2 – identify gates (to achieve GO1); SO3 – analyze and implement basic digital circuits (to achieve OG1); SO4 – design of basic digital circuits (to achieve OG1); SO5 – perform maintenance on basic digital circuits (to achieve OG1); SO6 – using the command line of operating systems (to achieve OG2); SO7 – manage users (to achieve OG2); SO8 – manipulate the file system (to achieve OG2); SO9 – control operating system processes (to achieve OG2); SO10 – identify the different types of computer networks and related components (to achieve OG3); SO11 – explain the operation of computer networks and main communication protocols (to achieve OG3).



General: 1. Draw the attention to the importance of the general knowledge of Information Technologies Law. 2. Understand the relevance of ethics and Information Technologies Law to economic life. 3. Know the main characteristics of this Law. 4. Apply the knowledge acquired in resolution of practical cases. Specific: 1.Know the concepts and ethics and deontology principles on the information technologies activity. 2. To interpret the legislation regarding the information technologies activity. 3. Know and adopt principles or information security policies according to the legislation (professional secrecy). 4. Know the criminal regime of cybercrime and its relation with intellectual property.



General objectives: a) Plan and develop solutions, in the form of algorithms, in order to solve problems of different degrees of complexity. b) Recognize, characterize and apply concepts of the Imperative Programming Paradigm. Specific objectives: I. Identify different types of programming languages; II. Recognize and understand the semantics and syntax of C language; III. Implement algorithms in C language; IV. Identify and apply library functions; V. Develop adequately structured programs; VI. Critically analyze a program in terms of correctness and performance.



General objectives: Provide students with skills on general concepts of programming concepts; Provide students with skills that enable them to develop programming projects. Specific objectives: I. Know the computer as a programmable tool; II. Analyze a problem and structure its resolution as an algorithm; III. Implement algorithms in C language; IV. Develop simple programs legibly and document the work done; V. Analyze, evaluate and critique programs; VI. Develop more complex programming projects, working in groups.



Provide students with skills that allow them to: – Know and understand the key concepts of IP networks; – Implement IP (IPv4, IPv6) networks; – Identify the several types of IP routing protocols; – Troubleshoot IP networks; – Understand how IP networks and its routing protocols operate; – Implement IP networks. Theoretical classes: 1 – Network Layer; 2 – Routing Protocols Interior; 3 – Exterior routing protocols; 4 – Transport Layer; 5 – Multicast. Theoretical-Practical classes: 1 – IP Routing; 2 – IPv6 Networks.



Objectives: – Know the main concepts in annotating documents and current techniques for specifying markup languages (Obj1). – Understand and apply basic rules associated with the XML and JSON formalism, as well as specific languages for different aspects of document processing, such as: typing, formatting and graphics processing (Obj2). – Explore technologies for structuring documents and support its production, processing and storing using document collections (Obj3). – Know different storage approaches for semi-structured data (Obj4). – Develop prototype of applications (Obj5). Syllabus: 1) Introduction to XML; 2) Validation of XML documents; 3) Navigation in XML documents; 4) Transformation of XML documents; 5) Presentation of XML documents; 6) Querying XML documents; 7) Manipulating, storing and retrieving XML; 8) Manipulating, storing and retrieving JSON documents; 9) Managing and querying data from document oriented databases.



General objectives: – Understand and use efficiently and effectively advanced data structures. – Build algorithmic solutions to simple and complex problems using the object oriented paradigm. Specific objectives: 1. To know the characteristics of the Java language; 2. Being able to use a development environment for Java applications; 3. Recognize and understand the semantics and syntax of the Java language; 4. Analyze and understand code that is based on the object oriented programming paradigm; 5. Reuse, modify, and develop code using the Java language in order to respond to a given problem.



Objectives: 1- Identify the major operating systems and their components. 2- Identify the different types of operating systems. 3- Understand how operating systems, and their components, work. 4- Develop concurrent applications. Syllabus: 1- Operating systems architectures. 2- Process and process scheduling. 3- Process scheduling algorithms. 4- Interprocess communication. 5- Deadlocks. 6- Classical synchronization problems. 7 – Memory management. 8- Virtual memory. 9- Device management.



The main goals of this curricular unit are: – Provide students with technical skills in the systems administration field; – Present the systems administration in the context of service providing. More specifically, after concluding this curricular unit, the student should be able to: a) Install and provide remote support for large scale systems; b) Select an O.S. according the technical requirements; c) Troubleshooting any reported problems; d) Install and maintain different network services (DHCP, DNS, HTTP, Email, etc.); e) Manage the systems resources; f) Automate the system management and maintenance tasks.



General: Overview of current security trends. Understand the elements of information security. Understand the concepts of Ethical Hacking. Overview of laws/legal associated with information security. Overview of vulnerability analysis and penetration testing. Learning of penetration testing tools and methodologies. Preparation of documentation for reporting. Specific: Address security testing with an ethical view. Define the scope and type of tests to perform according to requirements and conditions. Plan the tests according to the methodologies presented in the classes. Identify the services and vulnerabilities of the target system in tests. Identify the possible exploits of these vulnerabilities. Use and appropriately select the tools available in the Kali Linux security distribution to achieve the above goals. Run and document these exploits in a repeatable way.



1) Identify the main risk assessment methodologies;
2) Apply the ISO 31000 methodology;
3) Select the appropriate controls to mitigate the risks;
4) To know, verify and apply the improvement of the dependability of the critical systems;

1. Introduction to Risk Analysis (Objectives, Concepts, Methodologies, Types of Impact, Audit)
2. ISO 31000 Methodology (Threats, Attacks, Impacts, Controls, Cost / Benefit, Contingency Plans)
3. High Availability and Dependability Enhancement Systems (Redundancy, Scalability, Clustering, Virtualization, Disaster Recovery)
4. Case studies



Objectives: 1) Identify the main risk assessment methodologies; 2) Apply the ISO 31000 methodology; 3) Select the appropriate controls to mitigate the risks; 4) To know, verify and apply the improvement of the dependability of the crítical systems. Syllabus: 1. Introduction to Risk Analysis (Objectives, Concepts, Methodologies, Types of Impact, Audit); 2. ISO 31000 Methodology (Threats, Attacks, Impacts, Controls, Cost / Benefit, Contingency Plans); 3. High Availability and Dependability Enhancement Systems (Redundancy, Scalability, Clustering, Virtualization, Disaster Recovery); 4. Case studies.



The general objectives of this curricular unit are:
– To know and understand the fundamental concepts associated with object-oriented programming paradigm (class, object, encapsulation, dependencies between types, interface, inheritance and polymorphism)
– Apply and extend the knowledge of object-oriented programming concepts within the development of solutions.

More specifically, after concluding this Curricular Unit, the student should be able to:
1. To know the characteristics of the Java language;
2. Being able to use a development environment for Java applications;
3. Recognise and understand the semantics and syntax of the Java language;
4. Analyze and understand code that is based on the object oriented programming paradigm.
5. Reuse, modify, and develop code using the Java language in order to respond to a given problem.

1. Introduction to the Java language
2. Data Types and Operators
3. Control Flow
4. Classes, Objects and Methods
5. Inheritance and Polymorphism
6. Exception Handling
7. Input / Output
8. Introduction to the Collections Platform



– Recognize topics and apply mathematical techniques and methods for solving problems of other CU of the course;
– Select the most suitable methodologies for solving problems and in new problematic situations;
– Analyze, criticize and explain the obtained results.
O1 – Identify the basic terminology and propeties of sets, functions, permutations, sequences, relations, graphs and number theory;
O2 – Performe operations with sets, functions, permutations, sequences and relations;
O3 – Relate practical examples with the corresponding models involving sets, functions, permutations, relations e grafos, and interpret the operations and terminology in the context;
O4 – Modeling problems in Computer Science and relate graphs and trees with data structures and algorithms;
O5 – Recognize and apply principles and techniques of Number Theory and Discrete Probability used in Computer Science;
O6 – Know and use mathematical software for problem solving.

C1 Fundamental Structures, Relations and Induction
1.2 Functions, Permutations, Sequences, Sums and Products
1.3 Relations and their applications
1.4 Induction and recursion
C2 Graph Theory
2.1 Graphs and their representation
2.2 Eulerian and Hamiltonian paths
2.3 Trees and their applications
C3 Theory of Numbers
3.1 Divisibility and modular arithmetic
3.2 Solving congruences, their applications e Encryption
3.3 Counting Techniques, Discrete probability and Markov Chains.
C4. Use of mathematical software



With this course is intended that students are able to acquire, understand and apply knowledge about:
GO1 – digital systems;
GO2 – computer architecture.

After concluding this curricular unit, the student should be able to:
SO1 – represent digital information (to achieve GO1);
SO2 – analyze combinatorial circuits (to achieve GO1);
SO3 – analyze arithmetic circuits (to achieve GO1);
SO4 – analyze sequential circuits (to achieve GO1);
SO5 – analyze the internal organization of a computer (to achieve GO2);
SO6 – analyze the internal structure of a processor (to achieve GO2);
SO7 – analyze the instruction set processor (to achieve GO2);
SO8 – programming in assembly (to achieve GO2).

CP1 – Combinatorial Circuits
CP2 – Operating Circuits
CP3 – Sequential Circuits
CP4 – Architecture of a Computer
CP5 – Instruction Set
CP6 – 8085 Microprocessor
CP7 – Memory Systems
CP8 – Inputs/Outputs



Provide students with skills that allow them to:
– Identify and understand the key concepts related to local area networks;
– Understand the operation of the equipments used in local area networks;
– Identify the different types of computer networks;
– Identify the different types of equipments used in computer networks;
– Understand how computers communicate;
– Configure network equipments for a given problem

Theoretical classes:
1 – Introduction
2 – Data Communication
3 – Media Transmission
4 – Data Transmission
5 – Data link
6 – Local Computer Networks (LANs)
7 – Wireless Networks
Practical classes:
1 – Structured Cabling (TP cables and fiber optic)
2 – LAN equipment (switches, routers, access points)
3 – Segmentation of local area networks
4 – Configuration of equipment with CLI
5 – VLAN configuration
6 – VTP and STP protocols
7 – InterVLAN routing
8 – Troubleshooting: image replacement, centralized equipment monitoring



The general objectives of this curricular unit are:
– Design, model, implement and manage Databases.

More specifically, after concluding this Curricular Unit, the student should be able to:
– Know existing Database Technologies
– Question databases in relational Algebra and SQL
– Plan, Design and Manage Databases
– Normalize a Database Schema
– Know emerging Database Models (DataWarehousing, Data Mining).

Theoretical Classes:
1 – Introduction to Databases;
2 – Relational Model;
3 – Relational Algebra and Structured Query Language (SQL);
4 – Database development methodology;
5 – Transaction and concurrency management;
6 – Data Warehousing, DataMining.

Practical Classes:
1 – Relational Algebra;
2 – Structured Query Language (S.Q.L.);
3 – Normalization;
4 – Database Management Systems: SQL Server 2016 or superior.



General objectives:
– Know the evolution of the use of cryptography;
– Identify the algorithms and techniques more common in modern cryptography;
– Understand the usage of cryptographic mechanisms to ensure confidentiality, integrity, origin and non-repudiation.
Specific objectives:
– Use Symmetric Cryptography;
– Use Asymmetric Cryptography;
– Implement and use Public Key Infrastructures.

1- Symmetric ciphers
2 – Frequency analysis
3 – Asymmetric ciphers (Public Key Cryptography)
4 – Hash Functions, Digital Signatures and Message Authentication Codes
5 – Authentication and Access Control
6 – Certification and Public Key Infrastructure



General Objectives:
1 Know and use the Client-Server model as well the main Internet technologies in the development of web applications;
2 Develop web applications using programming languages and tecniques to support the client and server web application components
Specific Objectives:
After concluding this course, the student should be able to:
1. Know and use the Client-Server protocol, the techniques and programming languages used for Web development
2. Identify technologies and software patterns used for developing Web applications;
3. Mastering languages for data structuring in a web environment, presentation using style sheets and logic in web pages;
4. Development of skills for the creation of web applications using client and server languages;
5. Identify the libraries and frameworks to simplify the development of web applications.

1. Introduction to Internet and web application development
2. Hypertext Markup Language (HTML) for semantic Web
3. Cascading Style Sheets (CSS) for web page styling, layout implementation and responsive web
4. Client-Side Scripting (JavaScript) to add logic and functionalities to a website
5. Server-Side Scripting (eg:NodeJs) for the development that manage persistent data
6. Web development frameworks for the development of of web applications



OB1 – Collect, derive, define and validate the real requirements that support the project of computer networks
OB2 – Understand and describe traffic/data flows
OB3 – Determine how and where to apply the strategies and mechanisms of addressing and routing, security, management and performance, and how these interact with each other
OB4 – Evaluate and select vendors, network equipment, and service providers for network design

PR1 – Introductory concepts on computers networks project
PR2 – Requirements analysis
PR2.1 – Concepts
PR2.2 – Process
PR3 – Analysis of traffic/data flows
PR4 – Network architecture
PR4.1 – Introduction
PR4.2 – Addressing and routing
PR4.3 – Management
PR4.4 – Performance
PR4.5 – Security
PR5 – Computers networks design



-Understand and / or identify the guidelines for auditing information security management systems;
– Understand the importance of a system information audit in all of its aspects;
– Retain knowledge to provide audit services according to the standards of IS audit in order to help
organizations / companies to protect and control the information systems;
– Plan, implement and report a computer audit in a organization in accordance with the common standards;
– Specify standards and security procedures for the exchange of information, ensuring its integrity, availability and recovery.

– The Process of auditing information systems
– ISO/IEC 27007 – Auditing ITMS
– Environmental exposures and controls
– Physical access exposures and controls
– Human resource security
– Access permission and control (Identification, Authentication, Authorization)
– Network infrastructure and systems (audit and technology)
– Application security
– Disaster recover planning
– Environment changes (best practices, patch management, contingency plans)



Provide to the students contact with the fundamental theories and the main instruments used in contemporary management.
Develop in students the ability to interpret the situations to which they may be exposed as managers and to decide which tools to deal with reality.
Provide contact with the main dimensions of management.

Part 1: Context
The manager these days.
The fundamental functions
The history of management
The creation and development of organizations
The organizational strategy
Part Two: Management applications
Accounting and Taxation
The finances
The decision process
The socially responsible organization
The organizational design
Organizational theory
People management
Monitoring and control mechanisms
Part 3: The organization and the people
Change management
People development
Dysfunctional management
Part 4: Operations management
The Manufacture
Distribution chains and logistics
Integrated production
Service management
Process management
Project management
The quality
Information Systems
Part 5: Marketing & Sales
Sales management
Commercial management
Customer acquisition
Social media
Part 6: The Future of Management
Advanced management
The integration
The future



The integrated project course acts like an aggregating course that combines the knowledge acquired by the students in different scientific areas and aims to enhance the professional and academic skills of the students.

After concluding this Curricular Unit, the student should be able to:
a) Combine the knowledge gathered during the bachelor degree;
b) Be committed with its tasks or project execution;
c) Plan, present, devise and adopt the appropriate technical solutions;
d) Produce technical documentation;
e) Communicate with others for professional purposes and present its work achievements

In this curricular unit, the students will execute an industrial or research project involving several of the areas of the studies cycle.



1. Motivate the students for the importance of secure programming.
2. Empower the students with technical capacities in the area of secure programming.
3. Critically analyse the common vulnerabilities and emphasise the importance of software testing analysis and the adoption of good programming practices.
4. Explore available code analysis tools.

After concluding this Curricular Unit, the student should be able to:
OB1. Identify different types of common application vulnerabilities and risks.
OB2. Apply techniques and make use of tools that can be used to make software secure.
OB3. Audit and analyse software applications.
OB4. Create and advise on how to create secure applications.

PC1. Introduction to vulnerabilities, attacks and software intrusion.
PC2. Software vulnerabilities.
PC3. Software testing and code injection attacks.
PC4. Static code analysis.
PC5. Dynamic program analysis.