Questão 66178

Tecnologia da Informação · 2025

Questão

ID 66178

Disciplina: Tecnologia da Informação

Assuntos: Orientação a Objetos, Programação Estruturada

Ano: 2025 Banca: PERFIL - ENADE Órgão: Primeiro Simulado Pnd


Em uma disciplina avançada de um curso de Licenciatura em Computação, o professor Dr. Almeida deseja que seus alunos, futuros professores, compreendam profundamente as implicações pedagógicas da escolha de um paradigma de programação para introduzir os primeiros conceitos a novatos. Ele argumenta que a escolha entre um paradigma imperativo/procedural (como em C ou Python 'tradicional'), orientado a objetos (como em Java ou Python com classes) ou funcional (como em Haskell ou JavaScript com ênfase em funções puras) não é meramente técnica, mas molda a forma como os estudantes pensam sobre problemas. Para fundamentar a discussão, ele apresenta um trecho de um artigo de pesquisa em Educação em Computação: "O paradigma imperativo, focado em uma sequência de comandos que alteram o estado do programa, é frequentemente considerado mais 'natural' por espelhar instruções do mundo real. Contudo, a gestão explícita de estado pode levar a uma complexidade difícil de gerenciar (efeitos colaterais). O paradigma funcional, por outro lado, ao tratar a computação como a avaliação de funções matemáticas e evitar dados mutáveis, pode reduzir a carga cognitiva relacionada ao rastreamento de estado, embora o conceito de funções de ordem superior possa ser um obstáculo inicial. A orientação a objetos oferece uma poderosa ferramenta de modelagem do mundo através de 'objetos' que encapsulam estado e comportamento, mas a 'cerimônia' sintática e conceitual (classes, herança, polimorfismo) pode ofuscar a lógica fundamental para um iniciante." Dr. Almeida então propõe uma tarefa: analisar um problema simples, como 'calcular a média das notas de uma lista de alunos', sob a ótica de diferentes paradigmas.

Com base no texto de referência e na situação-problema, avalie as seguintes asserções:

I. Uma solução no paradigma imperativo tipicamente envolveria inicializar uma variável acumuladora em zero, percorrer a lista de notas com um laço `for`, e a cada iteração, modificar o valor do acumulador. Esta abordagem é pedagogicamente valiosa por ser explícita e passo a passo, mas pode introduzir erros de estado se mal gerenciada.

II. Uma solução no paradigma funcional poderia utilizar funções de ordem superior, como `map` (para extrair as notas dos objetos de aluno) e `reduce` (para somá-las), compondo uma expressão que transforma os dados sem laços explícitos ou mutação de estado. A vantagem pedagógica seria o foco no 'o quê' (a transformação dos dados) em vez do 'como' (o controle do laço).

III. A abordagem de orientação a objetos seria inadequada para este problema simples, pois a criação de uma classe `Aluno` e uma classe `Turma` com um método `calcularMedia()` introduziria uma complexidade desnecessária, sendo útil apenas para sistemas de grande porte. Portanto, deve ser evitada no ensino introdutório.

É correto o que se afirma em:

Alternativas da questão 66178
Pular para o conteúdo principal