Este repositório contém a lista de exercícios valendo a nota da AV2 de Programação Funcional. Os exercícios são desenhados para praticar os conceitos e as técnicas da programação funcional, enfatizando a importância de evitar efeitos colaterais e promovendo um código mais puro e fácil de entender.
- Colaboração: É proibido copiar resolução de algum colega. É permitido ajudar na resolução das questões, contanto que as soluções finais sejam diferentes.
- Penalização por similaridade: Similaridade entre soluções de diferentes alunos resultará em perda da nota da questão.
- Uso de
for
eif
: As palavras reservadasfor
eif
só podem ser utilizadas dentro de List Comprehensions ou Expressões Lambda. O uso fora destes escopos acarretará penalização de 50% na nota da questão. - Declaração de funções: O uso da palavra reservada
def
para declarar funções deve seguir regras específicas:- Todas as variáveis dentro do escopo da função devem ser definidas utilizando Expressões Lambda.
- Estruturas de dados como listas ou dicionários só são permitidas como retorno das expressões lambda.
def old_customers(d):
retl = []
for k in d.keys():
if d[k][0] >= 60:
retl.append(k)
return retl
def old_customers_2(d):
retl = lambda: [k for k in d.keys() if d[k][0] >= 60]
return retl()
Desenvolva um programa em Python que implemente um diagrama de atividades fornecido. Algumas atividades podem ser implementadas como funções sinalizadoras que imprimem sua função no console.
Desenvolva três testes unitários para verificar diferentes fluxos do programa implementado na questão anterior e um teste de stress para avaliar a robustez do programa.
Implemente um programa em Python que gerencia as tabelas USERS
, VIDEOGAMES
, GAMES
, e COMPANY
, e que seja capaz de realizar operações de inserção, remoção e consulta em um Banco de Dados MySQL.
Elabore um Scaffold que auxilie na escrita de consultas SQL, incluindo a geração de códigos para INNER JOIN
e SELECT
para as tabelas mencionadas na questão anterior.
Adapte um dos programas anteriores para que satisfaça requisitos não-funcionais como disponibilidade e segurança, incluindo armazenamento de senhas criptografadas e autenticação de usuários.
Este projeto é um trabalho acadêmico e a colaboração é limitada às discussões sobre abordagens de problemas e revisões de código, mantendo a integridade acadêmica e a originalidade do trabalho individual.
João Pedro Rodrigues Tenório