Go to:
Logótipo
You are in:: Start > Courses/CE or Courses/Cycle of Studies or Programmes/Cycle of Studies > MI:ERS > Information for Applicants
Map of Premises
FC6 - Departamento de Ciência de Computadores FC5 - Edifício Central FC4 - Departamento de Biologia FC3 - Departamento de Física e Astronomia e Departamento GAOT FC2 - Departamento de Química e Bioquímica FC1 - Departamento de Matemática

Courses

Master's Degree in Network and Information Systems Engineering

General information

Official Code: 9812
Acronym: MI:ERS

Certificates

  • Network and Information Systems Engineering (300 ECTS credits)
  • Computer Engineering Sciences (180 ECTS credits)

Courses Units

Linear Algebra and Analytic Geometry

M1002 - ECTS

Upon completing this course the student should know and understand: how to solve and discuss linear systems of equations using the Gauss method with matrix notation; determinant properties for the computation of the determinant of a square matrix and knowing the cases where area and volume interpretations are given; the basic concepts and main results on vector spaces and on linear maps between finite-dimensional linear vector spaces.




Calculus I

M1001 - ECTS

To become acquainted with the basic concepts and techniques of calculus, at the level of real-valued functions of a single real variable, as well as sequences and series.

 

Discrete Structures

CC1001 - ECTS

Study of the fundamental discrete structures that serve as a theoretical basis for the area of Computer Science/Informatics.  

Introduction to Computers

CC1002 - ECTS

The students should be able to undestand how a digital computer works, including concepts in architecture and operating systems, and have a broad perspective of Computer Science.

Imperative Programming

CC1003 - ECTS

Introduction to imperative programming using the C programming language. Study and implementation of fundamental algorithms and data structures (numerical computation, indexed variables, sorting and searching).
Introduction to the use of basic development tools in a GNU Linux system: text editor, compiler and debugger.
Introduction to the informal sepecificaction of program components (e.g. functions) and the use of automatic testing tools for detecting and correcting errors in programs.

 

 

 

 

 

Calculus II

M1003 - ECTS Acquisition of the basic knowledge and skills of Differential and Integral Calculus in several real variables.

Technical Communication

DPI1001 - ECTS Being able to communicate science and technology from a writing and oral perspective, and with multimedia support. In particular:
To structure and create technical texts. To evaluate technical texts from the perspective of the completion of their context, motivation and conclusions. Creation of multimedia presentations on technical topics. Oral presentation skills issues with multimedia support.

Data Structures

CC1007 - ECTS It is intended that the student reinforces his programmings skills, gets to know some of the main data structures and associated algorithms and gains basic knowledge on the conception and analysis of algorithms.

Computer Laboratory

CC1006 - ECTS
This unit  aims at providing key basic technical concepts when using and programming computers, namely in an Unix/Linux environment . It strengthens the knowledge acquired inprevious units, such as Introduction to Computers and Imperative Programming.

Computational Models

CC1004 - ECTS

Teach fundamental concepts and results about three computational models (finite automata, pushdown automata, Turing machines) and the related classes of formal languages, with emphasis on regular and context free languages.

Functional Programming

CC1005 - ECTS

Introduction to functional programming using the Haskell language.

Analysis

M1019 - ECTS

Vector Analysis in curve domains. Line and surface integrals. Integral theorems of Vector Analysis.  
Inverse function theorem, implicit function theorem and its main applications. 
Introduction to methods of solving ordinary differential equations with special emphasis on equations and systems of linear differential equations.

Computer Architecture

CC2002 - ECTS

Introduce the basic working concepts for the modern computer, namely, the internal representation of programs and data, the hardware components and their interactions and ways to evaluate its performance. 

Algorithm Design and Analysis

CC2001 - ECTS

To learn techniques for designing and analyzing algorithms.

Human-Machine Interfaces

CC3006 - ECTS

This course will introduce the basic concepts of Human-Computer Interaction, focussing on interactive systems design and development, including not only theoretical concepts (usability, user centred design) but also practical ones (low/high fidelity prototyping via graphical user interface implementation).

Computational Logic

CC2003 - ECTS

To know the main topics of propositional logic and first order logic, with a special focus on automated therem proving.

Mechanics

F1006 - ECTS

This course aims to present the concepts and the basic principles of Classic Mechanics, and relativity, with emphasis on  understanding and application in the analysis of  real world situations . Students should have the ability to manipulate fundamental concepts and knowi how to apply them to solve problems. Students will be motivated to consider the principles of Mechanics in other areas of knowledge and in technology. Particular attention will be paid to training in problem solving by familiarizing students with heuristics and modes of thinking of experienced physicists.

Probability and Statistics

M2016 - ECTS Introductory course in Probability and Statistics: acquisition of basic concepts and application to real situations.
Particular attention will be paid to the presentation and understanding of the concepts, keeping the mathematical treatment at a median level.

Programming Challenges

CC3036 - ECTS The main goals are to consolidate and to acquire new knowledge on algorithms and data structures and their efficient design and implementation by solving multiple programming challenges on the style of programming contests and job interviews.

Programming in Logic

CC3012 - ECTS - Provide students with fundamental concepts of logic programming
- Develop in students Prolog programming skills
- Explain the relationship between logic programming and mathematical logic
- Foster in students the motivation for logic programming
- Introduce students to applications of logic programming practices
- Involve students in practical projects lin ogic programming
- To relate Logic Programming with other disciplines of the course

Group Theory

M2025 - ECTS

To introduce the basic concepts and results of Group Theory, both throught
the classical examples of these structure and in an abstract level.

Number Theory and Applications

M3015 - ECTS

To introduce the basic concepts and results of Number Theory, together with some of its computational aspects. To give some of its cryptographical applications. 

Numerical Analysis

M2018 - ECTS

The main aim of this subject is given a mathematical problem,  to study sufficient conditions for the existence and unicity of its solution, to establish a constructive method to solve it, to study and control the errors  involved, to give an algoritmh for the solution and to implement it in a computer and to study and interpret the numerical results.

Databases

CC2005 - ECTS

Provide the students with the fundamentals and practice necessary for the design, implementation and analysis of relational databases. 

Computability and Complexity

CC3004 - ECTS

Study and comparison of different (Turing-complete) models of computation, their computational power and limitations. Study of the various complexity classes of problems.

After completing this course students are expected to

- know the classical models of computation;
- be able to prove the equivalence of several Turing-complete models;
- know the fundamental results and methods used in the study of computability and complexity;
- be able to classify concrete examples of problems and prove their (un)decidability within several classes of computability;
- be able to classify concrete problems about their time complessity, and understand the consequences of that classification.

Differential Equations

M2011 - ECTS Acquisition of basic knowledge of the theory of Differential Equations and its application to real-life problems.

Applied Statistics

M2020 - ECTS

Upon completing this course, the student should:

- have a good insight of the fundamental concepts and principles of statistics, and in particular those from basic inference statistics.

- know the common inference statistical  methods and how to apply them to concrete situations;

- be able to identify and formulate a problem, to choose adequate statistical methods and to analyze and interpret in a critical way the obtained results.

It is also expected that the student acquires familiarity with the programing language and software environment R, in the framework of problems solving.

Artificial Intelligence

CC2006 - ECTS

Objectives: Study fundamental concepts and techniques of general use for Artificial Intelligence.

Data Acquisition and Control Laboratory

F3002 - ECTS

To be able to plan experiments. To be able to do literature research, including analysis of technical papers, and to show results either orally or in written form. To be able to plan and automatize experiments using LabVIEW as a control tool. To develop small projects, within a well defined field, using as much as possible LabVIEW tools.

Programming Laboratory

CC2013 - ECTS Strengthening the knowledge of structured programming by developing medium dimension programming projects.

Decision Support Methods

CC3003 - ECTS Students should:
- get familiar with techniques of operations research and constraint programming and their application to modeling and solving deterministic and stochastic decision and optimization problems.
- develop skills for understanding computational complexity of concrete problems, and choosing algorithms, programming languages and libraries/APIs for solving them.

Concurrent Programming

CC3037 - ECTS

Introduce students to the fundamental theoretic and practical principals of concurrency, with emphasis on the correctness, design and implementation of models of concurrent computation using shared memory architectures. 

Mobile Device Programming

CC3035 - ECTS

The students will be equipped to face the increasing demands for developers, including full-stack, frontend and DevOP. In the end of this course the students will be to:

Design and implement secure mobile applications

Awareness of the implications of new GPDR, avoiding some of the common pittfalls regarding users’ privacy

Implement native and webpage based applications

Understand the implicit tradeoffs between performance, energy consumption and security/privacy

Operating Systems

CC2004 - ECTS Provide students with the fundamental concepts of the theory and practice of the organization, structure and operation of an operating system.

Be able to implement parts of an operating system and write programs using the API of an operating system.

Software Tools and Applications

CC3007 - ECTS

Provide the student experience in the use, administration and programming of some of the systems / applications currently used in the Windows environment. The particular focus is on the programming environment of Visual Basic for Applications.

Multimedia Systems

CC3013 - ECTS

The proposed syllabus is taught in lectures where the main concepts are introduced and practical examples are explained. During lectures students are also required to do presentations related to the topics presented in the syllabus. In the labs students will learn specific skills related to multimedia systems through the exploration of a specific topic that they have to chose from the syllabus. Students will need to surpass problems by creating a prototype of a system. Students will deploy a project and create an application that must reflect the concepts presented during the lecture. All learning outcomes will help students understand the fundamental principals of multimedia systems and have a direct correspondence to the described syllabus. It covers the state of the art technology and the necessary background to design and develop sophisticated interactive applications. This course aims to teach students how multimedia systems are currently being used in different industries.

 

The goal is to instill in students the same curiosity, passion to discover and desire to convey knowledge that drives researchers to explore new areas related to multimedia systems.

By the end of this course the student are expected to learn and understand state of the art technology related to the following specific concepts:

* Understand which are the principals of 3D animation based on the traditional concepts of 2D animation

* Explore the different types of motion capture systems, virtual reality and how they can work together

* Understand the main concepts related to information theory and data visualization.

* Understand the use of color, text and diagrams when representing information

* Deployment of a multimedia project, create a demo and its correspondent documentation which must reflects its result.

Systems Administration

CC3015 - ECTS

Understanding the roles and procedures performed by network and system administrators. Presentation of general principles that are further illustrated and consubstantiated with laboratory practice, with the implementation and maintenance of some concrete examples of flexible services in critical contexts with simulated faults. 

Compilers

CC3001 - ECTS

Study and implementation of a compiler and interpreter of a programming language.

Digital Systems

F3001 - ECTS

This course provides an introduction to electric circuit theory, basic analog electronics and digital systems.

Internship

CC3039 - ECTS The internship aims to assess the students' ability to meet the real world challenges and to promote their professional integration in  IT companies.

Project

CC3038 - ECTS This project aims to assess the students' ability to meet the real world research challenges and to promote their professional integration in scientific research institutions as well as in IT companies.

Communication Networks

CC3002 - ECTS

This is an introductory course on data communication networks aimed at familiarizing the students with their fundamental concepts, based on the Internet and the TCP/IP protocol stack.

Web Technologies

CC3008 - ECTS

The goal of this curricular unit is the familiarization of the students with the concepts and technologies used in the development of web centered applications.

Network Administration

CC3018 - ECTS

Consolidating and enrich the knowledge on networks previously gained by the students, providing them with the necessary skills for the configuration, maintenance and monitoring and troubleshooting IP networks with static or dynamic routing and the respective basic services. 

Numerical Analysis

M2018 - ECTS

The main aim of this subject is given a mathematical problem,  to study sufficient conditions for the existence and unicity of its solution, to establish a constructive method to solve it, to study and control the errors  involved, to give an algoritmh for the solution and to implement it in a computer and to study and interpret the numerical results.

Software Architecture

CC3034 - ECTS

The goal of this course is to introduce students to the conceptual models and software tools used in large software development projects.

Computability and Complexity

CC3004 - ECTS

Study and comparison of different (Turing-complete) models of computation, their computational power and limitations. Study of the various complexity classes of problems.

After completing this course students are expected to

- know the classical models of computation;
- be able to prove the equivalence of several Turing-complete models;
- know the fundamental results and methods used in the study of computability and complexity;
- be able to classify concrete examples of problems and prove their (un)decidability within several classes of computability;
- be able to classify concrete problems about their time complessity, and understand the consequences of that classification.

Differential Equations

M2011 - ECTS Acquisition of basic knowledge of the theory of Differential Equations and its application to real-life problems.

Internship

CC3039 - ECTS The internship aims to assess the students' ability to meet the real world challenges and to promote their professional integration in  IT companies.

Applied Statistics

M2020 - ECTS

Upon completing this course, the student should:

- have a good insight of the fundamental concepts and principles of statistics, and in particular those from basic inference statistics.

- know the common inference statistical  methods and how to apply them to concrete situations;

- be able to identify and formulate a problem, to choose adequate statistical methods and to analyze and interpret in a critical way the obtained results.

It is also expected that the student acquires familiarity with the programing language and software environment R, in the framework of problems solving.

Data Acquisition and Control Laboratory

F3002 - ECTS

To be able to plan experiments. To be able to do literature research, including analysis of technical papers, and to show results either orally or in written form. To be able to plan and automatize experiments using LabVIEW as a control tool. To develop small projects, within a well defined field, using as much as possible LabVIEW tools.

Decision Support Methods

CC3003 - ECTS Students should:
- get familiar with techniques of operations research and constraint programming and their application to modeling and solving deterministic and stochastic decision and optimization problems.
- develop skills for understanding computational complexity of concrete problems, and choosing algorithms, programming languages and libraries/APIs for solving them.

Concurrent Programming

CC3037 - ECTS

Introduce students to the fundamental theoretic and practical principals of concurrency, with emphasis on the correctness, design and implementation of models of concurrent computation using shared memory architectures. 

Mobile Device Programming

CC3035 - ECTS

The students will be equipped to face the increasing demands for developers, including full-stack, frontend and DevOP. In the end of this course the students will be to:

Design and implement secure mobile applications

Awareness of the implications of new GPDR, avoiding some of the common pittfalls regarding users’ privacy

Implement native and webpage based applications

Understand the implicit tradeoffs between performance, energy consumption and security/privacy

Project

CC3038 - ECTS This project aims to assess the students' ability to meet the real world research challenges and to promote their professional integration in scientific research institutions as well as in IT companies.

Software Tools and Applications

CC3007 - ECTS

Provide the student experience in the use, administration and programming of some of the systems / applications currently used in the Windows environment. The particular focus is on the programming environment of Visual Basic for Applications.

Multimedia Systems

CC3013 - ECTS

The proposed syllabus is taught in lectures where the main concepts are introduced and practical examples are explained. During lectures students are also required to do presentations related to the topics presented in the syllabus. In the labs students will learn specific skills related to multimedia systems through the exploration of a specific topic that they have to chose from the syllabus. Students will need to surpass problems by creating a prototype of a system. Students will deploy a project and create an application that must reflect the concepts presented during the lecture. All learning outcomes will help students understand the fundamental principals of multimedia systems and have a direct correspondence to the described syllabus. It covers the state of the art technology and the necessary background to design and develop sophisticated interactive applications. This course aims to teach students how multimedia systems are currently being used in different industries.

 

The goal is to instill in students the same curiosity, passion to discover and desire to convey knowledge that drives researchers to explore new areas related to multimedia systems.

By the end of this course the student are expected to learn and understand state of the art technology related to the following specific concepts:

* Understand which are the principals of 3D animation based on the traditional concepts of 2D animation

* Explore the different types of motion capture systems, virtual reality and how they can work together

* Understand the main concepts related to information theory and data visualization.

* Understand the use of color, text and diagrams when representing information

* Deployment of a multimedia project, create a demo and its correspondent documentation which must reflects its result.

Algorithms

CC4010 - ECTS

This course is about designing algorithms for computational problems, and how to think clearly about analyzing correctness and running time. The main goal is to provide the intellectual tools needed for designing and analyzing your own algorithms for new problems you need to solve in the future.

Parallel Computing

CC4014 - ECTS

Introduce the students to advanced concepts on the theory and practice of computational models for parallel and distributed memory architectures. Hands-on experience on programming distributed memory architectures with MPI, and programming shared memory architectures using processes, threads and OpenMP.

Cryptography

CC4017 - ECTS

Cryptography has evolved, in the as decades, from an obscure branch of knowledge used only by military departments and spies to an essential component of digital communication and software writing. With the dematerialisation of a large number of human activities, it is crucial to use cryptography to ensure a large set of properties that are inherent to "real life" activities. This is why cryptography has such an essential role both in internet protocols as in other digital communication systems.


The objective is:
1- Understand the security problem with computer networks as well as security problems in general.
2 - To get acquainted to a sufficient large set of cryptographic protocols such that it is possible to port "real life" activities to the digital realm.
3- The study of cryptographic algorithms and their possible applications.


Data Mining I

CC4018 - ECTS

This unit has as main objectives to provide an introduction to the main data mining methodologies and also to convey knowledge on programming and tools for data analysis using R and the WEKA machine learning toolkit.

Foundations of Programming Languages

CC4013 - ECTS

Study of semantic formal models of programming language, in order to provide a deep understanding of  the mechanisms behind programming language definition, design, and implementation. 

Software Project Management

CC4005 - ECTS

Teach and share the skills, competences, knowledge, methodologies, tools and techniques that will effectively overcome and solve the many challenges that arise in the management and development of computer projects in a real organization.

Processing of Structured Documents

CC4001 - ECTS

The main objective of this unit is to provide an introduction to structured documents and their processing,  covering the XML and JSON formalisms, with emphasis on the former.  

Mobile Communication Networks

CC4039 - ECTS

Knowledge of the fundamental principles of the operation of mobile communication networks, focusing on: the key technological aspects; the 2nd, 3rd, and 4th generation mobile networks; and the main services provided by mobile communication networks.

Distributed Systems

CC4003 - ECTS

Information Theory

CC4019 - ECTS

The aim of of information theory is to expose fundamental concepts related to information and its applications in systems and communications networks and computer science.

Advanced Topics in Databases

CC4007 - ECTS

Learn advanced concepts of databases, namely through the inclusion of the use of relational databases in generic programming languages. Students learn will special emphasis the application programming interfaces (APIs) in C language of relational database management systems, such as MySQL. They develop the ability to augment such system through modules written in C language. Learning of concepts of spatial database, through the study of the PostGIS module. Spatial SQL. Data warehousing and advanced aggregation operators.

Advanced Topics in Networks

CC4037 - ECTS

This course aims to dig deeper into select topics of data networks. It goes wireless, mobile, deals with some operators technologies and some research proposals. There is a balance of lectures and lab work that touches the subjects of the course, so that the student is able to apply the theoretical knowledge in practical examples.

Computer Vision

CC4016 - ECTS This module will present generic computer vision topics to the students, namely: image capturing technology, core image and video processing algorithms, basic pattern recognition algorithms, computer vision application fields.

Big Data and Cloud Computing

CC4053 - ECTS Introduction to the use of cloud computing infrastructures for processing massive amounts of data ("big data") in real-world problems.

Bioinformatics

CC4021 - ECTS

Bioinformatics is an interdisciplinary field that combines the fields of computer science, biology and biomedical science and statistics. Bioinformatics is devoted to the application and development of new computational methods for expanding the use of biological, biomedical or epidemiological data. Recent developments in high-throughput technologies have led to a real revolution in the biological and biomedical research with bioinformatics playing a central role in the analysis of massive amounts of data. This course will focus on the main algorithms developed to address Bioinformatics tasks. An emphasis will be made on algorithms for sequence processing and analysis, both on nucleic-acids or amino-acid sequences.

Our goal is that students will be able to understand how these algorithms work and how this can be developed and applied to address new computational tasks in biological sequence analysis.

Computational Complexity

CC4011 - ECTS

We will study some techniques that prove or suggest that there are no known eficient method to solve some important problems in computer science. We will study several complexity classes and their relationship, namely: P, NP, co-NP, PH, RP, BPP, IP. Special emphasis will be given to the role of randomness in the performance of several algorithms.

Computer Graphics

CC4009 - ECTS

The proposed syllabus is taught in lecture classes where the main concepts are introduced and applied examples related to film, games and medical applications are presented. During the labs students will solve practical assignments related to the concepts presented during the lectures by implementing the solutions in C++ or Python using OpenGL. Students must demonstrate that they are capable of understanding advance topics by presenting an article related to one of the subjects presented during the lectures. All learning outcomes are then integrated into a project achieved during the labs. 

Data Mining II

CC4024 - ECTS Identification and application of data mining techniques to extract knowledge from different data sources (e.g. text, web).

Implementation of Programming Languages

CC4023 - ECTS

Introduction to the design principles and implementation advanced techniques of programming languages.

Network Science

CC4070 - ECTS

Networks are a fundamental tool for modeling complex social, technological, and biological systems. Having into account the emergeng o large scale network data, this course focuses on the analysis of these networks, which provide multiple computational, algorithmic, and modeling challenges. The course will cover recent research on the structure and analysis of such networks, as well as models and algorithms that abstract their main properties.

Network Security

CC4031 - ECTS The course aims to introduce students to the concepts and problems of security in communication networks. Throughout the course, the students will review the basics of networks allowing a discussion from the point of view of security of communication protocols. Analysis and design of network architecture aiming at a high degree of safety will be developed, using techniques for monitoring and traffic analysis. Network tools will be presented and used to achieve those goals. Web security and attacks to its applications will also be addressed.

Systems and Data Security

CC4030 - ECTS Introduction to the problem of security of information systems and data. Obtain detailed knowledge about the main weaknesses intrinsic to the operating systems and computers. Presentation of methods for building systems capable of withstanding attacks, operating errors and chance occurrences caused by intelligent opponents. Study of tools, processes and methods needed to plan, implement and test secure systems and adapt existing systems to real contextual environments constantly evolving. The students will:

Embedded Systems

CC4040 - ECTS

Introduction to the fundamental issues in the design and implementation of hardware and software solutions for embedded systems.

Present to students the capabilities and limitations of these systems and the rationale behind their wide usage in different enviroments.

Introduce the students to development in these platforms, providing and enviroment for work organization within the teams.

Advanced Topics in Algorithms

CC4020 - ECTS To improve background on techniques for designing algorithms and analysing their correctness and complexity.
To know and apply methods for finding exact and approximate solutions for hard problems.

Advanced Topics on Artificial Intelligence

CC4022 - ECTS This course is centered on the synergies in the association of machine learning / deep learning, logic, statistucs and search / optimization methods. Based on the latest developments on search, deep learning, and reinforcement learning; these methods are considered to provide computers with quasi-human-level performance. The aim is to allow useful available information to be efficiently extracted from massive data sets (machine learning) and turned into actionable decisions (operations). Applications range from computer vision and speech recognition to high-level decision support systems, including human health, transportation and logistics, commerce and information services, and energy networks.

The course will deepen competences acquired in "Algorithm Design and Analysis" and in "Artificial Intelligence".

Advanced Topics in Logic

CC4026 - ECTS Application of advanced topics of logic to the resolution of problems in diferent areas of computer science.

Formal Verification of Software

CC4008 - ECTS

To understand current trends in Program Verification techniques and approaches, to the certification of program properties, namely model checking and deductive methods.

Management and Entrepreneurship

GES4001 - ECTS

The purpose of this course is to provide students with: 

  • A global vision on organization’s management and an comprehensive knowledge on the major strategically issues that enterprises have to deal with; 
  • An understanding of financial and economical analysis needed to evaluate financial and accounting reporting information; 
  • The basic skills on entrepreneurship matters that may allow students to built their own business or financial project. 

Dissertation Project

CC5001 - ECTS This curricular unit, from the last year of the masters degree, has the goal to evaluate the capacity of student’s to perform autonomous, research-level work.
The focus is given to the aspects leading to the preparation of a dissertation proposal, namely: bibliographical review of the state of the art; the definition of research objectives; the structuring and time planning of the work, and the presentation of references.

Sociology and Ethics in Informatics

DPI4001 - ECTS

Information technology plays a fundamental role in society today. It is, therefore, important to understand and reason about social and ethical issues that its use raises.

The main objectives of this course are:

  • to induce among the students critical thinking about social and ethical questions raised by the use of computers and the Internet;
  • to raise awarness for an ethical conduct, privacy and relevant legislation impacting their future profession;
  • to contribute to improve their oral and written communication skills.

Dissertation

CC5004 - ECTS This curricular unit, from the last year of the masters degree, has the goal to evaluate the capacity of student’s to perform autonomous, research-level work.

Recommend this page Top
Copyright 1996-2025 © Faculdade de Ciências da Universidade do Porto  I Terms and Conditions  I Acessibility  I Index A-Z  I Guest Book
Page created on: 2025-06-15 at 12:42:32 | Acceptable Use Policy | Data Protection Policy | Complaint Portal