Atividades de soluções computacionais para a 1ª série do Ensino Médio com gabarito
Reuni questões para trabalhar algoritmos, avaliação de qualidade de software, eficiência e metaprogramação na 1ª série do Ensino Médio. As alternativas vêm com gabarito comentado para apoiar a correção e a retomada dos conceitos.
Quando ensino Computação na 1ª série, procuro aproximar os conceitos de situações em que uma solução precisa ser analisada, e não apenas executada. Comparar algoritmos, observar o consumo de recursos ou entender como um programa transforma instruções ajuda a turma a justificar escolhas com base em evidências. Na prática, é comum que uma alternativa pareça boa por destacar um único indicador; por isso, vale pedir que os estudantes leiam todas as condições do problema.
Nesta proposta, reuni atividades sobre confiabilidade, desempenho, manutenção, uso de recursos e construção de programas que geram ou modificam outros roteiros. As questões podem servir como diagnóstico, exercício de interpretação ou parte de uma avaliação. Ao comentar o gabarito, gosto de retomar não só a resposta correta, mas também qual dado do enunciado permite descartar cada distrator.
O que o aluno de 1ª série precisa saber sobre construção e avaliação de soluções computacionais
Na 1ª série, o estudante precisa compreender que resolver um problema com Computação envolve escolher ou construir uma solução e avaliar como ela se comporta. Isso significa distinguir critérios de qualidade que não são intercambiáveis: tempo de resposta e consumo de recursos dizem respeito ao desempenho; frequência de falhas ajuda a avaliar confiabilidade; e complexidade do código pode indicar o esforço necessário para compreendê-lo, testá-lo e mantê-lo. Também é importante comparar algoritmos em diferentes condições, observando tempo, memória e energia sem concluir que um é melhor apenas por um indicador isolado. Outra ideia central é reconhecer quando um programa recebe descrições ou roteiros de instruções e, a partir deles, produz rotinas ou novos programas. Nesse caso, regras compartilhadas podem permitir soluções distintas para situações diferentes. A turma deve apoiar suas conclusões nos dados fornecidos, explicar limites e trade-offs e perceber que uma escolha adequada depende dos requisitos do problema.
O que ele precisa saber antes
As questões pressupõem alguns conhecimentos que podem ser retomados rapidamente antes da atividade. Para analisar qualidade de software, convém distinguir métricas como taxa de falhas, tempo de resposta, consumo de memória, cobertura de testes e complexidade ciclomática. Para comparar métodos de processamento, é útil compreender polling, interrupções, processamento em lote e orientação a eventos, além de reconhecer custos de tempo, energia e memória.
Nas questões de eficiência, os estudantes precisam ler tabelas e comparar resultados em entradas de tamanhos diferentes. Não é necessário começar por uma formalização avançada de complexidade: a interpretação dos dados já permite observar como tempo e consumo mudam conforme aumenta o volume de registros ou falas. Para as questões sobre metaprogramação, ajudam noções básicas de algoritmo, instruções, arquivos, abstração de regras, reutilização e parametrização. O ponto decisivo é separar um programa que executa instruções de outro que recebe uma representação de programa e gera ou modifica essa representação.
Onde os alunos mais erram
Um erro recorrente nestas questões é tratar indicadores diferentes como se medissem a mesma característica. Um software pode carregar rápido e ainda falhar com frequência; uma avaliação média de usuários não informa diretamente quantas execuções apresentam problemas. A correção fica mais clara quando cada indicador é associado ao que de fato mede.
Na comparação de algoritmos, um distrator atraente é escolher a opção que economiza memória ou reduz acessos ao sensor sem considerar o restante do cenário. O processamento em lote, por exemplo, reduz acessos, mas o enunciado informa que aumenta o tempo de resposta. Em outros itens, um algoritmo pode usar mais memória e, ainda assim, ser mais adequado quando respeita o limite disponível e reduz tempo e energia nos volumes maiores. A turma precisa comparar os três critérios, não eleger um vencedor por uma única coluna.
Também pode haver confusão entre metaprogramação e execução comum. Executar um roteiro, registrar dados durante a execução ou calcular um resultado não significa, por si só, que um programa esteja manipulando outro programa. Nas situações propostas, o sinal importante é a entrada formada por instruções ou roteiros e a saída que também é um roteiro executável, modificado ou gerado automaticamente. Na generalização, outro equívoco é imaginar que reutilizar uma estrutura significa aplicar uma rotina idêntica a todos os casos: uma estrutura comum pode gerar rotinas específicas a partir de regras distintas.
Como trabalhar em sala
- Faça uma leitura por indicadores. Antes de escolher alternativas, peça que a turma marque no enunciado quais dados se relacionam a desempenho, confiabilidade, memória, energia e manutenção. Uma tabela simples no quadro já organiza a discussão.
- Compare algoritmos com uma matriz. Para as questões 6 e 7, os grupos podem registrar tempo, memória e energia ou consumo para cada volume de entrada. Em seguida, justificam a decisão considerando limites e crescimento dos valores.
- Peça justificativas para os distratores. Em vez de corrigir apenas com letras, convide os estudantes a explicar qual informação torna cada opção inadequada. Isso evidencia se houve leitura integral ou escolha baseada em uma palavra familiar.
- Modele a entrada e a saída de programas. Nas questões de metaprogramação, peça que os alunos desenhem uma seta: roteiro de instruções como entrada, ferramenta transformadora no meio e novo roteiro como saída. A representação ajuda a separar transformação de execução.
- Feche com uma decisão condicionada. Pergunte qual algoritmo seria escolhido se o limite de memória mudasse ou se a prioridade fosse outra. A resposta deve explicitar o requisito, evitando apresentar uma opção como universalmente superior.
Questões prontas de soluções computacionais para a 1ª série do Ensino Médio (com gabarito comentado)
Questão 1 — Qual indicador representa a confiabilidade?
Um gestor compara indicadores de carros e aplicativos. Carros com panes frequentes indicam baixa confiabilidade. No relatório de dois aplicativos aparecem tempo de carregamento, consumo de memória, taxa de falhas por 100 execuções e avaliação média dos usuários. Qual métrica cumpre papel análogo à frequência de panes?
- ❌ A) Memória e tempo de carregamento. São medidas relacionadas ao uso de recursos e ao desempenho, não à frequência de falhas.
- ✅ B) Frequência de falhas nas execuções. Assim como panes recorrentes indicam problemas de confiabilidade, falhas frequentes nas execuções mostram que o software não funciona corretamente com regularidade.
- ❌ C) Consumo de memória. Informa quanto recurso o aplicativo utiliza, mas não quantas execuções falham.
- ❌ D) Tempo de carregamento. Mede a rapidez para iniciar ou carregar, não a ocorrência de falhas.
- ❌ E) Avaliação média dos usuários. Resume opiniões, mas não registra diretamente a frequência de falhas.
Gabarito comentado: B. A comparação pede uma métrica de confiabilidade, não de desempenho ou satisfação. Vale retomar com a turma a diferença entre o que o sistema faz e com que regularidade apresenta problemas.
Questão 2 — Qual método reduz o uso combinado de recursos?
Um dispositivo vestível usa diferentes métodos para coletar dados. Polling consulta continuamente o sensor e consome energia e tempo de CPU. Interrupções avisam sobre dados novos, mas exigem buffers dinâmicos e mais memória. O processamento em lote reduz acessos ao sensor, mas aumenta o tempo de resposta. O método orientado a eventos processa apenas quando chega um dado novo, sem criar buffers extras. Qual método minimiza mais eficientemente tempo de execução, espaço de memória e energia?
- ❌ A) Interrupções com buffers dinâmicos. O uso de buffers aumenta a memória, portanto não atende ao conjunto de critérios.
- ❌ B) Processamento em lote que acessa continuamente o sensor. A alternativa mistura características de métodos diferentes; além disso, não identifica corretamente uma opção que minimize os três recursos.
- ❌ C) Processamento em lote que acumula leituras. Reduz acessos, mas o texto informa que aumenta o tempo de resposta.
- ✅ D) Orientação a eventos, processando apenas dados novos. Evita a consulta contínua do polling e não cria os buffers extras mencionados para interrupções.
- ❌ E) Polling em intervalos curtos. O enunciado associa esse método a maior consumo de energia e tempo de CPU.
Gabarito comentado: D. O cuidado é comparar simultaneamente os critérios, em vez de escolher o processamento em lote só porque reduz acessos ao sensor.
Questão 3 — Qual métrica indica facilidade de manutenção?
Dois softwares de gestão de acervo foram comparados. O Sistema A tem resposta média de 200 ms, 15 falhas mensais, cobertura de testes de 80% e complexidade ciclomática 3. O Sistema B tem 150 ms, 25 falhas mensais, cobertura de 60% e complexidade ciclomática 7. Qual métrica melhor reflete a facilidade de manutenção?
- ❌ A) Cobertura de testes. Indica a parcela do código exercitada pelos testes, não expressa sozinha a facilidade de manutenção.
- ❌ B) Tempo médio de resposta. É uma medida de desempenho percebido, não de facilidade para compreender e alterar o código.
- ✅ C) Índice de complexidade ciclomática. Está relacionado à quantidade de caminhos independentes; em geral, menor complexidade favorece compreensão, teste e manutenção.
- ❌ D) Número de falhas por mês. Ajuda a avaliar falhas e confiabilidade, mas não mede diretamente o esforço de modificar o código.
- ❌ E) Diferença de cobertura de testes. A diferença não transforma cobertura em medida direta de manutenibilidade.
Gabarito comentado: C. O item verifica se o estudante associa cada métrica à característica correspondente, sem confundir manutenção com rapidez ou frequência de falhas.
Questão 4 — Como reconhecer a generalização na construção de programas?
Uma secretaria registra, para cada serviço, campos a consultar, condições de elegibilidade e mensagens de retorno. Um programa construtor lê as descrições e cria rotinas de verificação para transporte escolar, contraturno e outros serviços. Qual característica evidencia generalização?
- ❌ A) Guardar respostas de pedidos avaliados. Armazenar resultados não é o processo de gerar rotinas a partir das regras.
- ✅ B) Criar rotinas específicas a partir de descrições de regras compartilhadas. Uma estrutura comum permite produzir verificações adequadas a diferentes serviços.
- ❌ C) Executar uma rotina fixa para todos os serviços. O texto informa que são geradas rotinas próprias, não uma rotina idêntica.
- ❌ D) Revisar cada pedido manualmente antes de definir uma regra. Isso não descreve a geração automatizada de rotinas.
- ❌ E) Eliminar as condições de elegibilidade. As condições são entradas usadas para construir as rotinas, não elementos descartados.
Gabarito comentado: B. Generalizar não é ignorar diferenças entre serviços; é aproveitar regras e estruturas comuns para produzir soluções específicas.
Questão 5 — O que caracteriza a metaprogramação no Revisor?
Um museu tem trilhas interativas em arquivos com instruções como mostrar obra, aguardar escolha e seguir para a próxima sala. O Revisor lê os arquivos, reconhece repetições e decisões e grava novos arquivos, incluindo áudio descritivo antes de comandos que mostram imagens. Os totens executam depois as trilhas produzidas. Qual característica indica metaprogramação?
- ❌ A) Usar obras do acervo e ordenar sua exibição por tema. Organizar dados não significa gerar um novo roteiro executável.
- ❌ B) Usar registros de uso e calcular o total de visitas. O resultado é um dado, não uma estrutura de instruções.
- ❌ C) Usar pausas de áudio e ajustar sua duração. Isso altera um parâmetro, mas não descreve a transformação estrutural dos roteiros.
- ❌ D) Usar escolhas de visitantes para selecionar respostas fixas. Interações não são os roteiros de instruções que o Revisor transforma.
- ✅ E) Tratar roteiros de instruções como entrada e gerar novos roteiros executáveis como saída. O programa manipula uma representação de programa e produz outra que poderá ser executada.
Gabarito comentado: E. O foco não está simplesmente em processar dados da visita, mas em receber instruções e produzir novos arquivos de instruções.
Questão 6 — Como escolher para apresentações longas?
Em um teste de legendas, o algoritmo L revê falas anteriores a cada nova fala e mantém somente a legenda exibida. M processa cada fala uma vez e guarda um estado compacto. Após 20 falas, L usou 2 s, 4 MB e 10 J; M, 3 s, 5 MB e 12 J. Após 100 falas, L usou 18 s, 4 MB e 90 J; M, 7 s, 9 MB e 35 J. Qual interpretação orienta a escolha para sessões longas?
- ❌ A) M mantém o mesmo uso de memória. O estado é compacto, mas a memória observada cresce de 5 MB para 9 MB.
- ❌ B) L é mais adequado porque mantém memória constante e reduz energia. A memória permanece em 4 MB, mas, com 100 falas, L consome mais tempo e energia que M.
- ❌ C) L e M têm o mesmo custo energético. Os valores apresentados são diferentes, especialmente no teste de 100 falas.
- ✅ D) M é mais adequado a sessões longas, pois reduz tempo e energia, embora amplie a memória. Com 100 falas, M usa 7 s e 35 J, contra 18 s e 90 J de L, mas sua memória sobe para 9 MB.
- ❌ E) L reduz seu tempo por fala ao reutilizar análises. O enunciado diz que L revê as falas anteriores, e os resultados mostram aumento de tempo com mais falas.
Gabarito comentado: D. A escolha reconhece o trade-off: M melhora tempo e energia no cenário longo, mas exige verificar se o aumento de memória cabe nos limites do tablet.
Questão 7 — Qual algoritmo atende melhor ao crescimento do sistema?
Tablets consultam registros para evitar cadastros repetidos e dispõem de 64 MB para a consulta. Com 1.000 registros, P leva 1 s, consome 2 mAh e usa 18 MB; Q leva 2 s, 3 mAh e 40 MB. Com 5.000 registros, P leva 25 s, 50 mAh e 18 MB; Q leva 10 s, 15 mAh e 40 MB. Com 10.000, P leva 100 s, 200 mAh e 18 MB; Q leva 20 s, 30 mAh e 40 MB. Os registros continuarão aumentando. Qual decisão considera os limites informados?
- ❌ A) Adotar P porque foi mais rápido com 1.000 registros. O resultado inicial não se mantém; nos volumes maiores, tempo e consumo de P crescem muito mais.
- ❌ B) Adotar P porque economiza memória. Embora use menos memória, os dados mostram aumento acentuado de tempo e energia, enquanto Q ainda fica abaixo do limite de 64 MB.
- ❌ C) Adotar Q porque usar mais memória reduz automaticamente a energia. Os dados mostram menor consumo de Q, mas não permitem afirmar que a memória seja a causa dessa diferença.
- ✅ D) Adotar Q porque respeita o limite de memória e amplia menos o tempo e o consumo. Q usa 40 MB, abaixo dos 64 MB disponíveis, e apresenta resultados melhores de tempo e energia nos volumes maiores.
- ❌ E) Adotar qualquer um porque ambos cabem na memória. O limite de memória não elimina as diferenças relevantes de tempo e consumo.
Gabarito comentado: D. A decisão considera o crescimento previsto, o limite de memória e os demais recursos, sem transformar um indicador isolado em regra universal.
Questão 8 — Como o Rastreador evidencia metaprogramação?
Uma ferramenta investiga falhas no roteiro de controle de um validador de ônibus. No modo de acompanhamento, recebe o roteiro e produz uma nova versão, acrescentando instruções que registram o início e o fim de etapas e valores lidos. Em outro modo, gera roteiros de teste. Considerando apenas o modo de acompanhamento, qual ação evidencia metaprogramação como forma de generalização?
- ❌ A) Executar o roteiro para verificar se a catraca libera. Isso é execução ou teste do programa, não sua transformação automática.
- ❌ B) Ler o cartão, verificar o saldo e liberar a catraca. São instruções executadas pelo validador, não ações da ferramenta sobre a representação do roteiro.
- ❌ C) Gerar roteiros de teste para cartão inválido, saldo zero e leitura dupla. Essa ação pertence ao outro modo descrito, não ao acompanhamento.
- ✅ D) Produzir um novo roteiro a partir do recebido, acrescentando instruções de registro. O Rastreador manipula um roteiro como dado e gera uma nova versão executável; o mecanismo pode ser aplicado a diferentes roteiros.
- ❌ E) Registrar eventos e valores durante a execução. Isso descreve monitoramento, mas não informa que um programa gerou ou modificou outro.
Gabarito comentado: D. Para identificar metaprogramação, procure a transformação automática de uma representação de programa, em vez da execução comum de suas instruções.
Próximos passos para sua aula
Você pode aplicar as oito questões de uma vez ou selecionar itens conforme o objetivo da aula. As questões de métricas ajudam a diagnosticar conceitos; as comparações de algoritmos permitem discutir critérios e limites; e os itens sobre metaprogramação trabalham a relação entre programas e instruções. Para ampliar a prática, acesse questões da habilidade EM13CO06, questões da habilidade EM13CO03 e questões da habilidade EM13CO04.
Se quiser variar o nível ou combinar habilidades em uma avaliação, experimente o gerador de provas do GeraProva. Você também pode fazer seu cadastro grátis e preparar materiais para adaptar à realidade da sua turma.
Use estas questões como ponto de partida: revise enunciados e alternativas conforme o percurso da sua turma. O GeraProva ajuda a montar avaliações, mas a decisão pedagógica continua sendo sua.
O GeraProva busca questões com gabarito comentado e BNCC no acervo e monta a prova pronta para imprimir.
Criar minha prova