Prévia do material em texto
UNIVESP – FORMAÇÃO PROFISSIONAL EM COMPUTAÇÃO – 2 SEMANA
QUIZZ DA VIDEOAULA 3 – INTRODUÇÃO AO GOOGLE COLAB
PERGUNTA 1
1. Segundo o vídeo do professor, o interpretador interativo iPhyton usa uma interface que permite customização e
flexibilidade para executar códigos python chamada de?
Colaborador
Notepad
Construtor
Montador
Notebook
Pergunta 1
0 em 0 pontos
Segundo o vídeo do professor, o interpretador interativo iPhyton usa uma interface que permite customização e
flexibilidade para executar códigos python chamada de?
Resposta Selecionada:
Notebook
Respostas: Colaborador
Notepad
Construtor
Montador
Notebook
Comentário
da resposta:
Você acertou! Em 2001, Fernando Perez e outros disponibilizaram o interpretador interativo
IPython em linha de comando para qualquer plataforma ele é similar com o shell do Unix, mas
ele permite customização e flexibilidade para executar diretamente códigos Python. A partir da
edição 0.12, lançada em 2011, IPython oferece um nova interface chamadaNotebook (NB)
formada por dois componentes: JSONpara compartilhar códigos Python e o segundo emrich
text formatpara publicar os códigos online. O notebook tem a proposta de trazer uma interface
limpa e acessível para não desenvolvedores.
QUIZZ OBJETO EDUCACIONAL
PERGUNTA 1
1. A verificação de tipos é a execução de testes para detectar erros de tipos em um programa, tanto por parte do compilador
quanto durante a execução de um programa. Como a verificação de tipos, em tempo de execução, é dispendiosa, a
verificação em tempo de compilação é mais desejável. Além disso, quais das afirmações são corretas:
a. Quanto mais cedo os erros nos programas forem detectados, mais barato será fazer todos os reparos necessários.
b. Verificação de tipos não é necessário em linguagem orientada a objetos.
c. Em Java uma variável do tipo int poderia ser usada como parâmetro em uma chamada a uma função que esperava
um tipo float como parâmetro.
d. Todas as anteriores são falsas.
e. Java requer verificações dos tipos de praticamente todas as variáveis e expressões em tempo de execução.
Pergunta 1
0 em 0 pontos
A verificação de tipos é a execução de testes para detectar erros de tipos em um programa, tanto por parte do
compilador quanto durante a execução de um programa. Como a verificação de tipos, em tempo de execução, é
dispendiosa, a verificação em tempo de compilação é mais desejável. Além disso, quais das afirmações são
corretas:
Resposta
Selecionada:
a.
Quanto mais cedo os erros nos programas forem detectados, mais barato será fazer todos
os reparos necessários.
Respostas: a.
Quanto mais cedo os erros nos programas forem detectados, mais barato será fazer todos
os reparos necessários.
b.
Verificação de tipos não é necessário em linguagem orientada a objetos.
c.
Em Java uma variável do tipo int poderia ser usada como parâmetro em uma chamada a
uma função que esperava um tipo float como parâmetro.
d.
Todas as anteriores são falsas.
e.
Java requer verificações dos tipos de praticamente todas as variáveis e expressões em
tempo de execução.
Comentário da
resposta:
Você acertou! Quanto mais cedo os erros nos programas forem detectados, mais barato
será fazer todos os reparos necessários
ATIVIDADE AVALIATIVA
PERGUNTA 1
1. Leia o texto a seguir, retirado do livro Conceitos de Linguagem de programação.
“A interpretação pura reside na ‘extremidade oposta’ (em relação à compilação) dos métodos de implementação. Com
essa abordagem, os programas são interpretados por outro, chamado interpretador, sem tradução. O interpretador age
como uma simulação em software de uma máquina cujo ciclo de obtenção-execução trata de sentenças de programa de
alto nível em vez de instruções de máquina. Essa simulação em software fornece uma máquina virtual para a linguagem.”
Fonte: SEBESTA, R. Conceitos de linguagens de programação. Porto Alegre: Grupo A, 2018. E-book. (Disponível na Minha
Biblioteca). p. 26.
Conforme o texto e os conceitos relacionados, avalie as afirmações a seguir.
I. A vantagem da interpretação pura é que ela permite muitas operações de depuração serem facilmente implementadas
no código-fonte, pois todas as mensagens de erro em tempo de execução podem se referir à unidade de código-fonte.
II. A mensagem de erro possui a facilidade de indicar a linha do código-fonte do erro, por exemplo, de um índice de vetor
fora da faixa definida, apontando o nome do mesmo.
III. A interpretação pura exige normalmente mais espaço de memória, pois, além de programa-fonte, durante a
interpretação, a tabela de símbolos deve estar presente.
IV. Esse método tem grande vantagem em relação ao tempo de execução, sendo de 10 a 100 vezes mais rápido que nos
sistemas compilados.
Está correto o que se afirma em:
a. I e II, apenas
b. I, III e IV, apenas
c. II e III, apenas
d. II, III e IV, apenas
e. I, II e III, apenas
Comentário da
resposta:
JUSTIFICATIVA
A afirmativa I está correta, pois esse tipo de abordagem (interpretação pura) ocorre
sem compilar um programa em instruções de máquina: é aquele em que o programa
analisa e executa à medida que avança. Isso geralmente é muito lento, pois o
intérprete gasta muito tempo analisando strings de caracteres para descobrir o que
eles significam — são intervalos de linguagem interpretada — JavaScript, Perl, Python
etc. A afirmativa II está correta, pois essa é uma funcionalidade que permitirá maior
agilidade na execução do programa por facilitação de mensagens obtidas. A afirmativa
III está correta, pois a simbologia e seus processos ocupam mais espaço em memória
que em compilação. A afirmativa IV está incorreta, pois a desvantagem se dá por ser
tal método de 10 a 100 vezes mais lento que em sistemas compilados.
PERGUNTA 2
1. O Google Collaboratory corresponde a um serviço de armazenamento em nuvem, com o objetivo de criar e executar
códigos em Python diretamente em um navegador (browser) de Internet. Um dos principais benefícios desse serviço é
permitir o desenvolvimento de aplicações sem a necessidade da instalação de softwares na máquina, bastando ter uma
conta de usuário Google para acessar o ambiente on-line.
Assinale a alternativa que apresenta outras vantagens de uso do Google Colab:
a. Trabalho cooperativo, bibliotecas vazias, acesso a GPUs.
b. Trabalho concorrente, bibliotecas pré-instaladas, acesso a GPUs.
c. Trabalho cooperativo, bibliotecas pré-instaladas, acesso a CPUs.
d. Trabalho concorrente, bibliotecas vazias, acesso a CPUs.
e. Trabalho cooperativo, bibliotecas pré-instaladas, acesso a GPUs.
PERGUNTA 3
1. A partir de 1º de janeiro de 2020, Python abandonou oficialmente o suporte para python2. Você pode verificar sua versão
de Python na linha de comando ao executar: python --version. No Google Colab podemos impor a versão de Python,
clicando em Runtime -> Change Runtime Type e selecionando python3.
Observe o seguinte trecho de código apresentado no Google Colab:
Fonte: Elaborada pelo autor.
Podemos afirmar que a saída do código anterior será respectivamente:
a. 2 e 4
b. 1 e 4
c. 1 e 0
d. 2 e 0
e. 2 e 2
JUSTIFICATIVA
A função print para vetor funciona da seguinte forma: considerando um vetor v, a posição a ser
impressa inicia-se em 0 (zero), da esquerda para direita. Em nosso caso, xs[0] = 3 (xis, esse, de zero
é igual a 3). Consequentemente, xs[2] = 2 (xis, esse, de dois é igual a 2). Quando o índice é negativo,
os valores são obtidos da direita para a esquerda, começando em 1. Por isso, xs[-2] = 4 (xis, esse, de
menos dois é igual a quatro).
PERGUNTA 4
1. As linguagens de programaçãopodem ser implementadas por três métodos gerais: compilação, interpretação pura ou
implementação híbrida.
Sobre essas implementações, avalie as seguintes afirmações:
I. A implementação híbrida é utilizada pela maioria das linguagens de programação de alto nível, como C, COBOL, C++, C#
e PHP, pois esse método tem como principal vantagem a execução rápida dos programas.
II. A implementação baseada em compilação consiste em programas que são traduzidos para a linguagem de máquina, que
pode ser executada diretamente no computador.
III. A interpretação pura é de dez a cem vezes mais rápida que programas compilados, pois a decodificação das sentenças
em linguagem de máquina não precisa ser traduzida por um compilador.
IV. Na implementação híbrida, os programas de linguagens de alto nível são traduzidos para uma linguagem intermediária
que facilita a interpretação.
É correto afirmar que:
a. I e III,
apenas.
b. II e IV,
apenas.
c. I,
apenas.
d. II,
apenas.
e. III,
apenas.
Comentário
da resposta:
JUSTIFICATIVA
Linguagens de programação que utilizam a implementação baseada em
compilação traduzem suas instruções para a linguagem de máquina, e, por isso,
tem como principal vantagem a velocidade de execução dos programas para os
usuários.
Já na interpretação pura, os programas são interpretados por um programa
“interpretador” que trata as sentenças de programa em alto nível, em vez de
instruções de máquina. Por consequência, o principal benefício é permitir uma fácil
implementação de muitas operações de depuração em código-fonte, pois todas as
mensagens de erro em tempo de execução podem referenciar unidades de código-
fonte.
Por meio da implementação híbrida, é possível obter de forma mais clara uma
linguagem mais próxima da coloquial do ser humano, visto que esse processo
compila a informação e traz de maneira rápida a interpretação, tornando o processo
menos complexo.
PERGUNTA 5
1. Google Colab (ou Google Colaboratory) é um produto semelhante ao Jupyter
Notebook da Google Research. Um desenvolvedor de programa Python pode usar
esse notebook para escrever e executar códigos aleatórios de programa Python
usando apenas um navegador da web.
Considerando o apresentado, avalie as asserções a seguir e a relação proposta
entre elas.
I. Para conseguir rodar códigos no Google Collaboratory, é necessário digitar seu
código na caixa cinza mais escura e pressionar a seta de execução para executar
o código, “+ Código”, na barra de navegação.
POIS
II. No Python3, o retorno função input('mensagem') é uma string, a qual deve ser
convertida para float() para uso em cálculos, o que não permite recarregamento ou
salvamento automático de página.
A respeito dessas asserções, assinale a alternativa correta.
a. A asserção I é uma proposição verdadeira, enquanto a II é falsa
b. A asserção II é uma proposição verdadeira, enquanto a I é falsa
c. As asserções I e II são proposições falsas
d. As asserções I e II são proposições verdadeiras, e a II é uma justificativa para a I
e. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa para
a I
Comentário
da resposta:
JUSTIFICATIVA
A asserção I é verdadeira, pois você também pode criar um
novo notebook clicando em: Arquivo > Novo Notebook. Renomeie
seu notebook e não se esqueça de realizar a conexão, clicando em:
Conectar. A asserção II é falsa, pois recarregamento ou salvamento
da página se faz possível independentemente de cálculos e
conversão que estão sendo realizados.
PERGUNTA 6
1. Considerando a genealogia das linguagens de programação de alto nível da figura abaixo (Sebesta,
2018), percebe-se que diversas delas são influenciadas por suas predecessoras, bem como buscam
resolver problemáticas existentes nas linguagens anteriores.
Fonte: SEBESTA (2018)
Referência completa: SEBESTA, R. W. Conceitos de linguagens de programação. Porto Alegre: Bookman, 2018.
A partir do que foi apresentado, analise as afirmativas a seguir:
I. A linguagem COBOL originou novos conceitos, sendo alguns deles utilizados em outras linguagens posteriores. Por
exemplo, foi a primeira linguagem a consentir nomes realmente conotativos, pois permitia nomes longos (até 30
caracteres) e caracteres conectores de palavras (hifens).
II. A linguagem BASIC, assim como o COBOL, foi amplamente utilizada nos meios acadêmicos, mas não se tornou popular
no uso para microcomputadores, pela dificuldade de aprendizado para iniciantes.
III. A linguagem C++ evoluiu a partir da C, com uma série de modificações para melhorar seus recursos imperativos e
adicionar construções para dar suporte à programação orientada a objetos.
IV. A linguagem JAVA evoluiu a partir da C++, em que foram removidas algumas construções, outras modificadas e
adicionadas. O sucesso dessa linguagem foi sem precedentes, pois os programadores gostaram do projeto e passaram a
utilizá-lo em larga escala.
Está correto o que se afirma em:
a. I, III e IV, apenas.
b. I, apenas.
c. IV, apenas.
d. II, apenas.
e. II e III, apenas.
Comentário da
resposta:
JUSTIFICATIVA
Tanto a linguagem BASIC quanto a COBOL foram amplamente utilizadas para uso nos
microcomputadores, pela facilidade de aprendizado para iniciantes, o que torna a afirmativa II incorreta.
A afirmativa I está correta, pois recursos implementados pela primeira vez no COBOL foram utilizados e
melhorados em linguagens de programação posteriores. A afirmativa III está correta, porque a
linguagem C++ evoluiu da C, em que as modificações iniciais em C incluíam a adição de verificação de
tipos e a conversão de parâmetros de funções e classes. Por fim, a afirmativa IV está correta, pois JAVA
foi uma das linguagens de maior adesão pelos programadores, e seu uso perdura até hoje.
SEGUNDA TENTATIVA – SOMENTE QUESTÕES DIFERENTES
PERGUNTA 2
1. Em 2002, a Microsoft fez o lançamento da linguagem C# e da plataforma de desenvolvimento .NET. Essa nova
linguagem é baseada em C++ e JAVA, contendo influências de outras linguagens de programação, como Visual Basic e
Delphi.
Considerando a linguagem C#, é correto afirmar que o principal objetivo da Microsoft com ela foi:
a. Consolidar o framework .NET como padrão de mercado, para o desenvolvimento de
sistemas web orientados a objetos, pois permite que todas as linguagens que utilizam CTS (Common Type
System) possam ser combinadas para a formação de sistemas.
b. Consolidar a linguagem C# como padrão de mercado, para o desenvolvimento de sistemas orientados a
eventos, pois permite que todas as linguagens que utilizam CTS (Common Type System) possam ser
combinadas para a formação de sistemas.
c. Basear-se em componentes para a utilização do framework .NET, em que todas as linguagens que utilizam
CTS (Common Type System) podem ser combinadas para a formação de sistemas.
d. Consolidar os componentes do .NET e suas bibliotecas de classes comum como padrão de mercado,
para o desenvolvimento de todos os sistemas web orientados a objetos, pois permite que todas as
linguagens que utilizam CTD (Common Type Data) possam ser combinadas para a formação de sistemas.
e. Basear-se em objetos, pois o framework .NET suporta linguagens de programação de alto nível orientadas
a objetos, para que possam ser combinadas para a formação de sistemas.
Comentário da
resposta:
JUSTIFICATIVA
O objetivo da linguagem C# é o desenvolvimento de software baseado em componentes
no framework .NET. Todas as linguagens do .NET, incluindo C#, VB .NET, C++ gerenciado, F# e JScript
.NET17, usam o Sistema de Tipos Comum (CTS – Common Type System), que fornece uma biblioteca
de classes comum. Compiladores que estão de acordo com a especificação CTS criam objetos que
podem ser combinados em sistemas.
Portanto,as alternativas que citam o propósito de padrão de mercado para o desenvolvimento web ou
por orientação a eventos são falsas, pois não são características fundamentais da linguagem C#. Além
disso, a alternativa que fala sobre basear-se em objetos é falsa, pois como vimos, seu objetivo é se
embasar em componentes.
Pergunta 4
1,68 em 1,68 pontos
As linguagens de programação podem ser implementadas por três métodos gerais: compilação, interpretação
pura ou implementação híbrida.
Sobre essas implementações, avalie as seguintes afirmações:
I. A implementação híbrida é utilizada pela maioria das linguagens de programação de alto nível, como C,
COBOL, C++, C# e PHP, pois esse método tem como principal vantagem a execução rápida dos programas.
II. A implementação baseada em compilação consiste em programas que são traduzidos para a linguagem de
máquina, que pode ser executada diretamente no computador.
III. A interpretação pura é de dez a cem vezes mais rápida que programas compilados, pois a decodificação
das sentenças em linguagem de máquina não precisa ser traduzida por um compilador.
IV. Na implementação híbrida, os programas de linguagens de alto nível são traduzidos para uma linguagem
intermediária que facilita a interpretação.
É correto afirmar que:
Resposta Selecionada: e. II e IV, apenas.
Respostas: a. I, apenas.
b. I e III, apenas.
c. II, apenas.
d. III, apenas.
e. II e IV, apenas.
Comentário
da resposta:
JUSTIFICATIVA
Linguagens de programação que utilizam a implementação baseada em compilação traduzem
suas instruções para a linguagem de máquina, e, por isso, tem como principal vantagem a
velocidade de execução dos programas para os usuários.
Já na interpretação pura, os programas são interpretados por um programa “interpretador” que
trata as sentenças de programa em alto nível, em vez de instruções de máquina. Por
consequência, o principal benefício é permitir uma fácil implementação de muitas operações de
depuração em código-fonte, pois todas as mensagens de erro em tempo de execução podem
referenciar unidades de código-fonte.
Por meio da implementação híbrida, é possível obter de forma mais clara uma linguagem mais
próxima da coloquial do ser humano, visto que esse processo compila a informação e traz de
maneira rápida a interpretação, tornando o processo menos complexo.
PERGUNTA 5
1. Python é uma linguagem de programação de alto nível e multiparadigma, criada por Guido van Rossum em 1989, que
permite o desenvolvimento de algoritmos para resolução de problemas por meio de programas computacionais.
Assinale a alternativa que apresenta outras características do Python:
a. É uma linguagem interpretada, imperativa, orientada a objetos, funcional e de tipagem dinâmica e forte.
b. É uma linguagem interpretada, imperativa, orientada a eventos, funcional e de tipagem dinâmica e fraca.
c. É uma linguagem interpretada, imperativa, orientada a eventos, funcional e de tipagem dinâmica e forte.
d. É uma linguagem interpretada, imperativa, orientada a objetos, funcional e de tipagem dinâmica e fraca.
e. É uma linguagem interpretada, imperativa, orientada a objetos, funcional e de tipagem estática e forte.
Comentário da
resposta:
JUSTIFICATIVA
Python é uma linguagem de alto nível orientada a objetos e de tipagem forte.
A programação orientada a objetos é uma programação em que as classes apresentam características
definidoras de um objeto. Por sua vez, as classes determinam o funcionamento desse objeto.
Já a programação orientada a eventos, como o nome sugere, executa ações baseadas em eventos,
como “ao clicar”, “ao sair” etc.
A tipagem dinâmica do Python possibilita a escolha do tipo de dado em concordância com o valor
atribuído à variável durante a execução de forma dinâmica. Diferentemente da tipagem estática, que não
permite ao programador alterar o tipo da variável depois de ela ser declarada, pois a verificação de tipo
é feita na compilação.
Já quando a tipagem do Python é forte, significa que conversões de dados não são realizadas
automaticamente, em oposto ao Javascript, que apresenta tipagem fraca e faz conversões de textos e
números automaticamente, por exemplo.
PERGUNTA 6
1. Leia o texto a seguir, retirado do livro Conceitos de Linguagem de programação.
“A interpretação pura reside na ‘extremidade oposta’ (em relação à compilação) dos métodos de
implementação. Com essa abordagem, os programas são interpretados por outro, chamado
interpretador, sem tradução. O interpretador age como uma simulação em software de uma máquina
cujo ciclo de obtenção-execução trata de sentenças de programa de alto nível em vez de instruções
de máquina. Essa simulação em software fornece uma máquina virtual para a linguagem.”
Fonte: SEBESTA, R. Conceitos de linguagens de programação. Porto Alegre: Grupo A, 2018. E-book.
(Disponível na Minha Biblioteca). p. 26.
Conforme o texto e os conceitos relacionados, avalie as afirmações a seguir.
I. A vantagem da interpretação pura é que ela permite muitas operações de depuração serem
facilmente implementadas no código-fonte, pois todas as mensagens de erro em tempo de execução
podem se referir à unidade de código-fonte.
II. A mensagem de erro possui a facilidade de indicar a linha do código-fonte do erro, por exemplo, de
um índice de vetor fora da faixa definida, apontando o nome do mesmo.
III. A interpretação pura exige normalmente mais espaço de memória, pois, além de programa-fonte,
durante a interpretação, a tabela de símbolos deve estar presente.
IV. Esse método tem grande vantagem em relação ao tempo de execução, sendo de 10 a 100 vezes
mais rápido que nos sistemas compilados.
Está correto o que se afirma em:
a. I, III e IV, apenas
b. II, III e IV, apenas
c. II e III, apenas
d. I, II e III, apenas
e. I e II, apenas
Comentário da
resposta:
JUSTIFICATIVA
A afirmativa I está correta, pois esse tipo de abordagem (interpretação pura) ocorre
sem compilar um programa em instruções de máquina: é aquele em que o programa
analisa e executa à medida que avança. Isso geralmente é muito lento, pois o
intérprete gasta muito tempo analisando strings de caracteres para descobrir o que
eles significam — são intervalos de linguagem interpretada — JavaScript, Perl, Python
etc. A afirmativa II está correta, pois essa é uma funcionalidade que permitirá maior
agilidade na execução do programa por facilitação de mensagens obtidas. A afirmativa
III está correta, pois a simbologia e seus processos ocupam mais espaço em memória
que em compilação. A afirmativa IV está incorreta, pois a desvantagem se dá por ser
tal método de 10 a 100 vezes mais lento que em sistemas compilados.