Olá, Nyka. Como vai?
Parabéns pela resolução do desafio! Você aplicou perfeitamente os pilares do Pensamento Computacional ao decompor um problema de automação em etapas lógicas e sequenciais.
Essa estrutura que você montou é o que chamamos de algoritmo. O mais interessante é notar como você separou claramente o processamento (verificação e decisão) da ação final. Esse tipo de raciocínio facilita muito na hora de traduzir a lógica para uma linguagem de programação como Python.
Para complementar sua lógica, imagine que em um cenário real alguns alunos podem ter tido problemas de conexão e assistido quase tudo (ex: 99%). Uma sugestão para tornar seu algoritmo mais flexível seria adicionar uma pequena margem de tolerância na etapa de Comparação:
# Exemplo de como essa lógica poderia ser escrita
presenca_minima = duracao_total * 0.95
if tempo_aluno >= presenca_minima:
enviar_email(aluno_email)
else:
registrar_ausencia(aluno_email)
Isso garante que pequenos imprevistos técnicos não prejudiquem quem realmente participou da live. Você estruturou muito bem os passos de Entrada, Comparação, Decisão e Ação!
Espero que possa ter lhe ajudado!