Go to:
Logótipo
You are in:: Start > Courses/CE or Courses/Cycle of Studies or Programmes/Cycle of Studies > L:IACD > 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

Bachelor in Artificial Intelligence and Data Science

General information

Official Code: L227
Acronym: L:IACD

Certificates

  • First Degree in Artificial Intelligence and Data Science (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 Programming

CC1024 - ECTS

Introduction to the use of computers running GNU/LInux operating systems.

Introduction to programming using the Python language.

Notions of low and high level languages; interpreters and compilers; editor and development environmnets. Values, types and expressions. Functions and procedures. Conditionals and selection. Iteration and recursion. Basic data structures and algorithms:  data processing, text, numerical computation.

Introduction to Computers

CC1002 - ECTS

Provide students with an overview about Computer Science, in particular, the fundamental concepts about the organization and operation of digital computers and operating systems.

Computer Architecture

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

Calculus II

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

Artificial Intelligence and Data Science

CC1023 - ECTS This will address the state-of-the-art topics of Artificial Intelligence (AI) and Data Science (DS), giving students a technical knowledge, although not in-depth, about its concepts, problems and applications.

Regarding the AI ​​and DS areas, the objectives of the course are:

- Provide a historical perspective of its emergence and evolution.
- Identify its relevance and impact in the society.
- Study the relationship with other sciences and interactions with society.
- Know the different stages of development processes.
- Ability to develop small prototyping projects in AI and DS.

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.

Imperative Programming

CC1003 - ECTS

To introduce the basic principles and concepts of imperative and structured programming, based on the C programming language.

The goals are the following:
- the students get familiar with the algorithmic problem-solving process and simple algorithms in the C programming language
- the students know some basic algorithms (for counting, searching and sorting)
- the students acquire good programming skills.

Databases

CC2005 - ECTS

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

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.

Computational Logic

CC2003 - ECTS


It is intended that the student learns the fundamental concepts regarding reasoning and is able to correctly use the deductive systems; understands the relationship between semantics and deductive systems and their characterization from the point of view of decidability; recognizes the role of formal systems in the various areas of Computer Science, in particular in the area of logic programming.

Numerical Methods

M2039 - 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.

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.

Machine Learning I

CC2008 - ECTS This course introduces Machine Learning (ML), providing students with a brief historical background and reference to some of its most relevant applications.

It is intended that students make first contact with various tasks and approaches involved in ML problems and that they can, in this way, identify the most appropriate strategies.

Algorithm Design and Analysis

CC2001 - ECTS

To learn techniques for designing and analyzing algorithms.

Applied Statistics

M2024 - 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.

Security and Privacy

CC2009 - ECTS This course unit has the goal of providing students with an integrated perspective of the security and privacy fundamentals; it targets to endow students with the principles of IT security and data privacy.

Digital Signal Processing and Analysis

M3002 - ECTS

The course (UC) presents the main concepts and techniques of Signal Processing and Analysis, both from deterministic and stochastic point of views, with a special emphasis in the frequency domain.

The course focus on the understanding of concepts and methods, and its effective use in synthetic and experimental data analysis. The course makes an intensive use of advance computational tools (MATLAB).

Machine Learning II

CC3043 - ECTS Students should get to know some of the algorithmic and statistical foundations of machine learning, as well as concrete methods of machine learning from linear regression to deep and reinforcement learning. They should be able to fundamentedlly select the appropriate algorithms and their hyperparameters for each problem/data set. They should understand and know how to apply methods of evaluating approaches and estimating performance.

Digital Systems

FIS3009 - ECTS

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

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).

Introduction to Intelligent Autonomous Systems

CC3042 - ECTS This Unit presents a global perspective of the techniques associated with intelligent and autonomous systems, exploring the modeling and simulation of complex systems and the development of applications of intelligent agents and Multi-Agent Systems with the ability to adapt / learn to solve complex problems. The main objective is to specify and implement autonomous, complex and adaptive intelligent systems. At the end of the course, students should be able to:
1. Understand basic concepts related to autonomous intelligent systems and be able to model and design complex intelligent and autonomous systems.
2. Understand and be able to use the concept of reinforcement learning, including state of the art algorithms and deep reinforcement learning mechanisms.
3. Understand and be able to use concepts of intelligent multi-agent systems such as communication, interaction, coordination, negotiation and cooperation

Laboratory IA and CD

CC3044 - ECTS

Objectives: To provide students with skills for the development of AI and DS projects. This objective will be achieved through the development, in groups, of a project to address a real world problem, in contact with domain experts. This project will also serve to consolidate the knowledge and skills acquired as part of the other courses in the programme.

 

Mechanics

FIS1016 - 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.

Modelling and Optimization

M3023 - ECTS The main objective of the course is to introduce rigorously the main concepts of optimization and its applications. Those concepts and the relevant mathematical tools to their analysis will be considered in the course.

Programming Challenges

CC3032 - 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.

Mobile Device Programming

CC3049 - ECTS

This curricular unit aims to understand the complexity of current mobile device programming platforms, in order to provide students with the necessary tools to face the growing challenges in the area. As a complementary training, students are exposed to the requirements and challenges of implementing backends in order to support mobile applications.

After completing this course, students are expected to:

- be able to design and implement mobile applications:

- be aware of the implications of GPDR, avoiding some of the common pittfalls regarding users’ privacy;

- be aware of the need of having secuirty by design;

- understand the implicit tradeoffs between performance, energy consumption and security/privacy.

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.

Large Scale Data Science

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

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.

Information Management and Visualization

CC3045 - ECTS

This course introduces the concepts of Data Visualization with a focus on Data Science and Visual Analytics. It spans a multi-disciplinary domain that combines data visualization with machine learning and automated techniques to help people make sense of data.

Students are introduced to the design of visual representations that support tasks that take the user from raw data into insights. Topics include basic concepts of information visualization; visual analytics of evolving phenomena; analysis of spatial and temporal data sets; visual social media analytics; and the visual analytics of text and multimedia collections.

Students will prototype visual analytics applications using existing frameworks and libraries, coupling machine learning and visualization methods. Students will gain competency in performing data analysis through visualization tasks in different application domains.

In particular:

  • Create graphs appropriate to the type of context and problem to be explored
  • Create and enhance graphics using R and Python tools
  • Integrate graphics developed in R / Python into interactive environments.
  • Design and develop a Big Data access dashboard for interactive manipulation of multiple graphs.
  • Design data structures to save data either in relational and non-relational ways.

Introduction to Intelligent Robotics

CC3046 - ECTS 1. To understand the basic concepts of robotics, the context of artificial intelligence in robotics and robotics middleware with emphasis for ROS.
2. To study methods of perception and sensorial interpretation, which allow creating precise world estates and mobile robots’ localization and SLAM methods.
3. To study the methods which allow mobile robots to move and navigate in familiar or unfamiliar environments using planning and navigation algorithms.
4. To understand and use the main machine learning algorithms for robotics.
5. To study the fundamentals of human-robot interaction and cooperative robotics.
6. To analyze the main national and international robotics competitions, the more realistic robot simulators and the more advanced robotic platforms available in the market.
7. To Improve the ability to communicate regarding scientific and technical issues and promote a healthy scientific approach.

Decision Support Methods

CC3003 - ECTS Students should:
1. Become familiar with the main decision and optimization problems.
2. Learn how to formalize optimization models in mathematical programming.
3. Master some methods used for their resolution.
4. Become familiar with existing languages and libraries for problem solving.
5. Develop skills to assess the computational complexity of problems.

Concurrent Programming

CC3040 - 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. 

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

Functional Programming

CC1005 - ECTS

Introduction to the functional programming paradigm using the Haskell language.

Multimedia Systems

CC3013 - ECTS
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 00:30:44 | Acceptable Use Policy | Data Protection Policy | Complaint Portal