Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃ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 H E Y D E R V . R A M O S 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 _ ← S U M Á R I O _ 1 HEYDER VAGNER RAMOS MARIZE LYRA SILVA PASSOS MARCIA GONÇALVES DE OLIVEIRA CURSO BÁSICO DE PROGRAMAÇÃO DE COMPUTADORES PARA ADOLESCENTES Dados Internacionais de Catalogação-na-Publicação (CIP) (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 Elaborada por Marcileia Seibert de Barcellos – CRB-6/ES - 656 _ ← S U M Á R I O _ 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 _ ← 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. _ ← S U M Á R I O _ 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. http://programaifes.blogspot.com/ _ ← 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ÁVEISE 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 REFERÊNCIAS ........................................................................................................................... 59 _ ← S U M Á R I O _ 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 20 horas. _ ← 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 Figura 3 – Seymour Papert _ ← S U M Á R I O _ 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. _ ← 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 02Foto: Autores (2019). _ ← 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 Foto: Autores (2019). _ ← S U M Á R I O _ 9 Figura 4 ‒ Metodologia do caso-problema no ensino de programação Fonte: Autores (2019), baseado em Mattar (2017). _ ← 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 Foto: Autores (2019). _ ← 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 04 _ ← 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 Foto: Autores (2019). _ ← 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 04 _ ← S U M Á R I O _ 12 P S E U D O L I N G U A G E M PORTUGOL 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) feitonas 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 Fonte: Autores (2020). _ ← 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 Fonte: VisuAlg (2019) http://visualg3.com.br/ http://visualg3.com.br/ http://programaifes.blogspot.com/ http://programaifes.blogspot.com/ http://programaifes.blogspot.com/ _ ← S U M Á R I O _ 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 Fonte: freepik.com. _ ← 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) Fonte: Autores (2019). _ ← S U M Á R I O _ 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). Fonte: Autores (2019). _ ← 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 Fonte: Autores (2019). _ ← S U M Á R I O _ 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 umjornal 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). _ ← 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 - A U L A 3 INTRODUÇÃO A PROGRAMAÇÃO COMEÇANDO... _ ← S U M Á R I O _ 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 Fonte. Autores (2020). _ ← 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). Figura 13: Brian Kernighan, criador do “Hello World” _ ← S U M Á R I O _ 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). - A U L A 4 VARIÁVEIS E OPERADORES _ ← 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 ATRIBUINDO VALORES _ ← S U M Á R I O _ 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: Código Resultado _ ← 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 _ ← S U M Á R I O _ 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. _ ← 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). _ ← S U M Á R I O _ 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. _ ← 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 - A U L A 5 SORVETE OU CUPCAKE? RESOLVENDO O PRIMERO PROBLEMA _ ← S U M Á R I O _ 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. _ ← 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 “SE-ENTÃO” ESTRUTURAS CONDICIONAIS (PARTE 1) se (condição) entao <comandos> Senao <comandos> fimse Fonte: freepik.com. _ ← S U M Á R I O _ 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. EXEMPLO _ ← 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. _ ← S U M Á R I O _ 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 Fonte: netflix.com. _ ← 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 ESTRUTURA “ESCOLHA-CASO” ESTRUTURAS CONDICIONAIS (PARTE 2) escolha <variável> caso <valor1> instruções 1 caso <valor2> instruções 2 caso <valor3> instruções 3 ... fim-escolha Fonte: freepik.com. _ ← S U M Á R I O _ 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”. _ ← 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. _ ← S U M Á R I O _ 38 Um restaurante de Barra deSã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. _ ← 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. _ ← S U M Á R I O _ 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 Imagem: freepik.com _ ← 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. _ ← S U M Á R I O _ 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). _ ← 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. _ ← S U M Á R I O _ 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 Fonte:Autores (2020). _ ← 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. - A U L A 9 PROPOSTAS DE SOLUÇÃO RELATOS DOS ADOLESCENTES _ ← S U M Á R I O _ 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. _ ← 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 _ ← S U M Á R I O _ 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 Fonte: Culturaliza BH (2018). _ ← S U M Á R I O _ 49 PROPOSTA 3 – JOGADORES DO FLAMENGO O próximo relato é de um grupo, formado por meninos, que escolheu desenvolver algo que envolvesse futebol. "Todo mundo do meu grupo era flamenguista. A gente fez o programa pensando nos técnicos, pensando na dificuldade deles. No programa, a pessoa escolhia o jogador, e ele mostrava todos os dados dele, nome, idade, cidade de origem, posição. Os técnicos podiam se informar para contratar ou tirar o jogador da posição atual. Meus colegas buscaram todas as informações dos jogadores no Google, enquanto eu escrevia o algoritmo." (Grupo 3 ‒ formado por quatro alunos) Esse programa foi o mais simples desenvolvido nessa atividade final, foi desenvolvido por alunos mais novos (todos de 14 anos) e basicamente listava os jogadores do time de futebol do Flamengo na tela e permitia que o usuário escolhesse um da lista para visualizar os dados. Novamente percebemos que a escolha do tema foi algo atrativo para os alunos, que se dispuseram a conseguir a maior quantidade de dados dos jogadores na internet. Apesar da baixa complexidade do algoritmo, esse foi um dos maiores programas em número de linhas devido à quantidade de dados dos jogadores que foram armazenados. Ao lado, a tela de execução do algoritmo “Jogadores do Flamengo”. _ ← S U M Á R I O _ 50 PROPOSTA 4 – CONTROLE FINANCEIRO DE GASTOS O último relato também surgiu de uma situação observada no dia a dia de um dos alunos. O grupo decidiu desenvolver um programa de controle de gastos. “A gente pensou num programa para auxiliar na moderação dos gastos da pessoa. A ideia surgiu num dia normal, quando eu vi meus pais discutindo ali na mesa sobre as contas. Aí, eu comecei a bolar ideia na cabeça. O programa pedia o salário da pessoa e tinha uma série de contas cadastradas que a pessoa colocava, conta de energia, de água, de internet, de supermercado, essas coisas. O programa somava todas aquelas contas e, depois, diminuía a do salário da pessoa. Com aquele total de gastos, ele processava e indicava a porcentagem do salário que você gastou no mês. Aí, se você tem um gasto abaixo de 90%, o programa apresenta uma frase positiva a respeito dos seus gastos. Caso contrário, o programa já pede para você ir com mais moderação, a sua vida financeira não está indo muito bem.” (Grupo 4 ‒ formado por três alunos) Esse algoritmo é mais complexo como se pode perceber. Ele é composto por variadas entradas de dados (nome do usuário, salário e rendimento extra), e o processamento envolve cálculos variados (total recebido no mês, total de gastos, porcentagem de gastos etc.), a saída de dados também pode ser diferente a depender dos resultados obtidos. Apesar do nível maior de complexidade, é interessante ver como o problema foi percebido no cotidiano por um dos alunos do grupo. Fonte: freepik.com. _ ← S U M Á R I O _ 51 Detalhes do código* Entrada Processamento Saída *Nessa exibição, foi omitida a seçãode declarações. _ ← S U M Á R I O _ 52 Tela de execução* * O parâmetro usado para considerar que 65% de gastos é o ideal para o controle financeiro foi estabelecido com base em informações da corretora de investimentos Rico, disponível na internet.1 1 https://blog.rico.com.vc/financas-pessoais. _ ← S U M Á R I O _ 53 O Desafio Final poderá ser concluído com uma apresentação do problema e da solução desenvolvida por cada grupo de alunos. A apresentação desse resultado pode ser feita oralmente com o auxílio de uma apresentação de slides. É indispensável que o grupo apresente o algoritmo finalizado sendo executado e explique as partes principais do código. A seguir, um modelo básico de apresentação de slides padrão que pode ser disponibilizado. Como é possível perceber, a proposta de slides pra apresentação da atividade é bastante simples: uma tela de identificação com o nome dos participantes, seguida da definição do problema, a proposta de solução citando os comandos utilizados e, por fim, a exibição do algoritmo sendo executado. O modelo de apresentação acima pode ser baixado gratuitamente no blog Programa Ifes. - A U L A 9 CRIANDO UMA APRESENTAÇÃO FINALIZANDO Figura 17 – Modelo de slides para apresentação de propostas Fonte: Autores (2020). _ ← S U M Á R I O _ 54 A última aula é dedicada à apresentação das soluções propostas pelos alunos. Cada grupo pode ter entre 10 e 20 minutos para expor a apresentação de slides criada anteriormente e executar o código criado na proposta de solução. O momento é de exposição daquilo que foi aprendido e pode ser aberto ao público externo, como pais de alunos ou adolescentes que tenham interesse no assunto e que queiram fazer parte de uma reoferta do curso. - De 10min a 20min por apresentação. 10 pontos. - A U L A 1 0 CONCLUSÃO Fonte: freepik.com. _ ← S U M Á R I O _ 55 Visando facilitar o acesso aos conteúdos do Curso Básico de Programação de Computadores para Adolescentes, foi criado o blog Programa Ifes. Nele, é possível ter acesso ao conteúdo das aulas (slides), atividades extras e ao programa editor e interpretador de algoritmos. Para isso, basta entrar no seguinte endereço: https://programaifes.blogspot.com - B L O G PROGRAMA IFES https://programaifes.blogspot.com/ _ ← S U M Á R I O _ 56 O ranking será um elemento de gamificação que pode ser utilizado no curso. Assim como num jogo, alunos que completam atividades marcam pontos que ficarão demonstrados num percurso, como mostrado na imagem a seguir (figura 18). O ranking não tem objetivo de criar um mero clima de competição na turma, visa deixar claro o caminho trilhado por cada aluno, que pode acompanhar o próprio progresso e os dos demais colegas. Além disso, o ranking é marcado por pequenos desafios e pequenas conquistas, alunos que atingem determinados pontos podem ser beneficiados e conquistar um brinde, por exemplo, o que pode motivar o estudante a se esforçar mais nas atividades propostas. Utilizar o ranking demanda conhecimentos básicos de HTML, o código é livre e está disponível no blog Programa Ifes. - R A N K I N G COMPONENTE DE GAMIFICAÇÃO Figura 18 – Ranking de pontos Fonte: Autores (2019). _ ← S U M Á R I O _ 57 Alguns alunos irão gostar tanto de programar que vão querer fazer fora do momento dedicado ao curso. Além das atividades propostas durante as aulas, é importante deixar sempre disponível uma lista de atividades extras que possam ser acessadas de casa. O blog Programa Ifes disponibiliza uma página de atividades extras que pode ser utilizada. É claro que o professor pode criar novas atividades extras ou adequar a listagem do blog à realidade de seus alunos. Também está disponível no blog o instalador do programa VisuAlg 2.5. - E X T R A ATIVIDADES EXTRAS _ ← S U M Á R I O _ 58 AGUILAR, Luis Joyanes. Fundamentos de programação: algoritmos, estruturas de dados e objetos. 3. ed. Porto Alegre: AMGH, 2011. ALVES, Gustavo Furtado de Oliveira. O que é variável e constante?. Disponível em: https://dicasdeprogramacao.com.br/o-que-e-variavel-e-constante. Acesso em: 10 set. 2020. APOIO INFORMÁTICA. VisuAlg. [S. l]: VisuAlg, [20--]. Disponível em: https://www.apoioinformatica.inf.br/produtos/visualg. Acesso em: 17 set. 2020. ARAÚJO, Luciana. Steve Jobs. Revista Cult, 29 mar. 2019. Disponível em: https://revistacultnet.com.br/2019/03/29/steve-jobs. Acesso em: 16 set. 2020. CULTURALIZA BH. Pocket Show Irmãos Berti. Culturaliza BH, 2 mar. 2018. Disponível em: https://culturalizabh.com.br/index.php/2018/03/02/pocket-show-irmaos-berti. Acesso em: 16 set. 2020. FABRICIO, Ferrari; CHECHINEL, Cristian. Introdução a Algoritmos e Programação. Versão 2.0. Bagé, 2008. FREEPIK. Graphic resources for everyone ‒ Find Free Vectors, Stock Photos, PSD and Icons. Freepik, [20--]. Disponível em: http://freepik.com. Acesso em: 17 set. 2020. FORBES INDIA. Brian Kernighan: No one Thought C Would Become So Big. Forbes India, 3 nov. 2011. Disponível em: https://www.forbesindia.com/interview/special/brian-kernighan-no-one- thought-c-would-become-so-big/29982/1. Acesso em: 16 set. 2020. MATTAR, João. Metodologias Ativas: para a educação presencial, blended e a distância. São Paulo: Artesanato Educacional, 2017. MIT NEWS. Professor Emeritus Seymour Papert, pioneer of constructionist learning, dies at 88. Mit News, 1 ago. 2016. Disponível em: https://news.mit.edu/2016/seymour-papert-pioneer-of- constructionist-learning-dies-0801. Acesso em: 16 set. 2020. PAPERT, Seymour. LOGO: Computadores e Educação. São Paulo: Brasiliense, 1985. PUBLIKA.MD. Zuckerberg vinde acțiuni Facebook de aproape trei milioane de dolari. Publika.MD, 2 mar. 2018. Disponível em: https://www.publika.md/zuckerberg-vinde-actiuni- facebook-de-aproape-trei-milioane-de-dolari_2997707.html. Acesso em: 16 set. 2020. STAIR, Ralph M.; REYNOLDS, George W. Princípios de Sistemas de Informação ‒ Tradução da 11ª Edição Norte Americana. São Paulo: Cengage Learning, 2015. REZENDE, Denis Alcides. Sistemas de informações organizacionais. 2. ed. São Paulo: Atlas, 2007. VISUALG. VisuAlg ‒ O melhor interpretador de algoritmos. [S. l]: VisuAlg, [20--]. Disponível em: https://visualg3.com.br. Acesso em: 8 set. 2020. REFERÊNCIAS 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 P A R A adolescentes ISBN: 978-65-86361-53-7 PROGRAMA IFES https://profept.ifes.edu.br/ https://profept.ifes.edu.br/ http://dgp.cnpq.br/dgp/espelhogrupo/540078 http://dgp.cnpq.br/dgp/espelhogrupo/540078 https://edifes.ifes.edu.br/ https://edifes.ifes.edu.br/ https://programaifes.blogspot.com/ https://programaifes.blogspot.com/ 4a340da74d39c2d177e5af6adb5d279ba26e51812b8f3c4870ffe49898a85d20.pdf 7c021b21a650ed076f6682708005b1bb588cc2a2fcc25bca0a3b5148c5a7201a.pdf Dados Internacionais de Catalogação-na-puplicação (CIP) 4a340da74d39c2d177e5af6adb5d279ba26e51812b8f3c4870ffe49898a85d20.pdf 7c021b21a650ed076f6682708005b1bb588cc2a2fcc25bca0a3b5148c5a7201a.pdf 7c021b21a650ed076f6682708005b1bb588cc2a2fcc25bca0a3b5148c5a7201a.pdf 7c021b21a650ed076f6682708005b1bb588cc2a2fcc25bca0a3b5148c5a7201a.pdf 7c021b21a650ed076f6682708005b1bb588cc2a2fcc25bca0a3b5148c5a7201a.pdf 7c021b21a650ed076f6682708005b1bb588cc2a2fcc25bca0a3b5148c5a7201a.pdf
Compartilhar