• Nenhum resultado encontrado

Educação profissional tecnológica e socioeducação : o uso do letramento em programação no apoio ao processo de inclusão tecnológica de adolescentes em situação de vulnerabilidade social

N/A
N/A
Protected

Academic year: 2021

Share "Educação profissional tecnológica e socioeducação : o uso do letramento em programação no apoio ao processo de inclusão tecnológica de adolescentes em situação de vulnerabilidade social"

Copied!
65
0
0

Texto

(1)

P R O G R A M A Ç Ã O

C U R S O

B Á S I C O

D E C O M P U T A D O R E S

adolescentes

M A R I Z E L . S . P A S S O S

M A R C I A G . O L I V E I R A

P A R A

M E T O D O L O G I A D O C A S O - P R O B L E M A P S E U D O - L I N G U A G E M P O R T U G O L

(2)

1

HEYDER VAGNER RAMOS

MARIZE LYRA SILVA PASSOS

MARCIA GONÇALVES DE OLIVEIRA

CURSO BÁSICO DE PROGRAMAÇÃO

DE COMPUTADORES PARA ADOLESCENTES

(3)

(Biblioteca Nilo Peçanha do Instituto Federal do Espírito Santo) R175c Ramos, Heyder Vágner.

Curso básico de programação de computadores para adolescentes [recurso eletrônico] / Heyder Vágner Ramos, Marize Lyra Silva Passos, Márcia Gonçalves de Oliveira. – 1. ed. - Vitória : Instituto Federal do Espírito Santo, 2020.

58 p. : il. ; 30 cm.

ISBN: 978-65-86361-53-7

1. Programação (Computadores) – Estudo e ensino. 2. Ensino profissional – Estudo e ensino. 3. Ensino híbrido. 4. Tecnologia

educacional. 5. Ensino profissional – Formação – Aspectos sociais. 6. Educação – Aspectos sociais. I. Passos, Marize Lyra Silva. II. Oliveira, Márcia Gonçalves de. III. Instituto Federal do Espírito Santo. IV. Título.

CDD 21 – 005.26

(4)

2

Edifes

Centro de Referência em Formação e em Educação a Distância Instituto Federal do Espírito Santo

Rua Barão de Mauá, nº 30, Jucutuquara, CEP 29040-860, Vitória, ES Tel.: +55 (27) 3198-0934 E-mail: editora@ifes.edu.br

Comissão Científica

Antônio Luiz Mattos de Souza Cardoso Danielli Veiga Carneiro Sondermann Revisão do Texto

Heyder Vagner Ramos Capa e Editoração Eletrônica Heyder Vagner Ramos Produção e Divulgação

Programa de Pós-Graduação em Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Espírito Santo Ifes – Campus Vitória

(5)

_ ← S U M Á R I O_

3

A U T O R E S

HEYDER VAGNER RAMOS

Mestrando em Educação Profissional Tecnológica no Programa de Pós-Graduação em Educação Profissional e Tecnológica (ProfEPT) do Instituto Federal do Espírito Santo (Ifes), especialista em Educação Profissional Tecnológica pelo Ifes ‒ Campus Colatina (2013) e graduado em Redes de Computadores também pelo Ifes ‒ Campus Colatina (2015) e em Análise e Desenvolvimento de Sistemas pela Faculdade São Francisco (2010). Atua desde 2016 na Diretoria de Pesquisa, Pós-graduação e Extensão do Ifes ‒

Campus Barra de São Francisco. Pesquisador do Grupo de Pesquisa em Inovação e Criatividade na

Educação (Inocrie) e do Grupo Interdisciplinar de Pesquisas em Educação, Agricultura e Administração.

MARIZE LYRA DA SILVA PASSOS

Doutora em Engenharia de Produção e em Educação, mestra e especialista em Informática, Engenheira de Petróleo e Administradora de Empresas. Professora titular e pesquisadora do Centro de Referência em Formação e em Educação a Distância (Cefor) do Instituto Federal do Espírito Santo (Ifes). Professora permanente do Mestrado Profissional em Educação Profissional e Tecnológica (ProfEPT) e do Mestrado Profissional em Educação em Ciências e Matemática (Educimat). Pesquisadora dos grupos de pesquisa Educação e Tecnologia, Tecnologias Digitais e Práticas Pedagógicas e Práticas Educativas em Educação Profissional e Tecnológica.

MARCIA GONÇALVES DE OLIVEIRA

Professora do Centro de Referência em Formação e em Educação a Distância (Cefor) do Instituto Federal do Espírito Santo (Ifes), doutora em Engenharia Elétrica (2013), mestra em Informática (2009) e bacharela em Ciência da Computação (2002) pela Universidade Federal do Espírito Santo. Áreas de interesse: Tecnologias de Análise de Aprendizagem, Aprendizagem de Programação, Informática na Educação, Educação Profissional e Educação a Distância. Atua como coordenadora-geral de Pesquisa e Extensão do Cefor do Ifes e como professora do Mestrado Profissional em Educação Profissional e Tecnológica em Rede Nacional (ProfEPT) e do Mestrado Profissional em Educação em Ciências e Matemática (Educimat) do Ifes. Atualmente coordena o Projeto Corte de Lovelace, filiado ao programa Meninas Digitais da Sociedade Brasileira de Computação (SBC), e o Grupo de Pesquisa Tecnologias Digitais e Práticas Pedagógicas.

(6)

4

A P R E S E N T A Ç Ã O

Este produto educacional, o Curso Básico de Programação de Computadores para

Adolescentes, é parte integrante da dissertação de mestrado intitulada Educação Profissional Tecnológica e Socioeducação: O Uso do Letramento em Programação no apoio ao processo de Inclusão Tecnológica de Adolescentes em situação de Vulnerabilidade Social, desenvolvida

pelo pesquisador Heyder Vágner Ramos, sob orientação da prof.ª dr.ª Marize Lyra da Silva Passos e coorientação da prof.ª Dr.ª Marcia Gonçalves de Oliveira, apresentada ao Programa de Pós-graduação em Educação Profissional e Tecnológica (ProfEPT) do Instituto Federal do Espírito Santo (Ifes) ‒ Campus Vitória. O curso é destinado a professores, servidores e demais interessados em ministrar cursos de programação para o público adolescente.

O material exposto neste e-book é resultado do curso ofertado no ano de 2019 para uma turma formada por adolescentes em situação de vulnerabilidade social. A ação de extensão foi desenvolvida pelo Ifes ‒ Campus Barra de São Francisco em parceria com o Centro de Referência em Assistência Social (Cras) e o Centro de Referência Especializado em Assistência Social (Creas) do município, tendo como público-alvo adolescentes de 14 a 17 anos cadastrados nestas instituições.

Aplicado presencialmente, o curso utilizou-se da pseudo-linguagem de programação Portugol e da metodologia ativa do caso-problema. Dedicou-se a ensinar o básico da programação em 20 horas de duração, divididas em 10 encontros semanais de duas horas cada. A ação contou também com uma visita técnica ao Laboratório de Extensão em Tecnologias Educacionais e Robótica (Leter) do Ifes ‒ Campus Colatina.

Além deste e-book, os materiais e os recursos utilizados no curso, como apresentações de

slides, propostas de atividades e software freeware de programação, estão disponíveis

gratuitamente para download na internet, no blog Programa Ifes — http://programaifes.blogspot.com.

Ao se disponibilizar as informações deste curso, espera-se que ele possa ser reproduzido por outros profissionais que atuam na área da Educação Profissional e Tecnológica. Espera-se, também, despertar o interesse por um público especialmente necessitado de ações educacionais e de inclusão, os adolescentes em situação de vulnerabilidade social.

(7)

_ ← S U M Á R I O_

5

S U M Á R I O

APRESENTAÇÃO ... 05 METODOLOGIA ... 09 PSEUDOLINGUAGEM PORTUGOL ... 13 SOFTWARE VISUALG ... 14

TEORIA GERAL DOS SISTEMAS ... 15

INTRODUÇÃO A ALGORITMOS ... 18

INTRODUÇÃO A PROGRAMAÇÃO ... 20

VARIÁVEIS E OPERADORES ... 23

RESOLVENDO O PRIMERO PROBLEMA ‒ SORVETE OU CUPCAKE? ... 30

ESTRUTURAS CONDICIONAIS (PARTE 1) ... 32

RESOLUÇÃO DE PROBLEMAS ‒ APROVADO OU REPROVADO? ... 34

RESOLUÇÃO DE PROBLEMAS ‒ ABRINDO CONTA NA NETFLIX ... 35

ESTRUTURAS CONDICIONAIS (PARTE 2) ... 36

RESOLUÇÃO DE PROBLEMAS ‒ RESTAURANTE MODERNO ... 39

RESOLUÇÃO DE PROBLEMAS ‒ SUGESTÕES NO SPOTIFY ... 40

ESTRUTURAS DE REPETIÇÃO ... 41

RESOLUÇÃO DE PROBLEMAS ‒ NO CAIXA DO SUPERMERCADO ... 44

DESAFIO FINAL ... 45

PROPOSTAS DE SOLUÇÃO ... 46

CRIANDO UMA APRESENTAÇÃO ... 54

CONCLUSÃO ... 55

BLOG PROGRAMA IFES ... 56

RANKING ‒ COMPONENTE DE GAMIFICAÇÃO ... 57

ATIVIDADES EXTRAS ... 58

(8)

6

I D E N T I F I C A Ç Ã O

CURSO

Curso Básico de Programação de Computadores para Adolescentes. ÁREA

Educação/Socioeducação. FORMA DE OFERTA

Presencial através da metodologia do caso-problema. OBJETIVO GERAL

Promover a inclusão tecnológica e a capacidade de resolução de problemas para adolescentes em situação de vulnerabilidade social.

OBJETIVOS ESPECÍFICOS

 Desenvolver conhecimentos básicos de lógica de programação e de programação de computadores.

 Desenvolver a capacidade de resolução de problemas.

 Promover habilidades como raciocínio lógico, trabalho em equipe e empatia.  Promover a inclusão do público vulnerável através da ação educacional. PÚBLICO-ALVO

Adolescentes de 14 a 17 anos. CARGA HORÁRIA

(9)

_ ← S U M Á R I O_

7

Por que ensinar

PROGRAMAÇÃO

para

adolescentes?

“Todos deveriam aprender a

programar um computador, porque isso ensina a pensar.” Steve Jobs (Apple)

“[…] por mais simples que seja o código que você escrever, o fato de fazer com que um computador execute uma ação é sempre impressionante.” Mark Zuckerberg (Facebook) [aprendeu a programar por volta de 13 anos]

“Aprender a programar pode auxiliar em outras áreas como lógica, gramática e matemática. Com ela, o aluno estabelece um contato íntimo com algumas das ideias mais profundas da ciência, da matemática e da arte de construir modelos intelectuais.” Seymour Papert (matemático, cientista da educação e educador estadunidiense)

Foto: Revista Cult (2019).

Fonte: Publika.MD (2018).

Fonte: MIT News (2016).

Figura 1 ‒ Steve Jobs

Figura 2 – Mark Zuckerberg

(10)

8

M E T O D O L O G I A

A metodologia do caso-problema (ou método do caso-problema) foi desenvolvida a partir de 1870 na Escola de Direito da Universidade de Harvard por Christopher Collumbus Langdell. Em contraste com o método teórico/dedutivo, que era anteriormente utilizado, o método do caso é um modo socrático e empírico/indutivo de pensar, influenciado pelo construtivismo. Ele foi adotado pela Escola de Administração da Universidade de Harvard, que o institucionalizou como sua metodologia básica de ensino e ajudou a divulgá-lo amplamente. Inclusive mantém o website Teaching by the Case Method, com diversas informações e recursos para a utilização do método de caso (MATTAR, 2017).

Mattar (2017, p. 49) afirma que “o método de caso é uma metodologia de ensino em que os alunos discutem e apresentam soluções para casos propostos pelos professores”. Não se deve confundi-lo, portanto, com o estudo de caso, que é um método de pesquisa. O autor segue definindo a metodologia como um meio de aproximar o conteúdo ensinado da realidade e explica que

é um exemplo bastante poderoso de metodologia ativa, pois alunos são transportados e imersos na função de gestores e decisores e precisam se posicionar em relação a uma situação muito próxima do real, utilizando fundamentação teórica, debatendo com colegas e construindo colaborativamente uma solução para o caso apresentado. (MATTAR, 2017, p. 49).

Nessa metodologia, “os professores não ensinam propriamente dito, mas facilitam a aprendizagem dos alunos”, enquanto “os alunos atuam como tomadores de decisão” (MATTAR, 2017, p. 50). Como em outras metodologias voltadas ao aluno, a centralidade deixa de estar no professor, que tradicionalmente foi visto como um transmissor de conhecimentos, e passa a estar no aluno, que é visto como o protagonista do processo de ensino-aprendizagem.

Em vez de estar no papel de detentor do conhecimento, nessa metodologia, o professor é reconhecido como um facilitador ou mediador, disponível ao aluno em caso de possíveis dúvidas. As aulas expositivas abrem espaço para o desenvolvimento de habilidades voltadas a resolução de problemas do cotidiano, levando em consideração, obviamente, a realidade dos alunos. Essa aproximação pode dar mais sentido ao aprendizado, o que pode aumentar o interesse dos alunos em aprender e também desenvolver habilidades de relacionamento interpessoal, aprendizagem autodirigida e desenvolvimento cognitivo, permitindo a abstração de tal forma que seja possível a sua aplicabilidade em outras situações.

Mattar (2017) também ressalta a possibilidade de uma combinação de estratégias, reservando uma parte da aula para um momento expositivo e outra parte para a resolução dos problemas.

Na figura a seguir, veremos uma adaptação da metodologia do caso-problema para o ensino da programação de computadores.

(11)

_ ← S U M Á R I O_

10

Exposição Inicial é uma introdução dos conceitos de programação que serão abordados na aula, é feita de forma expositiva e com toda a turma, sendo geralmente a apresentação de um novo comando de programação ou uma nova sintaxe. A apresentação pode ser feita por meio de slides — é importante que o conteúdo apresentado fique disponível e possa ser consultado facilmente pelos alunos durante todo o período do curso. Isso pode ser feito através de um blog ou de uma apostila virtual.

Como os conhecimentos de programação são cumulativos e podem ser combinados para a resolução de problemas, é comum que, com o decorrer das aulas, esse momento sirva também como uma revisão de conteúdos anteriores.

Prática Orientada é um momento de praticar o novo conteúdo aprendido na primeira fase. Nessa fase, são apresentados problemas um pouco mais simples do que o que será trazido na fase 3. O momento é para a prática da programação em conjunto com colegas, professores e auxiliares.

Os alunos desenvolvem os algoritmos e podem retirar eventuais dúvidas que venham a surgir. Esse momento pode ser feito individualmente ou em grupo.

01

02

(12)

10

Exposição Inicial é uma introdução dos conceitos de programação que serão abordados na aula, é feita de forma expositiva e com toda a turma, sendo geralmente a apresentação de um novo comando de programação ou uma nova sintaxe. A apresentação pode ser feita por meio de slides — é importante que o conteúdo apresentado fique disponível e possa ser consultado facilmente pelos alunos durante todo o período do curso. Isso pode ser feito através de um blog ou de uma apostila virtual.

Como os conhecimentos de programação são cumulativos e podem ser combinados para a resolução de problemas, é comum que, com o decorrer das aulas, esse momento sirva também como uma revisão de conteúdos anteriores.

Prática Orientada é um momento de praticar o novo conteúdo aprendido na primeira fase. Nessa fase, são apresentados problemas um pouco mais simples do que o que será trazido na fase 3. O momento é para a prática da programação em conjunto com colegas, professores e auxiliares.

Os alunos desenvolvem os algoritmos e podem retirar eventuais dúvidas que venham a surgir. Esse momento pode ser feito individualmente ou em grupo.

01

02

(13)

_ ← S U M Á R I O_

9

Figura 4 ‒ Metodologia do caso-problema no ensino de programação

(14)

10

Exposição Inicial é uma introdução dos conceitos de programação que serão abordados na aula, é feita de forma expositiva e com toda a turma, sendo geralmente a apresentação de um novo comando de programação ou uma nova sintaxe. A apresentação pode ser feita por meio de slides — é importante que o conteúdo apresentado fique disponível e possa ser consultado facilmente pelos alunos durante todo o período do curso. Isso pode ser feito através de um blog ou de uma apostila virtual.

Como os conhecimentos de programação são cumulativos e podem ser combinados para a resolução de problemas, é comum que, com o decorrer das aulas, esse momento sirva também como uma revisão de conteúdos anteriores.

Prática Orientada é um momento de praticar o novo conteúdo aprendido na primeira fase. Nessa fase, são apresentados problemas um pouco mais simples do que o que será trazido na fase 3. O momento é para a prática da programação em conjunto com colegas, professores e auxiliares.

Os alunos desenvolvem os algoritmos e podem retirar eventuais dúvidas que venham a surgir. Esse momento pode ser feito individualmente ou em grupo.

01

02

(15)

_ ← S U M Á R I O_

11

A fase 3 — Caso-Problema — é o momento principal da aula, ocupa a maior parte do tempo e também exige maior atenção e empenho dos alunos. Um problema do cotidiano é trazido pelo professor para a aula, os alunos se organizam em grupos para interpretá-lo e propor uma solução com o uso da programação. É importante que o problema seja algo que faça sentido para o aluno, assim é mais provável que ele se sinta empenhado a buscar soluções. Algumas ações podem ajudar nesse sentido. Conhecer os alunos e perguntar a respeito do que eles gostam no momento da matrícula ou numa aula inaugural é uma boa opção. Mencionar elementos da cidade onde o curso é desenvolvido, como escolas e estabelecimentos, também. O momento de resolução é propício ao debate e à colaboração entre os alunos. É muito comum a busca de informações na internet ou em exercícios de aulas anteriores.

A fase de Resultados acontece ao final de cada aula.

Os alunos que se habilitarem podem apresentar o programa desenvolvido para a turma, demonstrando os comandos utilizados. O momento é propício a discussões, questionamentos quanto à forma de resolução e apresentação de propostas de solução divergentes desenvolvidas por outros grupos de alunos.

É natural, no entanto, que não seja possível analisar os códigos de todos os grupos durante a discussão em sala de aula. Além do feedback presencial, pode-se solicitar que cada grupo envie o código ao professor por e-mail, possibilitando a avaliação individual das soluções.

03

(16)

10

Exposição Inicial é uma introdução dos conceitos de programação que serão abordados na aula, é feita de forma expositiva e com toda a turma, sendo geralmente a apresentação de um novo comando de programação ou uma nova sintaxe. A apresentação pode ser feita por meio de slides — é importante que o conteúdo apresentado fique disponível e possa ser consultado facilmente pelos alunos durante todo o período do curso. Isso pode ser feito através de um blog ou de uma apostila virtual.

Como os conhecimentos de programação são cumulativos e podem ser combinados para a resolução de problemas, é comum que, com o decorrer das aulas, esse momento sirva também como uma revisão de conteúdos anteriores.

Prática Orientada é um momento de praticar o novo conteúdo aprendido na primeira fase. Nessa fase, são apresentados problemas um pouco mais simples do que o que será trazido na fase 3. O momento é para a prática da programação em conjunto com colegas, professores e auxiliares.

Os alunos desenvolvem os algoritmos e podem retirar eventuais dúvidas que venham a surgir. Esse momento pode ser feito individualmente ou em grupo.

01

02

(17)

_ ← S U M Á R I O_

11

A fase 3 — Caso-Problema — é o momento principal da aula, ocupa a maior parte do tempo e também exige maior atenção e empenho dos alunos. Um problema do cotidiano é trazido pelo professor para a aula, os alunos se organizam em grupos para interpretá-lo e propor uma solução com o uso da programação. É importante que o problema seja algo que faça sentido para o aluno, assim é mais provável que ele se sinta empenhado a buscar soluções. Algumas ações podem ajudar nesse sentido. Conhecer os alunos e perguntar a respeito do que eles gostam no momento da matrícula ou numa aula inaugural é uma boa opção. Mencionar elementos da cidade onde o curso é desenvolvido, como escolas e estabelecimentos, também. O momento de resolução é propício ao debate e à colaboração entre os alunos. É muito comum a busca de informações na internet ou em exercícios de aulas anteriores.

A fase de Resultados acontece ao final de cada aula.

Os alunos que se habilitarem podem apresentar o programa desenvolvido para a turma, demonstrando os comandos utilizados. O momento é propício a discussões, questionamentos quanto à forma de resolução e apresentação de propostas de solução divergentes desenvolvidas por outros grupos de alunos.

É natural, no entanto, que não seja possível analisar os códigos de todos os grupos durante a discussão em sala de aula. Além do feedback presencial, pode-se solicitar que cada grupo envie o código ao professor por e-mail, possibilitando a avaliação individual das soluções.

03

(18)

12

P S E U D O L I N G U A G E M

P O R T U G O L

A pseudolinguagem Portugol (português estruturado) foi criada pelos professores António Mannso, do Instituto Politécnico de Tomar (IPT), em Portugal, e Antonio Carlos Nicolodi, da Uniasselvi-Fameblu, Furb, CedupHH/Blumenau e Instituto Federal de Santa Catarina (IFSC), no Brasil.

Ela é baseada em duas conceituadas linguagens de programação: o Algol e o Pascal, sendo bastante parecida com a última. O diferencial do Portugol é justamente o fato de ser completamente em português, o que facilita o entendimento por parte dos alunos.

Para o professor Antonio Carlos Nicolodi, a utilização do Portugol tem ajudado amenizar a grande evasão dos cursos de informática, em função principalmente da dificuldade dos alunos com a língua inglesa.

A imagem a seguir (figura 5) é uma comparação do famoso algoritmo “Olá, Mundo” (Hello, World) feito nas linguagens Portugol com o Pascal.

A utilização do Portugol pode ser útil e sugestiva a educadores que não são da área de desenvolvimento de software, mas pretendem aprender para ensinar o básico da programação a seus alunos. Ela pode ser utilizada também como uma linguagem de entrada, servindo de base para o ensino do Pascal ou outras linguagens mais complexas.

Figura 5 – Comparação entre as linguagens Portugol e Pascal

(19)

_ ← S U M Á R I O_

13

S O F T W A R E V I S U A L G

Existem algumas aplicações disponíveis para a programação utilizando o Portugol no Brasil, sendo o VisuAlg o mais conhecido e popularmente utilizado. Há outras opções como o Portugol Studio, desenvolvido e mantido pelo Laboratório de Inovação Tecnológica na Educação da Universidade do Vale do Itajaí, o Portugol IDE e o G Portugol.

Neste trabalho, optamos pela utilização do software VisuAlg 2.5 — um software de livre uso, distribuição gratuita e de domínio público, desenvolvido pelo professor Antonio Carlos Nicolodi (figura 6), ex-aluno do curso Técnico em Informática para Internet do IFSC, em parceria com o professor Cláudio Morgado de Souza.

Dentre as vantagens do VisuAlg estão: Alto Nível

Um software para criar, editar e interpretar algoritmos escritos em Portugol.

Fácil

É próprio para professores e para alunos iniciantes no mundo da programação de computadores. Portátil e Personalizável

Não requer instalação. O usuário pode trocar algumas informações como: nome da disciplina, nome do professor, nome da entidade (escola). Gratuito

É grátis e de domínio público.

Download gratuito:

http://visualg3.com.br Http://programaifes.blogspot.com

Fonte: Apoio Informática (2019).

Figura 6 – Professor Antônio

Nicolodi – Criador do VisuAlg

(20)

14

Antes de iniciar o conteúdo de programação propriamente dito, é interessante que os alunos tenham o entendimento de como os sistemas funcionam, como são formados e como se dão suas relações lógicas com outros sistemas e com o mundo.

EXPOSIÇÃO INICIAL

É importante perceber que os sistemas existem antes mesmo dos computadores e da programação, tendo uma visão mais ampla deles como um “conjunto de partes que interagem entre si, integrando-se para atingir um objetivo ou resultado” (REZENDE, 2010, p. 7), um conceito que abrange diversas áreas como a biologia, medicina, informática, administração, direito, entre outras.

Um conhecimento desta teoria geral de sistemas pode ajudar a entender a inter-relação existente entre o sistema humano, agroindustrial, e o sistema natural, meio ambiente, bem como as inter-relações existentes dentro cada um desses sistemas e suas interações.

Portanto, os momentos iniciais do curso podem ser realizados fora do laboratório de informática, em uma sala de estudos ou um local em que os alunos possam discutir e fazer atividades em grupo para construir exemplos e entender os processos de relação entre diversos sistemas.

A figura 7 traz um exemplo fácil de ser compreendido, um lava a jato, e demonstra os quatro componentes presentes em um sistema: entrada, processamento, saída e feedback.

-A U L -A 1

TEORIA GERAL DOS SISTEMAS

(21)

_ ← S U M Á R I O_

15

As entradas tangíveis para o processo são um carro sujo, água, vários produtos de limpeza. Tempo, energia, habilidade e conhecimento também servem como entradas do sistema, porque são necessários para operá-lo. A habilidade é a capacidade de operar com sucesso o pulverizador de líquido, a escova de fazer espuma e os dispositivos de secagem pelo ar. O conhecimento é usado para definir as etapas na operação de lavagem de carro e a ordem em que essas etapas são executadas. Os mecanismos de processamento consistem, em primeiro lugar, escolher qual a opção de lavagem que você deseja (lavagem simples, lavagem com cera etc.). A saída é um carro limpo. Um mecanismo de retroalimentação é a sua avaliação do quão limpo o carro ficou (STAIR; REYNOLDS, 2015, p. 8-9).

A explicação trazida por Stair e Reynolds (2015) é bastante completa. Para o início de um curso básico de programação, algo mais simples pode ser apresentado. Por exemplo, no caso do sistema hospitalar, as entradas são os profissionais de saúde, os remédios, os pacientes, o conhecimento. O processamento são os tratamentos aplicados, as internações, as cirurgias e demais procedimentos. A saída é o paciente tratado ou curado. O feedback pode ser uma revisão ou um retorno a respeito da situação do paciente.

Outro exemplo simples é o da produção de um bolo (figura 8). As entradas são os ingredientes, a receita, os instrumentos de preparo, o forno, a forma. O processamento é a produção da massa e o ato de assar. A saída é o bolo pronto, e o feedback, a informação se o bolo ficou bom.

Figura 7 – Componentes de um sistema

Fonte: Stair e Reynolds (2015).

Figura 8 – Atividade ‒ Componentes do sistema (bolo)

(22)

16

Após uma breve explicação dos componentes, alguns sistemas podem ser debatidos em sala de aula. A ideia é que os alunos identifiquem os componentes de entrada, processamento e saída de cada um deles. A imagem a seguir (figura 9) mostra alguns exemplos.

PRÁTICA ORIENTADA

---

Para essa atividade, a turma pode ser divida em grupos de 4 ou 5 alunos. Os sistemas escolhidos devem ser diferentes dos exemplos dados durante a aula.

RESULTADOS

A apresentação pode ser feita em cartazes ou com a utilização de um quadro. O sistema deve ser apresentado pelo grupo para toda a turma, proporcionando a troca de opiniões e debate.

Figura 9 – Exemplos de sistema

Fonte: Compilado dos autores (2019).

(23)

_ ← S U M Á R I O_

17

EXPOSIÇÃO INICIAL

O algoritmo representa uma sequência finita de passos (instruções) para resolver um determinado problema (FERRARI, CECHINEL, 2008). Sempre que desenvolvemos um algoritmo estamos estabelecendo um padrão de comportamento que deverá ser seguido (uma norma de execução de ações) para alcançar o resultado de um problema.

Para o desenvolvimento de um algoritmo eficiente, é necessário obedecermos algumas premissas básicas no momento de sua construção:

 definir ações simples e sem ambiguidade;  organizar as ações de forma ordenada;

 estabelecer as ações dentro de uma sequência finita de passos.

O conceito do algoritmo, assim como o de sistema, vai além do computador e da programação. Na introdução aos conceitos dos algoritmos para um público leigo, sugerimos a utilização de exemplos do cotidiano antes de se pensar em linhas de código ou programação, os chamados algoritmos não computacionais estruturados.

A seguir (figura 10), temos um exemplo de algoritmo não computacional estruturado, um conjunto de regras para se enviar uma mensagem via WhatsApp.

-A U L -A 2

INTRODUÇÃO A ALGORITMOS

Figura 10 – Exemplo de algoritmo ‒ WhatsApp

(24)

18

-PRÁTICA ORIENTADA

Para essa atividade, a turma pode ser divida em grupos de 4 ou 5 alunos.

Cada grupo receberá um envelope contendo as partes de um algoritmo não computacional estruturado embaralhadas. Os alunos deverão colocá-las em ordem, colá-las num cartaz e, finalmente, apresentar para a turma justificando a ordem adotada.

Veja alguns exemplos de algoritmos que podem ser utilizados nesta atividade:

1. Uma pessoa precisa trocar o pneu furado de um carro. Quais as ações necessárias para realizar essa tarefa e em qual sequência?

2. Uma pessoa deseja comprar um jornal na banca de revistas que fica do outro lado da rua. O dia está com trânsito bastante agitado. Monte um algoritmo para que ela faça o trajeto de forma segura.

3. Monte um algoritmo com a sequência de ações para fazer uma vitamina com um mamão, uma banana, uma maçã, um pouco de leite e açúcar.

Esses exemplos estão prontos para impressão no blog Programa Ifes. Entretanto, o educador é livre para personalizá-los ou escrever novos algoritmos não estruturados e levar para turma. Fonte: Autores (2019).

(25)

_ ← S U M Á R I O_

19

A depender do público, pode ser necessário utilizar uma aula para explicar alguns conceitos básicos de informática e para a criação de contas de e-mail para a turma. É importante que os alunos desenvolvam o hábito de enviar os programas por e-mail para o professor ao final de cada aula, sobretudo, se o procedimento não for algo comum a eles. Se a turma for experiente e possuir e-mail, as aulas 3 e 4 podem ser mescladas, deixando mais tempo para a prática da programação nas aulas seguintes.

A partir desta aula, os encontros devem ocorrer no laboratório de informática. Este primeiro momento deve ser dedicado a entender os conceitos de programação e de algoritmo computacional propriamente dito. É preciso também conhecer o programa que será utilizado nas aulas — o VisuAlg, apresentado anteriormente.

EXPOSIÇÃO INICIAL

Um programa de computador é um conjunto de instruções e ordens dadas à maquina — que produzirão a execução de uma determinada tarefa. Essencialmente, um programa é um meio para conseguir um fim. O fim será provavelmente definido como a informação necessária para solucionar um problema. O processo de programação é, portanto, um processo de solução de problemas (AGUILAR, 2011, p. 76).

O algoritmo computaticonal é uma sequência finita e ordenada de passos (regras), com um esquema de processamento que permite a realização de uma tarefa (resolução de problemas, cálculos etc.), composto pelas seguintes fases (figura 11):

Figura 11 – Fases de um algoritmo

Fonte: Autores (2020).

Início – O algoritmo é iniciado com o preenchimento de algumas informações básicas. O usuário deverá informar um nome para o algoritmo, explicar sua função, além de preencher dados do autor e data do dia. É importante salientar que o cabeçalho iniciado com a expressão “algoritmo” é indispensável pra que tudo funcione corretamente, não podendo ser suprimido ou ignorado.

Declaração de variáveis – Variáveis são “espaços de memória” onde os dados serão gravados. Declarar variáveis é “reservar” esses espaços de memória pra que possam ser preenchidos e

início Declaração

de variáveis

Seção de

comandos Fim

(26)

20

utilizados pelo programa. A declaração de variáveis é feita logo após a expressão “var”. Veremos, na aula 4, quais são os tipos de variáveis e como declará-las corretamente.

Seção de comandos – Nesse espaço ocorrem a entrada, o processamento e a saída de dados. Como o próprio nome indica, nessa seção, devem ser escritos os comandos para ler, processar e mostrar dados na tela. A seção de comandos é iniciada pela expressão “inicio”. Fim – Inidica que o algoritmo está finalizado. Quando a escrita do algoritmo está pronta, é preciso inserir a expressão “fimalgoritmo”.

No VisuAlg, a estrutura básica do algoritmo composta por “algoritmo”, “var”, “inicio” e “fimalgoritmo” precisa ser mantida em todos os programas, não podendo ser modificada ou apagada, sendo apenas incrementada. Já os comentários, que são as partes do código iniciadas por barras duplas e demonstradas em verde, podem ser apagados ou modificados livremente. Os “// comentários” são utilizados para separar e explicar as partes do código. A estrutura se apresenta da seguinte forma (figura 12):

Figura 12 – Partes de um algoritmo

(27)

_ ← S U M Á R I O_

21

PRÁTICA ORIENTADA – Desenvolvendo o primeiro programa

HELLO WORLD! A moda de usar o “Hello World” (“Olá Mundo”) foi criada por Brian Kernighan (figura 13) em 1972. Desde então, esse termo ainda é muito utilizado como exemplo. Se você for fazer um curso, normalmente o professor iniciará lhe ensinando como exibir um “Hello World”.

O “Hello World” é bastante utilizado para iniciar programas. Muitos dizem que, se você começar aprender uma linguagem de programação e não fizer aparecer na tela esse termo, você nunca irá aprender essa linguagem.

No VisuAlg, o comando que mostra a mensagem na tela é o “Escreva”, como a seguir.

O resultado da execução desse algoritmo será apenas a exibição da mensagem “Olá, Mundo” na tela do computador.

Fonte: Forbes India (2011).

(28)

22

EXPOSIÇÃO INICIAL

Uma variável é um recurso utilizado nos programas para escrever e ler dados da memória do computador. Apesar de haver mais tipos, neste curso, foram abordadas três tipos de variáveis: inteiro, real e caracter.

INTEIRO

Nesse tipo de variável, pode ser armazenado qualquer número inteiro, negativo, nulo ou positivo. Ex.: -2, -1, 0.

REAL

Nesse tipo de variável, pode armazenado ser qualquer número real, negativo, nulo ou positivo. Ex.: 2,5; 3,1.

CARACTER

No tipo caracter, pode ser qualquer conjunto de caracteres alfanuméricos. Ex.: A, B, João.

Figura 14 – Fases de um algoritmo

Fonte: Alves (2013).

Na programação, as varíaveis são como gavetas, guardam as informações e podem ser abertas e consultadas quando necessário (figura 14).

No VisuAlg, as varíaveis são inseridas abaixo da expressão “var” e antes da expressão “início”, seguindo a seguinte regra, sem utilizar acentos ou maísculas:

NomedaVariavel:

TipodaVariavel

Por exemplo, se meu programa precisa gravar nome, idade, nota e peso de um aluno, ele terá as seguintes variáveis declaradas:

Nesse código, está sendo criada uma variável chamada “nome”, do tipo caracter. Ela poderá receber um valor alfanumércio como “João” ou “Maria”. Também foi criada uma variável chamada “idade”, que poderá receber valores inteiros, como 29, 62 etc. E as variáveis de “nota” e “peso”, ambas do tipo real, podem gravar “números quebrados” como 12,5 (pontos) ou 82,59 (kg).

(29)

_ ← S U M Á R I O_

23

Quando uma variável é criada, é apenas um espaço vazio reservado na memória do computador. O programador precisa dizer qual valor essa variável receberá. Esse valor pode ser atribuido inicialmente no corpo do código, pode ser digitado pelo usuário ou ser o resultado de uma operação realizada pelo algoritmo, um valor a ser descoberto durante a execução do programa.

1 ‒ No corpo do código

No VisuAlg, depois de criadas, as varíaveis podem ser preenchidas pelo seguinte comando de atribuição de valor, entre as expressões “inicio” e “fim”:

NomedaVariavel <-

Valor

VARIÁVEL TIPO VALOR

nome caracter Vágner

idade inteiro 18

nota real 93,5

peso real 71,63

À esquerda, temos os códigos de atribuição de valores às variáveis criadas anteriormente e, no quadro anterior, uma representação de como os valores estariam gravados na memória do computador. Sempre que eu quisesse consultar um dado, bastaria “ler” a variável e exibir na tela o conteúdo da variável.

2 – Digitado pelo usuário

Outra forma de atribuir valor é pedindo pra que o usuário digite um valor no teclado. Por exemplo, o programa pode perguntar “Quantos anos você tem?”, e a resposta vai variar a depender de quem estiver respondendo, portanto, não pode ser atribuída no corpo do código como vimos anteriormente. Para perguntar e gravar o valor digitado pelo usuário, utilizamos dois comandos: Escreva e Leia. O comando “Escreva”, como já foi visto, serve para mostrar uma mensagem na tela. Já o comando “Leia” serve para “ler” o que foi digitado pelo usuário e gravar dentro da variável informada. É importante salientar que o comando “Escreva” não é obrigatório para realizar a leitura de dados, no entanto, é importante utilizá-lo no sentindo

(30)

24

de orientar o usuário quanto a qual informação deve ser fornecida por ele. Podemos ver a utilização prática dos comandos a seguir.

Escreva(

“Texto de identificação”

)

Leia(variavel)

Exemplo:

Código Resultado

Ao inserir o comando “Leia (nome)”, o programa irá gravar a próxima informação digitada pelo usuário dentro da variável “nome”. No resultado do exemplo, vemos um teste com o nome “Heyder”. Você pode pedir aos alunos para realizarem o teste com o nome deles ou dos colegas. Pode haver uma variáção no último “Escreva” para deixar a experiência mais legal — os alunos podem testar “nome, é uma pessoa muito legal” ou “nome, é bastante inteligente”, dentre outros.

3 – Na execução do programa

O interessante da programação está justamente no processamento, poder inserir os dados e deixar que o sistema trabalhe com eles ao seu favor. A última forma de atribuição de varíaveis é pelo processamento, na execução do programa. Por exemplo, eu posso ter duas variáveis do tipo inteiro A e B e uma terceira variável do tipo real C, em que eu guardo o valor da soma A + B. No lugar da soma, pode ser qualquer outra operação.

variavelC <- variavelA + variavelB

Exemplo:

(31)

_ ← S U M Á R I O_

25

No exemplo anterior, foi demonstrada uma operação de soma (+) e, a seguir, veremos como o VisuAlg identifica outros operadores que podem ser usados na programação.

Aritméticos – O resultado da avaliação é do tipo numérico: inteiro ou real.

OPERAÇÃO OPERADOR

Soma +

Subtração -

Multiplicação *

Divisão /

Divisão Inteira div

Resto %

Exponenciação real ** Exponenciação inteiro ^

Relacionais – Comparação realizada entre dois valores do mesmo tipo básico.

OPERAÇÃO OPERADOR Igual == Diferente <> Maior > Menor < Maior ou igual >= Menor ou Igual <=

OPERADORES

(32)

26

PRÁTICA ORIENTADA

As atividades a seguir podem ser desenvolvidas em grupo ou individualmente, utilizando os conceitos aprendidos até este momento.

É importante salientar que, apesar da necessidade de seguir regras preestabelecidas pelo VisuAlg e pelo Portugol, programar é um exercício pessoal, a forma de declarar variáveis, utilizar sintaxes e modos de resolução de problemas podem ser diferentes e infinitos, ainda que levem ao mesmo resultado. Não se deve esperar ou cobrar que um algoritmo feito por um

aluno seja parecido com o exemplo dado neste material. Na realidade, se uma atividade desta for aplicada a uma turma de 30 alunos, é muito provável que sejam escritos 30 algoritmos diferentes e todos podem estar corretos.

Toda resolução se inicia com a leitura e a interpretação do problema. Antes de iniciar a digitação de um algoritmo é preciso entender o que está sendo pedido, quais variáveis serão necessárias e quais operações poderão ser feitas. De todo modo, programar é uma atividade flexível, é provável que a necessidade de novas variáveis sejam percebidas durante a resolução. No problema exemplo anterior, será preciso armazenar o nome do aluno, então preciso criar uma variável para isso. Ela pode se chamar “nome”, “nomealuno”, “naluno”, “nomea” ou qualquer outra expressão que lembre que nesta variável estará um nome. Como nomes são compostos por letras, essa variável será do tipo caracter. Também precisarei inserir no programa 4 notas bimestrais, então criarei uma variável para cada nota. O enunciado não fala, mas notas podem não ser números inteiros, então as variáveis podem ser do tipo real. Ao fim, o programa precisará dizer qual é a nota final e a média. Também será preciso gravar esse valor em variáveis, então posso criar mais duas variáveis do tipo real, por exemplo, “totalanual” e “media”. A seguir, veremos um exemplo de como esse código ficaria.

PROBLEMA EXEMPLO

Uma escola de ensino fundamental está finalizando o ano letivo. A secretaria precisa calcular a nota final e a média dos 4 bimestres de seus mais de 1.200 alunos. Sabe-se que realizar este trabalho manualmente pode ser muito cansativo, além da possibilidade de haver erros no processo. Faça uso da programação para desenvolver um algoritmo que auxilie na resolução desse problema.

(33)

_ ← S U M Á R I O_

27

Explicando o código do algoritmo por BLOCOS

BLOCO 1

DECLARAÇÕES

Inicialmente, foram preenchidas as informações básicas do algoritmo, seu nome e dados de identificação. Foram declaradas as variáveis “nome” do tipo

caracter, para armazenar o nome

do aluno, além de 6 variáveis do tipo real, para que se armazene as 4 notas bimestrais do aluno, sua soma total e sua média. BLOCO 2

ENTRADA

Agora, inicia-se a entrada dos dados. O programa precisa “perguntar” ao usuário qual o nome do aluno e quais são as notas bimestrais que ele obteve. Para isso, utiliza-se uma sequência de comandos “Escreva” (para exibir mensagens na tela) e “Leia” (para guardar o que é digitado pelo usuário nas variáveis que foram declaradas anteriormente).

BLOCO 3

PROCESSAMENTO

Aqui, a “mágica” acontece. As 4 notas informadas pelo usuário são somadas e armazenadas na variável “total”. A média simples também é calculada, com o total sendo dividido pela quantidade de notas, neste caso, 4.

BLOCO 4

SAÍDA

Finalizado o processamento, resta mostrar o resultado na tela. A saída é composta por comandos “Escreva” para exibir os resultados (total e média).

(34)

28

Agora, podemos ver o algoritmo completo, com todos os blocos unidos.

Outras atividades que podem ser desenvolvidas pela turma.

PROBLEMA EXEMPLO

O dono de uma rede de cinemas deseja fazer a indicação de filmes de acordo com a faixa etária de seus clientes. Para automatizar o processo, deve se criar um programa que receba o nome e o ano de nascimento do cliente e mostre quantos anos ele fez (ou fará) neste ano.

PROBLEMA EXEMPLO

Uma professora de matemática deseja fazer um experimento com seus alunos. Ela precisa de um programa em que seja possível informar dois números inteiros e visualizar o resultado das 4 operações (adição, subtração, multiplicação e divisão) realizadas entre eles.

(35)

_ ← S U M Á R I O_

29

Nesta aula, as atividades poderão ser realizadas em dupla ou individualmente. Os alunos são livres para escolher qual problema querem solucionar, padaria ou sorveteria.

EXPOSIÇÃO INICIAL

Os problemas expostos nesta aula podem ser resolvidos inteiramente com os conhecimentos vistos nas aulas anteriores. A exposição inicial pode ser uma revisão desses conteúdos. Além disso, é essencial que tais conteúdos estejam disponíveis para consulta em um meio de fácil acesso, como e-mail ou blog.

Até este momento, vimos:  declaração de varíaveis;

 entrada de dados (comandos “Escreva” e “Leia”);

 processamento de dados (comandos de atribuição de valores, operadores aritméticos e relacionais);

 saída de dados (comando “Escreva”).

CASO-PROBLEMA ‒ PADARIA

(36)

30

CASO-PROBLEMA – SORVETERIA

Independente da escolha dos alunos, o grau de exigência dos casos-problema é o mesmo. O momento de desenvolvimento da solução deve propiciar o debate em pequenos grupos, a utilização do conteúdo aprendido, além de adaptações e melhorias. Apesar da proposta, os alunos devem se sentir livres para, por exemplo, mudar o tema/estabelecimento, aumentar a quantidade de produtos ou implementar funções além do que foi solicitado, caso queiram. O professor atua como um facilitador, tirando dúvidas durante a resolução. Essa atividade pode levar de 30min a 1h.

RESULTADOS

A apresentação dos resultados pode ser feita com a seleção de um grupo para exibir o código para a turma e explicar a solução proposta. O momento deve suscitar a discussão na turma com a avaliação do professor do código apresentado e a comparação com soluções diferentes criadas por outros grupos.

(37)

_ ← S U M Á R I O_

31

EXPOSIÇÃO INICIAL

Já vimos entrada, processamento e saída, que compõem os algoritmos puramente sequenciais, bem como a utilização de variáveis e operadores aritméticos. Apesar da infinidade de operações que podem ser realizadas com o uso desses recursos, haverá momentos em que valores precisarão ser tratados e comparados para que um processamento mais adequado seja possível.

Para isso, utilizam-se estruturas condicionais. Através delas, poderemos criar algoritmos para solucionar alguns problemas mais complexos. Imagine a seguinte situação: queremos um programa em que se possa cadastrar o nome de um usuário e sua idade. Até aí, muito simples, e conseguiríamos fazer com o que foi aprendido até então. Agora imagine que, além desse cadastro, seja necessário dizer se a pessoa cadastrada tem idade suficiente para assistir a uma lista de filmes em cartaz no cinema? Nesse caso, seria necessário comparar a idade cadastrada com a idade mínima indicada nos filmes. Poderíamos utilizar o comando chamado “se, então” para resolver a questão. Na estrutura “se, então”, uma seção de comandos só é executada se uma condição preestabelecida for atendida. Caso contrário, o programa pode não fazer nada ou executar uma seção de comandos diferentes estabelecidas no “senão”.

-A U L -A 6

ESTRUTURAS CONDICIONAIS (PARTE 1)

“SE-ENTÃO”

se (condição) entao

<comandos>

Senao

<comandos>

fimse

Fonte: freepik.com.

(38)

32

Veremos uma proposta de solução do exemplo menciondo anteriormente. Esse algoritmo considerou que a idade mínima para acesso ao filme seria de 18 anos.

Perceba que utilizamos a estrutura de controle “se, entao” para verificar se a idade informada era igual ou maior que 18. Em caso positivo, uma mensagem favorável ao acesso era exibida na tela, caso contrário (“senao”), uma mensagem negativa seria exibida.

PRÁTICA ORIENTADA

ATIVIDADE COM “SE, ENTÃO”

Escreva um algoritmo que leia

3 números inteiros e diga se

cada um deles é ímpar ou par.

ATIVIDADE COM “SE, ENTÃO”

Escreva um algoritmo que leia

2 números inteiros e diga qual

deles é o maior número.

(39)

_ ← S U M Á R I O_

33

Fonte: freepik.com.

Conteúdos a serem utilizados A atividade pode ser personalizada. A escola mencionada fica em Barra de São Francisco e é bastante conhecida, fazedo sentido citá-la para alunos residentes nesta cidade. O nome deve ser alterado de acordo com a realidade de onde o curso estiver sendo aplicado. A divisão das notas também pode ser alterada, desde que não torne a atividade mais complexa do que o esperado, exigindo conhecimentos ainda não aprendidos.  Declaração de variáveis.  Comandos “Escreva” e “Leia”.  Estrutura condicional “Se, então”. -De 30min a 1h. -RESOLUÇÃO DE

P R O B L E M A S

APROVADO OU REPROVADO?

A Escola Municipal João Bastos divide seu ano letivo em 3 trimestres, os dois primeiros valem 30 pontos cada, o último trimestre vale 40, totalizando 100 pontos no ano. Para ser aprovado, cada aluno precisa ter pelo menos 60% de nota em cada disciplina, ou seja, no mínimo 60 pontos no total final.

Atualmente, a secretaria da escola faz os cálculos com o uso de uma calculadora, o que torna o processo lento e propenso a erros. Para que o cálculo não precise ser feito a mão, você foi contratado para desenvolver um programa para auxiliar na solução do problema. O programa deve receber as 3 notas trimestrais do aluno em cada disciplina e dizer se ele foi aprovado ou reprovado. Caso o aluno esteja reprovado, o programa deverá dizer quantos pontos faltaram para a aprovação.

(40)

34

A Netflix deseja melhorar seu sistema de

sugestão de planos. Você foi contratado para desenvolver um site que auxilie o usuário a encontrar a melhor opção. Você deve seguir os seguintes parâmetros:

1) inicialmente, o programa deve perguntar a quantidade de pessoas que deseja acessar a mesma conta da Netflix simultaneamente; 2) com base nesse número, informe qual plano seria mais adequado para que todos possam acessar simultaneamente;

3) caso o número de pessoas exceda a cobertura do maior plano, informe que será necessário contratar mais de um plano.

Utilize a tabela de planos ao lado para se basear no desenvolvimento do programa.

Conteúdos a serem utilizados

 Declaração de variáveis.  Comandos “Escreva” e

“Leia”.

 Estrutura condicional “Se,

então”.

-De 30min a 1h.

RESULTADOS

A apresentação dos resultados pode ser feita com a seleção de um grupo para exibir o código para a turma e explicar a solução proposta. O momento deve suscitar a discussão na turma com a avaliação do professor do código apresentado. Os alunos também podem fazer rodízios e testar os códigos uns dos outros.

-RESOLUÇÃO DE

P R O B L E M A S

ABRINDO CONTA NA NETFLIX

CASO-PROBLEMA EXTRA

(41)

_ ← S U M Á R I O_

35

EXPOSIÇÃO INICIAL

-

Há situações em que é necessário verificar muitas opções em um algoritmo. Por exemplo, se um programa precisar ler um número digitado pelo usuário e as opções são de 1 a 50, isso resultaria numa sequência longa de comandos “se, então” aninhados.

Portanto, se trata de uma “solução elegante” para quanto se faz necessário o uso de várias estruturas condicionais (“se, então”) aninhadas.

A proposta da estrutura “escolha, caso” demonstrada ao lado é permitir ir direto no bloco de código desejado, dependendo do valor de uma variável de verificação. A vantagem da utilização do “escolha, caso” ficará mais clara no exemplo prático. A seguir, resolveremos a mesma atividade utilizando primeiro o “se, então” e depois o “escolha, caso”.

-A U L -A 7

ESTRUTURAS CONDICIONAIS (PARTE 2)

ESTRUTURA “ESCOLHA-CASO”

escolha <variável>

caso <valor1>

instruções 1

caso <valor2>

instruções 2

caso <valor3>

instruções 3

...

fim-escolha

Fonte: freepik.com.

(42)

36

PRÁTICA ORIENTADA

RESOLUÇÃO COM “SE, ENTÃO”

Escreva um algoritmo utilizando o comando que leia 2 números e pergunte ao usuário qual operação deve ser realizada entre eles, podendo ser adição, subtração, divisão ou multiplicação. Ao final, o programa deverá exibir o resultado da operação escolhida.

Como dito anteriormente, podemos verificar que a resolução desse problema utilizando o comando “se, então” gerou o que chamamos de “se aninhados” — um conjunto de vários “se, então” em sequência e “dentro” um do outro, para que todas as opções necessárias pudessem ser testadas.

A seguir, veremos o mesmo algoritmo sendo escrito com o “escolha, caso”.

(43)

_ ← S U M Á R I O_

37

PRÁTICA ORIENTADA

RESOLUÇÃO COM “ESCOLHA, CASO”

Escreva um algoritmo utilizando o comando que leia 2 números e pergunte ao usuário qual operação deve ser realizada entre eles, podendo ser adição, subtração, divisão ou multiplicação. Ao final, o programa deverá exibir o resultado da operação escolhida.

Agora a mesma atividade é solucionada com a utilização do “escolha, caso”.

Repare que o código se mostra bem mais claro e de fácil compreensão, além de ser menos suscetível a erros por parte do programador durante sua escrita.

(44)

38

Um restaurante de Barra de São Francisco resolveu automatizar seu atendimento. Agora, os garçons usarão tablets ou smartphones para inserir os pedidos, que serão enviados diretamente à cozinha e ao caixa. Você foi contratado como programador para fazer o sistema de registro de pedidos do restaurante, conforme a especificação a seguir.

O sistema deverá gravar os dados do cliente: nome e número da mesa. Também é necessário exibir, na tela, quais pratos estão disponíveis, com seus respectivos preços. O programa deverá registrar qual prato o cliente quer (código) e em qual quantidade. Ao final, o sistema deverá perguntar se o cliente deseja pagar gorjeta (10%). Em caso positivo, o valor deverá ser somado ao preço final. O programa deverá exibir as informações da compra antes de finalizar a execução.

Conteúdos a serem utilizados  Declaração de variáveis.  Comandos “Escreva” e “Leia” e estrutura “Escolha-Caso”. -De 30min a 1h. -RESOLUÇÃO DE

P R O B L E M A S

RESTAURANTE MODERNO

Fonte: freepik.com.

(45)

_ ← S U M Á R I O_

39

Você foi contratado para criar um programa que faça sugestões de conteúdo no Spotify. O programa deverá possuir um menu que exiba, no mínimo, 3 opções de gêneros musicais. Exemplo: 1 – Sertanejo 2 – Rock 3 – Funk 4 – K-pop 5 – Hip-hop

Quando o usuário escolher a opção, o programa deverá listar sugestões para o gênero musical escolhido. As sugestões podem ser músicas, artistas ou ambos.

RESULTADOS

Tanto os gêneros musicais quanto as sugestões de conteúdo devem ser escolhas feitas pelos alunos. Se os alunos não possuem familiaridade com o Spotify, o tema pode ser trocado para YouTube ou programas de TV, por exemplo. É interesante que eles testem o programa entre si depois de finalizado. -RESOLUÇÃO DE

P R O B L E M A S

SUGESTÕES NO SPOTIFY

CASO-PROBLEMA EXTRA

Fonte: spotify.com. Fonte: freepik.com.

(46)

40

Até este momento, os comandos abordados apresentavam execução única. No entanto, há situações em que é necessário repetir uma sequência de operações por várias vezes. Por exemplo, um caixa de supermercado só finaliza sua operação depois que todos os produtos comprados pelo cliente foram registrados. Ele precisa ler e registrar os produtos “n” vezes. Os comandos “repita-até” e “rnquanto-faça” são responsáveis por criar loops — repetições de operações desde que determinada condição seja atendida. Veremos as diferenças de forma mais detalhada a seguir.

REPITA-ATÉ

A estrutura de repetição “repita-até” repete uma sequência de comandos até que uma determinada condição (especificada através de uma expressão lógica) seja satisfeita. Observe:

REPITA

<instruções a serem

executadas repetidamente até a condição ser atendida>

ATE <condição>

-A U L -A 8

REPITA-ATÉ e ENQUANTO-FAÇA

ESTRUTURAS DE REPETIÇÃO

(47)

_ ← S U M Á R I O_

41

No “repita-até”, as <instruções> são executadas até chegar no ponto <condição>. Nesse momento, a condição é avaliada se seu resultado for FALSO, ou seja, se a condição não for atendida ainda, as instruções são executadas novamente. Quando a condição for finalmente atendida, a execução encerra o loop e prossegue até o fim do algoritmo. Veremos um exemplo a seguir.

PRÁTICA ORIENTADA

Escreva um algoritmo utilizando “enquanto-faça” ou “repita-até” que leia os números digitados pelo usuário e faça a soma deles repetidamente até que o número informado seja igual a zero. Quando o usuário teclar “0” (zero), o programa deve apresentar o resultado da soma.

Nesse exemplo, a entrada de dados e o processamento são feitos dentro da estrutura de repetição. Dessa forma, os números digitados pelo usuário são lidos, armazenados na variável “número”,

somados e armazenados na variável “soma”. Essa série de instruções é repetida até que o usuário digite “0”. Na sequência, é feita a saída de dados (fora do laço de repetição) com a exibição da soma total.

(48)

42

ENQUANTO-FAÇA

A estrutura de repetição “enquanto-faça” repete uma sequência de comandos enquanto determinada condição (especificada através de uma expressão lógica) for satisfeita. Observe:

ENQUANTO <condição> FACA

<instruções a serem executadas enquanto a condição estiver sendo atendida>

FIMENQUANTO

Diferentemente do “repita-até”, no “enquanto-faça”, a <condição> ,é avaliada antes do início das <instruções>, que somente serão executadas se o resultado for VERDADEIRO. Cada vez que a execução atinge o ponto FIMENQUANTO, volta-se ao início do laço para que a

<condição> seja avaliada novamente.

A mesma atividade do exemplo anterior é resolvida, desta vez, utilizando o “enquanto-faça”. Repare que a entrada

e o processamento de dados são idênticos. Com a diferença de que foi necessário atribuir valor à variável “numero” (o laço de repetição não seria iniciado se a variável estivesse zerada).

Enquanto o usuário digitar números diferentes de zero, as instruções são repetidas. Ao final, é feita a saída de dados (fora do laço de repetição).

(49)

_ ← S U M Á R I O_

43

Um pequeno supermercado da cidade ainda não possui sistema computadorizado de caixa e está tendo problemas com o aumento do número de clientes. Em horários de maior movimento, o atendente leva muito tempo para conferir as compras, anotar tudo no papel e digitar os valores na calculadora, formando longas filas de espera.

Visando solucionar o problema, o proprietário do estabelecimento contratou você para desenvolver um sistema que torne o processo automatizado. Veja a solicitação:

“Preciso de um sistema para o caixa do supermercado que leia o nome do cliente e os dados da compra (produto, quantidade e valor). O sistema deve registrar os dados de todos os produtos comprados e apresentar o valor total no final. Gostaria também que o sistema calculasse automaticamente o valor do troco, facilitaria muito para o atendente. Também seria bom o sistema perguntar se a compra precisa ser entregue e, se for o caso, gravar o endereço do cliente.”

Conteúdos a serem utilizados

-De 30min a 1h.  Declaração de variáveis.

 Comandos “Escreva” e “Leia”.  Estruturas “se-então”, “repita-até” ou “escolha-caso”. -RESOLUÇÃO DE

P R O B L E M A S

NO CAIXA DO SUPERMERCADO

Fonte: freepik.com.

(50)

44

Para finalizar o curso, os alunos deverão, preferencialmente em grupo, desenvolver um sistema (algoritmo) para identificar e resolver um problema ou auxiliar em alguma situação do cotidiano, utilizando as técnicas de programação aprendidas.

Ao contrário da aulas anteriores, em que os problemas eram sempre propostos pelo professor, agora eles devem ser identificados pelos alunos, devendo o professor apenas auxiliar nesse processo. É provável que esta aula atividade demande mais tempo, como uma ou duas aulas inteiras. Talvez seja sugestivo falar sobre o trabalho no final da aula anterior de modo que os alunos vão para casa com o dever de identificar o problema e trazê-lo na próxima aula. É importante deixar que os alunos sejam criativos e escolham o tema livremente. É natural também que o aluno proponha uma melhoria ou funcionalidade e não exatamente a resolução de um problema. O importante é que a possibilidade do uso da programação seja percebido e implementado. A seguir, é demonstrada uma sequência lógica para esta atividade (figura 15).

Identificar um problema real do cotidiano Desenvolver uma proposta de solução utilizando a programação

Fazer uma breve apresentação da solução proposta

-A U L -A 9

DESAFIO FINAL

Imagem: freepik.com

Figura 15 – Sequência de passos para atividade final

(51)

_ ← S U M Á R I O_

45

Como já mencionado inicialmente, o material exposto neste e-book é resultado do curso ofertado no ano de 2019 para uma turma formada por adolescentes em situação de vulnerabilidade social. A ação de extensão foi desenvolvida pelo Ifes ‒ Campus Barra de São Francisco em parceria com o Cras e o Creas do município, tendo como público-alvo adolescentes de 14 a 17 anos cadastrados nessas instituições.

O Desafio Final requer maior empennho dos alunos, já que será necessário identificar um problema. Ao mesmo tempo, abre espaço para a criatividade dos alunos, o que pode levar a propostas de solução inusitadas.

-Por possuir maior complexidade, o Desafio Final pode demandar tempo maior do que as resoluções de problemas tradicionais.

Para se ter uma ideia, serão expostas de forma anônima algumas soluções desenvolvidas e trechos de depoimentos feitos pelos alunos do Curso Básico de Programação de Computadores no Ifes ‒ Campus Barra de São Francisco em 2019. Os alunos se dividiram em grupos de três ou mais alunos para identificar, coletar dados, desenvolver programas e, por fim, apresentar os resultados à turma. Veremos alguns relatos desse processo a seguir.

(52)

46

PROPOSTA 1 ‒ PADARIA

“A gente fez um trabalho de padaria, em especial sobre o pão. Como que faz o pão, os ingredientes necessários,

o rendimento.

A ideia surgiu do nada. Eu gosto muito de gastronomia e achei legal fazer. No programa a gente colocava a quantidade de pão que a gente queria fazer e o programa nos dava a quantidade que precisava de cada ingrediente.

A gente teve que descobrir a quantidade de ingredientes que se gastava para fazer um pão, um único pão, para que, quando a gente colocasse a quantidade de pão que queríamos fazer, o programa calculasse as informações corretamente. A gente criou uma variável para cada ingrediente e informou o valor necessário para fazer um pão em cada uma delas.”

(Grupo 1 ‒ formado por três alunos)

O relato acima foi sobre o desenvolvimento de um programa no qual o usuário informava quantos pães gostaria de produzir e o algoritmo dizia a quantidade de ingredientes necessários. O programa precisava funcionar para qualquer quantidade de pães.

Durante o desenvolvimento, o grupo cogitou ir até uma padaria para se ter noção dos ingredientes necessários a fabricação de um pão, o que acabou por ser resolvido com uma consulta na internet. O programa também envolveu algumas conversões de gramas em quilos, mililitros em litros etc. As figuras a seguir mostram os detalhes do código mencionado pelos alunos, a criação das variáveis para cada ingrediente, o processamento das quantidades necessárias e a tela do programa sendo executado.

(53)

_ ← S U M Á R I O_

47

Detalhes do código* Entrada Processamento Saída

*Nessa exibição, foi omitida a seção de declarações. Tela de execução

(54)

48

PROPOSTA 2 ‒ QUIZ DOS IRMÃOS BERTI

A seguir, veremos um relato feito por um grupo, formado por três meninas, que desenvolveu um algoritmo de perguntas e respostas.

"Eu sou muito fã dos Irmãos Berti. E, eu e minha colega, a gente gosta muito dos dois. Aí surgiu a ideia da gente fazer um quiz de perguntas e respostas sobre os dois. A gente tentou fazer até umas pegadinhas para poder dificultar mais. Minha colega fez as perguntas na mão e eu elaborei na programação, no computador.

A gente mostrava as perguntas na tela, com três opções erradas e uma correta, a pessoa respondia aquela que ela achava que estava correta e, ao longo das perguntas, o programa ia somando os pontos. Se você acertar a partir de três, sua pontuação está razoável. Se você acertar seis ou mais, está bom, mas você poderia melhorar. Se você acertar todas, excelente."

(Grupo 2 ‒ formado por três alunas)

Irmãos Berti (figura 16) são youtubers, provavelmente essa atividade não teria despertado o mesmo entusiasmo se o assunto do quiz fosse matemática ou conhecimentos gerais. Mas eram os influenciadores digitais que as alunas seguiam e admiravam, então o desenvolvimento se tornou muito atrativo, mesmo que o algoritmo e as linhas de programação fossem, grosso modo, iguais a qualquer outro assunto, diferindo somente nesse ponto. Elas escolheram o assunto que gostavam, tanto que as 10 perguntas com quatro respostas cada foram rapidamente escritas no papel sem necessidade de uma consulta ao Google. Inseri-las no programa, e vê-lo funcionar foi uma atividade prazerosa, apesar das dificuldades naturais da programação.

Figura 16 – Influenciadores digitais teen Irmãos Berti

Referências

Documentos relacionados

ABSTRACT: The toxicological effects of crude ethanolic extracts (CEE) of the seed and bark of Persea americana have been analyzed on larvae and pupae of

A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se baseia no fato de que uma

Almanya'da olduğu gibi, burada da bu terimin hiçbir ayrım gütmeden, modern eğilimleri simgeleyen tüm sanatçılar için geçerli olduğu anlaşılıyor.. SSCB'de ilk halk

As abraçadeiras tipo TUCHO SIMPLES INOX , foram desenvolvidas para aplicações que necessitam alto torque de aperto e condições severas de temperatura, permitin- do assim,

ITIL, biblioteca de infraestrutura de tecnologia da informação, é um framework que surgiu na década de mil novecentos e oitenta pela necessidade do governo

Com base nos resultados da pesquisa referente à questão sobre a internacionalização de processos de negócios habilitados pela TI com o apoio do BPM para a geração de ganhos para

Com base em Tardif, Nóvoa e Pimenta, que relacionam entre outros fatores, o poder da socialização na formação docente e Lave e Wenger que apresentam as comunidades de

Aula Expositiva, Discussão dos textos, Apresentação de alunos, Exercícios, Prova.. 2