Provide students with skills that allow them to:
GO1- Know and understand the fundamental concepts of Linear Algebra and Analytic Geometry;
GO2- Identify the most appropriate methodologies for solving concrete problems, for this particular Curricular Unit (CU), and in general for the course contents that depend on these methodologies;
GO3- Interpret the results obtained from the application of the various methodologies;
GO4- Handle mathematical software.

Upon completion of this course, the student should be able to:
SO1- Know and operate with complex numbers;
SO2- Recognize and operate with matrices and determinants;
SO3- Solve systems of linear equations;
SO4- Determine values Eigenvalues and eigenvectors of a matrix;
SO5- Identify and operate in vector spaces and linear transformations;
SO6- Use free software for problem solving.

C1- Complex number sets (Revision);
C2- Matrices and determinants;
C3- Systems of linear equations;
C4- Eigenvalues ​​and eigenvectors of a matrix;
C5- Vector spaces;
C6- Linear transformations;
C7- Use of free software.



The students should be able to:
1. To communicate orally and in writing, interacting with other people in English, using grammatically, discursive, sociolinguistic and strategic skills in social, academic and professional contexts;
2. To be able to identify and interpret spoken and written texts, especially those related to professional situations;
3. To be able to produce spoken and written texts, especially those related to professional situations;
4. To identify and apply the language functions typical of different genres and interactional situations;
5. To identify and apply specialized vocabulary related to the world of management and management systems.
Specific learning outcomes:
6. Interpret and produce oral and written texts related to the world of work;
7. Gather and process oral and written information about company organization;

8. Know and apply the specific vocabulary of business communication and information sciences;

1. Analysis and interpretation of basic level technical texts in the domain of management and management systems.
2. Identification and use of terminology in specialized contexts.
3. Interpretation and production of intermediate and advanced technical texts.

4. Application of technical vocabulary in different interaction contexts.

Specific Contents
1. The importance of information

1.1. Information or Data?
1.2. The value of Information

1.3. Information Security
2. Information and the Digital Age

2.1. The Cloud
2.2. e-Publishing
2.3. Search Engines and Social Media
3. THE INFORMATION PROFESSIONAL 3.1. The new job market
3.2. Who is the information professional?

3.3. Applying for a Job
3.4. The interview

4.1. Are you an entrepreneur?
5.1. Talking about Your Company

5.2. The information marketplace



This course is intended that students are able to acquire, understand and apply knowledge of basic principles:
GO1 – of digital systems;
GO2 – of operating systems;
GO3 – networks of computers

After concluding this curricular unit, the student should be able to:

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);

CP1 – Digital Circuits
CP1.1 – Nature of Digital Circuits
CP1.2 – Boole Algebra
CP1.3 – Maps of karnaugh
CP1.4 – Logical Gates
CP2 – Operating Systems
CP2.1 – Command Interpreter (Shell)
CP2.2 – Basic Commands
CP3 – Computer Networks
CP3.1 – IP Networks
CP3.2 – DNS, ARP, DHCP Protocols



1. Raising awareness of the need for knowledge in this field
2. Understand the relevance of Ethics and Law in the regulation of typical activities of the Information Society
3. Understand the general notions of law and legal regimes most relevant to the activity of computer security
4. Learn to apply the studied legal regimes to practical situations

1. Know the concepts and principles of professional ethics and deontology in computer activity
2. Know the legal regime for the protection of personal data
3. Know the legal regime of cybercrime
4. Understand the relevance of the protection of personal data and cybercrime legislation for the activity of computer security
5. Apply ethical concepts to computer security activity.
6. Apply the legal regimes of protection of personal data and cybercrime to practical situations.



General Objectives:

– OG-1. Plan and develop efficient solutions, in the form of algorithms and programs, in order to solve problems with different degrees of complexity;
– OG-2. Characterize and apply concepts of the imperative programming paradigm.

Specific Objectives:

– OE-1. Identify different types of programming languages;
– OE-2. Recognize and understand the semantics and syntax of the C language;
– OE-3. Implement algorithms in C language;
– OE-4. Use of libraries;
– OE-5. Develop properly structured programs;
– OE-6. Critically analyze a program in terms of correction and performance.

1. Fundamental concepts
a) Problems, algorithms and programs
b) Programming Paradigms
c) Source code translation process
2. Data
a) Data Types
b) Variables and Constants
c) Assignment and arithmetic operations
e) Structures
f) One-dimensional and multidimensional vectors
3. Execution control structures
a) Relational and logical operators
b) Conditional control structures
c) Repetitive control structures
4. Code structure
a) Functions
b) Libraries
c) Recursivity
d) Arguments by value and by reference
5. Memory management
a) Pointers
b) Dynamic memory
6. Reading and writing files
7. Sorting and searching algorithms



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
– Routers
2 – Routing Protocols Interior
3 – Exterior routing protocols
4 – Transport Layer
– TCP congestion control
5 – Multicast
– Addressing
– Tree distribution
– Models of service
Theoretical-Practical classes:
1 – IP Routing
– Classfull IP addressing
– Variable Length Subnet Mask (VLSM) IP addressing
– LAN segmentation (VLAN)
– IP Routing (static and dynamic)
– Multicast
2 – IPv6 Networks



(Objective 1) Know the main concepts for annotating documents and current techniques for specifying markup languages.
(Objective 2) Understand and apply construction rules associated with XML (Extensible Markup Language) and JSON (JavaScript Object Notation) formats, the specific languages for document processing such as typing, formatting and graphics presentation, and its integration using WEB environment.
(Objective 3) Explore technologies for structuring documents and support its production, processing and storing using a collection of documents.
(Objective 4) Know different storage and cataloging approaches for data stored in documents.
(Objective 5) Develop programming interfaces to store and process data to support application development.
(Objective 6) Understand the specifics related to information interoperability

(Topic 1) Introduction to XML (Extensible Markup Language) documents and its validation
(Topic 2) Navigation and querying of XML documents
(Topic 3) Transformation of XML documents
(Topic 4) Storing, Structuring, and querying of XML and JSON (JavaScript Object Notation) documents
(Topic 5) Transforming, processing, and storage of document collections
(Topic 6) Indexing, processing, querying, and faceted search over structured data.
(Topic 7) Know the specificities related to the interoperability of information using the HTTP protocol, web services, REST, among others..



The general objectives of this curricular unit are:
– Understand and use efficiently and effectively advanced data structures
– Build algorithmic solutions to simple and complex problems using the object oriented paradigm

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. 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.

1. Java Collections Platform
2. Generics
3. Linear and Non-Linear Structures
4. Introduction to the algorithms Efficiency
5. References
6. Introduction to Linked Lists and Double Linked Lists
7. Stack
8. Queue
9. Lists
10. Iterators
11. Recursion
12. Sorts
13. Trees
14. Binary Search Trees
15. Heaps
16. Graphs
17. Hashing
18. Collection Set



Identify and understand the key concepts related to the internal operation of modern operating systems, and understand the key problems related to concurrent application development.

After concluding this Curricular Unit, the student should be able to:
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

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.

1. Scripting Language:
a. Variables;
b. Input/Output;
c. Data Structures;
d. Files;
e. Regular Expressions;
f. Modules.
2. Bare Metal, Virtualization and Containers:
a. O.S. installation and Setup;
b. Shell Environment;
c. Software Package Management.
3. Filesystems and Storage Management
a. Disk Drives, Volume Groups, Logical Volumes e Filesystems
4. Users management and tasks scheduling
5. Services:
a. SSH;
b. DHCP;
d. Email;
e. DNS;
6. System Monitoring.



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.

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.

? Introduction to “Ethical Hacking”
? Introduction to Kali Linux
? Penetration Testing Methodology
? Scope of the target
? Collection of information
? Target discovery
? Enumerating the target
? Mapping Vulnerabilities
? Social engineering
? Target Exploitation
? Escalation of privileges
? Maintaining Access
? Test of penetration in the network wifi
? Documentation and Reports



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



The general objectives of this curricular unit are:
1 – Knowledge of the requirements for Information Security Management Systems (ISO 27001);
2 – Knowledge of the Code of Practice for the management of Information Security (ISO 27002);
3- Knowledge of the control objectives for the safeguard of Information Security;
4 – Definition of an Information Security Policy.
More specifically, after concluding this curricular unit, the student should be able to:
– Identify threats to computer security and information security;
– Know standards and good practices relevant in the management of the Information Security;
– Prepare an Information Security Policy.

Theoretical classes:
1 – Introduction and fundamentals
2 – Code of Practice for the management of the Information Security
2.1 – Security Policy
2.2 – Organization of Information Security
2.3 – Asset Management
2.4 – Human Resources Security
2.5 – Physical and Environmental Security
2.6 – Communication and Operations Management
2.7 – Access Control
2.8 – Information Systems Acquisition, Development and Maintenance
2.9 – Information Security Incident Management
2.10 – Business Continuity Management
2.11 – Compliance
3 ? Information Security Policy
4 ? Information Security Management Systems (ISO 27001)
4.1 ? Requirements
4.2 ? Controls
4.3 ? Implementation Process
Practical classes:
1 – Solving of practical assignments by applying the concepts transmitted in the theoretical classes.



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



GO1. Understand basic concepts of computer security;
GO2. Critically analyze the security risks due to utilization of computer systems and communication networks;
GO3. Understand and give examples of techniques and mechanisms of computer security.

SO1. Present the most important concepts about computer security;
SO2. Understand the importance of cryptography and point out cryptographic systems;
SO3. Identify and understand several authentication and access control systems;
SO4. Recognize system faults and point out attack techniques against computer security;
SO5. Point out mechanisms and techniques to provide protection;
SO6. Comprehend the importance of security entities.

S1. Introductory concepts
S2. Basic Cryptography
S3. Authentication and Access Control
S4. Security threats
S5. Intrusion in networks and systems
S6. Security policies
S7. Protection mechanisms and defense techniques
S8. Security entities




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.