This repository contains all the exercises and assessments of the UC Algorithms and Data Structures, taught by Pedro Ribeiro and Ana Paula Rocha at Integrated Master in Informatics and Computing Engineering [MIEIC] at the Faculty of Engineering of the University of Porto [FEUP].
Pieces of code for exercises and assessments, notes that I take during practical classes and other experiences using C and C++ languages. It is an authentic disorganized notebook.
Notes that I take during theoretical lectures.
Varied exercises of easy, medium and difficult level, about the subject taught in the present week. They complement the weekly work developed during the practical classes.
A project done in one month with Carolina Brandão and Gabriel Machado Jr..
It is intended to implement an information management system that must store and manage information related to planes, flights, passengers and luggage.
Implemented features:
- Simpler and non-recursive interface, based on the Stack data structure;
Menu strategy. Image credits: Gabriel Machado Jr.
- Efficient search to the nearest transport, using Binary Search Tree data structure;
- Efficient search to flights, planes, services, luggage using linear-search in lists and binary-search in sorted vectors;
- Two types of luggage: hand-luggage and hold-luggage, depends on the user input and volume/weight proprieties;
Luggage strategy. Image credits: Carolina Brandão
- Automatic compound unique IDs, to better performance and avoid collisions in system population and manipulation;
IDs strategy. Image credits: Gabriel Machado Jr.
- Secure Data: files have the ability to self-heal if there is data corruption during the execution of program, using redundancy based on RAID;
- ON DELETE CASCADE implicit behavior, activation whenever delete certain component, based on SQL databases management systems (DBMS);
A project done in two weeks with Carolina Brandão and Gabriel Machado Jr..
The “Sociedade de Transportes Colectivos do Porto (STCP)” is the company that manages the bus network in the municipality of Porto (and also in some neighboring areas). It is intended to implement a system capable of providing help to those who want to use the STCP network to move around, such as a Google Maps, through Algorithms that manipulate Graphs.
All data, coordinates, lines and stops used are real and were provided by Professor Pedro Ribeiro.
There are 2487 different bus stops in Porto. Image credits: Pedro Ribeiro.
Implemented features:
- Search the nearest stop by name, code and coordinates (latitude and longitude);
- Beadth-First Search, to find the shorter path between origin/destiny stops, based on the fewest stops traveled;
- Search the shorter path between origin/destiny stops, based on the total distance traveled using Dijkstra Algorithm adaptation;
- Search the cheapest way between origin/destiny stops, based on the total zones traveled using Dijkstra too;
Dijkstra implementation. Image credits: Gabriel Machado Jr.
- Search the most comfortable way between origin/destiny stops, based on the total lines traveled using Dijkstra too;
- Allow the person to decide how far they can walk from one stop or line to another;
- Allow the person to decide which stops, zones, lines or areas they do not want to travel;
@ Fábio Araújo de Sá
2021/2022