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

General information

Official Code: 9696
Acronym: L:CC

Certificates

  • Computer Science (180 ECTS credits)

Courses Units

Linear Algebra and Analytic Geometry

M1002 - ECTS

Upon completing this course, the student should master the main concepts of Linear Algebra and Analytic GeometryNamely, he must understand, be able to work with and use the main properties of the concepts of matrix, determinant, real vector space and linear function.

Calculus I

M1001 - ECTS

With this course, it is intended that students will know and understand
some of the main classical results of Calculus. These results,  for their historical
importance in the explanation of scientific phenomena and on the resolution of scientific problems, should be known by every student of the area of science.

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

To initiate students in imperative programming by presenting fundamental concepts of algorithmics and knowledge of the C programming language. To enable students with the ability of building algorithms from informal specifications. Introduce some fundamental algorithms. 

 

 

 

 

 

 

Calculus II

M1003 - ECTS

Understanding and ability to make use of the concepts and results covered in the syllabus, namely through the resolution of exercises of practical nature.

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 Reinforce programming skills. Basic data structures, algorithms and programming techniques. Introduction to complexity.

Computer Laboratory

CC1006 - ECTS
Thi sunit  aims at providing key basic tehnical 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 Introduction to Porgramming.

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

Objectives:
Introduction to methods of solving ordinary differential equations with emphasis on equations and systems of linear differential equations.
Integral over path and Surfaces. Integral theorems of Vector Analysis.
Inverse function theorem and implicit function theorem and its main applications.


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.

Digital Systems

F1002 - ECTS

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

Human-Machine Interfaces

CC3006 - ECTS

This module will introduce basic concepts of interactive systems design and development, including not only theoretical concepts (usability, user centred design) but also practical ones (low 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.

Probability and Statistics

M2016 - ECTS

To introduce the fundamental concepts, principles and methods of statistics. Emphasis is given to the understanding of the concepts and to the critical application of the methods.

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.

Group Theory

M2025 - ECTS

The student should know the concepts and basic results of Group Theory and Ring Theory, both at the level of application in the classical examples of these structures and in an abstract level.

Databases

CC2005 - ECTS

Introduce students to the fundamental theoretic and practical principals of database systems.

Artificial Intelligence

CC2006 - ECTS

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

Programming in Logic

CC3012 - ECTS

To present the key concepts of the logic programming paradigm, as a declarative approach to programming, and to establish the relationship with other fields such as Compilers, Artifitial INtelligence and Data Basess.

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.

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 system administrators. Presentation of general principles that further illustrated and consubstantiated with extensive 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.

Internship | Training

CC3010 - ECTS

The internship has the goal to measure the capacity of students to meet the challenges of a competitive work market, and to improve the curricula of students with their future professional integration in the industry in mind. During the internship the students must develop the following capabilities:

1. integrate themselves in the work-flow processes of a company;

2. be autonomous;

3. apply the knowledge assimilated during the first three years of the course in analysing and solving problems;

Introduction to Scientific Research

CC3011 - ECTS

To provide students with a first experience in research through an assignment in the context of a research project.

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 applications centered on the web.

Software Architecture

CC3034 - ECTS

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

Computability and Complexity

CC3004 - ECTS

Study and comparison of different (Turing-complete) models of computation, their computational power and limitations.

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.

Internship | Training

CC3010 - ECTS

The internship has the goal to measure the capacity of students to meet the challenges of a competitive work market, and to improve the curricula of students with their future professional integration in the industry in mind. During the internship the students must develop the following capabilities:

1. integrate themselves in the work-flow processes of a company;

2. be autonomous;

3. apply the knowledge assimilated during the first three years of the course in analysing and solving problems;

Introduction to Scientific Research

CC3011 - ECTS

To provide students with a first experience in research through an assignment in the context of a research project.

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.

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:31:22 | Acceptable Use Policy | Data Protection Policy | Complaint Portal