Conhecimento em estrutura de dados, algoritmos e análise de complexidade e programação orientada a objetos e Design