Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Desafios do Pensamento Computacional: Entendendo o Processo de Resolução de Problemas, Resumos de Português (Gramática - Literatura)

Os desafios do pensamento computacional são uma série de exercícicios que desenvolvem o pensamento lógico e o raciocínio sistemático. Este documento explica o que é o pensamento computacional, suas vantagens e como ele pode ser aplicado para resolver problemas complexos. Além disso, ele aborda as etapas do processo de resolução de problemas, como a decomposição, reconhecimento de padrões e abstração.

Tipologia: Resumos

2022

Compartilhado em 06/07/2022

anagleci
anagleci 🇧🇷

1 documento

1 / 10

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
10/05/2022
DESAFIOS DE CÓDIGOS
Os desafios têm objetivo de desenvolver o pensamento computacional e o raciocínio lógico, ou
seja, aumentar a capacidade de resolver problemas. (aumento de senioridade).
Entendendo linguagens na Prática – algumas definições
É importante lembrar que cada linguagem possui suas próprias características, cada uma delas
terá uma peculiaridade.
O que é entrada (input)?
É uma informação que é importante para conseguir resolver o problema. Precisa ser lida para
atribuir aquela informação à alguma variável para poder trabalhar o valor durante o nosso
algoritmo e gerar um resultado (saída). Ou seja, é um valor ou um conjunto de valores que é
necessário para que se possa resolver o problema.
O que é saída (output)?
É o resultado gerado por um algoritmo.
DESAFIOS DE PROJETOS
Objetivo de desenvolver algo que seja interessante para utilizar a solução para ser colocada o
portifólio (GitHub) e aumentar a visibilidade do perfil e tornar o currículo mais interessante. M
desafio para evolução das técnicas.
O que é o GitHub?
É um Website, um host, onde podemos deixar os nossos códigos fontes dos nossos projetos
visíveis para empresas e desenvolvedores de softwares, para que outros devs visualizem e até
contribuam com ele. Serve para promover a colaboração entre os desenvolvedores e
compartilhar a evolução técnica e fazem muita diferença em processos seletivos.
Parte prática da entrega de Desafios de Projetos
Quando for criar um projeto no GitHub é interessante fazer um “Fork”, uma espécie de
compartilhamento do código fonte para a sua plataforma. Ele será colocado na sua plataforma,
com uma url sua, para você fazer as edições e melhorias no projeto, mas sempre deixara
visível o projeto original do dev. que você pegou.
Na hora de entregar o projeto no BootCamp é importante colocar uma descrição bem completa,
detalhada em termos de evolução e tudo que foi feito. Durante o processo seletivo as empresas
podem querer olhar as submissões dos projetos, olhar os repositórios e ver se realmente foi
desenvolvido algo a mais, se foi tido o cuidado de documentar no Read Me do projeto tudo
aquilo que foi feito.
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe Desafios do Pensamento Computacional: Entendendo o Processo de Resolução de Problemas e outras Resumos em PDF para Português (Gramática - Literatura), somente na Docsity!

DESAFIOS DE CÓDIGOS

Os desafios têm objetivo de desenvolver o pensamento computacional e o raciocínio lógico, ou seja, aumentar a capacidade de resolver problemas. (aumento de senioridade ). Entendendo linguagens na Prática – algumas definições É importante lembrar que cada linguagem possui suas próprias características, cada uma delas terá uma peculiaridade. O que é entrada (input)? É uma informação que é importante para conseguir resolver o problema. Precisa ser lida para atribuir aquela informação à alguma variável para poder trabalhar o valor durante o nosso algoritmo e gerar um resultado (saída). Ou seja, é um valor ou um conjunto de valores que é necessário para que se possa resolver o problema. O que é saída (output)? É o resultado gerado por um algoritmo. DESAFIOS DE PROJETOS Objetivo de desenvolver algo que seja interessante para utilizar a solução para ser colocada o portifólio (GitHub) e aumentar a visibilidade do perfil e tornar o currículo mais interessante. M desafio para evolução das técnicas. O que é o GitHub? É um Website, um host, onde podemos deixar os nossos códigos fontes dos nossos projetos visíveis para empresas e desenvolvedores de softwares, para que outros devs visualizem e até contribuam com ele. Serve para promover a colaboração entre os desenvolvedores e compartilhar a evolução técnica e fazem muita diferença em processos seletivos. Parte prática da entrega de Desafios de Projetos Quando for criar um projeto no GitHub é interessante fazer um “Fork”, uma espécie de compartilhamento do código fonte para a sua plataforma. Ele será colocado na sua plataforma, com uma url sua, para você fazer as edições e melhorias no projeto, mas sempre deixara visível o projeto original do dev. que você pegou. Na hora de entregar o projeto no BootCamp é importante colocar uma descrição bem completa, detalhada em termos de evolução e tudo que foi feito. Durante o processo seletivo as empresas podem querer olhar as submissões dos projetos, olhar os repositórios e ver se realmente foi desenvolvido algo a mais, se foi tido o cuidado de documentar no Read Me do projeto tudo aquilo que foi feito.

DICAS FINAIS E CONCLUSÕES

A conclusão de um BootCamp coloca o perfil em destaque para as empresas parceiras. É importante participar ativamente dos fóruns, room e mentorias, se tornando uma referência dentro a comunidade do BootCamp. INTRODUÇÃO À PROGRAMAÇÃO E PENSAMENTO COMPUTACIONAL – PRIMEIROS PASSOS PARA APRENDER A PROGRAMAR O objetivo geral do curso é entender o que significa pensar computacionalmente e entender que a habilidade de analista pode ajudar profissionalmente e pessoalmente, pois essa maneira de estruturar o pensamento é benéfica para todos os tipos de resolução de problemas. Pensamento Computacional O pensamento computacional está atrelado, mas não se restringe ao meio computacional (âmbito das ciências exatas e computação). Podemos defini-lo como o processo de pensamento envolvido na expressão de soluções em passos computacionais ou algoritmos que podem ser implementados no computador. É um pensamento sistemático e eficiente na formulação e resolução de problemas, devendo ser utilizado de uma maneira em que um humano e uma máquina sejam igualmente capazes de resolver. Esse pensamento não é uma disciplina acadêmica e sim uma habilidade generalista, que pode ser utilizada em diferentes âmbitos do conhecimento (ex.: matemática, escrita, leitura, computação). Esse pensamento é baseado em quatro pilares:  Decomposição : seria dividir um problema complexo em subproblemas. Consiste em pegar um problema com certo nível de complexidade e dividi-lo de uma forma que possa encontrar problemas menores e resolvíveis, a fim de tornar menos complexo (ex.: receita de bolo).  Reconhecimento de padrões: seria identificar padrões, similaridades ou tendências dentro de um contexto ou contextos distintos (também pode ser relacionado com padrões comportamentais).  Abstração: consiste em extrapolar o conceito de algum problema particular, específico, para uma forma mais generalista. A parametrização de uma informação é o que torna possível generalizá-la, um exemplo é a fórmula da circunferência, a qual pode ser usada para medição do raio de qualquer circunferência.  Design de algoritmos: é o que realiza a automatização dessa resolução de problemas. É nesse pilar que é definido o passo a passo para a solução do problema. Depois de decompor o problema, reconhecer padrões que poderiam ser interessantes para o encontro da solução, abstrair para uma forma generalista é que se definem as instruções passo a passo para determinar a solução.

Abdução: Nesse caso a partir de uma conclusão se tira a premissa, a partir de algo observado supõe-se outra coisa (ex.: a grama está molhada, logo deve ter chovido). Essa premissa não necessariamente será verdadeira, justamente porque se parte apenas de uma observação da situação, e a conclusão pode ter uma premissa que foge do seu conhecimento. Esse tipo de técnica muito usada no processo de investigação e de diagnóstico (ex.: detetive). Temos a inferência sintética e a inferência analítica. A partir de uma inferência podemos pensar ou de maneira sintética, através de síntese e construção (abdução por meio de conclusão; e indução por meio de experimentação) ou de maneira analítica, por meio de análise (dedução). Aperfeiçoamento A partir de uma solução, determinar de que maneira se pode melhorá-la e refiná-la, e uma maneira pontual (uma operação) ou geral (como um todo). Ato de aperfeiçoar, refinar, aprimorar, melhorar. A esse ato de aperfeiçoamento estão relacionados o encontro de uma solução eficiente e a otimização dos processos, sendo que esses dois pontos são feitos a partir da melhoria de uso de recursos, otimizando tempo, dinheiro e esforço. Outros dois pontos relevantes são o aperfeiçoamento das linhas de código e uma boa definição das funções (capaz de manter o código limpo objetivo), estando os dois relacionados a melhoria de códigos e algoritmos, tornando-os mais legíveis. Pilares Pilares: Decomposição “Se você tem um problema que não consegue resolver, existe um problema mais fácil que você pode resolver. Encontre-o” George Poylia É essa a ideia, decompor, quebrar, segmentar. Dado um problema complexo, dividi-lo em problemas menores, problemas mais fáceis de gerenciar. Esse é o primeiro passo da resolução de um problema no conceito de pensamento computacional. Para que isso seja possível existe uma estratégia (passo a passo) que podem ser utilizada:  Análise : Consiste no processo de quebra e determinação de partes menores. Para isso é preciso explorar e estudar o contexto, buscando decompor os elementos constituintes do problema, realizando um exame bem detalhado do que é preciso determinar e resolver nele. Ou seja, encontrar as partes principais, quebrar o problema maior e examinar esses problemas menores.  Síntese :

Traz a ideia de construção, na qual os elementos são combinados a fim de recompor o problema original. O contexto é quebrado na análise e depois é recomposto na síntese, de maneira que faça sentido, buscando um porquê e tentando encaixar as peças. Ou seja, a síntese consiste em reunir os elementos distintos de um grande elemento, dentro de um processo de reconstrução, fundindo os elementos de maneira coerente e dando sentido a sua solução. Ordem de resolução A ordem e resolução desses pequenos problemas pode ser feita de maneira sequencial ou por paralelo, o que vai depender do contexto, da existência de dependências e de onde quer chegar (do que precisa).  Sequencial: quando é sequencial provavelmente existirá uma dependência entre as tarefas, uma execução em fila, ou simplesmente uma ordem. As vezes um problema depende do outro, uma variável está inserida dentro do contexto de outra e para que o problema seja resolvido é necessária a resolução do problema anterior.  Paralelismo: é uma computação paralela em que se ganha em eficiência e tempo. As tarefas podem ser executadas, concorrentemente, de maneira que são isoladas e independentes uma da outra. Depois de serem resolvidas, são agregadas de maneiras que fazem sentido e resolvem o problema. Como decompor? Dentro da decomposição temos variáveis que estão presentes dentro dos problemas pequenos que são determinadas pela segmentação do problema maior. Primeiro deve-se identificar ou coletar os dados relacionados ao problema. A partir da identificação e segmentação das informações (problemas menores), deve-se agregar os dados para então entregar a funcionalidade, o resultado do problema. Exemplo – Criação de um aplicativo Decompondo a ideia, definem-se componentes e etapas, chegando à conclusão hipotética de que primeiro deve-se pensar na finalidade do app, depois em sua interface, depois em suas funcionalidades e por último os pré-requisitos paras que ele funcione. A partir da definição de componentes e etapas (problemas menores) é possível criar o aplicativo de maneira mais eficiente (problema maior). Pilares: Padrões Reconhecimento de Padrões Quando se pensa em reconhecimento de padrões, logo se pensa em “modelo” ou “referência”. Podemos definir então o padrão como um modelo de referência que determina uma estrutura invariante que pode determinar repetição de estruturas. Um exemplo é modelo de cadeira que tem encosto, e assento e que pode ter braços, na qual o tipo de material varia, assim com

conjunto de seres ou fenômenos similares. Quando generalizamos conseguimos determinar classes e objetos que compõe essas classes. Ou seja, nesse processo devemos pegar os elementos principais de determinado objeto, extrapolá-lo opara o mundo abstrato de maneira a torná-lo geral. Ou seja, abstrair é generalizar. Como devemos classificar esses dados? Devem ser classificados através de características , detectar os pontos essenciais e então generalizar em detrimento do detalhe. As vezes determinado objeto tem uma série de características, e muitas dessas características podem não ser interessantes de acordo com o contexto que precisa ser resolvido. Então, em uma classificação de dados precisamos selecionar as informações relevantes para o meu contexto (pontos essenciais), selecionando os pontos essenciais e descartando os detalhes que não me interessam. A partir dessas etapas conseguimos uma representação. Então, a ideia de abstrair um conceito, generalizar um problema, é torná-lo reutilizável, é torná- lo geral de maneira que possa ser utilizado por cenários distintos, mas com similaridade entre si. Pilares: Algoritmos O computador é um trabalhador que tem muita energia, pode trabalhar de maneira eficiente e rápida, mas o problema é que ele não opera sozinho, precisamos determinar instruções para que ele possa executar, pois ele ao resolve o problema sem dizermos o que queremos que ele faça. O computador precisa de instruções detalhadas para que possa resolver um problema, informações essas utilizadas no processamento dos dados dentro do computador, através dos programas. Então, o objetivo de um computador é exatamente receber, manipular, armazenar e processar esses dados. Os programas são constituídos pelas instruções e essas instruções possuem um passo a passo do que o computador precisa realizar. O processo de resolução e problemas através de algoritmos é o que podemos chamar de “step by step”, utilizando as instruções que foram previamente determinadas. Para determinar as instruções precisamos saber o que precisa ser feito e qual a ordem de execução dessas instruções. Esse algoritmo precisa ser entendido por humanos e por máquinas. Desenvolvimento do Programa Análise: Para o desenvolvimento de um programa primeiro é preciso analisar, entender, estudar e definir quais são os dados de entrada e saída (o que eu preciso inserir no programa, quais os dados inerentes ao meu contexto e se algum tipo de dado de saída é esperado). Algoritmo: Existem técnicas distintas pela qual podemos estar determinando o algoritmo. O algoritmo descreve o problema por meio de ferramentas narrativas, fluxograma ou pseudocódigos. Codificação: utilização de alguma linguagem de programação para poder codificar o algoritmo.

INSTRUÇÕES DETALHADAS -> ALGORITMO -> PROGRAMA

Temos, então, a ideia de algoritmo como uma sequência de passos com objetivo definido, a execução de tarefas específicas e um conjunto de operações que resultam em uma sucessão de finitas ações. Ou seja, instruções executadas passo a passo para que uma tarefa possa ser concluída. Como construir um algoritmo? É preciso partir primeiro da parte de compreensão do problema, quais os pontos mais importantes relacionados ao contexto. Depois disso são definidos quais são os dados de entrada, dados que são fornecidos e são do cenário e que são inerentes ao contexto. Após deverá ser definido o processamento desses dados, quais as operações que vão ser realizadas dentro do algoritmo (programa) para que os dados possam ser processados. Após o processamento de dados são definidos os dados de saída, ou seja, os resultados. Depois disso deve-se fazer a utilização de um método de construção ou de refinamento de algoritmo, podendo realizar testes e diagnósticos para constatar se há um bom funcionamento do algoritmo. Construção de algoritmos Narrativa: é a mais simples, sem conceitos novos atribuídos a esse tipo de instruções de passo a passo. Utiliza a linguagem natural, a língua nativa, podendo ser ambígua de acordo com a formulação do passo a passo. Pode fornecer diversos tipos de interpretações, dependendo de como foi escrita. Fluxograma: é uma estrutura gráfica na qual é feita a utilização de símbolos pré-definidos que definem qual o tipo de ação que está sendo executada. É de simples entendimento, mas requer um conhecimento prévio da estrutura e símbolos que estão sendo utilizados ali. Pseudocódigo: é o Portugol. A parte de regras bem definidas onde existem passos a serem seguidos e executados. Está mais próximo de uma codificação, mas não é efetivamente uma linguagem de programação, é o meio termo que torna possível que você vá se acostumando com esse mundo da programação. Estudo de caso conceitual: perdido Possibilidade de verificar que o pensamento computacional pode ser aplicado em qualquer situação. Uma pessoa está perdida na selva, como ela pode utilizar o pensamento computacional para maximizar as chances de sobrevivência?