Computer Science and engineering

DR, 2nd Series, No. 135, of July 16, 2018, Announcement No. 118/2018.


The following proof:

  • 16-Mathematics

The degree in Computer Engineering aims at the initial training of Computer Engineers. This type of professional must demonstrate a vast knowledge of Information Systems and Technologies, their potential, limitations and comparative advantages. Knowing how to make the best use of computer technologies and, through their integration, must have the necessary skills to build solutions of high quality and functionality.

The Computer Engineer is a highly specialized technician, with a deep knowledge of the smallest details of the technological support structure for the Information Society. It has mastery of the tools and technologies for the construction of Information Systems (IS) and the ability to integrate the different parts of the IT building and design its infrastructure. He has excellent knowledge of Information Technologies and the perspective of building integrated and integrative solutions.

The constant evolution of IS support technologies, and the possibilities offered by this evolution, determine that training in Computer Engineering should privilege training in distributed environments and their supports, namely distributed networks and systems, languages and development environments.

The Computer Engineer is an essential element in the planning and development of IS and Information Technology infrastructures, if their implementation requires the harmonious interconnection of different sources of information and different support systems. He is the strategist of integrated IS solutions par excellence.

The Computer Engineer needs to acquire vast knowledge about Information Systems and Technologies, their potential, limitations and comparative advantages. You need to know how to make the best use of each technology and, through their integration, build high quality and functional solutions. Today's Information Society requires a deep knowledge of technical solutions suitable for the construction of global, distributed and easily disseminated solutions. Knowledge of networks and Internet technologies is critical. Knowledge of management and administration of distributed systems and security issues is also essential.

A Computer Engineer is required to have competences in the analysis, planning and implementation of integrated and integrative solutions, in the evaluation of costs and benefits of the different possibilities of developing solutions. From the superior perspective of leadership and communication, as well as flexibility and autonomy, project and team management skills are essential. The IT Engineer needs to constantly adapt to the evolution of his work tools, mentalities and business requirements.

DR Accredited by A3ES, on 08/26/2014.



    - André Sabino - Inês de Almeida

    • Introduction to computers and programming: historical and technical part.
    • Imperative, Functional, Logical, Object-Oriented and Parallel Models. Programming languages. Notions of Algorithm and Program. Notion of Variable.
    • Algorithm. Flowcharts, Pseudocode and EXEL Algorithmic Language.
    • Assignment and Selection. Direct Programming.
    • cycles. Iterative Programming.
    • Introduction to C Language: Structure, Vocabulary, Rules for writing programs in C, variables and functions.
    • Vectors and Matrices.
    • C language: Libraries. Data types. Operators and expressions. Instructions. I/O operations. Selection statements: if; switch. Repetition statements: while; of; for. Break statements: break; continues. Strings (as vectors of characters). Functions. Type conversion. * and & operators. Structures; Array of structures. Text and binary files.
    • Introduction to Visual Studio from the .NET platform using C, included in C++.
    • Recursive Programming.

    Mathematics I
    6 ECTS

    - Joana de Matos - Lucian Radu

    Provide students with basic training in Mathematical Analysis. Confer skills in terms of calculation techniques.

    Complete analysis of real variable real functions. Integral calculation. Study of successions and series.

    Mathematical Analysis has as main objective the acquisition, by students, of skills and competences in terms of calculation techniques. Particular emphasis is given to real analysis and the study of sequences and series.

    The following specific objectives are defined:

    1. Master the study of real functions
    2. Know and apply integration methods and their application to real problems
    3. study numerical sequences
    4. Know some types of number series
    - Gonçalo Valadao

    1. Fundamentals: Propositional logic; predicate logic; inference rules; algorithms and complexity
    2. Graph Theory: Introduction, terminology, classification and special types; isomorphism; Euler and Hamiltonian paths; shortest path problems; trees
    3. Integers and Cryptography: Modular Arithmetic and Divisibility; primes and greatest common divisor; resolution of congruences; applications to cryptography
    - Valeria Small

    1. Databases and Modeling
    2. Conceptual modeling: ER model
    3. Logical Modeling: Relational Model
    4. Structured Query Language
    5. SQL language
    6. Integrity and Security Restrictions
    7. Integrity Constraints (cont.): Triggers
    8. Standardization - Database Design
    9. Transactions and Competition
    10. Data recovery
    - Junior Laércio - João Soares

    1. Introduction
    2. Numbering Bases, Binary Arithmetic and Coding Systems
    3. Basic concepts: Logic gates; Boolean algebra; Simplification of Boolean Expressions; Karnaugh diagrams
    4. Combinatorial logic: Adders and Subtractors; Multipliers; Decoders and Encoders; multiplexers
    5. Sequential Logic: Latches and Flip-flops; Registers and Counters
    6. Finite State Machines
    7. Memory and Storage
    - André Sabino - Inês de Almeida

    • Introduction to C#. Introduction to Object Oriented Programming.
    • C#: Classes, Attributes, Methods and Constructors; Abstract Classes; Objects and their instantiation; Properties.
    • C#: Base Classes: Object, String, Collections. generics. Files and Streams. Text and binary files. Object Serialization.
    • Algorithms and data structures. Data and Algorithms. Complexity of Algorithms. Solving a Problem and choosing an Algorithm.
    • Sorting Algorithms and their analysis: “Bublle-sort”, “Selection-sort”, “Insertion-sort”, “Merge-sort” and “Quick-sort”; Implementation in C#.
    • lists. C#: Queue and Stack.
    • Sequential and Binary Search, algorithms and their analysis. Implementation in C#.
    • Maps and Scatter Tables (Dictionaries and Hash-tables). Classes in C#.
    • trees. BST trees. operations. Implementation in C#. AVL Trees.Operations Implementation in C#.
    • Graphs. Definitions. operations. Graph representation: adjacency matrix and adjacency list. Algorithms: Depth-first search, Breadth-first search, Minimum spanning tree, Shorted path. C#: Implementation in C#.
    - Junior Laércio - João Soares

    1. Basics of information encoding: Numbering systems, base conversion; arithmetic in bases 2, 8 and 16; Representation of negative integers in 2's complement; Numerical and alphanumeric codes;
    2. Basic computer hardware circuits: Combinatorial circuits: arithmetic circuits, third-state gates, ROM (Read-Only Memory); Sequential circuits: registers and RAM (Random Access Memory);
    3. Computers, microprocessors and assembly programming: Harvard and Von Neumann architectures; Central Processing Unit; internal structure; Instruction set; CISC (Complete Instruction Set Computer) and RISC (Reduced Instruction Set Computer) microprocessors; Search-Execution Cycle; Addressing modes; procedural programming structures; procedural programming structures: Subroutines. The stack pointer; Interrupts and DMA (Direct Memory Access); organization of memory and peripherals in a computer.

    6 ECTS

    - José Aleixo

    1. Mathematics of Physics
    • physical quantities
    • vectors
    • orders of magnitude
    • Graphics
  • classical mechanics
    • Linear and circular motion
    • Newton's Laws
    • Laws of conservation of linear and angular momentum
    • Kinetic and potential energy
  • Thermodynamics
    • Temperature, heat and energy
    • State change
    • ideal gases
    • Laws of Thermodynamics
  • Oscillations and Waves
    • Mechanical waves and electromagnetic waves
    • Reflection and refraction
    • Diffraction and interference
    • Resonance
  • Electricity and magnetism
    • Electric field and potential: Coulomb's Law
    • Electric current and resistance
    • Magnetic Field and Gauss' Law
    • Electromagnetic Induction: Faraday's and Lenz's Law
    - Joana de Matos - Lucian Radu

    Following the previous UC, it is intended to:

    • Generalize the study of real variable functions to functions with more than one variable, developing methods of representation and visualization in three-dimensional space;
    • Extend the theory of differential calculus in R to functions with more than one variable, with a view to optimizing these functions;
    • Develop integration techniques in dimensions greater than 1, with special emphasis on the calculation of volumes, areas and the theorems of Stokes and Gauss, fundamental to the study of electromagnetism;
    • Start studying Linear Algebra through matrices and the classic algorithm for solving systems of linear equations;
    • Develop the abstract study of spaces and linear transformations, and study the application of Linear Algebra to solving systems of linear differential equations.
    - Gonçalo Valadao

    1. Introduction: Architecture of a computer system; Objective Operating Systems; System classification; OS Structure
    2. Process management: Processes; Threads; CPU scaling; Communication between processes (IPCs); Synchronization between processes
    3. File systems and Input/Output
    4. Memory management: Main memory: paging, segmentation; virtual memory
    - Joana de Matos

    1. Mathematical Modeling and Engineering Problem Solving: Development of Mathematical Models; Computers and Software; Approximations and rounding errors. Significant algharisms. Accuracy and precision. Error definitions. Rounding errors;
    2. Truncation errors and Taylor series – Numerical Differentiation; Taylor series. Use of the Taylor series to estimate truncation errors; Numerical differentiation; Propagation errors;
    3. Roots of equations; Framing methods; Open methods;
    4. Systems of nonlinear equations;
    5. Roots of polynomial equations;
    6. Function adjustment. Least squares regression;
    7. Polynomial interpolation;
    8. Numerical integration.
    - Valeria Small

    1. Application Development with DBMSs
    • Architectures, Development Techniques;
    • Implementation of Searches, Navigation, Validations, etc.;
    • Security issues.
  • Advanced Database Management Concepts
    • Data storage;
    • Data storage structures;
    • Indexing and Tuning of Database Systems;
    • Distributed Databases and recent data storage systems.

    6 ECTS

    - Sofia Reis

    • Parametric and implicit representation of curves and surfaces. Interpolation types;
    • Raster Algorithms;
    • Introduction to image processing;
    • Algebra topics, namely: 2D and 3D transformations, vector spaces, affine spaces. Coordinate transformations;
    • Visualization: orthographic and projective projections, projective space;
    • Local lighting models. Shading methods;
    • Introduction to OpenGL; introduction to the use of GPU for calculation;
    • Ray-tracing: elementary algorithm; ray intersections with objects; shadows, reflection, refraction; optimization techniques;
    • Texture mapping: 2D and 3D cases; tessellation models;
    • computer animation;
    • Graphic pipeline;
    • Light, color and perception;
    • Global Illumination Models; reflection models.
    - André Sabino - Héctor Ascama

    • The Java language: specific features of the language. Introduction to Java syntax. Activation of methods;
    • Object-oriented programming: Concept of Classes, encapsulation, visibility of attributes and methods: modifiers and rules;
    • Structure of a Class: attributes, constructors, methods (of the instance – non-static and of the class –static);
    • Creation of packages and use of Java packages;
    • The concept of overload of constructors and methods and what are their advantages;
    • Single and multiple inheritance: structure of an interface and advantages of use;
    • The concept of override and super instruction;
    • Polymorphism;
    • Java's instructions for handling recoverable errors: try, catch, finally, throw and throws;
    • File manipulation libraries. Need for Serializable interface;
    • Java and databases: JDBC;
    • Graphic environment creation libraries (GUI): Swing;
    • Class diagram in UML.
    - Mario Marques Silva - José Aleixo

    1. OSI Reference Model: Layered Architecture. Main components.
    2. Introduction to data networks: Evolution of the telephone network. Physical and logical architecture of networks.
    3. Basic transmission concepts: Transmission system. Signal modulation and encoding.
    4. Physical Layer: Transmission media. Evolution of Ethernet standards. Structured wiring. Voice and data integration.
    5. Data Link Layer: Objectives and services offered. Frame delimitation, error and flow control.
    6. Ethernet networks: Mechanism for accessing the medium. Physical and logical layers. Bridges and switches. Structured wiring.
    7. Networks and Ring: Mechanism for accessing the medium. Physical and logical layers. Structured wiring.
    8. Network Layer: Circuit and packet switching. Internet Protocol. Internetworking. Router configuration.
    9. Transport and Application Layers of the TCP/IP communications protocol architecture: Objectives and services offered. Most important protocols.

    6 ECTS

    - Joana de Matos - Lucian Radu

    • Descriptive statistics
    • Basics of probabilities
    • Random variables and discrete distributions
    • Random variables and continuous distributions
    • pet
    • hypothesis tests
    - Valeria Small - André Sabino

    • Review of the object-oriented programming paradigm;
    • Competitive Programming: development of multi-concurrency applications. Care to be taken with the management of shared resources. dead locks;
    • Functional Programming: expressions and functions. Assessment strategies. Lambda;
    • Aspect Oriented Programming: aspect definition. Crosscutting. Component responsible for centralizing common code (Weaver);
    • Component-Based Programming: component creation and management. Different ways of creating components (Singleton, Prototype, etc…). Component relationship. inversion of
    • Logic Programming: unification theory. Computational model. prolog;
    - José Aleixo - Mario Marques Silva

    1. Architectures: OSI and TCP/IP. Associated protocols.
    2. Addressing, name resolution, forwarding, DNS, VLSM addressing.
    3. Network interconnection equipment. IP Addressing.
    4. Wiring: topologies and transmission media.
    5. PPP networks.
    6. SDH and SONET networks.
    7. MPLS networks.
    8. Network technologies.
    9. Structured wiring.
    10. Availability of equipment. MTBF, MTTF and MTTR.
    11. Structured Network Design Concepts.
    12. The analysis and definition of functional and technical requirements.
    13. Planning elaboration.
    14. Project execution, installation plan and factory and on-site acceptance tests/tests.
    - Valeria Small - Junior Laércio


    1. Provide an understanding of Software Engineering, its areas of intervention, software development methodologies and its historical evolution;
    2. Present the phases of an information systems development project;
    3. Show the importance of using modeling techniques;
    4. Explain the context and importance of new approaches in the development of information systems, namely Model Driven Development, analysis and design patterns and agile approaches;
    5. Show the importance of using different tools to support development, and know how to identify which areas are most relevant.


    1. Be able to explain problems in the scope of Software Engineering and the appropriate solutions;
    2. Being able to identify requirements of an information system, use correct elicitation and requirements management techniques;
    3. Ability to use UML language modeling techniques.
    - Antonio Santos Caldeira

    1. Systems management on CISCO equipment, in addition to CCNA3
    • DNS
    • DHCP
    • Cisco Discovery Protocol (CDP)
    • IPv6
    • VLANs
    • VLAN Trunking Protocol (VTP)
  • General systems paradigms
    • Network management protocols
    • directory services
    • contracting services
    • IT Governance
    • ITIL and Cobit Standard
  • backup systems
  • - Adriana Fernandes - Antonio Garção Cabeças

    1. Introduction and General Concepts
    • Project, Program and Portfolio Concepts
    • Project Management Concept
    • Project Management Methodologies
    • Project Life Cycle
    • Project Management Life Cycle
  • Project Process Groups
    • Initiation
    • planning
    • Execution
    • Control and Closure
  • Key Project Management Knowledge Areas
    • Scope Management
    • Cost Management
    • Time management
    • Integration Management
  • Project Management Support Knowledge Areas
    • Risk Management
    • Purchasing Management
    • Quality management
    • Communication Management
    • Human resource Management
  • Preparation of Planning and Cost Estimation
    • Definition of scope and start of planning
    • Estimation of the duration and sequencing of activities
    • PERT method
    • Resource Planning
    • Cost Estimation
  • Project Control with Earned Value Management
    • Variation of cost and plan
    • Cost and plan performance indices
    • Cost estimates for completing a project
    • Comparative analysis of projects
    • Graphical analysis of variations in indices and the performance of a project
    - Gonçalo Valadao

    1. Decision making for problem solving
    • Troubleshooting, intelligent agents.
    • Problem solving by state space search: uninformed, informed, and heuristic search.
    • Constraint satisfaction problems: backward search, local search, problem structure.
    • Knowledge representation and inference in deterministic environments.
  • Learning
    • Inductive learning. Induction in decision trees. Logic programs.
    • Instance-based learning.
    • Statistical learning.
    • Neural networks.
    - Junior Laércio

    1. Promote the in-depth and integrated acquisition of basic knowledge about e-commerce and business and its various categories;
    2. Enable future IT engineers to know methods and techniques that ensure the development of applications for electronic business;
    3. Confer skills in terms of implementation and consumption of web services.

    At the end of this curricular unit, students are expected to:

    1. Have knowledge about the programming bases of client-server systems;
    2. Have knowledge of the main internet protocols and message formats;
    3. Know how to structure and develop applications and APIs that export information via web services.
    - André Sabino

    • Introduction to distributed systems: definition, development factors, advantages, difficulties, distribution tools;
    • Distributed communication model: architecture, components, semantics of sending, receiving and fault model;
    • Client/server model: RPC;
    • P2P model: SOCKETS;
    • Distributed object model: CORBA;
    • Naming systems: properties of names, system architecture;
    • Security in distributed systems: introduction, encryption, authentication and authorization services, digital signature;
    • Distributed file systems: model, problems, architecture. Case studies – NFS and AFS.
    - Daniel Silvestre - Mario Marques Silva - Raúl Dionisio - Valeria Small

    1. How to carry out Projects, Academic and Scientific Works, Reports and Dissertations: Research and treatment of Information; Work Structure; Making a Bibliography.
    2. Presentation of proposals for Projects proposed by the teachers, some of which are aligned with the research areas in progress or in collaboration with Companies or other organizations, in particular UAL itself.
    3. Approval of Projects to be carried out by each Group of students.
    4. Realization of the Projects by the Student Groups, once approved by the teachers, accompanied by the respective supervisors.
    - Joaquim Cunha Viana

    1. Security in distributed information systems
    2. Security attributes and services
    3. Types of attacks and protective measures
    4. information war
    5. computer crime
    6. cyberterrorism
    7. commercial espionage
    8. Social engineering and manipulation
    9. Electronic contracting
    10. Weaknesses in operating systems
    11. Application cracking and reverse engineering
    12. Secure software installation
    13. Secure application development
    14. Security Policy, and its implementation with procedures, mechanisms and technology
    15. Symmetric and asymmetric encryption
    16. Signature and digital certificate
    17. Public Key Infrastructure
    18. Cryptographic protocols: DES, 3DES, AES, Diffie-Hellman, RSA, PGP, IPsec, SSL/TLS
    19. Configure Packet Filtering and NAT on Cisco Routers Using Cisco IOS (Wide Use of Packet Tracer Simulator)
    20. Analysis, quantification and risk management. Mitigating measures
    21. Security Tests (attack injection and static analysis). Audit and Contingency Plans. The information security cycle
    22. Legal framework for information security
    - Antonio Santos Caldeira

    1. Fundamentals of Distributed Systems
    • System Models
    • middleware
    • Safety
    • fault tolerance
  • computer clusters
    • Parallelism and MPP Architecture
    • design principles
    • Resource management
  • virtual machines
    • virtualization levels
    • Tools and mechanisms
    • virtual clusters
    • Resource management
    • data centers
  • Cloud Computing
    • service models
    • Data centers and interconnection networks
    • Architectural design
    • public platforms
  • Service-Oriented Architecture
    • Discovery, records, metadata and databases
    • workflow
  • Ubiquitous computing
    • Concepts and Technologies
    • Internet of Things
    - Adriana Fernandes

    1. Decision: process and supporting information
    2. Decision support system: characteristics, typology
    3. Data Warehouses: characteristics, motivations, Data Marts, metadata
    4. Data Mining: methodologies, techniques, uses
    5. OLAP: architecture, operations, drill typology
    6. Business Intelligence
    7. Customer Relationship Management (CRM)
    - Daniel Silvestre

    Robotics System has as main objectives:

    1. the acquisition, by the students, of abilities and competences, related to the elementary knowledge of robotics;
    2. have basic knowledge in Vision, Trajectory Planning, Sensors and Actuators, Forward and Inverse Kinematics;
    3. being able to build an elementary robot;
    4. use Matlab as a tool for robotics solutions.

    Inês de Almeida

    Joana de Matos

    Joaquim Cunha Viana