Go to:
Logótipo
You are here: Start > Cursos/CE > First Degree > L.EIC > Information for Applicants
Programa de formação da Biblioteca para o segundo semestre já está disponível

Programmes

Bachelor in Informatics and Computing Engineering

General information

Official Code: L224
Acronym: L.EIC

Certificates

  • Bachelor in Informatics and Computing Engineering (180 ECTS credits)

National Applications

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

2018 2019 2020 2021 2022
- - - 172,5 173,8

Vacancies

Scheme Phase Vacancies
General Admissions 1 284
Applications and deadlines are managed by Directorate-General for Higher Education.

Courses Units

Linear Algebra and Analytical Geometry

L.EIC001 - ECTS

This course 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 I

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

Programming Fundamentals

L.EIC003 - ECTS

BACKGROUND

Fluency in the process of software development is an essential prerequisite to the work of Informatics Engineers. To use computers to solve problems effectively, students must be competent at reading and writing programs using high-level programming languages.

SPECIFIC AIMS

The global aim of this Unit is to give the student the ability to create algorithms and use a programming language to implement, test, and debug algorithms for solving simple problems. The student will 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.

PERCENT DISTRIBUTION

Scientific component: 40%
Technological component: 60%

Fundamentals of Computer Systems

L.EIC004 - ECTS

The course introduces the general principles of operation design of modern computing systems. Analysis of computer implementation technology (logic circuits and memory) and basic principles of digital information representation enable students to recognize and describe the principles of computer operation, programming languages, and software development.

Discrete Mathematics

L.EIC005 - ECTS

Background

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 UP

UP001 - ECTS
  • 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.

Mathematical Analysis II

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

 




Computer Architecture

L.EIC006 - ECTS

BACKGROUND

The architecture of a computer reflects the current technological advancement, but also sets the limits of its capabilities and performance. Variants of the ARM instruction set are used in the vast majority of current mobile platforms (tablets, cell phones). Both the system architecture and the instruction set have a profound impact on the daily practice of computer engineers.engineers.

SPECIFIC AIMS

The curricular unit "Computer Architecture" aims to develop, combine and apply in an integrated way concepts from the areas of Computer Architecture and Programming Languages. Thus, the curricular unit explores the relationship between the instruction set and low-level programming (assembly language). Mechanisms to support efficient program execution, such as instruction pipelining and jump prediction, will also be addressed. Recognizing that computer architecture goes far beyond the CPU architecture, the curricular unit will also address memory, storage and peripheral subsystems. Upon successful completion of this curricular unit, the student will have acquired the ability to identify and describe the architecture of computing platforms currently in use, as well as the ability to apply assembly programming techniques in the implementation of algorithms.

PERCENT DISTRIBUTION

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

Physics I

L.EIC008 - ECTS
  1. To present a detailed description of the basic concepts of Classic Mechanics with a special emphasis on the most essential aspects, trying to develop intuition and reasoning;
  2. To introduce the necessary mathematical tools to describe fundamental aspects of Classical Mechanics
  3. To develop the ability to apply mathematics to problems of the real world of physics and engineering;
  4. To include examples of applications in order to interpret obtained results, considering whenever possible, current application topics

Programming

L.EIC009 - ECTS

Allow students to acquire the fundamental knowledge about imperative and object oriented programming in C/C++.

Theory of Computation

L.EIC010 - ECTS

To prepare students about computing theory topics with a special emphasis on 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 non-deterministic 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.

Algorithms and Data Structures

L.EIC011 - ECTS

At the end of the course, students should be able to:

  1. analyze (and measure experimentally) the temporal and spatial complexity of algorithms;
  2. analyze (and test experimentally) the correctness of simple algorithms;
  3. know the main array search and sorting algorithms and their complexity;
  4. understand the concept of abstract data type and know how to organize programs around this concept;
  5. know the fundamental data structures (and associated algorithms and respective complexity) used to efficiently implement common abstract data types in collection libraries;
  6. choose appropriate collections, data structures and algorithms to solve practical problems;
  7. write programs in C++ that implement and use the fundamental data structures and algorithms.

 

Databases

L.EIC012 - ECTS

BACKGROUND

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.

SPECIFIC AIMS

This is an introductory course on databases. It is focused on the relational paradigm. It covers the design (UML model and relational normalization), construction (SQL data definition language), querying (SQL data manipulation language) and management (physical organization and query optimization) of relational databases.

PERCENT DISTRIBUTION

Scientific component: 50%
Technological component:50% 

Swarm Robotics Competitions

CSR01 - ECTS
  • provide students with basic skills in the design, development and implementation of simple algorithms for cooperation and consensus of multiple agents with a special focus on robotic swarm competitions. Swarm intelligence and control algorithms have applications in many scientific fields, including, environmental, bioengineering, civil, data science, computer and information science, electrotechnics, physics, mechanics, nanotechnology and chemistry; what makes this topic cross-cutting.
  • prepare students for the robotics swarm competition, promoting the development of complementary skills (soft skills), namely: teamwork, cooperation, peer communication, time management, resource management, stress management.

Physics II

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

Introduction to data analysis in Excel

IADE01 - ECTS

In this training in transversal skills, students are expected to acquire skills in the use of Spreadsheets, in particular MS Excel, for solving management problems and analyzing large volumes of data, namely using data series available in Pordata, INE and others.

 

Introduction to data analysis in Python

IADP01 - ECTS Students are expected to acquire transversal skills in solving management problems and data analysis using the Python language and its libraries, namely using data series available at Pordata and INE.

Introduction to Robotics

IR01 - ECTS
The introduction to Robotics aims to allow the development of competences of development and integration of diverse knowledge in a very attractive way and based on practical work with real equipment. Understanding the working principle of various sensors and actuators and their application in real systems will broaden the understanding and attractiveness of Physics and Mathematics.

Introduction to programming languages is relevant in any engineering, technology and exact sciences course. By acquiring basic programming skills applied to robotics, students will increase their potential to develop applications that involve hardware and software/firmware; being so that this training in TC is transversal to several study areas.

It is also an objective of this course to promote the development of soft skills. Thus, it will be through group work to be developed on the subject matter taught and for the application of learning that students will have the opportunity to develop soft-skills such as the ability to work in a team and develop various roles and cooperation among team members.

The assessment will allow students to develop soft-skills in the areas of scientific report writing and communication/oral presentations with the defence of ideas and argumentation.

Software Design and Testing Laboratory

L.EIC014 - ECTS

This curricular unit is intended for students to develop application design skills using the object-oriented paradigm. Students who pass the course should be able to:

  1. Use Git as a version control system;
  2. Use the Java language as an object-oriented language;
  3. Design unit tests using JUnit;
  4. Apply SOLID principles in the design of applications and understand their importance;
  5. Apply design patterns to solve design problems in the development of applications;
  6. Identify code smells in object-oriented code;
  7. Use refactoring techniques in order to improve non-functional attributes and solve code smells;
  8. Apply the MVC architectural pattern in the design of event-driven applications;
  9. Patterns of Enterprise Applications

Mini projects on machine learning and control systems

MPSAC01 - ECTS
  • provide students with basic skills in the design, development and implementation of simple learning and control algorithms. The proposed algorithms make use of data to improve their performance and have applications in several scientific areas of engineering, including, environmental, bioengineering, civil, data sciences, computer and information sciences, electrotechnics, physics, mechanics, nanotechnology and chemistry; which makes this topic transversal.
  • prepare students to solve mini-projects in groups, promoting the development of complementary skills (soft skills), namely: teamwork, cooperation, peer communication, time management, resource management, stress management.

The Challenges of Sustainable Development

DDS01 - ECTS

This curricular unit (UC) has as its main objective the acquisition of skills on the fundamental aspects of the connection between Engineering and Sustainability and respective challenges. To that end, this UC addresses fundamental concepts about sustainability in its environmental, economic, and social aspects.

Electrical Power Systems for the Sustainability and Energy Transition

SEESTE01 - ECTS

Be able to:

1 – Understand the climatic changes and the need to change the paradigm regarding the exploitation of renewable sources, namely the ones that involve electricity generation and mobility.

2- Understand the different types of available primary energy systems and the ways to convert them into electricity (from large units to microgeneration). Thermal power plants, hydro, wind a solar PV plants.

3- Changes of paradigm in the electric power system involving distributed generation, microgeneration and microgrids.

4 - Smart Grids, concepts and architectures.

5- understand the main components of the electric power system and basic concepts about the structure of the electric power system;

6 - Understand the main regulatory solutions adopted for electric power systems

7 – Understand the main models of electricity markets and their management (energy and ancillary services markets).

8 – Understand the electric mobility and its impact on the operation of the power system (V1G, V2G).

Operating Systems

L.EIC015 - ECTS

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

Transferable Skills: Professional Communication

CP01 - ECTS
  • Identify different styles of interpersonal relationships and determine the most adequate behavioral, attitudinal and relational factors for the efficiency of each professional communication situation.
  • Apply attitudes that generate satisfaction in the professional environment and practical communication techniques to manage interaction situations whose demands and/or difficulties imply a high level of control over the communication process.
  • Self-diagnose needs for the evolution of their communication potential and be aware of the changes to be promoted to ensure a strong proficiency in their communication performance in the exercise of professional functions in the areas of engineering and information, communication and electronics technologies.

Algorithm Design

L.EIC016 - ECTS

This course on Design of Algorithms (DA) aims at complementing and further develop the implementation skills regarding the analysis and synthesis of computer algorithms, previously explored (in an introductory fashion) in the algorithms and data structures (AED course. This DA class introduces various algorithmic techniques of wide applicability, such as brute-force, backtracking, divide-and-conquer, greedy and dynamic programming, ubiquitous in real life algorithmic implementation solutions. We will also introduce the complexity classes of P and NP and the concept of polynomial-time reduction. As a practical application, we will also introduce the notion of approximation algorithms. Lastly, we will also cover the algorithmic techniques used in optimization problems via linear (real and integer) programming.

Software Engineering

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

Computer Laboratory

L.EIC018 - 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 offered by I/O devices
    • develop low level software, e.g. device drivers, and embedded software;
    • program in the C language (using C++ as a reference);
    • developp programs combining C and "assembly"
    • apply systematic debugging techniques (i.e. based on the experimental scientific method)
    • use various tools of software development (compilers and cross-compilers, assemblers, linkers, build automation tools and version control systems).

3- Percentual Distribution

Scientific: 30%
Tecnological: 70%

Web Languages and Technologies

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

Statistical Methods

L.EIC020 - ECTS

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

Transversal and Transferable Skills: Ethics in the age of technology and information

CTT_EETI01 - ECTS

Swarm Robotics Competitions

CSR01 - ECTS
  • provide students with basic skills in the design, development and implementation of simple algorithms for cooperation and consensus of multiple agents with a special focus on robotic swarm competitions. Swarm intelligence and control algorithms have applications in many scientific fields, including, environmental, bioengineering, civil, data science, computer and information science, electrotechnics, physics, mechanics, nanotechnology and chemistry; what makes this topic cross-cutting.
  • prepare students for the robotics swarm competition, promoting the development of complementary skills (soft skills), namely: teamwork, cooperation, peer communication, time management, resource management, stress management.

Lifelong Employability

EAV1 - ECTS

Engineering for Sustainability

ES01 - ECTS Understand the concept of sustainability and his main drivers
Identify new trends in energy and cicular economy
Know the new technics on renewable energy and renewable gases
Identify publc policies and companies commitments in sustainability

Computer Security Foundations

L.EIC021 - ECTS The goal of this Curricular Unit is to provide students with an integrated perspective of the foundations of computer security; it aims to give students a broad view of the security aspects inherent to the development and operation of computer systems, setting a context for the technology-specific problems and solutions students encounter in other Curricular Units.

Gestão de Conflitos e Negociação

GCN1 - ECTS

Human Computer Interaction

L.EIC022 - ECTS

The main goals sought for the students are for them to get contact, practice and experience with the following topics:

  1. HCI foundations: Main concepts of HCI and their importance, including human perception and cognition processes, computer systems and their interaction mechanisms, as well as abridged history of HCI.
  2. User Interaction (UI) and Experience design (UX): methodologies for designing interaction, namely User-Centered Design (UCD) and testing
  3. User studies: How to assess and validate UI and UX designs and their usability
  4. Multimodal Interaction: How to apply the presented topics for creating multimodal interfaces using new interactive technologies

Introduction to data analysis in Excel

IADE01 - ECTS

In this training in transversal skills, students are expected to acquire skills in the use of Spreadsheets, in particular MS Excel, for solving management problems and analyzing large volumes of data, namely using data series available in Pordata, INE and others.

 

Introduction to data analysis in Python

IADP01 - ECTS Students are expected to acquire transversal skills in solving management problems and data analysis using the Python language and its libraries, namely using data series available at Pordata and INE.

Introduction to Robotics

IR01 - ECTS
The introduction to Robotics aims to allow the development of competences of development and integration of diverse knowledge in a very attractive way and based on practical work with real equipment. Understanding the working principle of various sensors and actuators and their application in real systems will broaden the understanding and attractiveness of Physics and Mathematics.

Introduction to programming languages is relevant in any engineering, technology and exact sciences course. By acquiring basic programming skills applied to robotics, students will increase their potential to develop applications that involve hardware and software/firmware; being so that this training in TC is transversal to several study areas.

It is also an objective of this course to promote the development of soft skills. Thus, it will be through group work to be developed on the subject matter taught and for the application of learning that students will have the opportunity to develop soft-skills such as the ability to work in a team and develop various roles and cooperation among team members.

The assessment will allow students to develop soft-skills in the areas of scientific report writing and communication/oral presentations with the defence of ideas and argumentation.

Database and Web Applications Laboratory

L.EIC023 - ECTS

The LBAW curricular unit aims to consolidate the subjects exposed in the curricular units of databases and web languages ​​and technologies. This curricular unit offers a practical perspective on two central areas of computer engineering.

This course unit is intended to provide students with the ability to design and develop information systems accessible through the web and supported by database management systems.

Mini projects on machine learning and control systems

MPSAC01 - ECTS
  • provide students with basic skills in the design, development and implementation of simple learning and control algorithms. The proposed algorithms make use of data to improve their performance and have applications in several scientific areas of engineering, including, environmental, bioengineering, civil, data sciences, computer and information sciences, electrotechnics, physics, mechanics, nanotechnology and chemistry; which makes this topic transversal.
  • prepare students to solve mini-projects in groups, promoting the development of complementary skills (soft skills), namely: teamwork, cooperation, peer communication, time management, resource management, stress management.

The Challenges of Sustainable Development

DDS01 - ECTS

This curricular unit (UC) has as its main objective the acquisition of skills on the fundamental aspects of the connection between Engineering and Sustainability and respective challenges. To that end, this UC addresses fundamental concepts about sustainability in its environmental, economic, and social aspects.

Electrical Power Systems for the Sustainability and Energy Transition

SEESTE01 - ECTS

Be able to:

1 – Understand the climatic changes and the need to change the paradigm regarding the exploitation of renewable sources, namely the ones that involve electricity generation and mobility.

2- Understand the different types of available primary energy systems and the ways to convert them into electricity (from large units to microgeneration). Thermal power plants, hydro, wind a solar PV plants.

3- Changes of paradigm in the electric power system involving distributed generation, microgeneration and microgrids.

4 - Smart Grids, concepts and architectures.

5- understand the main components of the electric power system and basic concepts about the structure of the electric power system;

6 - Understand the main regulatory solutions adopted for electric power systems

7 – Understand the main models of electricity markets and their management (energy and ancillary services markets).

8 – Understand the electric mobility and its impact on the operation of the power system (V1G, V2G).

Functional and Logic Programming

L.EIC024 - ECTS

The Functional Programming and Logic Programming paradigms present declarative approaches to programming, based on formal reasoning processes, which are more appropriate to the resolution of some types of problems.

Objectives: become familiar with the Functional Programming and Logic Programming paradigms. Develop skills in abstract reasoning and declarative problem representation.

Computer Networks

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

Compilers

L.EIC026 - ECTS

Provide concepts that 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;
  • engineering a compiler as a large-scale software project

Computer Graphics

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

PERCENTAGE DISTRIBUTION
-Scientific Component: 50%
-Technological Component: 50%

Parallel and Distributed Computing

L.EIC028 - ECTS Endow the students with:
  • knowledge to develop parallel programs;
  • solid foundations on algorithms parallelization, programming models, synchronization of processes, and performance measures by the development of programs;
  • theoretical knowledge on distributed systems so they can make correct decisions when faced with the need to design/develop/administer such a system;
  • programming experience so that they can develop distributed applications.

Artificial Intelligence

L.EIC029 - 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:
1. Understand the fundamentals of Artificial Intelligence and Intelligent Systems, what characterizes and distinguishes them and their applicability.
2. Being able to design and implement Agents and Multi-Agent Systems to solve different problems.
3. To learn heuristic and systematic methods of problem solving, with and without adversaries and optimization algorithms.
4. To learn methods of acquisition, representation and reasoning with uncertain knowledge using different formalisms.
5. To understand the basis of natural language processing and its applications.
6. Know and be able to apply learning algorithms with different paradigms (supervised, unsupervised, reinforcement, evolutionary, deep learning) and algorithms (decision trees, neural networks, SVMs).
7. To understand advanced topics in Artificial Intelligence and be able to formulate a vision into the future of AI.
8. To develop simple but complete projects using AI techniques.

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

Capstone Project

L.EIC030 - ECTS The main goal of this course is to expose students to a real-life informatics engineering project, applying knowledge and skills acquired throughout the course.

Team project-based learning is the adopted methodology in this curricular unit. The laboratory classes will enable the tutoring, supervision and monitoring of the project.

Through a real-life software project scenario, the students will be able to apply and consolidate all the intended practices and techniques that a software project encompasses. From its inception to its final product delivery, the students will go through all the phases of development, working in teams and collaborating to achieve a common goal. This "learn by doing" pedagogical philosophy allows for a deeper understanding of the practices and exposes the students to the hurdles and difficulties a real software project might present.

This methodology focuses on "product delivery", forcing the students to define a viable process to enable a fully functional, ready to use, final product release. On the way, quality standards need to be met, therefore best practices, methods and tools need to be used so that development enables the achievement of those standards. These quality metrics are set, monitored and enforced by the teachers. Innovation is endorsed through a product "pitch", evaluating if the final product will be prone to investment by potential stakeholders.

Considering an internship or a multi-disciplinary R&D project, the faculty staff will guarantee that the student will be integrated into a working environment that will allow for the pursuit of the learning objectives.
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-05-20 at 09:28:15 | Acceptable Use Policy | Data Protection Policy | Complaint Portal