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.

Part I – Ethics and Deontology
From Ethics to Professional Ethics
Professional Deontology and Dictation for Computer Security
Part II – Privacy & Personal Data 2.1.
Constitutional Protection of Privacy and Personal Data 2.2.
2.2. The rights of personality in the civilian tradition.
2.3. Regulation (EU) 2016/679 of the Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data
2.4. law no. 58/2019, of 8 August, which ensures the implementation, in the national legal order, of Regulation (EU) 2016/679 of the Parliament and of the Council, of 27 April 2016.
2.5. The criminal protection of personal data
Part III Cybercrime
3.1 Framework
3.2 Cybercrime Convention: international cooperation.
3.3 Portuguese Cybercrime Law
3.3.1 The computer crimes
3.3.2 Means of searching and preserving digital evidence.



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



General objectives:
a) Provide students with skills on general concepts of programming concepts;
b) 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.

1. Introduction to Programming
a) The computer from the programmer’s point of view
b) Programming languages
c) Source code, machine code and translation software
d) Stages of compilation
e) IDEs and main functionalities
f) Binary and Hexadecimal System
g) Addressing System
2. Structuring of solutions and Algorithm
a) Use of visual programming tools
b) Flow, Variables and State
c) Arrays, matrices, conditions and cycles
d) Implementation of algorithms in C
3. Structuring of programming projects
a) Code structuring
b) Header files
c) Definition and use of own libraries
d) Comments and Code Documentation – Doxygen
e) Good practices in programming
4. Development of group programming project



1. Understand the basic concepts related to local computer networks
2. Build small local area networks
3. Implement Internet connectivity
4. Manage the security of networks and respective equipment
5. Implement medium-sized networks with wide area segments
6. Describe the basic concepts related to IPv6

1. Local Area Netorks
1.1 Introduction
1.2 Switches
1.3 Ethernet switchs
1.4 Ethernet troubleshooting
2. Internet
2.1 IP layer
2.2 IP addressing
2.3 TCP/IP layer
2.4 Routing
2.5 Router configuration
2.6 Static routing
2.7 ACLs
3. Management of the security of network equipments
3.1 Equipment access modes
3.2 Hardening of equipments
3.3 Traffic filtering with ACLs
4. Medium-sized networks
4.1 VLANs and Trunks
4.2 VLAN Routing
4.3 WAN technologies
4.4 Dynamic routing protocols
4.5 OSPF
5. IPV6
5.1 Introduction
5.2 Routing in IPv6



(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 knowledge about management and organziations, mainly,
theories and the main instruments in contemporary management. Understand what is it organizational competency in order to students see the organization as a whole.

Grant the students with knowledge of essential behavioral capacities in order to serve as a bases to interpretation of the organization’s reality.

Management evolution
Management and Organization:
-The Concept of Organization and Management;
-Management Functions ? planning; organization; leadership and control;
The company and its context, processes and structures:
-Vision, Mission, Strategy, Objectives;
-Porter’s Forces, PESTEL Analysis, SWOT;
-Organizational alignment;
-Value Chain;
Behavioral issues



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.