Official Code: | L224 |
Acronym: | L.EIC |
Description: | The Degree in Informatics and Computer Engineering (L.EIC) is a study programme offered jointly by FEUP and FCUP, in an initiative aimed at strengthening the offer of higher education in Computer Engineering at the University of Porto and thus responding to society's needs in this area of great evolution and impact. The programme is based at FEUP. The general aim of L.EIC is to promote excellence in qualifications in the scientific and technical foundations of Informatics and Computer Engineering (EIC), enabling graduates to pursue studies at 2nd cycle level with a view to performing leadership and innovation roles in complex contexts, or to enter the labour market to perform roles in the development and operation of systems based on Information and Communication Technologies (ICT). |
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.
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.
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.
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.
Background
Logic is the foundation of any scientific reasoning and that is the main reason for its inclusion in the first year of the degree. 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%.
This course aims to acquaint students with the differential and integral calculus of real and vector functions of one or several variables, which includes a brief introduction to linear partial differential equations, 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.
BACKGROUND
The architecture of a computer reflects the current technological advancement, but also sets the limits of its capabilities and performance. 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 mechanisms to support efficient program execution, such as cache memories, 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
Allow students to acquire the fundamental knowledge about imperative and object oriented programming in C/C++.
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.
At the end of the course, students should be able to:
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%
This course unit aims to promote basic transversal skills for an engineer with responsibilities in a laboratory context, namely in topics related to the identification and use of materials and tools useful in the assembly and testing of laboratory facilities.
The objectives of this transversal skills curricular unit are:
In this way, it is intended that students recognize the advantages of customizing the operating system to meet specific needs and improve efficiency in its use as a work tool.
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.
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.
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:
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.
The general objectives of the training unit are:
- Train students who carry out activities in laboratories to act in accordance with safety standards.
- Identify risks of accidents arising from the handling of toxic, corrosive and flammable agents, failures in laboratory infrastructure or operational conditions and ways to solve these problems.
- Create and maintain standardized documents for use in laboratories.
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.
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.
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:
3- Percentual Distribution
Scientific: 30%
Tecnological: 70%
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.
This course unit aims to provide students with an integrated vision of the basic concepts and techniques of Statistics.
This course unit aims to promote basic transversal skills for an engineer with responsibilities in a laboratory context, namely in topics related to the identification and use of materials and tools useful in the assembly and testing of laboratory facilities.
The objectives of this transversal skills curricular unit are:
In this way, it is intended that students recognize the advantages of customizing the operating system to meet specific needs and improve efficiency in its use as a work tool.
The main goals sought for the students are for them to get contact, practice and experience with the following topics:
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.
The LBAW course aims to consolidate the subjects covered in the Database and the Web Languages and Technologies courses. This course offers a practical perspective on two central areas of informatics engineering.
The goal of this course is to equip students with the ability to design and develop information systems based on web technologies and supported by relational database management systems.
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.
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.
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.
The general objectives of the training unit are:
- Train students who carry out activities in laboratories to act in accordance with safety standards.
- Identify risks of accidents arising from the handling of toxic, corrosive and flammable agents, failures in laboratory infrastructure or operational conditions and ways to solve these problems.
- Create and maintain standardized documents for use in laboratories.
Provide concepts that allow to:
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%
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%