Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

APRIMORAMENTOS DA PLATAFORMA "AFA"

Desafio: Hora da Prática — Aplicação dos Conceitos ao Projeto AFA

Ao longo desta etapa do curso, optei por não reproduzir os exercícios propostos de forma isolada. Em vez disso, utilizei os conceitos estudados para ampliar e aperfeiçoar o projeto da Plataforma Inteligente de Gestão, Análise e Comunicação da Avaliação Formativa da Aprendizagem (AFA), que venho desenvolvendo paralelamente às atividades do curso.

A proposta inicial da plataforma tinha como objetivo registrar avaliações formativas realizadas pelos professores e consolidar indicadores para acompanhamento pedagógico. Com os novos conhecimentos adquiridos nos módulos de Funções e Estruturas de Dados, foi possível ampliar significativamente sua arquitetura.

Aprimoramentos realizados

1. Funções para automatização dos cálculos

As funções passaram a ser utilizadas para:

  • calcular automaticamente o AFA dos estudantes;
  • calcular índices de visibilidade pedagógica;
  • consolidar indicadores por turma;
  • gerar relatórios individuais;
  • produzir dashboards para coordenação e professores.

Essa estrutura tornou o sistema reutilizável e escalável.


2. Retorno de valores para processamento posterior

A utilização de funções com retorno permitiu que os resultados calculados fossem reaproveitados em diferentes módulos da plataforma.

Por exemplo:

  • cálculo do AFA;
  • classificação do estudante;
  • geração de relatórios;
  • envio de informações às famílias;
  • alimentação dos dashboards.

3. Documentação das funções

A incorporação de Type Hint, Default Value e Docstring passou a integrar o planejamento da plataforma, permitindo que futuras equipes compreendam facilmente o funcionamento dos algoritmos implementados.


4. Uso de funções Lambda

As funções Lambda passaram a ser previstas para:

  • atualização rápida de indicadores;
  • aplicação de regras de bonificação;
  • processamento de listas de registros;
  • transformação de grandes conjuntos de dados.

5. Estruturação dos dados com listas de listas

As listas de listas passaram a organizar:

  • avaliações por estudante;
  • registros por professor;
  • indicadores por turma;
  • histórico trimestral de acompanhamento.

Essa estrutura permitiu agrupar informações relacionadas sem perder a organização dos dados.


6. Utilização de tuplas

As tuplas passaram a ser utilizadas para armazenar dados que não devem sofrer alterações durante o processamento, tais como:

  • identificadores dos estudantes;
  • códigos internos;
  • registros históricos consolidados.

7. Aplicação de List Comprehension

A List Comprehension passou a ser utilizada para:

  • cálculo de médias;
  • filtragem de estudantes;
  • identificação de estudantes invisíveis;
  • identificação de estudantes em atenção;
  • geração automática de listas de acompanhamento.

8. Classificação automática com If-Else

Uma das evoluções mais importantes foi a possibilidade de transformar indicadores em diagnósticos pedagógicos.

A plataforma passou a classificar automaticamente:

  • estudantes em desenvolvimento consolidado;
  • estudantes em monitoramento;
  • estudantes em estado de atenção;
  • estudantes invisíveis;
  • professores com baixa participação;
  • professores sem registros de AFA.

Essa funcionalidade pode ser comparada a uma reunião permanente de Conselho de Classe baseada em regras previamente definidas.


9. Relacionamento de dados com Zip

A função zip passou a ser utilizada para relacionar:

  • estudantes e indicadores;
  • professores e quantidade de registros;
  • turmas e resultados;
  • indicadores e classificações.

10. Estruturação analítica com Dict Comprehension

O Dict Comprehension permitiu organizar os dados em estruturas semelhantes às utilizadas por sistemas de Business Intelligence.

Exemplo:

  • estudante;
  • AFA;
  • índice de visibilidade pedagógica;
  • situação;
  • recomendações de intervenção.

Essas estruturas servirão de base para dashboards, relatórios gerenciais e futuras integrações com ferramentas de análise de dados.


Resultado Final

Os conhecimentos estudados neste módulo não foram utilizados apenas para resolver exercícios pontuais, mas para ampliar a arquitetura da Plataforma AFA.

A partir dessas aprendizagens, a plataforma evoluiu de um sistema de registro de avaliações para um sistema capaz de:

  • consolidar dados;
  • gerar indicadores;
  • classificar estudantes;
  • identificar riscos pedagógicos;
  • apoiar intervenções;
  • produzir relatórios automatizados;
  • alimentar dashboards de gestão escolar;
  • comunicar resultados a estudantes, famílias, professores e coordenação.
1 resposta

Estou iniciando meus estudos em Python e, neste momento da minha formação, ainda não possuo domínio suficiente da linguagem para desenvolver soluções mais complexas de programação sem apoio da Inteligência Artificial. Por esse motivo, tenho utilizado o ChatGPT como ferramenta de aprendizagem, não apenas para gerar códigos, mas principalmente para compreender conceitos, estruturas, lógica de programação e possibilidades de aplicação prática dos conteúdos estudados.

Embora eu ainda não saiba construir sozinha códigos mais elaborados, venho desenvolvendo progressivamente a compreensão da lógica da programação e da arquitetura dos sistemas que desejo construir. Nesse processo, utilizo a IA como uma espécie de tradutora entre minhas necessidades educacionais e a linguagem computacional. A partir dos conhecimentos adquiridos no curso, consigo analisar, compreender, validar e até questionar as soluções propostas pela Inteligência Artificial, verificando se os códigos realmente atendem aos objetivos pedagógicos, analíticos e gerenciais da Plataforma Inteligente de Gestão, Análise e Comunicação da Avaliação Formativa da Aprendizagem (AFA), projeto que venho desenvolvendo paralelamente aos estudos.

Assim, mais do que aprender a escrever código, estou aprendendo a pensar computacionalmente, transformando problemas educacionais em estruturas lógicas capazes de serem implementadas por meio da programação. Cada novo conteúdo estudado amplia minha capacidade de dialogar com a tecnologia, avaliar soluções propostas e construir uma visão mais consistente sobre o desenvolvimento de sistemas voltados à análise de dados educacionais.

A seguir, apresento uma versão simplificada da arquitetura desenvolvida até o momento, incorporando os conhecimentos de funções, listas, listas de listas, tuplas, List Comprehension, Zip, If-Else e Dict Comprehension estudados nos módulos 2 e 3.

# ==========================
# CADASTRO DOS ESTUDANTES
# ==========================

estudantes = [
    ("E001", "Amanda"),
    ("E002", "Ian"),
    ("E003", "Pedro"),
    ("E004", "Marina"),
    ("E005", "Lucas")
]

# ==========================
# REGISTROS AFA
# ==========================

afa = [
    [9, 8, 10, 9],
    [7, 8, 7, 6],
    [5, 4, 6, 5],
    [10, 9, 9, 10],
    [6, 7, 5, 6]
]

# ==========================
# FUNÇÃO DE CÁLCULO DO AFA
# ==========================

def calcular_afa(registros: list) -> float:
    return round(sum(registros) / len(registros), 1)

# ==========================
# MÉDIAS DA TURMA
# ==========================

medias_afa = [
    calcular_afa(registro)
    for registro in afa
]

# ==========================
# CLASSIFICAÇÃO AUTOMÁTICA
# ==========================

situacao = [
    "Desenvolvimento Consolidado"
    if nota >= 8
    else "Monitoramento"
    if nota >= 6
    else "Estado de Atenção"
    for nota in medias_afa
]

# ==========================
# ÍNDICE DE VISIBILIDADE
# ==========================

ivp = [22, 18, 4, 25, 11]

visibilidade = [
    "Alta Visibilidade"
    if indice >= 20
    else "Baixa Visibilidade"
    if indice >= 10
    else "Invisível"
    for indice in ivp
]

# ==========================
# ESTUDANTES INVISÍVEIS
# ==========================

invisiveis = [
    estudantes[i][1]
    for i in range(len(estudantes))
    if ivp[i] < 10
]

# ==========================
# PROFESSORES AVALIADORES
# ==========================

professores = {
    "Ana": 35,
    "Carlos": 29,
    "Márcia": 0,
    "Ricardo": 12,
    "Fernanda": 41
}

status_professores = {
    professor:
    "Sem Registros"
    if registros == 0
    else "Baixa Participação"
    if registros < 30
    else "Participação Adequada"

    for professor, registros
    in professores.items()
}

# ==========================
# RELACIONAMENTO DE DADOS
# ==========================

painel_estudantes = list(
    zip(
        estudantes,
        medias_afa,
        situacao,
        visibilidade
    )
)

# ==========================
# DASHBOARD DA COORDENAÇÃO
# ==========================

dashboard = {
    "Estudante": [e[1] for e in estudantes],
    "AFA": medias_afa,
    "IVP": ivp,
    "Situação": situacao,
    "Visibilidade": visibilidade
}

# ==========================
# RELATÓRIO INDIVIDUAL
# ==========================

def gerar_relatorio(nome, afa, ivp, situacao):

    return f"""
    Estudante: {nome}

    AFA: {afa}
    IVP: {ivp}

    Situação:
    {situacao}
    """

# ==========================
# GERAÇÃO DOS RELATÓRIOS
# ==========================

for i in range(len(estudantes)):

    relatorio = gerar_relatorio(
        estudantes[i][1],
        medias_afa[i],
        ivp[i],
        situacao[i]
    )

    print(relatorio)