Go to:
You are here: Start > Cursos/CE > Integrated Master > MIEIC > Information for Applicants
Today is sunday
Programa de formação da Biblioteca para o segundo semestre já está disponível


Master in Informatics and Computing Engineering

General information

Official Code: 9459
Acronym: MIEIC

At the end of the first three years (1st cycle) the students will acquire a solid base instruction comprising not only the essential scientific and engineering skills, but also a wideband fundamental knowledge in several domains of informatics. At the five years integrated cycle conclusion the graduated students will exhibit an advanced instruction in Informatics and Computation Engineering, comprising a specialization area or a deep broader range of interests. In the last two years the student has an extensive subject offer, individually configurable. Possible specializations include: Software Engineering and Information Systems (divided in two sub areas with the same name) Networks and Information Technologies (divided in Internet Technologies and Information Infrastructures sub areas) Intelligent Systems and Multimedia (divided in two sub areas with the same name)

For more information regarding employability, testemonials, partnerships, etc., please visit http://www.fe.up.pt/dei/mieic.


  • Informatics and Computing Engineering (300 ECTS credits)
  • Engineering Sciences - Informatics and Computing Engineering (180 ECTS credits)

National Applications

The average grade of the last approved student in the last 5 years

2013 2014 2015 2016 2017
158 161,8 170,3 176 178
Applications and deadlines are managed by Directorate-General for Higher Education.

Courses Units


EIC0003 - ECTS

SPECIFIC AIMS: This discipline has two main objectives: the promotion of logical reasoning and methods of analysis and the introduction and theoretical development of a set of concepts that will be fundamental to support the study of other disciplines along this course of studies.

Mathematical Analysis

EIC0004 - ECTS

This course aims to acquaint students with the differential and integral calculus, in order to make them able to apply basic tools of mathematical analysis in problem solving related with subjects of Informatics and Computing Engineering. This course also aims to expand students’ knowledge, so that they can address new methodologies applied to engineering problems. At the end of the course, the learning outcomes are: 1. To solve derivatives of functions, draw graphics and study functions in general; 2. To solve integrals and use them in various engineering applications; 3. To use different integration techniques and differential equations; 4. To use and understand approximation concepts based on series and polynomials.

Computer Architecture and Organization

EIC0083 - ECTS

This course introduces the principles of operation and general structure of a modern computer and its general structure, with particular emphasis on the contribution of each subsystem to the overall performance. The analysis of the implementation technology of computers (logic circuits and memory), together with the basic principles of digital information representation, will allow students to identify and describe the principles of computer operation, programming languages and software development.

Programming Fundamentals

EIC0005 - ECTS


Fluency in the process of software development is a basic prerequisite to the work of Informatics Engineers. In order to use computers to solve problems effectively, students must be competent at reading and writing programs using higher-order programming languages.


The global aim of this Unit is to give the student the ability to create algorithms, and to use a programming language to implement, test, and debug algorithms for solving simple problems.

The student will be able to understand and use the fundamental programming constructs, and the Functional approach to programming, specifically effect-free programming where function calls have no side-effects and variables are immutable, and contrast it with the Imperative approach.


Scientific component: 40%
Technological component: 60%

Discrete Mathematics

EIC0011 - ECTS


Logic is the fondament of any scientific reasoning and that is the main reason for its inclusion in the first year of the program. Furthermore, in the case of a Computer Science program, Logic has direct operational relevance in multiple professional aspects.

Specific aims

The goals are the development of skills of rigorous reasoning and in the techniques of discrete mathematics required in several areas of computer science like problem solving, algorithm design and analysis, theory of computing, knowledge representation and security.

Percentual distribution

Scientific component: 100%

Technological component: 0%.

Project FEUP

  • To welcome and integrate the new coming students.
  • To introduce the most important services of the campus
  • To teach “Soft Skills” and to stress their importance (soft skills: team work, communication, etc) 
  • To discuss a scientific Theme / Project of limited complexity in engineering areas.

Complements of Mathematics

EIC0009 - ECTS

1- BACKGROUND The main aim is to introduce fundamental mathematical concepts by developing the ability to analyze problems and results and also to acquire mathematical precision. These aspects form an educational background for other subjects in the curricula.

2- SPECIFIC AIMS Enhance the students reasoning capacity and knowledge of essential mathematical concepts. The students should acquire solid theoretical and practical training on the main concepts and results of differential and integral calculus of several variables, including the basic theorems of calculus.

 3- PREVIOUS KNOWLEDGE Functions and graphs. Differential and integral calculus in R1. Vector algebra. Lines and planes in R3.

4- PERCENTAGE DISTRIBUTION Scientific component:75% Technological component:25%

5- LEARNING OUTCOMES Knowledge and understanding: Partial and directional derivatives for real-valued and vector-valued functions; gradient vector. The chain rule for real-valued and vector-valued functions including implicit functions. Apply parametric curves and surfaces in R3 to calculate line and surface integrals. Establishment of the relationship between the line integral and the surface integral based on the Green’s, Stokes and Gauss Theorems.


Physics I

EIC0010 - ECTS

Physics is the foundation of any Engineering field. With the advent of computers, the kind of physical problems that can be solved in an introductory course has expanded significantly. Computational physics and simulation techniques allow students to get a wider view of physical phenomena without requiring complicated analytical methods. The computational techniques developed to solve mechanics problems have been applied to other areas outside physics, giving rise to the general theory of dynamical systems.

This course aims to give the student basic background knowledge on dynamics and the computational techniques used to solve dynamical systems. A Computer Algebra System (CAS) is used, in order to allow the student to solve practical problems in mechanics and dynamical systems, rather than spending their time learning abstract analytical techniques. The knowledge on dynamics and computer modeling of physical systems acquired will be very important in other courses of their curriculum: computer graphics and visualization, games theory, simulation and scientific computing.

Statistical Methods

EIC0105 - ECTS

This course unit aims to provide students with an integrated vision of the basic concepts and techniques of Statistics.

Microprocessors and Personal Computers

EIC0016 - ECTS


The PC-compatible desktop and mobile platforms are an everyday tool in modern societies. Their architecture reflects the current technological development, but also defines the limits of the computer's capabilities and performance. Variants of the ARM instruction set are used today n most mobile platforms (tablets, mobile phones)in use today. Both system architecture and ISA have a deep impact on the day-to-day practice of informatics engineers.


The course unit Microprocessors and Personal Computers aims to develop, combine and apply concepts in the areas of Computer Architecture and Programming Languages. On the one hand, the course explores the relationships between the CPU instruction set and low-level programming (assembly language). On the other hand, recognizing that the architecture of modern personal computers goes far beyond the architecture of the CPU, the course addresses the general architecture of a computational platform, including data storage subsystem and other peripherals. The discussion is based on the ARMv8 64-bit CPU architecture. Upon successful completion of this course, students will have acquired the ability to identify and describe the architecture of the computational platforms in use today, as well as the ability to apply assembly programming to the implementation of algorithms.


  • Scientific component: 60%
  • Technological component: 40%


EIC0012 - ECTS

The main objectives of this curricular unit are to transmit to the students:
- fundamental knowledge on procedural and object oriented programming techniques;
- the ability of applying those programming paradigms to develop programs, using the C++ language as development tool.

Algorithms and Data Structures

EIC0013 - ECTS

Following up the former course on Programming, with this unit we intend: to use notions already acquired and systematically apply data structures and algorithms to solve certain categories of problems; to use object-oriented programming; give emphasis to the organisation of programs on the basis of abstract data types. Practice is to be achieved with exercises and implementation of a small project in C++.

Physics II

EIC0014 - ECTS

Nowadays information processing, storage and transmission are done using electromagnetic phenomena. Therefore, the background knowledge for a computer engineer must include the study of electricity, magnetism and electric circuits.

This course aims to provide the students with basic knowledge on electromagnetism and signal processing. An experimental approach is used with simple on-hands experiments that the students may conduct during the practical sessions, in order to strengthen the subjects covered in the lectures and to gain experience with the use of measuring devices. The Computer Algebra System (CAS) used in Physics 1 is also used in this course to help solve problems and to visualize electric and magnetic fields.

Computer Laboratory

EIC0020 - ECTS

1- Introduction

I/O devices are an integral part of a computer, without which the usefulness or the ease of use of a computer would be significantly lower. The importance of I/O devices in computer-based systems has increased since the first generation of computers, and it continues up to these days with the ever increasing use of computers in embedded systems. However, programming of I/O devices using their programatic interface requires specific knowledge and techniques.

2- Specific Objectives

This course unit aims to endow students with the knowledge and the skills required to:

    • use the hardware interface of the most common computer peripherals;
    • develop low level software and embedded software;
    • program in the C language (using C++ as a reference);
    • use various tools of software development.

3- Percentual Distribution

Scientific: 30%
Tecnological: 70%

Numerical Methods

EIC0021 - ECTS

The course aims at providing the student with solid numerical methods foundations. It is topic oriented, covering numerical error analysis, algebraic and differential equation and systems solving, definite integration, non-linear optimization and curve fitting.

The student will be able to:

  • dentify numerical problems, choosing and implementing the right solution method, after doing numerical experimentation;
  • understand numerical methods in the context of engineering, working on examples from engineering practice;
  • criticise results, from the methodological, implementation and problem context points of view.

Computing Theory

EIC0022 - ECTS

To prepare students about computing theory topics with a special emphasis to formal language topics.
Students will learn about regular languages, regular expressions, non-regular languages, deterministic and nondeterministic finite automata, context-free languages and grammars, deterministic and nondeterministic pushdown automata, and Turing machines, and how to apply these topics to problems.
Students will be able to express computing problems by using formal languages, automata and Turing machines.
In addition, students will learn how to formally specify computing problems related to formal languages and prove related statements.


EIC0023 - ECTS


Information Systems (IS) is a key topic in informatics engineering. Databases are data repositories required in any IS. The database course is a key course in the area of IS. The main objective of this course unit is to prepare students to design and develop database systems that meet the users' needs according to the organizational management goals.


This is an introductory course on databases. It is focused on the relational paradigm. It covers the design (UML model), construction (SQL data definition language), querying (SQL data manipulation language) and management (optimization, access control and concurrency policies). It also introduces the concept of multidimensional databases, NoSQL databases and semistructured data models.


Scientific component: 50%
Technological component:50% 

Computer Graphics

EIC0019 - ECTS

BACKGROUND Computer graphics has been stated and is today a very important component in the whole human-computer interaction ambience. However, its applicability goes far beyond, having nowadays a prominent position in major industries such as the cinema and electronic games. Also in technology and science it plays an irreplaceable role allowing the visualization of phenomena, often linked to simulation and virtual reality techniques. In this course, the approach to computer graphics is made under a Top-Down philosophy, starting with the subjects most related to 3D (image synthesis, modelling) and ending with a visit to several most basic algorithms in 2D. The 3D components of the programme are accompanied, in practical lessons, with exercises based on the usual technologies, like OpenGL and WebGL.

SPECIFIC AIMS -Transmit knowledge of concepts, techniques, algorithms, computer graphics technologies and architectures. -Strengthen the theoretical knowledge with practical application, through the implementation, testing and evaluation of algorithms discussed in theory.

-Scientific Component: 50%
-Technological Component: 50%

Algorithm Design and Analysis

EIC0110 - ECTS

This course unit aims to follow up and deepen the knowledge acquired in previous modules such as “Programming” and “Algorithms and Data Structures”, namely by introducing techniques for devising and implementing efficient algorithms to solve different classes of problems, as well as for analysing and assessing them.

More specifically, it is intended to allow students to:

  • be acquainted with and know how to apply efficient algorithms in graph problems, sets and strings;
  • be acquainted with and know how to apply generic algorithm design and analysis techniques;
  • be acquainted with some classes of intractable problems and know how to conceive and devise algorithms to produce approximate solutions to some of those problems. 

Object Oriented Programming Laboratory

EIC0111 - ECTS
  • Develop and enhance object-oriented programming skills, using a modern object-oriented programming language (Java), representative of the languages used for developing application software.
  • Developing object-oriented design skills, employing UML, and upholding good design principles and patterns. 
  • Learn to develop applications with graphical user interfaces (GUI) and usage of large software libraries. 
  • Acquire the habit of following good practices in software development (iterative development, unit testing, debugging, SCV, refactoring, pair programming, etc.). 


Operating Systems

EIC0027 - ECTS

The main objectives of this curricular unit are to provide the fundamental knowledge on:
O1- the structure and the functioning of an operating system;
O2- the use of the Application Programming Interface (API) of a real .

Software Engineering

EIC0024 - ECTS

This course aims to acquaint students with the engineering and management methods necessary for the cost-effective development and maintenance of high-quality complex software systems.

Graphical Applications Laboratory

EIC0084 - ECTS


This curricular unit is defined in sequence with "Computer Graphics", from the 2nd semester of second year, where the main theoretical subjetcs were acquired.


The objective of this course is to develop a set of practical skills, some of them already tough in above courses. This course is focused in development practical works, multidisciplinary as possible, namely in the areas of Computer Graphics and Interfaces, Logic Programming, Operating Systems.

Scientific Component: 30%
Technological Component: 70%


It is also an objective to give the students the capacity to develop software, namely in the creation of 3D environments (polygonal representation, illumination and interaction) and in the use of services offered by the operating system, with emphasis in communications and synchronization.

Web Languages and Technologies

EIC0112 - ECTS

The goal is providing the students with skills in the most significant languages and Web technologies in the current technological context or that were breakthroughs in the Web's evolutionary process. 

Logic Programming

EIC0026 - ECTS

The Logic Programming paradigm is a declarative approach to programming, based on formal reasoning processes, which is more appropriate to address some types of problems. Constraint logic programming allows addressing constraint satisfaction and optimization problems by modeling them in a straightforward and elegant fashion.

Aims: To get acquainted with the Logic Programming and Constraint Programming paradigms. To develop skills for abstract reasoning and declarative problem representation.

The course focuses on first-order logic programming. On the practical side the Prolog programming language is explored. Additionally, constraint logic programming is also introduced, and several application examples are provided.

Percentual Distribution: Scientific component: 50%; Technological component: 50%

Computer Networks

EIC0032 - ECTS

Provide the students with basic training in Computer Networks - knowledge of the essential architectural concepts and principles, the more used technologies and solutions and also the main standards. Furthermore, the student must be capable of analyzing and evaluating the performance of different types of systems and communication networks.


EIC0028 - ECTS

Provide concepts which allow to:

- understand the languages’ compilation phases, in particular for imperative and object-oriented (OO) languages;

- specify the syntax and semantics of a programming language;

- understand and use the data structures and the main algorithms used to implement compilers.

Artificial Intelligence

EIC0029 - ECTS

This course provides a set of subjects (topics) that are the core of the Artificial Intelligence and Intelligent System area.

The main objectives are:

  • To know what characterizes and distinguishes AI and how to apply it.
  • To know how to automatically represent, acquire, manipulate and apply knowledge using Computational Algorithms and Systems.
  • To develop small projects using AI techniques.

Percentual Distribution: Scientific component: 60%; Technological component: 40%

Database and Web Applications Laboratory

EIC0085 - ECTS

The unit aims at revisit the learning outcome of databases and web languages ​​and technologies, providing a practical perspective on this core areas of computer engineering.

In this course, the students will learn how to design and develop web-based information systems backed by database management systems.

Personal and Interpersonal Proficiency

EIC0031 - ECTS

OBJECTIVES: • Identify and acquire the basic knowledges to know how to progressively maximize the successful conditions of the personal and interpersonal performance. • Apply self-control techniques and strategies of interpersonal relationships that allow managing with high mastery the efficiency of work processes implementation and the effectiveness of the outcomes to achieve in each organization. • Be aware of the importance of knowing how to use soft skills and to perform growing changes in order to develop a professional profile that contributes to improve the future performance of the computer engineer.

Distributed Systems

EIC0036 - ECTS


One of the most important recent developments in computing is the growth of distributed applications, as witnessed by the sheer number of Web-based applications, many of them mobile.


This course unit has to main objectives:

  • give students theoretical knowledge on distributed systems so they can make correct decisions when confronted with the need to implement such a system;
  • provide students with practical knowledge so they can develop applications taking into account potential advantages of distributed environments.


Scientific: 50%; Technological: 50%


Agents and Distributed Artificial Intelligence

EIC0033 - ECTS

This course has an engineering bias and proposes a global perspective on the techniques associated with agent-based computing, exploring, on one hand, agent-based complex systems modeling and simulation, and the development of intelligent agents and multi-agent system applications.

Agent Oriented Programming and Software Engineering are presented as a new metaphor to describe and program distributed computational systems.

The ackwired knowledge is consolidated through the use of appropriate software tools, with which students are incentivized to work on the development of small projects. The main goal is that students are able to specify and implement complex, adaptive, distributed and decentralized systems using the multi-agent systems paradigm.

Enterprise Management

EIC0034 - ECTS

This course aims at developing management competencies, integrating a solid theoretical basis with case study analysis and discussion.  

Software Development Laboratory

EIC0086 - ECTS

The course unit has the key goal to develop the following skills in the students:
- applying a Software Engineering process to the complete development of a real software system. along the course unit, covering the specification of requirements, software architecture and design, coding, integration, test, documentation and demonstration;
- acquire fundamental knowledge and experience about agile software development practices: iteration planning, unit tests, refactoring, pattern-based design, collective ownership, pair programming, continuous integration;
- use software development tools adapted to agile methods to enable the continuous monitoring and tracking of the project along its lifecycle;
- use of large-scale APIs with class packages, to induct the component-based computing and the problems related with application integration;
- development of collaborative work integrating other project participants in design decisions, planning, delegation, negotiation, and group review;
- application and integration of the contents acquired by the students in courses within the areas of Software Engineering, Data Bases, Graphic Interfaces, Operative Systems, Programming Languages and Artificial Intelligence.

Formal Methods in Software Engineering

EIC0039 - ECTS

1- BACKGROUND Students should have knowledge about software processes and software modelling.

2- SPECIFIC AIMS To develop abstraction capabilities in order to describe what the system should do and not the way to do it. Be familiar with formal methods and the way they can contribute to increase the quality of software systems.

3- PREVIOUS KNOWLEDGE Software engineering; Computing Theory; Algorithm design and analysis.

4- PERCENT DISTRIBUTION Scientific component:75% Technological component:25%

5- LEARNING OUTCOMES At the end of the course students should be able to: - Apply formal methods of specification (based on models, based on properties, based on behavior) and verification ("Model-checking, formal proofs and test) in the development of software systems. - Identify existing formal methods and know when they should be applied and which are most suitable in each case.

Information Systems

EIC0040 - ECTS

BACKGROUND This is the only course on Information Systems in MIEIC. For this reason, we want this course to be an introductory Information Systems in Organizations focusing on their role and how the they contribute to the creation of value.
SPECIFIC OBJECTIVES / SPECIFIC AIMS The aim of this course to prepare students to understand the role of Information Systems (IS) in organizations and the importance of its alignment with the business strategy.

Software Systems Architecture

EIC0048 - ECTS

BACKGROUND As the dimension and complexity of software systems grows, it becomes more important to understand them at more advanced abstraction levels. The architecture of a software system describes the global structure in terms of its components, external proprieties and its interrelations. For medium and big-dimension systems, to chose the right architecture becomes crucial to the success of its development.

SPECIFIC AIMS This course aims to introduce the concepts of software architectures, design patterns and topics directly related, such as the software components’ one. Furthermore, it aims to teach how to design, understand and evaluate software systems architectures both at the level of abstraction of macro-architecture and micro-architecture. All this to familiarize the students with the fundamental concepts of software architecture, the proprieties and applicability of the different architecture styles, the most popular design patterns, software components, reusable architectures and the relations of all these concepts with the software reuse.

PERCENTAGE DISTRIBUTION Scientific component: 50% Technologic componente: 50.

Network and Systems Architecture and Management

EIC0095 - ECTS

This course aims to train students on planning and integrated management of network, system and services infrastructures.

Parallel Computing

EIC0089 - ECTS


Parallel and distributed computing is becoming the computing paradigm as hardware tends to multi-processing units. The common desktop is today built with multicore processors that collectively have more processing power, than the single core processor, but cores are individually less powerful. Programmers will have to deal with multiprocessor architectures in order to use effectively the machines of today and of the future.


Acquisition of useful knowledge to develop parallel programs. Construction of solid basis in parallel architectures, algorithms parallelization, programming models, synchronization of processes and performance measures by the development of programs.

Scientific component:50%

Technological component:50%


Mobile Communications

EIC0082 - ECTS

In the Mobile Communications course are discussed the fundamental aspects of the behaviour of wireless nertworks, the relevant wireless technologies, and techniques required to design  wireless networks.

Computer Games Development

EIC0090 - ECTS


Software engineers can take great advantages of having skills in the development of digital games, not only as a final product of the entertainment industry, but also due to the immersive and interactive capabilities of this technology that can enhance diverse software products, even in learning.


The aim of this course is to convey knowledge about the process of computer games development, with particular emphasis on issues related to the programming of the distinct modules that compose a game engine.


  • Scientific component: 30%
  • Technological component: 70%


Software Systems Requirements Engineering

EIC0053 - ECTS

This course unit aims to endow students with planning and management skills, so that they can analyse and specify the requirements of a software system.

Operations Management and Logistics

EIC0091 - ECTS

The main objective of this course is to give students an overview of the principles and techniques of Operations Management and logistics, namely concerning:

  • know and understand the key concepts in operations management, so as to solve real world problems, both in industrial and service companies;
  • acquire an integrated vision of the operations management inside the organizations, namely in what concerns techniques and strategies, as well as be able to identify and tackle problems using quantitative methods;
  • understand the need and role of forecasting methods, inventory planning, and of scheduling of tasks in production systems and supply chains;
  • know and apply lean manufacturing concepts and tools, with the aim of reducing wastes and increase the efficiency of production systems
  • know and apply techniques and tools for design, planning and management of logistic and distribution systems

Operational Research

EIC0037 - ECTS

The aim of this course to provide the students with competences to: - identify decision problems; - apply the different phases of the methodology for a decision problem resolution, in particular defining and structuring problems, building models, applying quantitative methods for obtaining a solution - analyse critically the obtained solution - understand the relevance of the role of an "agent of change" in the organizations

Project Management Laboratory

EIC0106 - ECTS

The success of projects and software products depends not only on the field of technical skills necessary to perform the various activities of the life cycle of software development, but also, increasingly, a set of skills and management skills, behavioral and communication, such as project management skills (in its various variables of time, budget, scope, quality, resources, etc..), capacity for teamwork, relationship skills with customers and communication skills and marketing.

At the end of the course students should be able to:
1.Identify the need for use of project management as well as the importance of its strategic framework;
2.Identify the different frameworks and methodologies for project management;
3. Identify and define the process areas and variables involved in project management;
4. Apply methodologies and tools for project management and teamwork;
5. Apply concepts and tools of quality management ;
6. Identify and manage project risks.

Mastery of technical skills needed to develop software projects.
Having successfully attended the Software Development Laboratory (LDSO).

Scientific Component: 50%
Component Technology 50%

Markup Languages and Document Processing

EIC0107 - ECTS


The unit is motivated by the widespread use of languages to represent semi-structured information and the existence of standardized tools for their treatment.

The course will also cover the notion of the Web of Things and semantic-based data integration topics, as semantic description of Web APIs, RESTful services, and ontology instantiation and learning.


1.Learn non-trivial applications of markup languages;
2.Be familiar with the technologies of processing and storage of semi-structured information;
3.Be familiar with service-oriented architectures and Web services;
4.Learn semantic web technologies and ontology instantiation;
5.Explore the technologies in defining smart services and IoT and in the development of an application.


EIC0061 - ECTS

The course aims to develop competences in the Marketing Management area, integrating a sound theoretical component, through the presentation and discussion of Marketing concepts and methodologies, with an applied component, through the development of a marketing plan and case study discussion.

Systems Modelling and Simulation

EIC0098 - ECTS The goals of this course unit are:
  • to present the basic concepts of (computational) modelling and simulation and their diverse areas of application; 
  • to present the different phases of the life cycle of a simulation project, from the modelling phase to the analysis and application of results; 
  • to present the main types of models and their adequacy to the treatment of different problems, as well as the main simulation techniques.

Multimedia and New Services

EIC0064 - ECTS

This Curricular Unit has the mission of providing a general overview at the technological level on the generation, encoding, distribution and perception of multimedia signals. It intends to provide the students with new specific knowledge on processing and coding of audiovisual signals and consolidate general knowledge on computer networks and signal processing to design and manage multimedia applications and services. It also aims that the students obtain the necessary knowledge concerning good practices to adopt for creating interactive multimedia applications to efficiently communicate multimedia information, as well as concerning tools to edit, manipulate and interconnect multimedia data. 

Computer Systems Security

EIC0072 - ECTS

This Course aims the study of IT security systems, in order to provide students with a basic understanding of the concepts and of the threats and defenses to the misuse and operational destruction of these systems.


Embedded and Real Time Systems

EIC0102 - ECTS

Provide the students with the ability to develop embedded systems subject to real-time constraints using, when appropriate, real-time operating systems.

Database Technologies

EIC0076 - ECTS

The students should be able to design and manage large databases, namely to tune the physical schema, to optimize SQL queries, to profit from extensions to object manipulation and XML technology, and to recover and replicate data.

Distribution and Integration Technologies

EIC0077 - ECTS

The course main objectives include:
- providing knowledge and practice acquisition of fundamental concepts in designing and architecting distributed business applications;
- main distributed pattern and technology use, appropiate for scenario requirements and functionalities;
- detailed knowledge of several technologies, for fluent implementation of distributed business applications, knowing their interoperability and integration capabilities.

Project Appraisal

EIC0044 - ECTS

This course unit aims to provide students with knowledge of basic methodologies for the analysis of the financial and economic feasibility of  real investment projects. 

Data Warehouses

EIC0046 - ECTS

The students should be able to design, build and explore data warehouses.

Mobile Computing

EIC0050 - ECTS

Mobile Computing had an enormous increment in the last years with the explosion of mobile devices utilization. These devices present increasing capabilities concerning computation power, communication, storage and ease of interface. Applications extend now to incresing areas from entertainment and social networking to enterprise work.
The main ojectives include the acquisition of knowledge and practice of the main concepts of design, architecture and implementation of applications, mainly business, with particular access needs to data and computing in any place and at any time. Emphasis is on the use of current and generic frameworks, taking into account the mobile devices’ specificity.
Problems and challenges to overcome include the existing great diversity of capabilities and interaction ways and interfaces.

Information Description, Storage and Retrieval

EIC0108 - ECTS


The "Information Description, Storage and Retrieval" unit assumes as its context the existence of large collections of heterogeneous information which needs to be organized, described, stored and retrieved.


  • Make the students aware of the main issues in the organization and storage of large data collections.
  • Make the students familiar with the main concepts in textual information retrieval and their application in retrieval tools.
  • Explore semantic web methods and tools, and use web resources and their descriptions in applications that make use of data semantics.



EIC0041 - ECTS

In accordance with the procedure laid down in specific standards of FEUP, characterisation of Dissertation is as follows: 1. individual Work, research and development leading to the development of a scientific dissertation about a desktop theme, or knowledge of the course towards integration and application to solving complex problems of engineering knowledge, skills and attitudes acquired along the course. 2. it may be a work of research or technological development and implementation, involving experimental media and/or simulation, which promotes the development of capacity for initiative, decision-making, innovation, creative thinking and critical, in the context of individual or group work. 3. should involve the analysis of new situations, the collection of relevant information, development and selection of design or approach methodologies and instruments proposed problem resolution, to its resolution, the Office of sin-thesis and drawing of conclusions, and the preparation of a relevant dissertation subject to public presentation and discussion of results. 4. Can be carried out in academic or academic and entrepreneurial environment. In this case the objectives, nature and form of monitoring of the work shall be subject to prior agreement between the student and the College's guiding and company, validated by the course Director, ensuring the satisfaction of the scientific and pedagogical objectives of the curriculum unit, and protect any confidentiality issues by the host institution/company.

Knowledge Extraction and Machine Learning

EIC0096 - ECTS


After a period in which the different companies / institutions invested significantly in data collection as part of the digitalization of their processes, there is now the need to make use of that data. The goal is to extract knowledge from data, improving efficiency and gaining competitive advantage. This is context of the Knowledge Extraction and Computational Learning (ECAC) Course (UC).


  • Motivate the use of knowledge extraction (EC) from data techniques, or data mining in decision support.
  • Develop the ability to properly utilize these techniques for automated analysis of large amounts of data. 

Component distribution

  • Scientific Component: 70%
  • Technologycal Component: 30%

Human-Computer Interaction

EIC0057 - ECTS

Main aims: The main aim of this course unit is to prepare students to analyse and project interactive components of systems, particularly the user interface. It should be adequately done, considering the short, the medium and the long term.


1. To prepare students to analyse interactive systems concerning their quantitative and qualitative parameters.

2. To prepare students to use study, observation and questioning techniques based on the understanding of the conceptual model of system users

3. To prepare students to use a construction process of interactive products based on the design, user assessment, conception, prototyping, validation, construction and maintenance.

Dissertation Planning

EIC0087 - ECTS Forthcoming

Virtual and Augmented Reality

EIC0070 - ECTS

Augmented reality is a technology which improves and augments the user’s vision of the real world with virtual images, using Computer Vision and Graphical Computing/ Virtual Reality techniques. On the other side Virtual Reality submerges the user in a totally virtual environment, making him/her believe s/he is in another world. The main aim of this course is to transmit to the students the basic knowledge of these techniques, allowing them to proceed more advanced studies in the emergent area of Augmented Reality as well as Virtual Reality. Furthermore, another aim is to provide the students with the capacity to do little assignments illustrating the methodologies studied. 


EIC0071 - ECTS
  • To understand the basic concepts of Robotics and the context of Artificial Intelligence in Robotics.
  • To study methods of perception and sensorial interpretation (emphasizing computer vision), which allow creating precise world estates and mobile robots’ localization methods.
  • To study the methods which allow mobile robots to navigate in familiar or unfamiliar environments using Planning and Navigation algorithms.
  • To study the fundamentals of human-robot interaction, robot learning, cooperative robotics and robot teams construction.
  • To analyze the main national and international robotics competitions, the more realistic robot simulators and the more advanced robotic platforms available in the market.
  • Improve the ability to communicate regarding scientific and technical issues.
  • Promote healthy scientific approach.

Information Systems and Software Engineering Seminar

EIC0099 - ECTS

Software engineers affect society by creating applications. These applications produce value for users, but sometimes produce also discomfort and even disasters, when they fail to operate within the minimal level of quality they are supposed.

Software engineers build software that people use for different purposes, which pressures them to solve problems in new ways, and emphasizing different characteristics, such as security, usability, scalability, reliability, accessibility, efficiency, or correctness. For example, consumer software emphasizes low cost, medical software emphasizes high quality, and web software emphasizes rapid development.

The fundamental objective of this course unit is to learn, discuss, and draft solutions for issues raised by the influence of software engineering and software usage on people and society.

Networks and Information Technologies Seminar

EIC0100 - ECTS

Intelligent Systems, Interaction and Multimedia Seminar

EIC0101 - ECTS

This course main goals are:

- to make students acquainted with Intelligent Systems, Interaction, and Multimedia research work.

- to make acquaintance with different researchers in Intelligent Systems, Interaction, and Multimedia and, through them, with different research groups active on the presented research topics.

Network and System Services

EIC0092 - ECTS The goal of this course is to provide students with competences in the area of content distribution in computer networks, including multimedia, and on how an IP network can support quality of service for different content types.

Software Testing, Verification and Validation

EIC0113 - ECTS

Be familiarized with the terminology used in software testing. Acquire knowledge about the main techniques that may be applied in software quality control. Acquiring sensitivity to issues relating to software quality processes.

Computer Vision

EIC0104 - ECTS

Computer vision is a subfield of computer science that focuses on extracting "useful information" from images and videos. The goal of computer vision is to "discover from images what is present in the world, where things are located, what actions are taking place" (Marr, 1982). Examples of "useful information" include, for example, recovering the 3D geometry of objects in an image, detection and identification of human faces and gestures, and tracking moving people or vehicles in a video sequence. Computer vision algorithms have found a wide range of applications in the industrial, military and medical fields, as well as in the ever-growing entertainment field.

This course is an introduction to basic concepts and methods in computer vision. It is mainly suited for MIEIC students who are interested in following research in this area. The covered topics include: image formation, basic image processing and analysis methods, as well as more advanced methods like 3D scene reconstruction, motion analysis, tracking, and object recognition. 


EIC0041 - ECTS

1-BACKGROUND In accordance with the procedure defined in the specific rules of FEUP, Dissertation characterization is as follows: • Individual work of research and development, leading to the development of a scientific dissertation on a theme under the knowledge of the MIEIC programme towards integration and application to complex problem solving engineering knowledge, skills and attitudes acquired throughout the above graduation years. • Can be a work of research or technological development and implementation, involving experimental media and/or simulation, which promotes the development of capacities for decision-making, initiative, innovation, creative and critical thinking, in a context of individual or group work. • Must involve the analysis of new situations, the collection of relevant information, the development and selection or design of a methodology and approach of the proposed problem resolution tools, their resolution, the exercise of synthesis and preparation of conclusions, as well as the preparation of a relevant dissertation, subject to public presentation and discussion of results. • Can be accomplished in an academic or in an enterprise and academic environment. In this case the objectives, nature and monitoring form should be object of prior agreement between the student and the College's advisors and the company, validated by the course Director, guaranteeing the satisfaction of scientific objectives and pedagogical curriculum unit, and protecting any issues of confidentiality on the part of the host institution/company. 2-SPECIFIC GOALS • Promoting the development of capacities for decision-making, initiative, innovation, creative and critical thinking, in a context of individual work. • Individual work-research and development; • Write a scientific dissertation. 3-PRIOR KNOWLEDGE • Technological knowledge in the area of MIEIC, • Knowledge, skills and attitudes acquired throughout the above years in MIEIC. 4-PERCENTAGE DISTRIBUTION • Scientific Component: 40% to 60% • Technological Component to 40 60% 5-LEARNING OUTCOMES At the end of the curriculum unit, students must demonstrate ability to: • Analysis of new situations with collection of relevant information; • Development and selection, or definition of methodologies and instruments to solve the proposed problem; • Problem solving, with the consequent exercise of synthesis and preparation of conclusions; • Preparation of a relevant dissertation to be subject to a public presentation and discussion of results.

Dissertation Planning

EIC0087 - ECTS


The curricular unit "Dissertation Planning" organizes the process and preliminary work of the dissertation of the Master in Informatics and Computing Engineering. Students complete PDIS prior to the semester in which the dissertation is held full time. The unit's effort is equivalent to 6 ECTS (1/5 full-time semester) and is dedicated to the choice and exploration of the dissertation subject, the study of the state of the art in the field of the dissertation and the development of preliminary work. After PDIS, it is expected that the work in the semester of the dissertation will be intense, well focused and with good presentation of results.


  1. Get familiar with the processes, methodologies and practices associated with scientific research, taking as an example the research in computer science;
  2. Reflect on critical thinking and its application in science;
  3. Select a topic and research questions in line with the dissertation;
  4. Elaborate and present the plan of a dissertation project, including the corresponding state of the art.
Recommend this page Top
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2024-04-21 at 22:14:34 | Acceptable Use Policy | Data Protection Policy | Complaint Portal