This is the study programme I'm pursuing mostly at the Faculty of Sciences of the University of Porto.

(Actually the course is full of possible electives and paths, in this page are the electives I've selected/will select and the paths I'm following/looking to follow [master degree and potential phd were not included here, yet]).


The bachelor has three years and includes:

This bachelor awards me with a first degree in Computer Science (C.S.) and confers solid foundations in Computer Engineering Sciences.

Year 1

1st Semester
Name Credits
Single Variable Calculus 6
Linear Algebra and Analytic Geometry 6
Discrete Mathematics 6
Introduction to Computing 6
Procedural Programming with C 6
2nd Semester
Name Credits
Technical Communication with LaTeX 3
Functional Programming with Haskell 6
Multivariable Calculus 6
Formal Languages, Automata Theory and Models of Computation 6
Further Unix, Software Design and Group Project 3
Object Oriented Programming, Data Structures and Algorithms with Java 6

Year 2

1st Semester
Name Credits
Logic and Formal Proof 6
Algorithm Design and Analysis 6
Probability and Statistics with R 6
Declarative and Logic Programming with Prolog 6
Computer Hardware and Instruction Set Architectures 6
2nd Semester
Name Credits
Operating System Design and Implementation 6
Databases I 6
Intelligent Systems I 6
Numerical Analysis 6
Simulation and Modelling 6
Technical Drawing, CAD and Workshops SP
Foundations of Chemistry SP

Year 3

1st Semester
Name Credits
Compilers 6
Networking and Communication 6
Competitive Programming Training 6
Systems Administration 6
Interaction Design and Human-Computer Interaction 6
2nd Semester
Name Credits
Decision Support Methods 6
Computability and Complexity Theory I 6
Networks Administration 6
Control Theory 6
Concurrent Programming 6

Gap year for further complementary training

In this extra year advanced research studies in robotics are introduced as well as further software engineering, physics, graphics and computer security.

1st Semester
Name Credits
Autonomous Robotic Systems 6
Software Engineering 6
Mechanics 6
Complex Systems Theory 6
Intelligent Robotics Programming 6
2nd Semester
Name Credits
Acquisition and Digital Signal Processing 6
Mobile Robotics 7.5
Graphics and Visual Computing I 6
Complex Networks Science 6
Computer Security Engineering 6

Year 5 - Specialization

Advanced topics in specification and verification, algorithms and intelligent systems. Special focus is given to:

1st Semester
Name Credits
Advanced Algorithms I 6
Foundations of Programming Languages 6
Information Theory 6
Introduction to Data Science, Mining and Machine Learning 6
Distributed Systems 6
2nd Semester
Name Credits
Complexity Theory II 6
Advanced Algorithms II 6
Hoare Logic and Model Checking 6
Intelligent Systems II 6
Embedded Systems 6
1st Semester
Name Credits
Computer Vision 6
Management and Entrepreneurship 6
Cryptography 6
2st Semester
Name Credits
Data Mining 6
Bioinformatics 6